@ngocsangairvds/vsaf 4.0.6 → 4.0.7

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 (1039) hide show
  1. package/package.json +1 -1
  2. package/packages/cli/dist/commands/install.js +1 -1
  3. package/packages/cli/dist/commands/install.js.map +1 -1
  4. package/skills/vds-skill/install-deps.mjs +20 -4
  5. package/skills/vds-skill/vds-scripts/.claude/phase7-CLOSURE.md +100 -0
  6. package/skills/vds-skill/vds-scripts/.dockerignore +62 -0
  7. package/skills/vds-skill/vds-scripts/.github/ISSUE_TEMPLATE/cli-change.md +92 -0
  8. package/skills/vds-skill/vds-scripts/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +48 -0
  9. package/skills/vds-skill/vds-scripts/.github/workflows/chaos-smoke.yml +266 -0
  10. package/skills/vds-skill/vds-scripts/.github/workflows/confluence-sync.yml +44 -0
  11. package/skills/vds-skill/vds-scripts/.github/workflows/docs-confluence-evidence.yml +170 -0
  12. package/skills/vds-skill/vds-scripts/.github/workflows/docs-quality.yml +59 -0
  13. package/skills/vds-skill/vds-scripts/.github/workflows/lint-and-test.yml +90 -0
  14. package/skills/vds-skill/vds-scripts/.github/workflows/scheduler-load-smoke.yml +104 -0
  15. package/skills/vds-skill/vds-scripts/.github/workflows/telegram-bridge-ci.yml +131 -0
  16. package/skills/vds-skill/vds-scripts/.graphifyignore +29 -0
  17. package/skills/vds-skill/vds-scripts/.importlinter +86 -0
  18. package/skills/vds-skill/vds-scripts/.mcp.json +11 -0
  19. package/skills/vds-skill/vds-scripts/.pre-commit-config.yaml +62 -0
  20. package/skills/vds-skill/vds-scripts/.ruffignore +3 -0
  21. package/skills/vds-skill/vds-scripts/.secrets.baseline +133 -0
  22. package/skills/vds-skill/vds-scripts/AGENTS.md +250 -0
  23. package/skills/vds-skill/vds-scripts/AGENTS.vi.md +92 -0
  24. package/skills/vds-skill/vds-scripts/ECOSYSTEM-CHANGELOG.md +52 -0
  25. package/skills/vds-skill/vds-scripts/ECOSYSTEM-DOCS.md +602 -0
  26. package/skills/vds-skill/vds-scripts/ECOSYSTEM_ALIGNMENT.md +133 -0
  27. package/skills/vds-skill/vds-scripts/Makefile +119 -0
  28. package/skills/vds-skill/vds-scripts/README.md +103 -0
  29. package/skills/vds-skill/vds-scripts/bitbucket_manifest_mapping.toml +34 -0
  30. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/ARCHITECTURE_ANALYSIS.md +258 -0
  31. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/BITBUCKET_API_PRACTICES.md +393 -0
  32. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/EVALUATION_REPORT.md +61 -0
  33. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/FEATURES.md +908 -0
  34. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/README.md +817 -0
  35. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/pyproject.toml +49 -0
  36. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/__init__.py +50 -0
  37. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/async_client.py +641 -0
  38. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/cli.py +2271 -0
  39. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/client.py +2693 -0
  40. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/config.py +186 -0
  41. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/errors.py +34 -0
  42. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/factory.py +185 -0
  43. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/parsers.py +113 -0
  44. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/protocols.py +244 -0
  45. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/repo_ops.py +325 -0
  46. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/__init__.py +8 -0
  47. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/conftest.py +65 -0
  48. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_advanced_search.py +155 -0
  49. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_async_client.py +505 -0
  50. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_branch_permissions.py +172 -0
  51. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_cli.py +113 -0
  52. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_cli_archive.py +122 -0
  53. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_cli_clone.py +131 -0
  54. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client.py +207 -0
  55. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_archive.py +73 -0
  56. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_branch_conditions.py +101 -0
  57. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_code_advanced.py +180 -0
  58. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_code_file.py +33 -0
  59. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_deployment_environments.py +193 -0
  60. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_issues.py +163 -0
  61. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_pipelines_advanced.py +171 -0
  62. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_pr_blockers.py +118 -0
  63. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_repository_variables.py +155 -0
  64. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_code.py +98 -0
  65. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_code_advanced.py +279 -0
  66. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_code_insights.py +334 -0
  67. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_conditions.py +149 -0
  68. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_config.py +297 -0
  69. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_deployment_env.py +352 -0
  70. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_errors.py +67 -0
  71. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_factory.py +352 -0
  72. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_fork_operations.py +203 -0
  73. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_issue_cli.py +262 -0
  74. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_pipeline_advanced.py +265 -0
  75. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_pr_blocker.py +206 -0
  76. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_protocols.py +336 -0
  77. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_repo_ops_archive.py +169 -0
  78. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_repo_ops_clone.py +115 -0
  79. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_repo_ops_parsing.py +149 -0
  80. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_repo_settings.py +336 -0
  81. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_repo_variables.py +266 -0
  82. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_webhooks.py +188 -0
  83. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_workspace.py +234 -0
  84. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/unit/__init__.py +0 -0
  85. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/unit/test_parsers.py +254 -0
  86. package/skills/vds-skill/vds-scripts/brd_orchestrator/README.md +29 -0
  87. package/skills/vds-skill/vds-scripts/brd_orchestrator/pyproject.toml +63 -0
  88. package/skills/vds-skill/vds-scripts/brd_orchestrator/src/vds_brd_orchestrator/__init__.py +17 -0
  89. package/skills/vds-skill/vds-scripts/brd_orchestrator/src/vds_brd_orchestrator/cli.py +187 -0
  90. package/skills/vds-skill/vds-scripts/brd_orchestrator/src/vds_brd_orchestrator/validator.py +121 -0
  91. package/skills/vds-skill/vds-scripts/brd_orchestrator/tests/__init__.py +0 -0
  92. package/skills/vds-skill/vds-scripts/brd_orchestrator/tests/test_cli.py +62 -0
  93. package/skills/vds-skill/vds-scripts/brd_orchestrator/tests/test_validator.py +33 -0
  94. package/skills/vds-skill/vds-scripts/code/code_evidence_pack.json +435 -0
  95. package/skills/vds-skill/vds-scripts/confluence_orchestrator/Dockerfile +19 -0
  96. package/skills/vds-skill/vds-scripts/confluence_orchestrator/README.md +479 -0
  97. package/skills/vds-skill/vds-scripts/confluence_orchestrator/SYNC_SCRIPTS.md +127 -0
  98. package/skills/vds-skill/vds-scripts/confluence_orchestrator/SYNC_STANDARDIZATION.md +108 -0
  99. package/skills/vds-skill/vds-scripts/confluence_orchestrator/pyproject.toml +50 -0
  100. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/__init__.py +56 -0
  101. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/async_client.py +100 -0
  102. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/cli.py +3160 -0
  103. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/config.py +215 -0
  104. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content.py +368 -0
  105. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content_v2.py +144 -0
  106. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/crawl_tree.py +1833 -0
  107. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/errors.py +44 -0
  108. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/eventing.py +111 -0
  109. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/http.py +1850 -0
  110. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/orchestration.py +166 -0
  111. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/protocols.py +61 -0
  112. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/reporting.py +78 -0
  113. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/tree.py +122 -0
  114. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/tree_copier.py +431 -0
  115. package/skills/vds-skill/vds-scripts/confluence_orchestrator/sync_pdfs_from_markdown.py +203 -0
  116. package/skills/vds-skill/vds-scripts/confluence_orchestrator/sync_pdfs_to_confluence.py +299 -0
  117. package/skills/vds-skill/vds-scripts/confluence_orchestrator/sync_png_attachments.py +299 -0
  118. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/conftest.py +46 -0
  119. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_advanced_content.py +252 -0
  120. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_advanced_search.py +193 -0
  121. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_async_client.py +104 -0
  122. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_cache_management.py +246 -0
  123. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_cli.py +716 -0
  124. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_config.py +130 -0
  125. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_content.py +192 -0
  126. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_content_flags.py +27 -0
  127. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_content_labels.py +94 -0
  128. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_crawl_tree.py +2252 -0
  129. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_degraded_write_safety.py +176 -0
  130. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_draft_management.py +225 -0
  131. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_errors.py +75 -0
  132. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_eventing.py +73 -0
  133. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_eventing_chaos.py +37 -0
  134. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_eventing_rate_limit.py +44 -0
  135. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_eventing_timeout.py +49 -0
  136. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_export.py +231 -0
  137. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_history.py +217 -0
  138. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_http.py +375 -0
  139. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_orchestration.py +93 -0
  140. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_reporting.py +24 -0
  141. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_search_cql.py +36 -0
  142. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_space_management.py +236 -0
  143. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_space_permissions.py +384 -0
  144. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_tree_copier.py +644 -0
  145. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_tree_copier_remap.py +289 -0
  146. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_user_group_management.py +387 -0
  147. package/skills/vds-skill/vds-scripts/diagram_generator/README.md +663 -0
  148. package/skills/vds-skill/vds-scripts/diagram_generator/ci_validate.sh +16 -0
  149. package/skills/vds-skill/vds-scripts/diagram_generator/docs-nttc/projects/INSURANCE/analysis/current-state/insurance-claim-business/insurance-claim-business-component.png +0 -0
  150. package/skills/vds-skill/vds-scripts/diagram_generator/docs-nttc/projects/INSURANCE/analysis/current-state/insurance-claim-business/insurance-claim-business-component.puml +23 -0
  151. package/skills/vds-skill/vds-scripts/diagram_generator/docs-nttc/projects/INSURANCE/analysis/current-state/insurance-claim-business/insurance-claim-business-sequence.png +0 -0
  152. package/skills/vds-skill/vds-scripts/diagram_generator/docs-nttc/projects/INSURANCE/analysis/current-state/insurance-claim-business/insurance-claim-business-sequence.puml +21 -0
  153. package/skills/vds-skill/vds-scripts/diagram_generator/docs-nttc/projects/INSURANCE/analysis/current-state/insurance-claim-business/insurance-claim-business-usecase.png +0 -0
  154. package/skills/vds-skill/vds-scripts/diagram_generator/docs-nttc/projects/INSURANCE/analysis/current-state/insurance-claim-business/insurance-claim-business-usecase.puml +14 -0
  155. package/skills/vds-skill/vds-scripts/diagram_generator/examples/github-actions-validate.yml +39 -0
  156. package/skills/vds-skill/vds-scripts/diagram_generator/generate_all_diagrams.py +827 -0
  157. package/skills/vds-skill/vds-scripts/diagram_generator/generate_insurance_c4_diagrams.py +261 -0
  158. package/skills/vds-skill/vds-scripts/diagram_generator/generate_insurance_c4_quick.py +486 -0
  159. package/skills/vds-skill/vds-scripts/diagram_generator/pyproject.toml +28 -0
  160. package/skills/vds-skill/vds-scripts/diagram_generator/render_png.py +59 -0
  161. package/skills/vds-skill/vds-scripts/diagram_generator/src/vds_diagram_generator/__init__.py +3 -0
  162. package/skills/vds-skill/vds-scripts/diagram_generator/src/vds_diagram_generator/cli.py +50 -0
  163. package/skills/vds-skill/vds-scripts/diagram_generator/test_c4_hierarchical.py +142 -0
  164. package/skills/vds-skill/vds-scripts/diagram_generator/test_c4_quick.py +131 -0
  165. package/skills/vds-skill/vds-scripts/diagram_generator/tests/__init__.py +0 -0
  166. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_analyzer_completeness.py +260 -0
  167. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_c4_syntax_correctness.py +138 -0
  168. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_component_coverage.py +182 -0
  169. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_mermaid_output.py +80 -0
  170. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_png_generation.py +112 -0
  171. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_scenario_templates.py +15 -0
  172. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_sequence_accuracy.py +93 -0
  173. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_structurizr_export.py +177 -0
  174. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_style_consistency.py +174 -0
  175. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_usecase_generator.py +201 -0
  176. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_usecase_integration.py +124 -0
  177. package/skills/vds-skill/vds-scripts/docker/.dockerignore +38 -0
  178. package/skills/vds-skill/vds-scripts/docker/ADR.md +392 -0
  179. package/skills/vds-skill/vds-scripts/docker/Dockerfile +68 -0
  180. package/skills/vds-skill/vds-scripts/docker/MIGRATION.md +453 -0
  181. package/skills/vds-skill/vds-scripts/docker/README.md +347 -0
  182. package/skills/vds-skill/vds-scripts/docker/ROLLBACK.md +596 -0
  183. package/skills/vds-skill/vds-scripts/docker/compose.phase2-verification.yml +31 -0
  184. package/skills/vds-skill/vds-scripts/docker/docker-compose.cli.yml +206 -0
  185. package/skills/vds-skill/vds-scripts/docker/docker-compose.infra.yml +276 -0
  186. package/skills/vds-skill/vds-scripts/docker/docker-compose.services.yml +425 -0
  187. package/skills/vds-skill/vds-scripts/docker/infrastructure/init-schemas.sql +177 -0
  188. package/skills/vds-skill/vds-scripts/docker/infrastructure/pgbouncer/pgbouncer.ini +75 -0
  189. package/skills/vds-skill/vds-scripts/docker/infrastructure/pgbouncer/userlist.txt +50 -0
  190. package/skills/vds-skill/vds-scripts/docker/infrastructure/pgbouncer/userlist.txt.template +36 -0
  191. package/skills/vds-skill/vds-scripts/docs/.confluence-evidence/.gitkeep +0 -0
  192. package/skills/vds-skill/vds-scripts/docs/.confluence-evidence/PREFLIGHT.md +132 -0
  193. package/skills/vds-skill/vds-scripts/docs/.confluence-evidence/README.md +84 -0
  194. package/skills/vds-skill/vds-scripts/docs/.confluence.yaml +157 -0
  195. package/skills/vds-skill/vds-scripts/docs/.freshness.yaml +54 -0
  196. package/skills/vds-skill/vds-scripts/docs/README.md +235 -0
  197. package/skills/vds-skill/vds-scripts/docs/agents/README.md +33 -0
  198. package/skills/vds-skill/vds-scripts/docs/agents/explanation/data-flow.md +132 -0
  199. package/skills/vds-skill/vds-scripts/docs/agents/explanation/development-roadmap.md +49 -0
  200. package/skills/vds-skill/vds-scripts/docs/agents/explanation/features-overview.md +62 -0
  201. package/skills/vds-skill/vds-scripts/docs/agents/explanation/index.md +36 -0
  202. package/skills/vds-skill/vds-scripts/docs/agents/explanation/runtime-verification-and-gap-reporting.md +127 -0
  203. package/skills/vds-skill/vds-scripts/docs/agents/explanation/system-architecture.md +139 -0
  204. package/skills/vds-skill/vds-scripts/docs/agents/explanation/whats-new.md +75 -0
  205. package/skills/vds-skill/vds-scripts/docs/agents/explanation/who-ecosystem-introduction.md +65 -0
  206. package/skills/vds-skill/vds-scripts/docs/agents/explanation/who-ecosystem-model.md +41 -0
  207. package/skills/vds-skill/vds-scripts/docs/agents/how-to/02-using-vds-ai-memory.md +98 -0
  208. package/skills/vds-skill/vds-scripts/docs/agents/how-to/03-memory-cross-agent.md +241 -0
  209. package/skills/vds-skill/vds-scripts/docs/agents/how-to/04-using-progress-reports.md +240 -0
  210. package/skills/vds-skill/vds-scripts/docs/agents/how-to/08-semantic-search.md +46 -0
  211. package/skills/vds-skill/vds-scripts/docs/agents/how-to/apply-phase3-migration.md +148 -0
  212. package/skills/vds-skill/vds-scripts/docs/agents/how-to/choose-the-right-command-or-skill.md +34 -0
  213. package/skills/vds-skill/vds-scripts/docs/agents/how-to/contribute-new-orchestrator.md +149 -0
  214. package/skills/vds-skill/vds-scripts/docs/agents/how-to/decision-tree.md +63 -0
  215. package/skills/vds-skill/vds-scripts/docs/agents/how-to/first-audit-run.md +83 -0
  216. package/skills/vds-skill/vds-scripts/docs/agents/how-to/index.md +49 -0
  217. package/skills/vds-skill/vds-scripts/docs/agents/how-to/install-and-bootstrap-who-scripts-and-skills.md +314 -0
  218. package/skills/vds-skill/vds-scripts/docs/agents/how-to/orchestrator-workflows/analytics-pipeline-workflow.md +165 -0
  219. package/skills/vds-skill/vds-scripts/docs/agents/how-to/orchestrator-workflows/code-quality-gate-workflow.md +138 -0
  220. package/skills/vds-skill/vds-scripts/docs/agents/how-to/orchestrator-workflows/confluence-bitbucket-sync-workflow.md +130 -0
  221. package/skills/vds-skill/vds-scripts/docs/agents/how-to/orchestrator-workflows/document-delivery-workflow.md +142 -0
  222. package/skills/vds-skill/vds-scripts/docs/agents/how-to/orchestrator-workflows/memory-progress-workflow.md +140 -0
  223. package/skills/vds-skill/vds-scripts/docs/agents/how-to/orchestrator-workflows/research-spec-audit-workflow.md +135 -0
  224. package/skills/vds-skill/vds-scripts/docs/agents/how-to/phase131-all-project-preparation.md +211 -0
  225. package/skills/vds-skill/vds-scripts/docs/agents/how-to/phase131-bounded-parallel-analysis.md +123 -0
  226. package/skills/vds-skill/vds-scripts/docs/agents/how-to/phase131-confluence-upload-recovery.md +204 -0
  227. package/skills/vds-skill/vds-scripts/docs/agents/how-to/phase132-department-preparation.md +144 -0
  228. package/skills/vds-skill/vds-scripts/docs/agents/how-to/run-ecosystem-daily-report.md +213 -0
  229. package/skills/vds-skill/vds-scripts/docs/agents/how-to/tips-and-tricks.md +138 -0
  230. package/skills/vds-skill/vds-scripts/docs/agents/how-to/troubleshooting-guide.md +221 -0
  231. package/skills/vds-skill/vds-scripts/docs/agents/reference/agent-operational-contract.md +162 -0
  232. package/skills/vds-skill/vds-scripts/docs/agents/reference/alignment-phase179-report.md +144 -0
  233. package/skills/vds-skill/vds-scripts/docs/agents/reference/audit-triage-playbook.md +256 -0
  234. package/skills/vds-skill/vds-scripts/docs/agents/reference/backup-restore.md +132 -0
  235. package/skills/vds-skill/vds-scripts/docs/agents/reference/bitbucket-orchestrator.md +56 -0
  236. package/skills/vds-skill/vds-scripts/docs/agents/reference/brd-orchestrator.md +52 -0
  237. package/skills/vds-skill/vds-scripts/docs/agents/reference/capability-coverage-review.md +51 -0
  238. package/skills/vds-skill/vds-scripts/docs/agents/reference/ci-workflows.md +98 -0
  239. package/skills/vds-skill/vds-scripts/docs/agents/reference/circular-dependency-orchestrator.md +55 -0
  240. package/skills/vds-skill/vds-scripts/docs/agents/reference/cli-commands.md +583 -0
  241. package/skills/vds-skill/vds-scripts/docs/agents/reference/cli-development-standards.md +41 -0
  242. package/skills/vds-skill/vds-scripts/docs/agents/reference/cli-help-matrix.md +84 -0
  243. package/skills/vds-skill/vds-scripts/docs/agents/reference/common-errors.md +126 -0
  244. package/skills/vds-skill/vds-scripts/docs/agents/reference/configuration-reference.md +128 -0
  245. package/skills/vds-skill/vds-scripts/docs/agents/reference/confluence-orchestrator.md +56 -0
  246. package/skills/vds-skill/vds-scripts/docs/agents/reference/confluence-sync-target.md +111 -0
  247. package/skills/vds-skill/vds-scripts/docs/agents/reference/confluence-sync.md +46 -0
  248. package/skills/vds-skill/vds-scripts/docs/agents/reference/db-query-orchestrator.md +93 -0
  249. package/skills/vds-skill/vds-scripts/docs/agents/reference/diagrams-orchestrator.md +52 -0
  250. package/skills/vds-skill/vds-scripts/docs/agents/reference/ecosystem-daily-report.md +229 -0
  251. package/skills/vds-skill/vds-scripts/docs/agents/reference/elastic-orchestrator.md +57 -0
  252. package/skills/vds-skill/vds-scripts/docs/agents/reference/env-git-helper.md +216 -0
  253. package/skills/vds-skill/vds-scripts/docs/agents/reference/evolution-orchestrator.md +113 -0
  254. package/skills/vds-skill/vds-scripts/docs/agents/reference/excel-orchestrator.md +51 -0
  255. package/skills/vds-skill/vds-scripts/docs/agents/reference/git-orchestrator.md +62 -0
  256. package/skills/vds-skill/vds-scripts/docs/agents/reference/google-sheets-orchestrator.md +51 -0
  257. package/skills/vds-skill/vds-scripts/docs/agents/reference/grafana-orchestrator.md +52 -0
  258. package/skills/vds-skill/vds-scripts/docs/agents/reference/hexagonal-orchestrator.md +64 -0
  259. package/skills/vds-skill/vds-scripts/docs/agents/reference/index.md +36 -0
  260. package/skills/vds-skill/vds-scripts/docs/agents/reference/infrastructure-v2.15.md +67 -0
  261. package/skills/vds-skill/vds-scripts/docs/agents/reference/intellij-orchestrator.md +50 -0
  262. package/skills/vds-skill/vds-scripts/docs/agents/reference/jira-orchestrator.md +60 -0
  263. package/skills/vds-skill/vds-scripts/docs/agents/reference/links-orchestrator.md +57 -0
  264. package/skills/vds-skill/vds-scripts/docs/agents/reference/lint-cli.md +99 -0
  265. package/skills/vds-skill/vds-scripts/docs/agents/reference/lsp-orchestrator.md +51 -0
  266. package/skills/vds-skill/vds-scripts/docs/agents/reference/markdown-orchestrator.md +53 -0
  267. package/skills/vds-skill/vds-scripts/docs/agents/reference/mcp-orchestrator.md +88 -0
  268. package/skills/vds-skill/vds-scripts/docs/agents/reference/memory-orchestrator.md +53 -0
  269. package/skills/vds-skill/vds-scripts/docs/agents/reference/metabase-orchestrator.md +51 -0
  270. package/skills/vds-skill/vds-scripts/docs/agents/reference/migration-playbook.md +71 -0
  271. package/skills/vds-skill/vds-scripts/docs/agents/reference/multi-agent-orchestrator.md +52 -0
  272. package/skills/vds-skill/vds-scripts/docs/agents/reference/openapi-orchestrator.md +57 -0
  273. package/skills/vds-skill/vds-scripts/docs/agents/reference/orchestrator-architecture.md +194 -0
  274. package/skills/vds-skill/vds-scripts/docs/agents/reference/orchestrator-comparison-matrix.md +79 -0
  275. package/skills/vds-skill/vds-scripts/docs/agents/reference/orchestrator-index.md +73 -0
  276. package/skills/vds-skill/vds-scripts/docs/agents/reference/pdf-orchestrator.md +57 -0
  277. package/skills/vds-skill/vds-scripts/docs/agents/reference/portable-paths-and-config.md +0 -0
  278. package/skills/vds-skill/vds-scripts/docs/agents/reference/portable-paths-validation-matrix.md +129 -0
  279. package/skills/vds-skill/vds-scripts/docs/agents/reference/progress-orchestrator.md +51 -0
  280. package/skills/vds-skill/vds-scripts/docs/agents/reference/progress-report-cli.md +215 -0
  281. package/skills/vds-skill/vds-scripts/docs/agents/reference/public-interface-orchestrator.md +73 -0
  282. package/skills/vds-skill/vds-scripts/docs/agents/reference/research-orchestrator.md +53 -0
  283. package/skills/vds-skill/vds-scripts/docs/agents/reference/schema-orchestrator.md +57 -0
  284. package/skills/vds-skill/vds-scripts/docs/agents/reference/search-tools.md +34 -0
  285. package/skills/vds-skill/vds-scripts/docs/agents/reference/skills-commands.md +256 -0
  286. package/skills/vds-skill/vds-scripts/docs/agents/reference/skills-reference.md +32 -0
  287. package/skills/vds-skill/vds-scripts/docs/agents/reference/sonarqube-orchestrator.md +62 -0
  288. package/skills/vds-skill/vds-scripts/docs/agents/reference/spec-orchestrator.md +56 -0
  289. package/skills/vds-skill/vds-scripts/docs/agents/reference/structure-orchestrator.md +69 -0
  290. package/skills/vds-skill/vds-scripts/docs/agents/reference/system-requirements.md +76 -0
  291. package/skills/vds-skill/vds-scripts/docs/agents/reference/tasks-orchestrator.md +53 -0
  292. package/skills/vds-skill/vds-scripts/docs/agents/reference/validation-and-sync-notes.md +54 -0
  293. package/skills/vds-skill/vds-scripts/docs/agents/reference/vds-ai-memory-api.md +51 -0
  294. package/skills/vds-skill/vds-scripts/docs/agents/reference/vds-cli-reference.md +34 -0
  295. package/skills/vds-skill/vds-scripts/docs/agents/reference/who-capability-inventory.md +96 -0
  296. package/skills/vds-skill/vds-scripts/docs/agents/reference/who-capability-routing-matrix.md +14 -0
  297. package/skills/vds-skill/vds-scripts/docs/agents/tutorials/feature-progression-guide.md +112 -0
  298. package/skills/vds-skill/vds-scripts/docs/agents/tutorials/index.md +36 -0
  299. package/skills/vds-skill/vds-scripts/docs/agents/tutorials/quick-start.md +50 -0
  300. package/skills/vds-skill/vds-scripts/docs/agents/tutorials/who-skills-and-scripts-onboarding.md +47 -0
  301. package/skills/vds-skill/vds-scripts/docs/agents/tutorials/zero-to-productive-developer.md +339 -0
  302. package/skills/vds-skill/vds-scripts/docs/confluence/IMPLEMENTATION-SUMMARY.md +78 -0
  303. package/skills/vds-skill/vds-scripts/docs/confluence/SYNC-GUIDE.md +47 -0
  304. package/skills/vds-skill/vds-scripts/docs/deployment/offline-docker-image-load.md +59 -0
  305. package/skills/vds-skill/vds-scripts/docs/evolution-auto-run-rollout.md +325 -0
  306. package/skills/vds-skill/vds-scripts/docs/evolution-loop-deep-integration.md +496 -0
  307. package/skills/vds-skill/vds-scripts/docs/evolution-loop-integration-guide.md +359 -0
  308. package/skills/vds-skill/vds-scripts/docs/openspace-schema-snapshot.md +73 -0
  309. package/skills/vds-skill/vds-scripts/docs/operations/sla-mttr-policy.md +44 -0
  310. package/skills/vds-skill/vds-scripts/docs/p0-closure-evidence/SUMMARY.md +58 -0
  311. package/skills/vds-skill/vds-scripts/docs/p4-closure-evidence/.gitkeep +0 -0
  312. package/skills/vds-skill/vds-scripts/docs/p4-closure-evidence/smoke-20260427T024137Z-b95b586b.json +15 -0
  313. package/skills/vds-skill/vds-scripts/docs/p8-preflight-evidence/alembic-and-runtime-advisory-locks.md +45 -0
  314. package/skills/vds-skill/vds-scripts/docs/p8-preflight-evidence/dbos-listen-notify.md +54 -0
  315. package/skills/vds-skill/vds-scripts/docs/p8-preflight-evidence/pgbouncer-search-path-empirical.md +110 -0
  316. package/skills/vds-skill/vds-scripts/docs/p8-preflight-evidence/pgvector-set-local-audit.md +51 -0
  317. package/skills/vds-skill/vds-scripts/docs/p8-preflight-evidence/topology-decision-session-mode.md +57 -0
  318. package/skills/vds-skill/vds-scripts/docs/phases/CHANGELOG.md +103 -0
  319. package/skills/vds-skill/vds-scripts/docs/phases/PHASE_125_COMPLETION_AND_MERGE.md +212 -0
  320. package/skills/vds-skill/vds-scripts/docs/phases/phase125/IMPLEMENTATION_REPORT.md +227 -0
  321. package/skills/vds-skill/vds-scripts/docs/phases/phase125/TSK-125.10-11-implementation-summary.md +196 -0
  322. package/skills/vds-skill/vds-scripts/docs/phases/phase125/profile-patch-ollama-local-anthropic.md +122 -0
  323. package/skills/vds-skill/vds-scripts/docs/phases/phase125_completion_summary.md +369 -0
  324. package/skills/vds-skill/vds-scripts/docs/phases/phase125_llm_analysis_skill.md +164 -0
  325. package/skills/vds-skill/vds-scripts/docs/phases/phase125_merge_complete.md +147 -0
  326. package/skills/vds-skill/vds-scripts/docs/phases/phase125_skill_runtime_closure_20260321.md +91 -0
  327. package/skills/vds-skill/vds-scripts/docs/phases/phase2-portable-paths/closure-handoff-summary-2026-03-23.md +290 -0
  328. package/skills/vds-skill/vds-scripts/docs/phases/phase2-portable-paths/remaining-risk-register-2026-03-25.md +143 -0
  329. package/skills/vds-skill/vds-scripts/docs/phases/phase2-portable-paths/verification-evidence-2026-03-23.md +135 -0
  330. package/skills/vds-skill/vds-scripts/docs/v0-sunset-known-issues.md +88 -0
  331. package/skills/vds-skill/vds-scripts/docs/vi/TRANSLATION-BACKLOG.md +72 -0
  332. package/skills/vds-skill/vds-scripts/docs/vi/agents/README.md +41 -0
  333. package/skills/vds-skill/vds-scripts/docs/vi/agents/explanation/features-overview.md +29 -0
  334. package/skills/vds-skill/vds-scripts/docs/vi/agents/explanation/index.md +14 -0
  335. package/skills/vds-skill/vds-scripts/docs/vi/agents/explanation/runtime-verification-and-gap-reporting.md +129 -0
  336. package/skills/vds-skill/vds-scripts/docs/vi/agents/explanation/whats-new.md +37 -0
  337. package/skills/vds-skill/vds-scripts/docs/vi/agents/explanation/who-ecosystem-introduction.md +21 -0
  338. package/skills/vds-skill/vds-scripts/docs/vi/agents/explanation/who-ecosystem-model.md +36 -0
  339. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/02-using-vds-ai-memory.md +100 -0
  340. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/03-memory-cross-agent.md +243 -0
  341. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/04-using-progress-reports.md +242 -0
  342. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/08-semantic-search.md +16 -0
  343. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/choose-the-right-command-or-skill.md +36 -0
  344. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/decision-tree.md +77 -0
  345. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/first-audit-run.md +85 -0
  346. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/index.md +21 -0
  347. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/install-and-bootstrap-who-scripts-and-skills.md +156 -0
  348. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/analytics-pipeline-workflow.md +174 -0
  349. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/code-quality-gate-workflow.md +147 -0
  350. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/confluence-bitbucket-sync-workflow.md +139 -0
  351. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/document-delivery-workflow.md +151 -0
  352. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/memory-progress-workflow.md +149 -0
  353. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/research-spec-audit-workflow.md +144 -0
  354. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/phase131-all-project-preparation.md +213 -0
  355. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/phase131-bounded-parallel-analysis.md +125 -0
  356. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/phase131-confluence-upload-recovery.md +206 -0
  357. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/phase132-department-preparation.md +146 -0
  358. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/tips-and-tricks.md +34 -0
  359. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/troubleshooting-guide.md +36 -0
  360. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/agent-operational-contract.md +98 -0
  361. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/audit-triage-playbook.md +258 -0
  362. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/bitbucket-orchestrator.md +30 -0
  363. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/brd-orchestrator.md +29 -0
  364. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/capability-coverage-review.md +46 -0
  365. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/circular-dependency-orchestrator.md +29 -0
  366. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/cli-commands.md +409 -0
  367. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/cli-development-standards.md +19 -0
  368. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/cli-help-matrix.md +71 -0
  369. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/common-errors.md +133 -0
  370. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/configuration-reference.md +25 -0
  371. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/confluence-orchestrator.md +30 -0
  372. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/db-query-orchestrator.md +34 -0
  373. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/diagrams-orchestrator.md +31 -0
  374. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/elastic-orchestrator.md +30 -0
  375. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/evolution-orchestrator.md +31 -0
  376. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/excel-orchestrator.md +60 -0
  377. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/git-orchestrator.md +31 -0
  378. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/google-sheets-orchestrator.md +60 -0
  379. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/grafana-orchestrator.md +30 -0
  380. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/hexagonal-orchestrator.md +73 -0
  381. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/index.md +25 -0
  382. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/intellij-orchestrator.md +59 -0
  383. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/jira-orchestrator.md +32 -0
  384. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/links-orchestrator.md +66 -0
  385. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/lsp-orchestrator.md +60 -0
  386. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/markdown-orchestrator.md +62 -0
  387. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/mcp-orchestrator.md +34 -0
  388. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/memory-orchestrator.md +45 -0
  389. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/metabase-orchestrator.md +30 -0
  390. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/multi-agent-orchestrator.md +61 -0
  391. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/openapi-orchestrator.md +66 -0
  392. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/orchestrator-architecture.md +24 -0
  393. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/orchestrator-index.md +73 -0
  394. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/pdf-orchestrator.md +30 -0
  395. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/portable-paths-and-config.md +123 -0
  396. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/portable-paths-validation-matrix.md +131 -0
  397. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/progress-orchestrator.md +43 -0
  398. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/progress-report-cli.md +217 -0
  399. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/public-interface-orchestrator.md +82 -0
  400. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/research-orchestrator.md +45 -0
  401. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/schema-orchestrator.md +66 -0
  402. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/search-tools.md +19 -0
  403. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/skills-reference.md +27 -0
  404. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/sonarqube-orchestrator.md +71 -0
  405. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/spec-orchestrator.md +56 -0
  406. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/structure-orchestrator.md +78 -0
  407. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/system-requirements.md +30 -0
  408. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/tasks-orchestrator.md +45 -0
  409. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/validation-and-sync-notes.md +26 -0
  410. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/vds-ai-memory-api.md +53 -0
  411. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/vds-cli-reference.md +34 -0
  412. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/who-capability-inventory.md +98 -0
  413. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/who-capability-routing-matrix.md +16 -0
  414. package/skills/vds-skill/vds-scripts/docs/vi/agents/tutorials/feature-progression-guide.md +124 -0
  415. package/skills/vds-skill/vds-scripts/docs/vi/agents/tutorials/index.md +13 -0
  416. package/skills/vds-skill/vds-scripts/docs/vi/agents/tutorials/quick-start.md +30 -0
  417. package/skills/vds-skill/vds-scripts/docs/vi/agents/tutorials/who-skills-and-scripts-onboarding.md +42 -0
  418. package/skills/vds-skill/vds-scripts/docs/vi/agents/tutorials/zero-to-productive-developer.md +137 -0
  419. package/skills/vds-skill/vds-scripts/elastic_orchestrator/README.md +450 -0
  420. package/skills/vds-skill/vds-scripts/elastic_orchestrator/pyproject.toml +97 -0
  421. package/skills/vds-skill/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/__init__.py +81 -0
  422. package/skills/vds-skill/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/cli.py +652 -0
  423. package/skills/vds-skill/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/client.py +743 -0
  424. package/skills/vds-skill/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/config.py +208 -0
  425. package/skills/vds-skill/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/errors.py +34 -0
  426. package/skills/vds-skill/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/py.typed +0 -0
  427. package/skills/vds-skill/vds-scripts/elastic_orchestrator/tests/__init__.py +0 -0
  428. package/skills/vds-skill/vds-scripts/elastic_orchestrator/tests/conftest.py +227 -0
  429. package/skills/vds-skill/vds-scripts/elastic_orchestrator/tests/test_client.py +990 -0
  430. package/skills/vds-skill/vds-scripts/elastic_orchestrator/tests/test_config.py +268 -0
  431. package/skills/vds-skill/vds-scripts/elastic_orchestrator/tests/test_e2e_verification.py +272 -0
  432. package/skills/vds-skill/vds-scripts/elastic_orchestrator/tests/test_errors.py +78 -0
  433. package/skills/vds-skill/vds-scripts/excel_orchestrator/README.md +288 -0
  434. package/skills/vds-skill/vds-scripts/excel_orchestrator/RESEARCH_BASED_UPDATES_REPORT.md +261 -0
  435. package/skills/vds-skill/vds-scripts/excel_orchestrator/add_essential_missing_effort.py +255 -0
  436. package/skills/vds-skill/vds-scripts/excel_orchestrator/adjust_effort_complexity.py +184 -0
  437. package/skills/vds-skill/vds-scripts/excel_orchestrator/brd_analysis_and_task_breakdown.py +632 -0
  438. package/skills/vds-skill/vds-scripts/excel_orchestrator/brd_analysis_comprehensive.py +1029 -0
  439. package/skills/vds-skill/vds-scripts/excel_orchestrator/check_overlaps_and_brd_coverage.py +570 -0
  440. package/skills/vds-skill/vds-scripts/excel_orchestrator/clean_remarks_column.py +127 -0
  441. package/skills/vds-skill/vds-scripts/excel_orchestrator/comprehensive_brd_check.py +322 -0
  442. package/skills/vds-skill/vds-scripts/excel_orchestrator/create_buffered_summary.py +119 -0
  443. package/skills/vds-skill/vds-scripts/excel_orchestrator/create_service_totals_sheet.py +118 -0
  444. package/skills/vds-skill/vds-scripts/excel_orchestrator/examples/basic_operations.py +85 -0
  445. package/skills/vds-skill/vds-scripts/excel_orchestrator/expand_all_tasks.py +341 -0
  446. package/skills/vds-skill/vds-scripts/excel_orchestrator/expand_tasks.py +304 -0
  447. package/skills/vds-skill/vds-scripts/excel_orchestrator/fill_brd_references.py +347 -0
  448. package/skills/vds-skill/vds-scripts/excel_orchestrator/fill_remarks_and_colors.py +132 -0
  449. package/skills/vds-skill/vds-scripts/excel_orchestrator/finalize_brd_and_cleanup.py +295 -0
  450. package/skills/vds-skill/vds-scripts/excel_orchestrator/finalize_brd_coverage.py +327 -0
  451. package/skills/vds-skill/vds-scripts/excel_orchestrator/fix_all_formulas.py +99 -0
  452. package/skills/vds-skill/vds-scripts/excel_orchestrator/fix_detail_presentation.py +113 -0
  453. package/skills/vds-skill/vds-scripts/excel_orchestrator/fix_presentation_and_effort.py +116 -0
  454. package/skills/vds-skill/vds-scripts/excel_orchestrator/fix_presentation_consistency.py +231 -0
  455. package/skills/vds-skill/vds-scripts/excel_orchestrator/fix_remarks_matching.py +179 -0
  456. package/skills/vds-skill/vds-scripts/excel_orchestrator/group_tasks_by_service_id.py +210 -0
  457. package/skills/vds-skill/vds-scripts/excel_orchestrator/increase_brd_coverage.py +497 -0
  458. package/skills/vds-skill/vds-scripts/excel_orchestrator/increase_effort_complexity.py +155 -0
  459. package/skills/vds-skill/vds-scripts/excel_orchestrator/organize_and_deduplicate.py +273 -0
  460. package/skills/vds-skill/vds-scripts/excel_orchestrator/pyproject.toml +64 -0
  461. package/skills/vds-skill/vds-scripts/excel_orchestrator/rebuild_all_formulas.py +146 -0
  462. package/skills/vds-skill/vds-scripts/excel_orchestrator/remove_base_multiplier_and_check_duplicates.py +310 -0
  463. package/skills/vds-skill/vds-scripts/excel_orchestrator/remove_duplicate_brd_tasks.py +137 -0
  464. package/skills/vds-skill/vds-scripts/excel_orchestrator/research_based_updates.py +457 -0
  465. package/skills/vds-skill/vds-scripts/excel_orchestrator/restore_e_values.py +172 -0
  466. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/__init__.py +5 -0
  467. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/cli.py +746 -0
  468. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/config.py +74 -0
  469. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/converters.py +226 -0
  470. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/errors.py +88 -0
  471. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/excel_client.py +443 -0
  472. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/formatters.py +211 -0
  473. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/logging.py +57 -0
  474. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/source_contract.py +29 -0
  475. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/target_state_status.py +837 -0
  476. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/ulnc_alignment.py +1291 -0
  477. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/validators.py +164 -0
  478. package/skills/vds-skill/vds-scripts/excel_orchestrator/sync_detail_and_total_sheets.py +211 -0
  479. package/skills/vds-skill/vds-scripts/excel_orchestrator/tests/__init__.py +1 -0
  480. package/skills/vds-skill/vds-scripts/excel_orchestrator/tests/conftest.py +36 -0
  481. package/skills/vds-skill/vds-scripts/excel_orchestrator/tests/test_cli.py +383 -0
  482. package/skills/vds-skill/vds-scripts/excel_orchestrator/tests/test_excel_client.py +129 -0
  483. package/skills/vds-skill/vds-scripts/excel_orchestrator/tests/test_ulnc_alignment.py +373 -0
  484. package/skills/vds-skill/vds-scripts/excel_orchestrator/tests/test_validators.py +64 -0
  485. package/skills/vds-skill/vds-scripts/excel_orchestrator/update_api_database_effort.py +261 -0
  486. package/skills/vds-skill/vds-scripts/excel_orchestrator/update_buffers_inline.py +115 -0
  487. package/skills/vds-skill/vds-scripts/excel_orchestrator/update_complex_services_and_add_new.py +336 -0
  488. package/skills/vds-skill/vds-scripts/excel_orchestrator/update_responsibility_and_fix_rows.py +208 -0
  489. package/skills/vds-skill/vds-scripts/excel_orchestrator/update_task_breakdown_vietnamese.py +309 -0
  490. package/skills/vds-skill/vds-scripts/excel_orchestrator/update_vietnamese_and_responsibility.py +415 -0
  491. package/skills/vds-skill/vds-scripts/excel_orchestrator/verify_brd_coverage_comprehensive.py +401 -0
  492. package/skills/vds-skill/vds-scripts/git_orchestrator/ENHANCEMENT_SUMMARY.md +119 -0
  493. package/skills/vds-skill/vds-scripts/git_orchestrator/README.md +286 -0
  494. package/skills/vds-skill/vds-scripts/git_orchestrator/VERIFICATION_REPORT.md +152 -0
  495. package/skills/vds-skill/vds-scripts/git_orchestrator/pyproject.toml +37 -0
  496. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__init__.py +30 -0
  497. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__main__.py +4 -0
  498. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/branch_probe.py +271 -0
  499. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/cli.py +892 -0
  500. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/logging_config.py +63 -0
  501. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/manifest.py +249 -0
  502. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/orchestrator.py +1647 -0
  503. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/protocols.py +35 -0
  504. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/reporting.py +55 -0
  505. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/__init__.py +0 -0
  506. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/test_cli_settings.py +19 -0
  507. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/test_integration.py +79 -0
  508. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/test_manifest.py +79 -0
  509. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/test_orchestrator.py +207 -0
  510. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/test_public_api.py +235 -0
  511. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/test_resilience.py +343 -0
  512. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/unit/__init__.py +0 -0
  513. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/unit/test_branch_probe.py +327 -0
  514. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/unit/test_protocols.py +132 -0
  515. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/README.md +241 -0
  516. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/pyproject.toml +45 -0
  517. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/src/vds_google_sheets_orchestrator/__init__.py +69 -0
  518. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/src/vds_google_sheets_orchestrator/cli.py +568 -0
  519. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/src/vds_google_sheets_orchestrator/client.py +186 -0
  520. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/src/vds_google_sheets_orchestrator/config.py +46 -0
  521. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/src/vds_google_sheets_orchestrator/errors.py +41 -0
  522. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/tests/__init__.py +1 -0
  523. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/tests/conftest.py +1 -0
  524. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/tests/unit/__init__.py +1 -0
  525. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/tests/unit/test_cli.py +212 -0
  526. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/tests/unit/test_client.py +24 -0
  527. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/tests/unit/test_config.py +16 -0
  528. package/skills/vds-skill/vds-scripts/grafana_orchestrator/README.md +572 -0
  529. package/skills/vds-skill/vds-scripts/grafana_orchestrator/pyproject.toml +102 -0
  530. package/skills/vds-skill/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/__init__.py +78 -0
  531. package/skills/vds-skill/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/cli.py +455 -0
  532. package/skills/vds-skill/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/client.py +700 -0
  533. package/skills/vds-skill/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/config.py +243 -0
  534. package/skills/vds-skill/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/errors.py +34 -0
  535. package/skills/vds-skill/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/py.typed +1 -0
  536. package/skills/vds-skill/vds-scripts/grafana_orchestrator/tests/__init__.py +1 -0
  537. package/skills/vds-skill/vds-scripts/grafana_orchestrator/tests/conftest.py +308 -0
  538. package/skills/vds-skill/vds-scripts/grafana_orchestrator/tests/test_client.py +458 -0
  539. package/skills/vds-skill/vds-scripts/grafana_orchestrator/tests/test_config.py +203 -0
  540. package/skills/vds-skill/vds-scripts/grafana_orchestrator/tests/test_errors.py +78 -0
  541. package/skills/vds-skill/vds-scripts/jira_orchestrator/README.md +864 -0
  542. package/skills/vds-skill/vds-scripts/jira_orchestrator/pyproject.toml +43 -0
  543. package/skills/vds-skill/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/__init__.py +65 -0
  544. package/skills/vds-skill/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/adapter.py +1685 -0
  545. package/skills/vds-skill/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/cli.py +2806 -0
  546. package/skills/vds-skill/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/config.py +168 -0
  547. package/skills/vds-skill/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/errors.py +34 -0
  548. package/skills/vds-skill/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/reporting.py +66 -0
  549. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/__init__.py +1 -0
  550. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/conftest.py +86 -0
  551. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_agile_list_payloads.py +54 -0
  552. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_bulk_operations.py +91 -0
  553. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_components.py +56 -0
  554. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_createmeta.py +45 -0
  555. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_dashboard.py +119 -0
  556. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_issue_properties.py +53 -0
  557. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_permissions_compat.py +41 -0
  558. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_reindex.py +42 -0
  559. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_remote_links.py +75 -0
  560. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_transitions.py +90 -0
  561. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_user_management.py +116 -0
  562. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_version_management.py +181 -0
  563. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_watchers.py +43 -0
  564. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_advanced_search.py +179 -0
  565. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_agile.py +304 -0
  566. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_application_properties.py +243 -0
  567. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_backlog.py +91 -0
  568. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_bulk_operations.py +403 -0
  569. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_cli.py +108 -0
  570. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_components.py +119 -0
  571. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_config.py +166 -0
  572. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_dashboard.py +122 -0
  573. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_discover_fields.py +207 -0
  574. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_errors.py +72 -0
  575. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_filter_management.py +411 -0
  576. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_issue_archiving.py +179 -0
  577. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_issue_links.py +257 -0
  578. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_issue_properties.py +189 -0
  579. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_link_types.py +407 -0
  580. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_parse_set.py +37 -0
  581. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_permissions.py +343 -0
  582. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_reindex.py +81 -0
  583. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_remote_links.py +269 -0
  584. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_security_schemes.py +202 -0
  585. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_transitions_changelog.py +109 -0
  586. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_user_management.py +246 -0
  587. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_version_management.py +503 -0
  588. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_watchers.py +116 -0
  589. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_worklog.py +243 -0
  590. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/README.md +864 -0
  591. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/pyproject.toml +43 -0
  592. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/__init__.py +65 -0
  593. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/adapter.py +1689 -0
  594. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/cli.py +2799 -0
  595. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/config.py +137 -0
  596. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/errors.py +34 -0
  597. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/reporting.py +65 -0
  598. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/__init__.py +1 -0
  599. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/conftest.py +86 -0
  600. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_agile_list_payloads.py +54 -0
  601. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_bulk_operations.py +101 -0
  602. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_components.py +64 -0
  603. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_createmeta.py +45 -0
  604. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_dashboard.py +135 -0
  605. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_issue_properties.py +63 -0
  606. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_permissions_compat.py +42 -0
  607. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_reindex.py +42 -0
  608. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_remote_links.py +89 -0
  609. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_transitions.py +91 -0
  610. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_user_management.py +130 -0
  611. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_version_management.py +189 -0
  612. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_watchers.py +49 -0
  613. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_advanced_search.py +213 -0
  614. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_agile.py +334 -0
  615. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_application_properties.py +261 -0
  616. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_backlog.py +91 -0
  617. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_bulk_operations.py +443 -0
  618. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_cli.py +106 -0
  619. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_components.py +133 -0
  620. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_config.py +166 -0
  621. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_dashboard.py +130 -0
  622. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_discover_fields.py +207 -0
  623. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_errors.py +61 -0
  624. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_filter_management.py +478 -0
  625. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_issue_archiving.py +181 -0
  626. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_issue_links.py +257 -0
  627. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_issue_properties.py +203 -0
  628. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_link_types.py +426 -0
  629. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_parse_set.py +37 -0
  630. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_permissions.py +358 -0
  631. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_reindex.py +81 -0
  632. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_remote_links.py +292 -0
  633. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_security_schemes.py +218 -0
  634. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_transitions_changelog.py +121 -0
  635. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_user_management.py +283 -0
  636. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_version_management.py +561 -0
  637. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_watchers.py +128 -0
  638. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_worklog.py +265 -0
  639. package/skills/vds-skill/vds-scripts/llms.txt +159 -0
  640. package/skills/vds-skill/vds-scripts/markdown_orchestrator/README.md +72 -0
  641. package/skills/vds-skill/vds-scripts/markdown_orchestrator/pyproject.toml +39 -0
  642. package/skills/vds-skill/vds-scripts/markdown_orchestrator/src/vds_markdown_orchestrator/__init__.py +5 -0
  643. package/skills/vds-skill/vds-scripts/markdown_orchestrator/src/vds_markdown_orchestrator/cli.py +102 -0
  644. package/skills/vds-skill/vds-scripts/mcp_server/Dockerfile +63 -0
  645. package/skills/vds-skill/vds-scripts/mcp_server/README.md +140 -0
  646. package/skills/vds-skill/vds-scripts/mcp_server/pyproject.toml +41 -0
  647. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/__init__.py +3 -0
  648. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/config.py +36 -0
  649. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/server.py +111 -0
  650. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/tools/__init__.py +15 -0
  651. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/tools/bitbucket_tools.py +47 -0
  652. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/tools/confluence_tools.py +53 -0
  653. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/tools/git_tools.py +71 -0
  654. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/tools/jira_tools.py +63 -0
  655. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/tools/vidp_tools.py +64 -0
  656. package/skills/vds-skill/vds-scripts/mcp_server/tests/__init__.py +1 -0
  657. package/skills/vds-skill/vds-scripts/mcp_server/tests/conftest.py +31 -0
  658. package/skills/vds-skill/vds-scripts/mcp_server/tests/unit/__init__.py +1 -0
  659. package/skills/vds-skill/vds-scripts/mcp_server/tests/unit/test_bitbucket_tools.py +28 -0
  660. package/skills/vds-skill/vds-scripts/mcp_server/tests/unit/test_confluence_tools.py +28 -0
  661. package/skills/vds-skill/vds-scripts/mcp_server/tests/unit/test_git_tools.py +35 -0
  662. package/skills/vds-skill/vds-scripts/mcp_server/tests/unit/test_jira_tools.py +35 -0
  663. package/skills/vds-skill/vds-scripts/mcp_server/tests/verification/__init__.py +6 -0
  664. package/skills/vds-skill/vds-scripts/mcp_server/tests/verification/conftest.py +51 -0
  665. package/skills/vds-skill/vds-scripts/mcp_server/tests/verification/test_mcp_confluence_tools.py +40 -0
  666. package/skills/vds-skill/vds-scripts/mcp_server/tests/verification/test_mcp_jira_tools.py +39 -0
  667. package/skills/vds-skill/vds-scripts/mcp_server/tests/verification/test_mcp_tool_registration.py +50 -0
  668. package/skills/vds-skill/vds-scripts/pdf_orchestrator/.dockerignore +93 -0
  669. package/skills/vds-skill/vds-scripts/pdf_orchestrator/.env.example +40 -0
  670. package/skills/vds-skill/vds-scripts/pdf_orchestrator/.ruff_rules.py +350 -0
  671. package/skills/vds-skill/vds-scripts/pdf_orchestrator/.yamllint.yml +43 -0
  672. package/skills/vds-skill/vds-scripts/pdf_orchestrator/DEVELOPMENT_PLAN.md +80 -0
  673. package/skills/vds-skill/vds-scripts/pdf_orchestrator/Dockerfile +87 -0
  674. package/skills/vds-skill/vds-scripts/pdf_orchestrator/README.md +608 -0
  675. package/skills/vds-skill/vds-scripts/pdf_orchestrator/cli_verification_test/test.md +6 -0
  676. package/skills/vds-skill/vds-scripts/pdf_orchestrator/cli_verification_test/test.pdf +0 -0
  677. package/skills/vds-skill/vds-scripts/pdf_orchestrator/config/alertmanager.yml +83 -0
  678. package/skills/vds-skill/vds-scripts/pdf_orchestrator/config/prometheus.prod.yml +98 -0
  679. package/skills/vds-skill/vds-scripts/pdf_orchestrator/config/prometheus.yml +40 -0
  680. package/skills/vds-skill/vds-scripts/pdf_orchestrator/config/redis.conf +78 -0
  681. package/skills/vds-skill/vds-scripts/pdf_orchestrator/docs/COMPETITIVE_ANALYSIS_REPORT.md +309 -0
  682. package/skills/vds-skill/vds-scripts/pdf_orchestrator/docs/FEATURES_GUIDE.md +518 -0
  683. package/skills/vds-skill/vds-scripts/pdf_orchestrator/docs/MULTI_USER_DEPLOYMENT_GUIDE.md +615 -0
  684. package/skills/vds-skill/vds-scripts/pdf_orchestrator/docs/USER_GUIDE.md +829 -0
  685. package/skills/vds-skill/vds-scripts/pdf_orchestrator/pyproject.toml +87 -0
  686. package/skills/vds-skill/vds-scripts/pdf_orchestrator/pytest.ini +71 -0
  687. package/skills/vds-skill/vds-scripts/pdf_orchestrator/ruff.toml +6 -0
  688. package/skills/vds-skill/vds-scripts/pdf_orchestrator/scripts/debug_security_report.py +59 -0
  689. package/skills/vds-skill/vds-scripts/pdf_orchestrator/scripts/demo_library_selector.py +109 -0
  690. package/skills/vds-skill/vds-scripts/pdf_orchestrator/scripts/generate_project_stats.py +52 -0
  691. package/skills/vds-skill/vds-scripts/pdf_orchestrator/scripts/generate_styled_pdf.py +95 -0
  692. package/skills/vds-skill/vds-scripts/pdf_orchestrator/scripts/migrate_render_pdfs.py +285 -0
  693. package/skills/vds-skill/vds-scripts/pdf_orchestrator/scripts/setup_team.bat +283 -0
  694. package/skills/vds-skill/vds-scripts/pdf_orchestrator/scripts/setup_team.sh +324 -0
  695. package/skills/vds-skill/vds-scripts/pdf_orchestrator/src/vds_pdf_orchestrator/__init__.py +5 -0
  696. package/skills/vds-skill/vds-scripts/pdf_orchestrator/src/vds_pdf_orchestrator/cli.py +542 -0
  697. package/skills/vds-skill/vds-scripts/pdf_orchestrator/src/vds_pdf_orchestrator/config.py +33 -0
  698. package/skills/vds-skill/vds-scripts/pdf_orchestrator/tests/README.md +650 -0
  699. package/skills/vds-skill/vds-scripts/pdf_orchestrator/tests/__init__.py +0 -0
  700. package/skills/vds-skill/vds-scripts/pdf_orchestrator/tests/conftest.py +520 -0
  701. package/skills/vds-skill/vds-scripts/pdf_orchestrator/tests/requirements.txt +51 -0
  702. package/skills/vds-skill/vds-scripts/pdf_orchestrator/tests/run_tests.py +659 -0
  703. package/skills/vds-skill/vds-scripts/pdf_orchestrator/tests/test_config.py +36 -0
  704. package/skills/vds-skill/vds-scripts/platform_core/pyproject.toml +49 -0
  705. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/__init__.py +16 -0
  706. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/alembic/__init__.py +18 -0
  707. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/alembic/runtime.py +139 -0
  708. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/config.py +88 -0
  709. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/credentials.py +40 -0
  710. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/env.py +24 -0
  711. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/errors.py +127 -0
  712. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/http/__init__.py +18 -0
  713. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/http/auth.py +32 -0
  714. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/http/errors.py +47 -0
  715. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/http/pagination.py +65 -0
  716. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/http/retry.py +62 -0
  717. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/http/stack.py +61 -0
  718. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/logging.py +132 -0
  719. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/protocols.py +77 -0
  720. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/serialization.py +80 -0
  721. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/severity.py +175 -0
  722. package/skills/vds-skill/vds-scripts/platform_core/tests/__init__.py +0 -0
  723. package/skills/vds-skill/vds-scripts/platform_core/tests/conftest.py +1 -0
  724. package/skills/vds-skill/vds-scripts/platform_core/tests/test_alembic_runtime.py +300 -0
  725. package/skills/vds-skill/vds-scripts/platform_core/tests/test_auth.py +84 -0
  726. package/skills/vds-skill/vds-scripts/platform_core/tests/test_config.py +83 -0
  727. package/skills/vds-skill/vds-scripts/platform_core/tests/test_credentials.py +73 -0
  728. package/skills/vds-skill/vds-scripts/platform_core/tests/test_env.py +56 -0
  729. package/skills/vds-skill/vds-scripts/platform_core/tests/test_errors.py +201 -0
  730. package/skills/vds-skill/vds-scripts/platform_core/tests/test_errors_http.py +74 -0
  731. package/skills/vds-skill/vds-scripts/platform_core/tests/test_http_settings.py +116 -0
  732. package/skills/vds-skill/vds-scripts/platform_core/tests/test_logging.py +148 -0
  733. package/skills/vds-skill/vds-scripts/platform_core/tests/test_pagination.py +153 -0
  734. package/skills/vds-skill/vds-scripts/platform_core/tests/test_protocols.py +132 -0
  735. package/skills/vds-skill/vds-scripts/platform_core/tests/test_retry.py +151 -0
  736. package/skills/vds-skill/vds-scripts/platform_core/tests/test_serialization.py +92 -0
  737. package/skills/vds-skill/vds-scripts/platform_core/tests/test_severity.py +178 -0
  738. package/skills/vds-skill/vds-scripts/platform_core/tests/test_stack.py +130 -0
  739. package/skills/vds-skill/vds-scripts/platform_core/uv.lock +341 -0
  740. package/skills/vds-skill/vds-scripts/pyproject.toml +145 -0
  741. package/skills/vds-skill/vds-scripts/pyrightconfig.json +82 -0
  742. package/skills/vds-skill/vds-scripts/repo-manifest.yaml +380 -0
  743. package/skills/vds-skill/vds-scripts/repo-manifest.yaml.example +25 -0
  744. package/skills/vds-skill/vds-scripts/ruff.toml +100 -0
  745. package/skills/vds-skill/vds-scripts/scripts/BRD-Validation-API.postman_collection.json +706 -0
  746. package/skills/vds-skill/vds-scripts/scripts/BRD-Validation-README.md +308 -0
  747. package/skills/vds-skill/vds-scripts/scripts/README.md +271 -0
  748. package/skills/vds-skill/vds-scripts/scripts/_validate_alias_phase2.py +137 -0
  749. package/skills/vds-skill/vds-scripts/scripts/audit-cli-patterns.sh +135 -0
  750. package/skills/vds-skill/vds-scripts/scripts/audit-dashboard.sh +525 -0
  751. package/skills/vds-skill/vds-scripts/scripts/backup.sh +123 -0
  752. package/skills/vds-skill/vds-scripts/scripts/bootstrap_uv.sh +69 -0
  753. package/skills/vds-skill/vds-scripts/scripts/brd-validation-environment.json +51 -0
  754. package/skills/vds-skill/vds-scripts/scripts/brd-validation-test-results.json +13023 -0
  755. package/skills/vds-skill/vds-scripts/scripts/brd_coverage_report.json +276 -0
  756. package/skills/vds-skill/vds-scripts/scripts/check-future-annotations.py +22 -0
  757. package/skills/vds-skill/vds-scripts/scripts/check-invalid-symlinks.py +183 -0
  758. package/skills/vds-skill/vds-scripts/scripts/check-no-debug-markers.py +21 -0
  759. package/skills/vds-skill/vds-scripts/scripts/check-no-unittest.py +21 -0
  760. package/skills/vds-skill/vds-scripts/scripts/ci/assert_no_openspace_commits.sh +37 -0
  761. package/skills/vds-skill/vds-scripts/scripts/ci/verify_branch_protection.sh +64 -0
  762. package/skills/vds-skill/vds-scripts/scripts/closure/phase1_check.sh +483 -0
  763. package/skills/vds-skill/vds-scripts/scripts/closure/phase2_check.sh +500 -0
  764. package/skills/vds-skill/vds-scripts/scripts/create_memory_session.py +36 -0
  765. package/skills/vds-skill/vds-scripts/scripts/deploy-bootstrap.sh +201 -0
  766. package/skills/vds-skill/vds-scripts/scripts/deployment/load_docker_images_offline.sh +90 -0
  767. package/skills/vds-skill/vds-scripts/scripts/dev/cli_smoke.sh +259 -0
  768. package/skills/vds-skill/vds-scripts/scripts/final_completion_report.md +139 -0
  769. package/skills/vds-skill/vds-scripts/scripts/folder_structure_report.json +321 -0
  770. package/skills/vds-skill/vds-scripts/scripts/generate_completion_report.py +132 -0
  771. package/skills/vds-skill/vds-scripts/scripts/generate_intellij_modules.py +154 -0
  772. package/skills/vds-skill/vds-scripts/scripts/init-pgbouncer-userlist.sh +154 -0
  773. package/skills/vds-skill/vds-scripts/scripts/link_integrity_report.json +807 -0
  774. package/skills/vds-skill/vds-scripts/scripts/move_audit_artifact_pages.py +252 -0
  775. package/skills/vds-skill/vds-scripts/scripts/move_audit_artifact_pages_rest.py +165 -0
  776. package/skills/vds-skill/vds-scripts/scripts/move_wrong_dept_pages.py +235 -0
  777. package/skills/vds-skill/vds-scripts/scripts/openspace_bootstrap.sh +56 -0
  778. package/skills/vds-skill/vds-scripts/scripts/openspace_common.sh +75 -0
  779. package/skills/vds-skill/vds-scripts/scripts/openspace_doctor.sh +61 -0
  780. package/skills/vds-skill/vds-scripts/scripts/openspace_sync_shadow.sh +65 -0
  781. package/skills/vds-skill/vds-scripts/scripts/phase7-baseline.sh +77 -0
  782. package/skills/vds-skill/vds-scripts/scripts/preflight/env_check.sh +102 -0
  783. package/skills/vds-skill/vds-scripts/scripts/repair_autopay_reports.sh +173 -0
  784. package/skills/vds-skill/vds-scripts/scripts/rollback_drill.sh +659 -0
  785. package/skills/vds-skill/vds-scripts/scripts/run-audit-in-tmux.sh +286 -0
  786. package/skills/vds-skill/vds-scripts/scripts/run-department-audit.sh +495 -0
  787. package/skills/vds-skill/vds-scripts/scripts/run-project-audit.sh +267 -0
  788. package/skills/vds-skill/vds-scripts/scripts/save_intellij_memories.py +112 -0
  789. package/skills/vds-skill/vds-scripts/scripts/save_memories_to_vds_ai.py +81 -0
  790. package/skills/vds-skill/vds-scripts/scripts/save_memories_vds_style.py +133 -0
  791. package/skills/vds-skill/vds-scripts/scripts/search_intellij_memories.py +48 -0
  792. package/skills/vds-skill/vds-scripts/scripts/setup_intellij_workspace.py +71 -0
  793. package/skills/vds-skill/vds-scripts/scripts/smoke-test-deploy.sh +137 -0
  794. package/skills/vds-skill/vds-scripts/scripts/smoke_deploy_lib.py +205 -0
  795. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/README.md +89 -0
  796. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/confluence_sync_coordinator.sh +27 -0
  797. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/coordination.sh +114 -0
  798. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/diagram_coordinator.sh +25 -0
  799. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/docs_root.sh +22 -0
  800. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/generate_diagrams.sh +22 -0
  801. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/markdown_coordinator.sh +25 -0
  802. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/progress_dashboard.sh +17 -0
  803. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/schema_coordinator.sh +25 -0
  804. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/sync_confluence.sh +30 -0
  805. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/update_dependencies.sh +19 -0
  806. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/validate_links.sh +86 -0
  807. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/validate_markdown.sh +52 -0
  808. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/validate_schemas.sh +26 -0
  809. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/validate_structure.sh +98 -0
  810. package/skills/vds-skill/vds-scripts/scripts/tests/__init__.py +1 -0
  811. package/skills/vds-skill/vds-scripts/scripts/tests/test_dockerfile_correctness.py +815 -0
  812. package/skills/vds-skill/vds-scripts/scripts/tests/test_makefile_loadouts.py +560 -0
  813. package/skills/vds-skill/vds-scripts/scripts/tests/test_smoke_deploy.py +313 -0
  814. package/skills/vds-skill/vds-scripts/scripts/tests/test_verify_alembic.py +581 -0
  815. package/skills/vds-skill/vds-scripts/scripts/tests/test_verify_infra_topology.py +254 -0
  816. package/skills/vds-skill/vds-scripts/scripts/update_modules_xml.py +194 -0
  817. package/skills/vds-skill/vds-scripts/scripts/uv-workspace-alignment-verification-2026-03-25.md +128 -0
  818. package/skills/vds-skill/vds-scripts/scripts/uv-workspace-alignment-verification-2026-04-18.md +100 -0
  819. package/skills/vds-skill/vds-scripts/scripts/validate-cli-standardization.sh +188 -0
  820. package/skills/vds-skill/vds-scripts/scripts/validate_brd_coverage.py +197 -0
  821. package/skills/vds-skill/vds-scripts/scripts/validate_folder_structure.py +234 -0
  822. package/skills/vds-skill/vds-scripts/scripts/validate_link_integrity.py +274 -0
  823. package/skills/vds-skill/vds-scripts/scripts/vami017-caller-compat-report.md +62 -0
  824. package/skills/vds-skill/vds-scripts/scripts/vami017-phase-b-scaffold-notes.md +79 -0
  825. package/skills/vds-skill/vds-scripts/scripts/vds_sh_helpers.sh +180 -0
  826. package/skills/vds-skill/vds-scripts/scripts/verification/phase2_portable_paths_ubuntu_docker.sh +26 -0
  827. package/skills/vds-skill/vds-scripts/scripts/verify-infra-topology.py +868 -0
  828. package/skills/vds-skill/vds-scripts/scripts/verify-memory-cli-e2e.sh +598 -0
  829. package/skills/vds-skill/vds-scripts/scripts/verify-worktree-features.sh +306 -0
  830. package/skills/vds-skill/vds-scripts/scripts/worktree-add.sh +128 -0
  831. package/skills/vds-skill/vds-scripts/scripts/worktree-remove.sh +112 -0
  832. package/skills/vds-skill/vds-scripts/scripts/worktree_compose.sh +269 -0
  833. package/skills/vds-skill/vds-scripts/scripts/worktree_uv.sh +77 -0
  834. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/IMPLEMENTATION_AUDIT.md +376 -0
  835. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/README.md +507 -0
  836. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/pyproject.toml +106 -0
  837. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/scripts/ensure_symlink.sh +38 -0
  838. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/__init__.py +164 -0
  839. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/batch.py +212 -0
  840. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/cli.py +1407 -0
  841. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/client.py +608 -0
  842. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/config.py +260 -0
  843. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/diff.py +220 -0
  844. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/errors.py +34 -0
  845. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/external_sca.py +932 -0
  846. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/portfolio.py +225 -0
  847. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/pr.py +505 -0
  848. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/reports.py +342 -0
  849. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/scanner.py +351 -0
  850. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/webhooks.py +269 -0
  851. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/__init__.py +0 -0
  852. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/conftest.py +134 -0
  853. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/test_batch.py +419 -0
  854. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/test_config.py +145 -0
  855. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/test_errors.py +78 -0
  856. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/test_external_sca.py +466 -0
  857. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/test_pr.py +471 -0
  858. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/test_reports.py +511 -0
  859. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/test_webhooks.py +660 -0
  860. package/skills/vds-skill/vds-scripts/uv.lock +5046 -0
  861. package/skills/vds-skill/vds-scripts/vds_agent_core/CHANGELOG.md +36 -0
  862. package/skills/vds-skill/vds-scripts/vds_agent_core/README.md +453 -0
  863. package/skills/vds-skill/vds-scripts/vds_agent_core/docs/PHASE9A_ASSESSMENT.md +50 -0
  864. package/skills/vds-skill/vds-scripts/vds_agent_core/docs/embedding.md +468 -0
  865. package/skills/vds-skill/vds-scripts/vds_agent_core/pyproject.toml +51 -0
  866. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/__init__.py +29 -0
  867. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/agents/__init__.py +26 -0
  868. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/agents/hooks.py +119 -0
  869. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/agents/loop.py +864 -0
  870. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/agents/tools.py +41 -0
  871. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/config.py +252 -0
  872. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/llm/__init__.py +55 -0
  873. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/llm/_cascade.py +143 -0
  874. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/llm/budget.py +353 -0
  875. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/llm/cache.py +373 -0
  876. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/llm/embedding.py +815 -0
  877. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/llm/provider.py +173 -0
  878. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/llm/schemas.py +45 -0
  879. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/observability/__init__.py +77 -0
  880. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/observability/decorators.py +258 -0
  881. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/observability/jsonl_exporter.py +236 -0
  882. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/observability/tracer.py +497 -0
  883. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/profiles.py +2015 -0
  884. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/runtime/__init__.py +0 -0
  885. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/runtime/agent_id.py +60 -0
  886. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/security/__init__.py +13 -0
  887. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/security/credentials.py +106 -0
  888. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/skills/__init__.py +1 -0
  889. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/skills/executor.py +238 -0
  890. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/skills/manager.py +381 -0
  891. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/skills/policy.py +568 -0
  892. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/workflows/__init__.py +19 -0
  893. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/workflows/langgraph_runner.py +102 -0
  894. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/workflows/protocols.py +81 -0
  895. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/__init__.py +0 -0
  896. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/conftest.py +62 -0
  897. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/integration/__init__.py +0 -0
  898. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/integration/test_audit_loop_hooks_integration.py +135 -0
  899. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/integration/test_audit_observability_integration.py +246 -0
  900. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/integration/test_public_api_stability.py +91 -0
  901. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/__init__.py +0 -0
  902. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/__init__.py +0 -0
  903. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_call_site_parallelism.py +30 -0
  904. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_dimension_guardrail.py +25 -0
  905. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_drop_in_provider_extensibility.py +76 -0
  906. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_embedding.py +393 -0
  907. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_embedding_cache.py +302 -0
  908. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_embedding_extra.py +696 -0
  909. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_embedding_subclass.py +49 -0
  910. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_no_provider_leakage_in_env.py +34 -0
  911. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_provider_auto_route.py +48 -0
  912. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_runtime_log_clean.py +111 -0
  913. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_w7_logic_fixes.py +219 -0
  914. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/profiles/__init__.py +0 -0
  915. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/profiles/test_embedding_block_parser.py +194 -0
  916. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/profiles/test_env_resolver_allowlist.py +141 -0
  917. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/profiles/test_profile_authorization.py +158 -0
  918. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/profiles/test_profiles_w3_extra.py +547 -0
  919. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/profiles/test_real_audit_profile_compat.py +129 -0
  920. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/runtime/__init__.py +0 -0
  921. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/runtime/test_for_agent.py +322 -0
  922. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/runtime/test_w9_cascade_edges.py +369 -0
  923. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/security/__init__.py +0 -0
  924. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/security/test_credentials.py +132 -0
  925. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_agent_loop.py +663 -0
  926. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_agent_loop_coverage.py +429 -0
  927. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_agents_hooks_defaults.py +22 -0
  928. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_budget.py +155 -0
  929. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_budget_coverage.py +264 -0
  930. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_budget_tracking_only.py +71 -0
  931. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_cache.py +251 -0
  932. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_cache_context.py +62 -0
  933. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_config.py +155 -0
  934. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_langgraph_runner.py +45 -0
  935. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_langgraph_runner_coverage.py +98 -0
  936. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_llm_cache_deep.py +113 -0
  937. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_observability_decorators.py +697 -0
  938. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_observability_hooks.py +217 -0
  939. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_observability_jsonl_exporter.py +542 -0
  940. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_observability_jsonl_wiring.py +313 -0
  941. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_observability_tracer.py +896 -0
  942. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_profiles.py +1571 -0
  943. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_profiles_coverage.py +444 -0
  944. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_provider.py +316 -0
  945. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_schemas.py +63 -0
  946. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_skill_executor.py +297 -0
  947. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_skill_manager.py +370 -0
  948. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_skill_manager_coverage.py +364 -0
  949. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_skill_policy.py +402 -0
  950. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_skill_rubric.py +47 -0
  951. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_tools.py +51 -0
  952. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_workflow_protocols.py +136 -0
  953. package/skills/vds-skill/vds-scripts/vds_cli/README.md +201 -0
  954. package/skills/vds-skill/vds-scripts/vds_cli/VERIFICATION_REPORT.md +41 -0
  955. package/skills/vds-skill/vds-scripts/vds_cli/pyproject.toml +50 -0
  956. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/__init__.py +3 -0
  957. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/assets/git-credential-helper.py +235 -0
  958. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/cli.py +1126 -0
  959. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/commands/__init__.py +1 -0
  960. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/commands/lint_cli.py +389 -0
  961. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/confluence_sync.py +846 -0
  962. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/docs/consumption/__init__.py +7 -0
  963. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/docs/consumption/funnel.py +105 -0
  964. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/docs/consumption/scanner.py +211 -0
  965. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/docs/freshness/report.py +90 -0
  966. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/docs/types.py +27 -0
  967. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/docs_cmd.py +672 -0
  968. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/docs_metrics.py +75 -0
  969. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/docs_sync.py +1171 -0
  970. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/ecosystem/__init__.py +39 -0
  971. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/ecosystem/report.py +439 -0
  972. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/ecosystem_docs.py +164 -0
  973. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/env.py +111 -0
  974. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/env_git_helper.py +281 -0
  975. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/__init__.py +3 -0
  976. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/google_sheets_orchestrator.py +173 -0
  977. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/router.py +232 -0
  978. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/skills_cmd.py +274 -0
  979. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/sync_api.py +613 -0
  980. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/sync_service.py +283 -0
  981. package/skills/vds-skill/vds-scripts/vds_cli/tests/conftest.py +62 -0
  982. package/skills/vds-skill/vds-scripts/vds_cli/tests/test_env_git_helper_lifecycle.py +261 -0
  983. package/skills/vds-skill/vds-scripts/vds_cli/tests/test_git_credential_helper.py +240 -0
  984. package/skills/vds-skill/vds-scripts/vds_cli/tests/test_router_help_proxy.py +43 -0
  985. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_cli.py +241 -0
  986. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_cli_DOC004.py +110 -0
  987. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_confluence_sync.py +315 -0
  988. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_confluence_sync_wave7.py +375 -0
  989. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_consumption_funnel.py +106 -0
  990. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_consumption_scanner.py +144 -0
  991. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_docs_cmd.py +89 -0
  992. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_docs_cmd_wave8.py +161 -0
  993. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_docs_metrics.py +16 -0
  994. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_docs_quality_score.py +61 -0
  995. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_docs_sync.py +417 -0
  996. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_ecosystem_cli_dashboard.py +667 -0
  997. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_ecosystem_cli_dashboard_rendering.py +143 -0
  998. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_ecosystem_docs.py +63 -0
  999. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_env.py +85 -0
  1000. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_freshness_report.py +125 -0
  1001. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_lint_cli.py +224 -0
  1002. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_router.py +101 -0
  1003. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_skills_cmd.py +419 -0
  1004. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_sync_api.py +357 -0
  1005. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_sync_service.py +170 -0
  1006. package/skills/vds-skill/vds-scripts/vds_cli/tests/verification/conftest.py +51 -0
  1007. package/skills/vds-skill/vds-scripts/vds_cli/tests/verification/test_bitbucket_real.py +32 -0
  1008. package/skills/vds-skill/vds-scripts/vds_cli/tests/verification/test_confluence_real.py +32 -0
  1009. package/skills/vds-skill/vds-scripts/vds_cli/tests/verification/test_jira_real.py +40 -0
  1010. package/skills/vds-skill/vds-scripts/vds_cli_common/README.md +190 -0
  1011. package/skills/vds-skill/vds-scripts/vds_cli_common/pyproject.toml +96 -0
  1012. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/__init__.py +36 -0
  1013. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/app.py +55 -0
  1014. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/completers.py +139 -0
  1015. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/context.py +201 -0
  1016. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/env.py +163 -0
  1017. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/errors.py +440 -0
  1018. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/output.py +284 -0
  1019. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/paths.py +78 -0
  1020. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/testing.py +211 -0
  1021. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/version.py +85 -0
  1022. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/__init__.py +0 -0
  1023. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_app.py +126 -0
  1024. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_completers.py +148 -0
  1025. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_context.py +192 -0
  1026. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_env.py +235 -0
  1027. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_errors.py +275 -0
  1028. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_output.py +229 -0
  1029. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_paths.py +61 -0
  1030. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_testing.py +138 -0
  1031. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_version.py +64 -0
  1032. package/skills/vds-skill/vds-scripts/vidp_orchestrator/README.md +31 -0
  1033. package/skills/vds-skill/vds-scripts/vidp_orchestrator/pyproject.toml +50 -0
  1034. package/skills/vds-skill/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/__init__.py +26 -0
  1035. package/skills/vds-skill/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/cli.py +246 -0
  1036. package/skills/vds-skill/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/client.py +104 -0
  1037. package/skills/vds-skill/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/config.py +82 -0
  1038. package/skills/vds-skill/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/workflows.json +3 -0
  1039. package/skills/vds-skill/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/workflows.py +130 -0
@@ -0,0 +1,81 @@
1
+ """WorkflowProvider Protocol — host-side contract for cron-driven workflows.
2
+
3
+ Defined by ADR-DCP-1 of the vds-scheduler spec
4
+ (v0.2.0). A `WorkflowProvider` is anything that can register workflow aliases
5
+ and cron schedules for a durable workflow framework (currently DBOS in the
6
+ VDS scheduler_orchestrator). Workflow-provider packages (e.g.,
7
+ audit_orchestrator) receive an instance of WorkflowProvider as the argument
8
+ to their entry-point `register(provider)` callable, and use it to register
9
+ aliases + schedules without importing scheduler internals directly.
10
+
11
+ Both methods are idempotent — implementations MUST silently ignore the
12
+ host's "duplicate alias" / "duplicate schedule" errors so that providers
13
+ can call `register()` from a lifespan that runs on every container start.
14
+ """
15
+
16
+ from __future__ import annotations
17
+
18
+ from typing import Any, Protocol, runtime_checkable
19
+
20
+
21
+ @runtime_checkable
22
+ class WorkflowProvider(Protocol):
23
+ """Host-side contract that scheduler-like orchestrators expose to workflow
24
+ providers (entry-points group `vds.workflows`).
25
+
26
+ Stability: This Protocol is part of the v0.2.0 contract for entry-points
27
+ group `vds.workflows`. Breaking changes (method signature changes,
28
+ removals) require a major bump of the `vds_agent_core` package. Additive
29
+ changes (new methods, or new keyword-only args with defaults) are
30
+ non-breaking.
31
+ """
32
+
33
+ def register_workflow_alias(
34
+ self,
35
+ *,
36
+ alias: str,
37
+ workflow_fqn: str,
38
+ owner: str,
39
+ ) -> None:
40
+ """Map a stable alias to a fully-qualified `@DBOS.workflow` function.
41
+
42
+ Args:
43
+ alias: Stable name used by `register_schedule(workflow_alias=...)`
44
+ (e.g., "audit.drift.weekly").
45
+ workflow_fqn: Dotted import path to the workflow function
46
+ (e.g., "vds_audit_orchestrator.workflows.audit_drift_scan.audit_drift_scan").
47
+ owner: Workflow-owner package name (e.g., "audit_orchestrator").
48
+
49
+ Idempotent: implementations MUST silently swallow any
50
+ "duplicate alias" error from the host registry.
51
+ """
52
+ ...
53
+
54
+ def register_schedule(
55
+ self,
56
+ *,
57
+ schedule_id: str,
58
+ workflow_alias: str,
59
+ cron: str,
60
+ owner: str,
61
+ queue_name: str = "agent-default",
62
+ context_json: dict[str, Any] | None = None,
63
+ ) -> None:
64
+ """Register a cron-driven schedule that fires `workflow_alias`.
65
+
66
+ Args:
67
+ schedule_id: Stable identifier for the schedule
68
+ (e.g., "audit-drift-weekly").
69
+ workflow_alias: Alias previously registered via
70
+ `register_workflow_alias` that points to the actual
71
+ `@DBOS.workflow` function.
72
+ cron: Cron expression (5-field standard form, e.g., "0 2 * * MON").
73
+ owner: Workflow-owner package name (e.g., "audit_orchestrator").
74
+ queue_name: Host-defined queue name. Defaults to "agent-default".
75
+ context_json: JSON-serialisable keyword arguments passed to the
76
+ workflow function on each tick. None when no kwargs needed.
77
+
78
+ Idempotent: implementations MUST silently swallow any
79
+ "duplicate schedule" error from the host registry.
80
+ """
81
+ ...
@@ -0,0 +1,62 @@
1
+ """Test isolation for vds_agent_core observability wiring.
2
+
3
+ Phase 3 wiring (TSK-P3-Theta) makes ``AgentTracer.__post_init__`` auto-register
4
+ a :class:`JsonlUsageExporter` whenever ``VDS_LLM_USAGE_JSONL_ENABLED`` is
5
+ unset or truthy. That default is correct for production but would have every
6
+ test that constructs an ``AgentTracer`` start writing to ``~/.vds/cache/``.
7
+
8
+ This conftest:
9
+
10
+ * **Disables** auto-registration globally for the test session by pinning
11
+ ``VDS_LLM_USAGE_JSONL_ENABLED=false`` before any test imports the tracer.
12
+ * **Redirects** the JSONL cache directory to a per-session ``tmp_path`` via
13
+ ``VDS_LLM_USAGE_DIR`` so even tests that explicitly opt-in stay sandboxed.
14
+ * Exposes a ``llm_usage_jsonl_dir`` fixture for tests that want a clean
15
+ per-test directory plus the auto-register flag turned ON.
16
+ """
17
+
18
+ from __future__ import annotations
19
+
20
+ import os
21
+ from pathlib import Path
22
+
23
+ import pytest
24
+
25
+ # Pin the disable flag *before* anything imports vds_agent_core.observability.
26
+ # autouse=True at session scope is the standard way to do this — but that runs
27
+ # AFTER collection, by which time tracer modules may already be imported. The
28
+ # safest belt-and-braces approach is to also touch os.environ at module import
29
+ # time (i.e. now) so the import-time read in `_jsonl_auto_register_enabled`
30
+ # sees the disable.
31
+ os.environ.setdefault("VDS_LLM_USAGE_JSONL_ENABLED", "false")
32
+
33
+
34
+ @pytest.fixture(autouse=True)
35
+ def _isolate_llm_usage_env(
36
+ tmp_path_factory: pytest.TempPathFactory,
37
+ monkeypatch: pytest.MonkeyPatch,
38
+ ) -> None:
39
+ """Force every test into a sandboxed JSONL cache directory.
40
+
41
+ Even if a test forgets to disable the auto-register flag, writes will
42
+ land in a ``tmp_path``-derived directory, never in ``~/.vds/cache/``.
43
+ """
44
+ sandbox = tmp_path_factory.mktemp("vds-llm-usage-sandbox")
45
+ monkeypatch.setenv("VDS_LLM_USAGE_DIR", str(sandbox))
46
+ monkeypatch.setenv("VDS_LLM_USAGE_JSONL_ENABLED", "false")
47
+
48
+
49
+ @pytest.fixture
50
+ def llm_usage_jsonl_dir(
51
+ tmp_path: Path,
52
+ monkeypatch: pytest.MonkeyPatch,
53
+ ) -> Path:
54
+ """Per-test JSONL directory with auto-register turned ON.
55
+
56
+ Returns the directory; tests can construct an ``AgentTracer`` and
57
+ verify a JSONL file appears under it.
58
+ """
59
+ target = tmp_path / "llm-usage"
60
+ monkeypatch.setenv("VDS_LLM_USAGE_DIR", str(target))
61
+ monkeypatch.setenv("VDS_LLM_USAGE_JSONL_ENABLED", "true")
62
+ return target
@@ -0,0 +1,135 @@
1
+ """Cross-orchestrator integration tests for AuditLoopHooks ↔ LoopBehaviorHooks.
2
+
3
+ Phase 9d Contract 2: ``AuditLoopHooks`` from
4
+ ``vds_audit_orchestrator.agents.audit_loop_hooks`` must structurally satisfy
5
+ the ``LoopBehaviorHooks`` Protocol from ``vds_agent_core.agents.hooks``.
6
+ The Protocol is ``@runtime_checkable``, so isinstance() must return True
7
+ and every Protocol method must return audit-specific values when invoked.
8
+
9
+ Skipped gracefully if ``vds_audit_orchestrator`` is not on PYTHONPATH.
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ import pytest
15
+
16
+ pytest.importorskip(
17
+ "vds_audit_orchestrator",
18
+ reason="audit integration tests require vds_audit_orchestrator on PYTHONPATH",
19
+ )
20
+
21
+
22
+ @pytest.fixture
23
+ def audit_hooks():
24
+ """Construct a fresh AuditLoopHooks instance for each test."""
25
+ from vds_audit_orchestrator.agents.audit_loop_hooks import AuditLoopHooks
26
+
27
+ return AuditLoopHooks()
28
+
29
+
30
+ class TestProtocolSatisfaction:
31
+ """AuditLoopHooks must satisfy LoopBehaviorHooks at runtime."""
32
+
33
+ def test_isinstance_passes_for_audit_hooks(self, audit_hooks) -> None:
34
+ """isinstance check against the runtime_checkable Protocol passes."""
35
+ from vds_agent_core.agents.hooks import LoopBehaviorHooks
36
+
37
+ assert isinstance(audit_hooks, LoopBehaviorHooks)
38
+
39
+ def test_audit_hooks_does_not_subclass_noophooks(self, audit_hooks) -> None:
40
+ """AuditLoopHooks is structurally compatible — not a subclass.
41
+
42
+ This is the discipline guard: AuditLoopHooks must remain free of
43
+ inheritance from NoOpHooks so the Protocol contract (and not class
44
+ hierarchy) is what enforces compatibility.
45
+ """
46
+ from vds_agent_core.agents.hooks import NoOpHooks
47
+
48
+ assert not isinstance(audit_hooks, NoOpHooks)
49
+
50
+ def test_all_protocol_methods_are_callable(self, audit_hooks) -> None:
51
+ """Every Protocol method exists on AuditLoopHooks and is callable."""
52
+ protocol_methods = (
53
+ "should_skip_first_step",
54
+ "is_evidence_recording",
55
+ "is_context_query",
56
+ "has_read_activity",
57
+ "count_doc_reads",
58
+ "is_doc_search",
59
+ "lookup_evidence_requirements",
60
+ "get_trace_context",
61
+ "get_trace_span_name",
62
+ "get_service_name",
63
+ )
64
+ for name in protocol_methods:
65
+ method = getattr(audit_hooks, name, None)
66
+ assert method is not None, f"AuditLoopHooks missing {name}"
67
+ assert callable(method), f"AuditLoopHooks.{name} not callable"
68
+
69
+
70
+ class TestAuditSpecificReturnValues:
71
+ """Calling AuditLoopHooks methods returns audit-specific values."""
72
+
73
+ def test_get_service_name_returns_audit_identifier(self, audit_hooks) -> None:
74
+ """AuditLoopHooks must report the audit OTel service.name."""
75
+ assert audit_hooks.get_service_name() == "vds-audit-orchestrator"
76
+
77
+ def test_get_trace_span_name_uses_audit_prefix(self, audit_hooks) -> None:
78
+ """Span name format is ``audit.loop.step{N}.{tool}``."""
79
+ name = audit_hooks.get_trace_span_name(step=3, tool="search_docs")
80
+ assert name == "audit.loop.step3.search_docs"
81
+
82
+ def test_get_trace_context_returns_empty_dict(self, audit_hooks) -> None:
83
+ """AuditLoopHooks delegates audit-context propagation to
84
+ ``audit_otel_span`` in logging_config and returns {} from this hook."""
85
+ ctx = audit_hooks.get_trace_context()
86
+ assert ctx == {}
87
+ assert isinstance(ctx, dict)
88
+
89
+ def test_should_skip_first_step_for_get_row_context(self, audit_hooks) -> None:
90
+ """should_skip_first_step returns True for GET_ROW_CONTEXT tool."""
91
+ from vds_audit_orchestrator.agents.tool_registry import ToolName
92
+
93
+ assert audit_hooks.should_skip_first_step(tool=ToolName.GET_ROW_CONTEXT, context={}) is True
94
+
95
+ def test_is_evidence_recording_for_record_evidence_refs(self, audit_hooks) -> None:
96
+ """is_evidence_recording returns True for RECORD_EVIDENCE_REFS."""
97
+ from vds_audit_orchestrator.agents.tool_registry import ToolName
98
+
99
+ assert audit_hooks.is_evidence_recording(ToolName.RECORD_EVIDENCE_REFS) is True
100
+ # And False for an arbitrary other tool name.
101
+ assert audit_hooks.is_evidence_recording("not_a_tool") is False
102
+
103
+ def test_lookup_evidence_requirements_returns_dict(self, audit_hooks) -> None:
104
+ """lookup_evidence_requirements always returns a dict (never None)."""
105
+ result = audit_hooks.lookup_evidence_requirements({})
106
+ assert isinstance(result, dict)
107
+ # Defaults must include is_default flag per Protocol contract.
108
+ if result:
109
+ assert "is_default" in result
110
+
111
+
112
+ class TestProtocolSubstitutability:
113
+ """AuditLoopHooks can be used wherever LoopBehaviorHooks is expected."""
114
+
115
+ def test_audit_hooks_substitute_for_protocol_consumer(self, audit_hooks) -> None:
116
+ """A function annotated with LoopBehaviorHooks accepts AuditLoopHooks."""
117
+ from vds_agent_core.agents.hooks import LoopBehaviorHooks
118
+
119
+ def consumer(hooks: LoopBehaviorHooks) -> str:
120
+ # Exercise multiple Protocol methods to prove duck-typing works.
121
+ assert isinstance(hooks, LoopBehaviorHooks)
122
+ return hooks.get_service_name()
123
+
124
+ result = consumer(audit_hooks)
125
+ assert result == "vds-audit-orchestrator"
126
+
127
+ def test_noop_and_audit_hooks_both_satisfy_protocol(self, audit_hooks) -> None:
128
+ """Both built-in NoOpHooks and AuditLoopHooks satisfy the Protocol."""
129
+ from vds_agent_core.agents.hooks import LoopBehaviorHooks, NoOpHooks
130
+
131
+ noop = NoOpHooks()
132
+ assert isinstance(noop, LoopBehaviorHooks)
133
+ assert isinstance(audit_hooks, LoopBehaviorHooks)
134
+ # Distinct service names verify they are genuinely different impls.
135
+ assert noop.get_service_name() != audit_hooks.get_service_name()
@@ -0,0 +1,246 @@
1
+ """Cross-orchestrator integration tests for the audit ↔ vds_agent_core
2
+ observability contract (Phase 9d).
3
+
4
+ These tests assert that ``audit_orchestrator.logging_config.audit_otel_span``
5
+ and ``audit_orchestrator.cli_impl.init_tracing`` correctly delegate to
6
+ ``vds_agent_core.observability.AgentTracer`` and that audit-specific
7
+ contextvars (audit_id / repo / check_id / agent / phase / task_id)
8
+ surface as span attributes.
9
+
10
+ Skipped gracefully when ``vds_audit_orchestrator`` is not installed in the
11
+ current pytest workspace — these are integration tests, not unit tests.
12
+ """
13
+
14
+ from __future__ import annotations
15
+
16
+ import pytest
17
+
18
+ # Skip the entire module if audit orchestrator is not importable in the
19
+ # current pytest scope (e.g., when running this package in isolation).
20
+ pytest.importorskip(
21
+ "vds_audit_orchestrator",
22
+ reason="audit integration tests require vds_audit_orchestrator on PYTHONPATH",
23
+ )
24
+
25
+
26
+ @pytest.fixture(autouse=True)
27
+ def _reset_audit_context() -> None:
28
+ """Ensure each test starts with a clean audit contextvar state."""
29
+ from vds_audit_orchestrator.logging_config import clear_audit_context
30
+
31
+ clear_audit_context()
32
+ yield
33
+ clear_audit_context()
34
+
35
+
36
+ class TestAuditOtelSpanContract:
37
+ """audit_otel_span must merge audit contextvars into span attributes."""
38
+
39
+ def test_audit_otel_span_yields_span_when_otel_available(self) -> None:
40
+ """When OpenTelemetry is installed, audit_otel_span yields a real Span object."""
41
+ from vds_audit_orchestrator.logging_config import audit_otel_span
42
+
43
+ with audit_otel_span("test.span", attributes={"k": "v"}) as span:
44
+ # Either a real Span (OTel installed) or None (no-op fallback).
45
+ # In our workspace OTel is available; assert we got an object.
46
+ assert span is None or hasattr(span, "set_attribute")
47
+
48
+ def test_audit_contextvars_propagate_to_span_attributes(self) -> None:
49
+ """audit_id / repo / check_id contextvars must appear on the span."""
50
+ from vds_audit_orchestrator.logging_config import (
51
+ audit_otel_span,
52
+ set_audit_context,
53
+ )
54
+
55
+ set_audit_context(audit_id="aud-42", repo="vds-scripts", check_id="C.1")
56
+
57
+ with audit_otel_span("audit.test.span", attributes={"extra": "marker"}) as span:
58
+ if span is None:
59
+ pytest.skip("OpenTelemetry not installed in this environment")
60
+ attrs = dict(span.attributes) if hasattr(span, "attributes") else {}
61
+ assert attrs.get("audit_id") == "aud-42"
62
+ assert attrs.get("repo") == "vds-scripts"
63
+ assert attrs.get("check_id") == "C.1"
64
+ assert attrs.get("extra") == "marker"
65
+
66
+ def test_extra_attributes_override_audit_contextvars(self) -> None:
67
+ """Extra dict overrides matching contextvar keys."""
68
+ from vds_audit_orchestrator.logging_config import (
69
+ audit_otel_span,
70
+ set_audit_context,
71
+ )
72
+
73
+ set_audit_context(audit_id="aud-A", repo="repo-A")
74
+
75
+ with audit_otel_span(
76
+ "audit.override.span",
77
+ attributes={"audit_id": "aud-OVERRIDE", "x": "y"},
78
+ ) as span:
79
+ if span is None:
80
+ pytest.skip("OpenTelemetry not installed in this environment")
81
+ attrs = dict(span.attributes) if hasattr(span, "attributes") else {}
82
+ # Spec: ``audit_trace_attrs`` overlays ``extra`` last → extra wins.
83
+ assert attrs.get("audit_id") == "aud-OVERRIDE"
84
+ assert attrs.get("repo") == "repo-A"
85
+ assert attrs.get("x") == "y"
86
+
87
+ def test_audit_otel_span_without_contextvars_still_works(self) -> None:
88
+ """audit_otel_span must never raise when no contextvars are set."""
89
+ from vds_audit_orchestrator.logging_config import audit_otel_span
90
+
91
+ # No set_audit_context — all contextvars are None.
92
+ with audit_otel_span("audit.bare.span") as span:
93
+ if span is None:
94
+ return # OTel not installed → no-op contract honored
95
+ attrs = dict(span.attributes) if hasattr(span, "attributes") else {}
96
+ # None-valued contextvars must NOT bleed into attributes.
97
+ assert "audit_id" not in attrs
98
+ assert "repo" not in attrs
99
+
100
+ def test_audit_otel_span_partial_contextvars(self) -> None:
101
+ """Only set contextvars surface; unset ones must not appear at all."""
102
+ from vds_audit_orchestrator.logging_config import (
103
+ audit_otel_span,
104
+ set_audit_context,
105
+ )
106
+
107
+ set_audit_context(audit_id="only-this", phase="phase-9d")
108
+
109
+ with audit_otel_span("audit.partial.span") as span:
110
+ if span is None:
111
+ pytest.skip("OpenTelemetry not installed in this environment")
112
+ attrs = dict(span.attributes) if hasattr(span, "attributes") else {}
113
+ assert attrs.get("audit_id") == "only-this"
114
+ assert attrs.get("phase") == "phase-9d"
115
+ # Unset contextvars must not pollute the attribute dict.
116
+ assert "repo" not in attrs
117
+ assert "check_id" not in attrs
118
+ assert "task_id" not in attrs
119
+
120
+ def test_audit_trace_attrs_pure_data_helper(self) -> None:
121
+ """audit_trace_attrs returns merged dict without touching tracer."""
122
+ from vds_audit_orchestrator.logging_config import (
123
+ audit_trace_attrs,
124
+ set_audit_context,
125
+ )
126
+
127
+ set_audit_context(
128
+ audit_id="A1",
129
+ repo="R1",
130
+ check_id="C1",
131
+ agent="alpha",
132
+ phase="p7",
133
+ task_id="t9",
134
+ )
135
+
136
+ merged = audit_trace_attrs({"extra": "added"})
137
+ assert merged["audit_id"] == "A1"
138
+ assert merged["repo"] == "R1"
139
+ assert merged["check_id"] == "C1"
140
+ assert merged["agent"] == "alpha"
141
+ assert merged["phase"] == "p7"
142
+ assert merged["task_id"] == "t9"
143
+ assert merged["extra"] == "added"
144
+
145
+
146
+ class TestInitTracingContract:
147
+ """audit_orchestrator.cli_impl.init_tracing → AgentTracer construction."""
148
+
149
+ def test_init_tracing_disabled_is_noop(self) -> None:
150
+ """init_tracing(enabled=False) must return without instantiating OTel."""
151
+ from vds_audit_orchestrator.cli_impl import init_tracing
152
+
153
+ # Should not raise, should not log, should not set up any provider.
154
+ result = init_tracing(enabled=False)
155
+ assert result is None
156
+
157
+ def test_init_tracing_constructs_agent_tracer_with_audit_service_name(self) -> None:
158
+ """init_tracing constructs AgentTracer with the audit service_name."""
159
+ from unittest.mock import MagicMock, patch
160
+
161
+ from vds_audit_orchestrator.cli_impl import init_tracing
162
+
163
+ with patch("vds_agent_core.observability.AgentTracer") as MockAgentTracer:
164
+ mock_instance = MagicMock()
165
+ mock_instance.is_enabled = False # short-circuit OTLP wiring
166
+ MockAgentTracer.return_value = mock_instance
167
+
168
+ init_tracing(service_name="vds-audit-orchestrator", enabled=True)
169
+
170
+ MockAgentTracer.assert_called_once_with(
171
+ service_name="vds-audit-orchestrator",
172
+ enabled=True,
173
+ )
174
+
175
+ def test_init_tracing_uses_default_audit_service_name(self) -> None:
176
+ """The default service_name is the audit-specific identifier."""
177
+ from unittest.mock import MagicMock, patch
178
+
179
+ from vds_audit_orchestrator.cli_impl import init_tracing
180
+
181
+ with patch("vds_agent_core.observability.AgentTracer") as MockAgentTracer:
182
+ mock_instance = MagicMock()
183
+ mock_instance.is_enabled = False
184
+ MockAgentTracer.return_value = mock_instance
185
+
186
+ init_tracing(enabled=True)
187
+
188
+ _, kwargs = MockAgentTracer.call_args
189
+ assert kwargs.get("service_name") == "vds-audit-orchestrator"
190
+
191
+ def test_init_tracing_skips_otlp_when_no_endpoint(self) -> None:
192
+ """No OTLP exporter is wired when endpoint=None."""
193
+ from unittest.mock import MagicMock, patch
194
+
195
+ from vds_audit_orchestrator.cli_impl import init_tracing
196
+
197
+ with patch("vds_agent_core.observability.AgentTracer") as MockAgentTracer:
198
+ mock_instance = MagicMock()
199
+ mock_instance.is_enabled = True
200
+ MockAgentTracer.return_value = mock_instance
201
+
202
+ # No endpoint → must not import OTLP exporter modules.
203
+ init_tracing(endpoint=None, enabled=True)
204
+
205
+ # The tracer is constructed but no add_span_processor call should
206
+ # have happened on the mock (we never reach OTLP block).
207
+ mock_instance.add_span_processor.assert_not_called()
208
+
209
+
210
+ class TestSpanCorrelationContract:
211
+ """End-to-end: audit_otel_span uses the same singleton AgentTracer."""
212
+
213
+ def test_singleton_tracer_reused_across_spans(self) -> None:
214
+ """The first span lazily creates the audit AgentTracer, subsequent
215
+ calls reuse it (the module-level singleton)."""
216
+ from vds_audit_orchestrator import logging_config
217
+ from vds_audit_orchestrator.logging_config import audit_otel_span
218
+
219
+ # Reset singleton before this test (keeps it independent of order).
220
+ logging_config._AUDIT_TRACER = None
221
+
222
+ with audit_otel_span("first.span"):
223
+ pass
224
+
225
+ first = logging_config._AUDIT_TRACER
226
+ assert first is not None
227
+
228
+ with audit_otel_span("second.span"):
229
+ pass
230
+
231
+ # Same tracer instance → no per-call provider re-init.
232
+ assert logging_config._AUDIT_TRACER is first
233
+
234
+ def test_audit_tracer_service_name_is_audit_specific(self) -> None:
235
+ """The lazy singleton tracer is constructed with the audit service name."""
236
+ from vds_audit_orchestrator import logging_config
237
+ from vds_audit_orchestrator.logging_config import audit_otel_span
238
+
239
+ logging_config._AUDIT_TRACER = None
240
+
241
+ with audit_otel_span("svc-name-check"):
242
+ pass
243
+
244
+ tracer = logging_config._AUDIT_TRACER
245
+ assert tracer is not None
246
+ assert tracer.service_name == "vds-audit-orchestrator"
@@ -0,0 +1,91 @@
1
+ """Public API stability tests for vds_agent_core (Phase 10 Contract update).
2
+
3
+ These tests pin the public surface that other orchestrators (most notably
4
+ ``vds_audit_orchestrator``) depend on. Any backwards-incompatible change to
5
+ these contracts must explicitly update this file — the failing test makes
6
+ the breakage visible at the call site that ships first.
7
+
8
+ Contracts pinned:
9
+
10
+ 1. ``AgentTracer.open_span(name, attributes)`` is callable and yields a
11
+ ``Span | None`` (concrete object when OTel is available, None otherwise).
12
+
13
+ This file is integration-tier (it touches the public boundary across
14
+ multiple subpackages) but does NOT depend on ``vds_audit_orchestrator``.
15
+ """
16
+
17
+ from __future__ import annotations
18
+
19
+ import inspect
20
+
21
+ # ---------------------------------------------------------------------------
22
+ # Contract 3.1 — AgentTracer.open_span signature & return type
23
+ # ---------------------------------------------------------------------------
24
+
25
+
26
+ class TestAgentTracerOpenSpanContract:
27
+ """AgentTracer.open_span must remain backwards-compatible."""
28
+
29
+ def test_open_span_signature_accepts_name_and_attributes(self) -> None:
30
+ from vds_agent_core.observability import AgentTracer
31
+
32
+ sig = inspect.signature(AgentTracer.open_span)
33
+ params = list(sig.parameters.values())
34
+ # self, name, attributes
35
+ assert len(params) >= 3
36
+ assert params[1].name == "name"
37
+ assert params[2].name == "attributes"
38
+
39
+ def test_open_span_attributes_is_optional(self) -> None:
40
+ """``attributes`` must default to None so callers can omit it."""
41
+ from vds_agent_core.observability import AgentTracer
42
+
43
+ sig = inspect.signature(AgentTracer.open_span)
44
+ attrs_param = sig.parameters["attributes"]
45
+ assert attrs_param.default is None
46
+
47
+ def test_open_span_yields_span_or_none(self) -> None:
48
+ """Context manager yields either a Span-like object or None."""
49
+ from vds_agent_core.observability import AgentTracer
50
+
51
+ tracer = AgentTracer(service_name="api-stability", enabled=True)
52
+ with tracer.open_span("api.test", attributes={"k": "v"}) as span:
53
+ assert span is None or hasattr(span, "set_attribute")
54
+
55
+ def test_open_span_yields_none_when_disabled(self) -> None:
56
+ """Disabled tracer yields None — call site can branch on truthiness."""
57
+ from vds_agent_core.observability import AgentTracer
58
+
59
+ tracer = AgentTracer(service_name="api-stability", enabled=False)
60
+ with tracer.open_span("disabled.test") as span:
61
+ assert span is None
62
+
63
+ def test_open_span_handles_no_attributes(self) -> None:
64
+ """open_span(name) without attributes is the expected minimum call."""
65
+ from vds_agent_core.observability import AgentTracer
66
+
67
+ tracer = AgentTracer(service_name="api-stability", enabled=True)
68
+ with tracer.open_span("minimal") as span:
69
+ assert span is None or hasattr(span, "set_attribute")
70
+
71
+
72
+ # ---------------------------------------------------------------------------
73
+ # Public API surface — module-level exports must remain stable
74
+ # ---------------------------------------------------------------------------
75
+
76
+
77
+ class TestPublicApiSurface:
78
+ """Re-exports from package __init__ files form the documented contract."""
79
+
80
+ def test_observability_public_exports(self) -> None:
81
+ import vds_agent_core.observability as obs
82
+
83
+ assert "AgentTracer" in obs.__all__
84
+ assert hasattr(obs, "AgentTracer")
85
+
86
+ def test_agents_public_exports(self) -> None:
87
+ import vds_agent_core.agents as ag
88
+
89
+ for name in ("LoopBehaviorHooks", "NoOpHooks"):
90
+ assert name in ag.__all__, f"{name} missing from agents.__all__"
91
+ assert hasattr(ag, name), f"{name} not exported from agents"
@@ -0,0 +1,30 @@
1
+ """Verify EmbeddingClient mirrors LLMClient call-site shape (NFR-225.6)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pydantic_settings import BaseSettings
6
+ from vds_agent_core.llm.embedding import EmbeddingClient, EmbeddingSettings
7
+ from vds_agent_core.llm.provider import LLMClient, LLMSettings
8
+
9
+
10
+ def test_protocol_methods_parallel() -> None:
11
+ """LLMClient and EmbeddingClient share the same call-site shape."""
12
+ assert hasattr(LLMClient, "chat")
13
+ assert hasattr(EmbeddingClient, "embed")
14
+ assert hasattr(EmbeddingClient, "embed_batch")
15
+ assert hasattr(EmbeddingClient, "estimate_cost")
16
+ assert hasattr(EmbeddingClient, "aclose")
17
+
18
+
19
+ def test_settings_subclass_basesettings() -> None:
20
+ """Both Settings classes inherit BaseSettings (env-var driven)."""
21
+ assert issubclass(LLMSettings, BaseSettings)
22
+ assert issubclass(EmbeddingSettings, BaseSettings)
23
+
24
+
25
+ def test_settings_have_factory_and_select_model() -> None:
26
+ """Both expose `build_client()` + `select_model()` for parity."""
27
+ assert hasattr(LLMSettings, "build_client")
28
+ assert hasattr(LLMSettings, "select_model")
29
+ assert hasattr(EmbeddingSettings, "build_client")
30
+ assert hasattr(EmbeddingSettings, "select_model")