@ngocsangairvds/vsaf 3.1.27 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/package.json +2 -2
  2. package/src/global.js +70 -10
  3. package/tools/skills/vds-scripts-skill/.openskills.json +6 -0
  4. package/tools/skills/vds-scripts-skill/QUALITY.md +44 -0
  5. package/tools/skills/vds-scripts-skill/SKILL.md +135 -0
  6. package/tools/skills/vds-scripts-skill/references/audit-commands.md +171 -0
  7. package/tools/skills/vds-scripts-skill/references/capability-index.md +34 -0
  8. package/tools/skills/vds-scripts-skill/references/development-commands.md +12 -0
  9. package/tools/skills/vds-scripts-skill/references/google-sheets.md +73 -0
  10. package/tools/skills/vds-scripts-skill/references/integration-commands.md +17 -0
  11. package/tools/skills/vds-scripts-skill/references/platform-bootstrap.md +31 -0
  12. package/tools/skills/vds-scripts-skill/references/specialist-routing.md +14 -0
  13. package/tools/skills/vds-scripts-skill/references/validation-commands.md +15 -0
  14. package/tools/skills/vsaf-build/SKILL.md +32 -2
  15. package/tools/skills/vsaf-ship/SKILL.md +41 -10
  16. package/tools/skills/vsaf-test/SKILL.md +8 -0
  17. package/tools/vds-scripts/.mcp.json +11 -0
  18. package/tools/vds-scripts/.secrets.baseline +133 -0
  19. package/tools/vds-scripts/AGENTS.md +152 -0
  20. package/tools/vds-scripts/CLAUDE.md +101 -0
  21. package/tools/vds-scripts/CLI_COMMAND_OPTIMIZATION.md +156 -0
  22. package/tools/vds-scripts/PACKAGE_P125B_IMPLEMENTATION_SUMMARY.md +131 -0
  23. package/tools/vds-scripts/PROJECT_COMPLETION_SUMMARY.md +45 -0
  24. package/tools/vds-scripts/README.md +97 -0
  25. package/tools/vds-scripts/bitbucket_manifest_mapping.toml +34 -0
  26. package/tools/vds-scripts/bitbucket_orchestrator/ARCHITECTURE_ANALYSIS.md +258 -0
  27. package/tools/vds-scripts/bitbucket_orchestrator/BITBUCKET_API_PRACTICES.md +393 -0
  28. package/tools/vds-scripts/bitbucket_orchestrator/EVALUATION_REPORT.md +61 -0
  29. package/tools/vds-scripts/bitbucket_orchestrator/FEATURES.md +908 -0
  30. package/tools/vds-scripts/bitbucket_orchestrator/README.md +687 -0
  31. package/tools/vds-scripts/bitbucket_orchestrator/pyproject.toml +40 -0
  32. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/__init__.py +20 -0
  33. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/async_client.py +657 -0
  34. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/cli.py +2108 -0
  35. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/client.py +2534 -0
  36. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/config.py +171 -0
  37. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/errors.py +67 -0
  38. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/factory.py +185 -0
  39. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/protocols.py +244 -0
  40. package/tools/vds-scripts/bitbucket_orchestrator/tests/__init__.py +8 -0
  41. package/tools/vds-scripts/bitbucket_orchestrator/tests/conftest.py +65 -0
  42. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_advanced_search.py +151 -0
  43. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_async_client.py +546 -0
  44. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_branch_permissions.py +145 -0
  45. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_cli.py +115 -0
  46. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client.py +157 -0
  47. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_branch_conditions.py +79 -0
  48. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_code_advanced.py +163 -0
  49. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_code_file.py +32 -0
  50. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_deployment_environments.py +194 -0
  51. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_issues.py +164 -0
  52. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_pipelines_advanced.py +179 -0
  53. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_pr_blockers.py +119 -0
  54. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_repository_variables.py +156 -0
  55. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code.py +98 -0
  56. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code_advanced.py +282 -0
  57. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code_insights.py +335 -0
  58. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_conditions.py +147 -0
  59. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_config.py +131 -0
  60. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_deployment_env.py +352 -0
  61. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_factory.py +371 -0
  62. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_fork_operations.py +204 -0
  63. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_issue_cli.py +261 -0
  64. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_pipeline_advanced.py +270 -0
  65. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_pr_blocker.py +204 -0
  66. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_protocols.py +334 -0
  67. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_settings.py +343 -0
  68. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_variables.py +270 -0
  69. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_webhooks.py +189 -0
  70. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_workspace.py +233 -0
  71. package/tools/vds-scripts/bitbucket_orchestrator/uv.lock +742 -0
  72. package/tools/vds-scripts/confluence_orchestrator/Dockerfile +19 -0
  73. package/tools/vds-scripts/confluence_orchestrator/README.md +412 -0
  74. package/tools/vds-scripts/confluence_orchestrator/SYNC_SCRIPTS.md +127 -0
  75. package/tools/vds-scripts/confluence_orchestrator/SYNC_STANDARDIZATION.md +108 -0
  76. package/tools/vds-scripts/confluence_orchestrator/pyproject.toml +48 -0
  77. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/__init__.py +20 -0
  78. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/cli.py +2532 -0
  79. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/config.py +175 -0
  80. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content.py +290 -0
  81. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content_v2.py +94 -0
  82. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/crawl_tree.py +1835 -0
  83. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/errors.py +80 -0
  84. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/eventing.py +109 -0
  85. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/http.py +1114 -0
  86. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/orchestration.py +165 -0
  87. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/reporting.py +78 -0
  88. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/tree.py +121 -0
  89. package/tools/vds-scripts/confluence_orchestrator/sync_pdfs_from_markdown.py +213 -0
  90. package/tools/vds-scripts/confluence_orchestrator/sync_pdfs_to_confluence.py +305 -0
  91. package/tools/vds-scripts/confluence_orchestrator/sync_png_attachments.py +305 -0
  92. package/tools/vds-scripts/confluence_orchestrator/tests/__init__.py +0 -0
  93. package/tools/vds-scripts/confluence_orchestrator/tests/conftest.py +8 -0
  94. package/tools/vds-scripts/confluence_orchestrator/tests/test_advanced_content.py +224 -0
  95. package/tools/vds-scripts/confluence_orchestrator/tests/test_advanced_search.py +188 -0
  96. package/tools/vds-scripts/confluence_orchestrator/tests/test_cache_management.py +247 -0
  97. package/tools/vds-scripts/confluence_orchestrator/tests/test_cli.py +499 -0
  98. package/tools/vds-scripts/confluence_orchestrator/tests/test_config.py +83 -0
  99. package/tools/vds-scripts/confluence_orchestrator/tests/test_content.py +186 -0
  100. package/tools/vds-scripts/confluence_orchestrator/tests/test_content_flags.py +27 -0
  101. package/tools/vds-scripts/confluence_orchestrator/tests/test_crawl_tree.py +2250 -0
  102. package/tools/vds-scripts/confluence_orchestrator/tests/test_draft_management.py +223 -0
  103. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing.py +71 -0
  104. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_chaos.py +37 -0
  105. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_rate_limit.py +44 -0
  106. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_timeout.py +49 -0
  107. package/tools/vds-scripts/confluence_orchestrator/tests/test_export.py +230 -0
  108. package/tools/vds-scripts/confluence_orchestrator/tests/test_history.py +204 -0
  109. package/tools/vds-scripts/confluence_orchestrator/tests/test_http.py +117 -0
  110. package/tools/vds-scripts/confluence_orchestrator/tests/test_orchestration.py +91 -0
  111. package/tools/vds-scripts/confluence_orchestrator/tests/test_reporting.py +24 -0
  112. package/tools/vds-scripts/confluence_orchestrator/tests/test_search_cql.py +34 -0
  113. package/tools/vds-scripts/confluence_orchestrator/tests/test_space_management.py +237 -0
  114. package/tools/vds-scripts/confluence_orchestrator/tests/test_space_permissions.py +332 -0
  115. package/tools/vds-scripts/confluence_orchestrator/tests/test_user_group_management.py +388 -0
  116. package/tools/vds-scripts/confluence_orchestrator/uv.lock +1023 -0
  117. package/tools/vds-scripts/git_orchestrator/ENHANCEMENT_SUMMARY.md +119 -0
  118. package/tools/vds-scripts/git_orchestrator/README.md +280 -0
  119. package/tools/vds-scripts/git_orchestrator/VERIFICATION_REPORT.md +152 -0
  120. package/tools/vds-scripts/git_orchestrator/pyproject.toml +35 -0
  121. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__init__.py +7 -0
  122. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__main__.py +4 -0
  123. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/cli.py +847 -0
  124. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/logging_config.py +63 -0
  125. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/manifest.py +129 -0
  126. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/orchestrator.py +819 -0
  127. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/reporting.py +53 -0
  128. package/tools/vds-scripts/git_orchestrator/tests/__init__.py +0 -0
  129. package/tools/vds-scripts/git_orchestrator/tests/test_cli_settings.py +21 -0
  130. package/tools/vds-scripts/git_orchestrator/tests/test_integration.py +74 -0
  131. package/tools/vds-scripts/git_orchestrator/tests/test_manifest.py +79 -0
  132. package/tools/vds-scripts/git_orchestrator/tests/test_orchestrator.py +204 -0
  133. package/tools/vds-scripts/git_orchestrator/tests/test_public_api.py +236 -0
  134. package/tools/vds-scripts/git_orchestrator/tests/test_resilience.py +345 -0
  135. package/tools/vds-scripts/git_orchestrator/uv.lock +271 -0
  136. package/tools/vds-scripts/jira_orchestrator/README.md +770 -0
  137. package/tools/vds-scripts/jira_orchestrator/pyproject.toml +39 -0
  138. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/__init__.py +1 -0
  139. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/adapter.py +1320 -0
  140. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/cli.py +2271 -0
  141. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/config.py +138 -0
  142. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/errors.py +67 -0
  143. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/reporting.py +65 -0
  144. package/tools/vds-scripts/jira_orchestrator/tests/__init__.py +1 -0
  145. package/tools/vds-scripts/jira_orchestrator/tests/conftest.py +86 -0
  146. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_agile_list_payloads.py +54 -0
  147. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_bulk_operations.py +69 -0
  148. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_components.py +57 -0
  149. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_createmeta.py +45 -0
  150. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_dashboard.py +117 -0
  151. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_issue_properties.py +54 -0
  152. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_permissions_compat.py +42 -0
  153. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_reindex.py +42 -0
  154. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_remote_links.py +76 -0
  155. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_transitions.py +91 -0
  156. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_user_management.py +110 -0
  157. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_version_management.py +133 -0
  158. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_watchers.py +41 -0
  159. package/tools/vds-scripts/jira_orchestrator/tests/test_advanced_search.py +164 -0
  160. package/tools/vds-scripts/jira_orchestrator/tests/test_agile.py +256 -0
  161. package/tools/vds-scripts/jira_orchestrator/tests/test_application_properties.py +193 -0
  162. package/tools/vds-scripts/jira_orchestrator/tests/test_backlog.py +91 -0
  163. package/tools/vds-scripts/jira_orchestrator/tests/test_bulk_operations.py +277 -0
  164. package/tools/vds-scripts/jira_orchestrator/tests/test_cli.py +106 -0
  165. package/tools/vds-scripts/jira_orchestrator/tests/test_components.py +106 -0
  166. package/tools/vds-scripts/jira_orchestrator/tests/test_config.py +164 -0
  167. package/tools/vds-scripts/jira_orchestrator/tests/test_dashboard.py +122 -0
  168. package/tools/vds-scripts/jira_orchestrator/tests/test_discover_fields.py +207 -0
  169. package/tools/vds-scripts/jira_orchestrator/tests/test_filter_management.py +333 -0
  170. package/tools/vds-scripts/jira_orchestrator/tests/test_issue_archiving.py +164 -0
  171. package/tools/vds-scripts/jira_orchestrator/tests/test_issue_links.py +257 -0
  172. package/tools/vds-scripts/jira_orchestrator/tests/test_issue_properties.py +171 -0
  173. package/tools/vds-scripts/jira_orchestrator/tests/test_link_types.py +314 -0
  174. package/tools/vds-scripts/jira_orchestrator/tests/test_parse_set.py +37 -0
  175. package/tools/vds-scripts/jira_orchestrator/tests/test_permissions.py +273 -0
  176. package/tools/vds-scripts/jira_orchestrator/tests/test_reindex.py +81 -0
  177. package/tools/vds-scripts/jira_orchestrator/tests/test_remote_links.py +254 -0
  178. package/tools/vds-scripts/jira_orchestrator/tests/test_security_schemes.py +170 -0
  179. package/tools/vds-scripts/jira_orchestrator/tests/test_transitions_changelog.py +114 -0
  180. package/tools/vds-scripts/jira_orchestrator/tests/test_user_management.py +226 -0
  181. package/tools/vds-scripts/jira_orchestrator/tests/test_version_management.py +339 -0
  182. package/tools/vds-scripts/jira_orchestrator/tests/test_watchers.py +101 -0
  183. package/tools/vds-scripts/jira_orchestrator/tests/test_worklog.py +223 -0
  184. package/tools/vds-scripts/jira_orchestrator/uv.lock +738 -0
  185. package/tools/vds-scripts/mcp_server/Dockerfile +34 -0
  186. package/tools/vds-scripts/mcp_server/README.md +140 -0
  187. package/tools/vds-scripts/mcp_server/pyproject.toml +42 -0
  188. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/__init__.py +4 -0
  189. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/config.py +36 -0
  190. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/server.py +66 -0
  191. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/__init__.py +14 -0
  192. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/bitbucket_tools.py +47 -0
  193. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/confluence_tools.py +59 -0
  194. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/git_tools.py +71 -0
  195. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/jira_tools.py +63 -0
  196. package/tools/vds-scripts/mcp_server/tests/__init__.py +2 -0
  197. package/tools/vds-scripts/mcp_server/tests/conftest.py +29 -0
  198. package/tools/vds-scripts/mcp_server/tests/unit/__init__.py +2 -0
  199. package/tools/vds-scripts/mcp_server/tests/unit/test_bitbucket_tools.py +25 -0
  200. package/tools/vds-scripts/mcp_server/tests/unit/test_confluence_tools.py +25 -0
  201. package/tools/vds-scripts/mcp_server/tests/unit/test_git_tools.py +32 -0
  202. package/tools/vds-scripts/mcp_server/tests/unit/test_jira_tools.py +32 -0
  203. package/tools/vds-scripts/mcp_server/tests/verification/__init__.py +2 -0
  204. package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_confluence_tools.py +40 -0
  205. package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_jira_tools.py +37 -0
  206. package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_tool_registration.py +47 -0
  207. package/tools/vds-scripts/mcp_server/uv.lock +1032 -0
  208. package/tools/vds-scripts/mypy.ini +5 -0
  209. package/tools/vds-scripts/pyproject.toml +29 -0
  210. package/tools/vds-scripts/repo-manifest.yaml +273 -0
  211. package/tools/vds-scripts/repo-manifest.yaml.example +25 -0
  212. package/tools/vds-scripts/scripts/BRD-Validation-API.postman_collection.json +706 -0
  213. package/tools/vds-scripts/scripts/BRD-Validation-README.md +308 -0
  214. package/tools/vds-scripts/scripts/README.md +162 -0
  215. package/tools/vds-scripts/scripts/bootstrap_uv.sh +30 -0
  216. package/tools/vds-scripts/scripts/brd-validation-environment.json +51 -0
  217. package/tools/vds-scripts/scripts/brd-validation-test-results.json +13023 -0
  218. package/tools/vds-scripts/scripts/brd_coverage_report.json +276 -0
  219. package/tools/vds-scripts/scripts/create_memory_session.py +35 -0
  220. package/tools/vds-scripts/scripts/deployment/load_docker_images_offline.sh +90 -0
  221. package/tools/vds-scripts/scripts/final_completion_report.md +139 -0
  222. package/tools/vds-scripts/scripts/folder_structure_report.json +321 -0
  223. package/tools/vds-scripts/scripts/generate_completion_report.py +125 -0
  224. package/tools/vds-scripts/scripts/generate_intellij_modules.py +150 -0
  225. package/tools/vds-scripts/scripts/link_integrity_report.json +807 -0
  226. package/tools/vds-scripts/scripts/move_audit_artifact_pages.py +255 -0
  227. package/tools/vds-scripts/scripts/move_audit_artifact_pages_rest.py +165 -0
  228. package/tools/vds-scripts/scripts/move_wrong_dept_pages.py +216 -0
  229. package/tools/vds-scripts/scripts/save_intellij_memories.py +120 -0
  230. package/tools/vds-scripts/scripts/save_memories_to_vds_ai.py +83 -0
  231. package/tools/vds-scripts/scripts/save_memories_vds_style.py +129 -0
  232. package/tools/vds-scripts/scripts/search_intellij_memories.py +50 -0
  233. package/tools/vds-scripts/scripts/setup_intellij_workspace.py +65 -0
  234. package/tools/vds-scripts/scripts/target-state-automation/README.md +89 -0
  235. package/tools/vds-scripts/scripts/target-state-automation/confluence_sync_coordinator.sh +27 -0
  236. package/tools/vds-scripts/scripts/target-state-automation/coordination.sh +114 -0
  237. package/tools/vds-scripts/scripts/target-state-automation/diagram_coordinator.sh +25 -0
  238. package/tools/vds-scripts/scripts/target-state-automation/docs_root.sh +22 -0
  239. package/tools/vds-scripts/scripts/target-state-automation/generate_diagrams.sh +22 -0
  240. package/tools/vds-scripts/scripts/target-state-automation/markdown_coordinator.sh +25 -0
  241. package/tools/vds-scripts/scripts/target-state-automation/progress_dashboard.sh +17 -0
  242. package/tools/vds-scripts/scripts/target-state-automation/schema_coordinator.sh +25 -0
  243. package/tools/vds-scripts/scripts/target-state-automation/sync_confluence.sh +30 -0
  244. package/tools/vds-scripts/scripts/target-state-automation/update_dependencies.sh +19 -0
  245. package/tools/vds-scripts/scripts/target-state-automation/validate_links.sh +86 -0
  246. package/tools/vds-scripts/scripts/target-state-automation/validate_markdown.sh +52 -0
  247. package/tools/vds-scripts/scripts/target-state-automation/validate_schemas.sh +26 -0
  248. package/tools/vds-scripts/scripts/target-state-automation/validate_structure.sh +98 -0
  249. package/tools/vds-scripts/scripts/update_modules_xml.py +190 -0
  250. package/tools/vds-scripts/scripts/uv-workspace-alignment-verification-2026-03-25.md +128 -0
  251. package/tools/vds-scripts/scripts/validate_brd_coverage.py +179 -0
  252. package/tools/vds-scripts/scripts/validate_folder_structure.py +240 -0
  253. package/tools/vds-scripts/scripts/validate_link_integrity.py +272 -0
  254. package/tools/vds-scripts/scripts/vds_sh_helpers.sh +180 -0
  255. package/tools/vds-scripts/scripts/verification/phase2_portable_paths_ubuntu_docker.sh +26 -0
  256. package/tools/vds-scripts/scripts/worktree_uv.sh +48 -0
  257. package/tools/vds-scripts/uv.lock +8 -0
  258. package/tools/vds-scripts/vds_cli/README.md +126 -0
  259. package/tools/vds-scripts/vds_cli/VERIFICATION_REPORT.md +41 -0
  260. package/tools/vds-scripts/vds_cli/pyproject.toml +38 -0
  261. package/tools/vds-scripts/vds_cli/src/vds_cli/__init__.py +3 -0
  262. package/tools/vds-scripts/vds_cli/src/vds_cli/cli.py +173 -0
  263. package/tools/vds-scripts/vds_cli/src/vds_cli/docs_sync.py +1203 -0
  264. package/tools/vds-scripts/vds_cli/src/vds_cli/env.py +41 -0
  265. package/tools/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/__init__.py +3 -0
  266. package/tools/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/google_sheets_orchestrator.py +198 -0
  267. package/tools/vds-scripts/vds_cli/src/vds_cli/router.py +93 -0
  268. package/tools/vds-scripts/vds_cli/src/vds_cli/sync_api.py +647 -0
  269. package/tools/vds-scripts/vds_cli/src/vds_cli/sync_service.py +266 -0
  270. package/tools/vds-scripts/vds_cli/tests/__init__.py +2 -0
  271. package/tools/vds-scripts/vds_cli/tests/conftest.py +49 -0
  272. package/tools/vds-scripts/vds_cli/tests/unit/__init__.py +2 -0
  273. package/tools/vds-scripts/vds_cli/tests/unit/test_cli.py +143 -0
  274. package/tools/vds-scripts/vds_cli/tests/unit/test_docs_sync.py +422 -0
  275. package/tools/vds-scripts/vds_cli/tests/unit/test_env.py +51 -0
  276. package/tools/vds-scripts/vds_cli/tests/unit/test_router.py +72 -0
  277. package/tools/vds-scripts/vds_cli/tests/unit/test_sync_api.py +357 -0
  278. package/tools/vds-scripts/vds_cli/tests/unit/test_sync_service.py +160 -0
  279. package/tools/vds-scripts/vds_cli/tests/verification/__init__.py +2 -0
  280. package/tools/vds-scripts/vds_cli/tests/verification/test_bitbucket_real.py +33 -0
  281. package/tools/vds-scripts/vds_cli/tests/verification/test_confluence_real.py +35 -0
  282. package/tools/vds-scripts/vds_cli/tests/verification/test_jira_real.py +41 -0
  283. package/tools/vds-scripts/vds_cli/uv.lock +524 -0
  284. package/tools/vds-scripts/vds_cli_common/README.md +190 -0
  285. package/tools/vds-scripts/vds_cli_common/pyproject.toml +92 -0
  286. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/__init__.py +34 -0
  287. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/completers.py +139 -0
  288. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/context.py +201 -0
  289. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/env.py +119 -0
  290. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/errors.py +318 -0
  291. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/output.py +284 -0
  292. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/paths.py +78 -0
  293. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/testing.py +213 -0
  294. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/version.py +85 -0
  295. package/tools/vds-scripts/vds_cli_common/tests/__init__.py +1 -0
  296. package/tools/vds-scripts/vds_cli_common/tests/test_completers.py +148 -0
  297. package/tools/vds-scripts/vds_cli_common/tests/test_context.py +192 -0
  298. package/tools/vds-scripts/vds_cli_common/tests/test_env.py +102 -0
  299. package/tools/vds-scripts/vds_cli_common/tests/test_errors.py +186 -0
  300. package/tools/vds-scripts/vds_cli_common/tests/test_output.py +229 -0
  301. package/tools/vds-scripts/vds_cli_common/tests/test_paths.py +61 -0
  302. package/tools/vds-scripts/vds_cli_common/tests/test_testing.py +138 -0
  303. package/tools/vds-scripts/vds_cli_common/tests/test_version.py +64 -0
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # Phase 2 portable path/config verification on Ubuntu via Docker Compose.
5
+ # This validates the shared helper layer in a real Linux userspace while keeping
6
+ # the checked-out worktree mounted from the host.
7
+ #
8
+ # What this script proves:
9
+ # - explicit VDS env overrides work in Linux containers
10
+ # - platformdirs-backed helper defaults remain importable in Linux
11
+ # - focused Phase 2 tests pass under an Ubuntu image with uv installed
12
+ #
13
+ # What this script does NOT prove:
14
+ # - native Windows execution
15
+ # - Windows container behavior
16
+ # - any host-specific Docker Desktop path quirks beyond this mounted workspace
17
+
18
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
19
+ WORKTREE_ROOT="$(cd "$SCRIPT_DIR/.."/.. && pwd)"
20
+ COMPOSE_FILE="$WORKTREE_ROOT/docker/compose.phase2-verification.yml"
21
+
22
+ mkdir -p "$WORKTREE_ROOT/.phase2-linux/config" "$WORKTREE_ROOT/.phase2-linux/cache" "$WORKTREE_ROOT/.phase2-linux/logs"
23
+
24
+ docker compose -f "$COMPOSE_FILE" run --rm phase2-ubuntu-verifier
25
+
26
+ echo "Phase 2 Ubuntu/Docker Compose verification completed successfully."
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env bash
2
+ # Run uv in the current worktree without inheriting a mismatched active virtualenv.
3
+ # Usage: scripts/worktree_uv.sh <uv args...>
4
+
5
+ set -euo pipefail
6
+
7
+ ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
8
+ WORKTREE_VENV="${ROOT}/.venv"
9
+ site_packages="$(echo "$WORKTREE_VENV"/lib/python*/site-packages)"
10
+
11
+ # uv project commands manage their own environment by default.
12
+ # If a parent checkout exported VIRTUAL_ENV from a different repo/worktree,
13
+ # uv will warn and ignore it. Clear inherited active-environment state so
14
+ # worktree commands are quiet and deterministic.
15
+ if [[ -n "${VIRTUAL_ENV:-}" && "${VIRTUAL_ENV}" != "${WORKTREE_VENV}" ]]; then
16
+ unset VIRTUAL_ENV
17
+ fi
18
+
19
+ # Prevent a parent shell from forcing a different project environment.
20
+ unset UV_PROJECT_ENVIRONMENT
21
+ unset CONDA_PREFIX
22
+
23
+ # Worktree venvs in this repo rely on editable _vds_*.pth files. Rebuild
24
+ # PYTHONPATH from those stubs so uv-launched entrypoints resolve workspace
25
+ # packages consistently even when Python skips underscore-prefixed .pth files.
26
+ if [[ -d "$site_packages" ]]; then
27
+ pythonpath_entries=()
28
+ while IFS= read -r -d '' pth_file; do
29
+ while IFS= read -r line || [[ -n "$line" ]]; do
30
+ [[ -z "$line" ]] && continue
31
+ pythonpath_entries+=("$line")
32
+ done < "$pth_file"
33
+ done < <(find "$site_packages" -maxdepth 1 -type f -name '_vds_*.pth' -print0 | sort -z)
34
+
35
+ if [[ ${#pythonpath_entries[@]} -gt 0 ]]; then
36
+ joined_pythonpath=""
37
+ for entry in "${pythonpath_entries[@]}"; do
38
+ if [[ -z "$joined_pythonpath" ]]; then
39
+ joined_pythonpath="$entry"
40
+ else
41
+ joined_pythonpath="$joined_pythonpath:$entry"
42
+ fi
43
+ done
44
+ export PYTHONPATH="$joined_pythonpath${PYTHONPATH:+:$PYTHONPATH}"
45
+ fi
46
+ fi
47
+
48
+ exec uv "$@"
@@ -0,0 +1,8 @@
1
+ version = 1
2
+ revision = 3
3
+ requires-python = ">=3.11"
4
+
5
+ [[package]]
6
+ name = "vds-scripts-monorepo"
7
+ version = "0.0.0"
8
+ source = { virtual = "." }
@@ -0,0 +1,126 @@
1
+ # VDS CLI - Cross-Platform Python CLI
2
+
3
+ Cross-platform Python CLI wrapper for VDS Platform operations.
4
+
5
+ ## Installation (uv-native)
6
+
7
+ ```bash
8
+ cd vds-scripts
9
+ # Optional: prime every project environment (add --frozen or other uv sync flags as needed)
10
+ ./scripts/bootstrap_uv.sh --frozen
11
+
12
+ # Or just sync this package when needed
13
+ uv sync --project vds_cli
14
+ ```
15
+
16
+ > Per the official uv project documentation, `uv run` automatically creates or updates the local `.venv` for the
17
+ > requested project when it executes, so no manual `uv pip install -e` is required. Use `uv sync --project vds_cli` (or
18
+ > the bootstrap script) only when you want to pre-build the environment ahead of time. (Source:
19
+ > [uv docs – The project environment](https://github.com/astral-sh/uv/blob/main/docs/concepts/projects/layout.md#the-project-environment))
20
+
21
+ ## Usage
22
+
23
+ ### Environment Management
24
+
25
+ ```bash
26
+ # Load environment (loads from ~/.vds/.env)
27
+ uv run --project vds_cli vds-cli env load
28
+
29
+ # Check environment status
30
+ uv run --project vds_cli vds-cli env status
31
+
32
+ # Check system status (orchestrators + environment)
33
+ uv run --project vds_cli vds-cli status
34
+ ```
35
+
36
+ ### Using Orchestrators
37
+
38
+ ```bash
39
+ # JIRA operations
40
+ uv run --project vds_cli vds-cli jira search "project = NTTC" --limit 20
41
+ uv run --project vds_cli vds-cli jira issue NTTC-123
42
+
43
+ # Confluence operations
44
+ uv run --project vds_cli vds-cli confluence content search "space = TDOV"
45
+ uv run --project vds_cli vds-cli confluence content page 99647801
46
+
47
+ # Bitbucket operations
48
+ uv run --project vds_cli vds-cli bitbucket projects
49
+ uv run --project vds_cli vds-cli bitbucket repositories
50
+
51
+ # Git operations
52
+ uv run --project vds_cli vds-cli git clone lep
53
+ uv run --project vds_cli vds-cli git pull --project insurance
54
+ uv run --project vds_cli vds-cli git status --match "*service*"
55
+ ```
56
+
57
+ ### Help
58
+
59
+ ```bash
60
+ # Show main help
61
+ uv run --project vds_cli vds-cli --help
62
+
63
+ # Show command help
64
+ uv run --project vds_cli vds-cli jira --help
65
+ uv run --project vds_cli vds-cli confluence --help
66
+ ```
67
+
68
+ ## Features
69
+
70
+ - ✅ **Cross-platform**: Works on Mac, Linux, and Windows
71
+ - ✅ **Environment Management**: Automatic loading from `~/.vds/.env` using pydantic-settings v2.12.0+
72
+ - ✅ **Unified Interface**: Single CLI for all orchestrators (JIRA, Confluence, Bitbucket, Git)
73
+ - ✅ **Rich Console Output**: Beautiful tables and formatted output
74
+ - ✅ **Type-Safe Configuration**: Full Python type hints and validation
75
+ - ✅ **Quality Assured**: 87% test coverage, zero ruff linting issues
76
+
77
+ ## Migration from Bash CLI
78
+
79
+ The Python CLI (`vds-cli`) replaces the legacy bash wrapper (now removed). The command interface is identical:
80
+
81
+ **Before (bash)**:
82
+
83
+ ```bash
84
+ uv run --project vds_cli vds-cli jira search "project = NTTC" 20
85
+ ```
86
+
87
+ **After (Python)**:
88
+
89
+ ```bash
90
+ uv run --project vds_cli vds-cli jira search "project = NTTC" --limit 20
91
+ ```
92
+
93
+ All commands work the same way, with improved error handling and cross-platform support.
94
+
95
+ ## Development
96
+
97
+ ### Running Tests
98
+
99
+ ```bash
100
+ cd vds-scripts/vds_cli
101
+ uv run pytest tests/unit/ -v
102
+ uv run pytest tests/verification/ -v # Requires credentials
103
+ ```
104
+
105
+ ### Code Quality
106
+
107
+ ```bash
108
+ # Lint check
109
+ uv run ruff check src/
110
+
111
+ # Format code
112
+ uv run ruff format src/
113
+ ```
114
+
115
+ ## Requirements
116
+
117
+ - Python >= 3.11
118
+ - uv (for package management)
119
+ - Environment file at `~/.vds/.env` with credentials
120
+
121
+ ## Dependencies
122
+
123
+ - **typer** >= 0.20.0 - CLI framework
124
+ - **rich** >= 13.7.0 - Console output
125
+ - **pydantic** >= 2.12.3 - Data validation
126
+ - **pydantic-settings** >= 2.12.0 - Settings management
@@ -0,0 +1,41 @@
1
+ # VDS CLI Verification Report
2
+
3
+ **Date**: January 10, 2026
4
+ **Status**: ✅ PASSED
5
+
6
+ ## Summary
7
+
8
+ The VDS CLI (`vds-cli`) has been verified for production readiness. All unit tests passed, and code quality checks (linting) are clean.
9
+
10
+ ## Verification Steps
11
+
12
+ ### 1. Code Quality
13
+ - **Tool**: `ruff`
14
+ - **Result**: ✅ Passed (Zero issues)
15
+ - **Actions**: Fixed trailing whitespace in `cli.py` and `env.py`.
16
+
17
+ ### 2. Unit Tests
18
+ - **Tool**: `pytest`
19
+ - **Coverage**: 77%
20
+ - **Result**: ✅ Passed (19/19 tests)
21
+ - **Fixes**:
22
+ - Updated `test_cli_git_command` to properly mock `settings` object attributes (avoiding `TypeError`).
23
+ - Updated `test_run_orchestrator_success` to assert correct entry point usage (`vds-jira-cli`) instead of legacy `python -m` invocation.
24
+
25
+ ### 3. Installation & Environment
26
+ - **Tool**: `uv`
27
+ - **Result**: ✅ Validated dependency sync and virtual environment creation.
28
+
29
+ ## Key Components Verified
30
+
31
+ | Component | Status | Notes |
32
+ |-----------|--------|-------|
33
+ | `cli.py` | ✅ | Main entry point, command routing |
34
+ | `router.py` | ✅ | Orchestrator delegation logic |
35
+ | `env.py` | ✅ | Environment variable loading (pydantic-settings) |
36
+
37
+ ## Recommendations
38
+
39
+ - Maintain `pytest` coverage above 75%.
40
+ - Continue using `uv sync` for dependency management.
41
+ - Ensure `~/.vds/.env` contains valid credentials for integration tests.
@@ -0,0 +1,38 @@
1
+ [project]
2
+ name = "vds-cli"
3
+ version = "4.0.0"
4
+ description = "Cross-platform VDS Platform CLI"
5
+ requires-python = ">=3.11"
6
+ dependencies = [
7
+ "typer>=0.20.0", # Latest: 0.20.0 (Oct 2025) - Context7: /websites/typer_tiangolo
8
+ "rich>=13.7.0", # Latest: 13.7.0+ (Nov 2025)
9
+ "pydantic>=2.12.3", # Latest: 2.12.3+ (Oct 2025)
10
+ "pydantic-settings>=2.12.0", # Latest: 2.12.0 (Nov 2025) - Context7: /pydantic/pydantic-settings
11
+ ]
12
+
13
+ [project.scripts]
14
+ vds-cli = "vds_cli.cli:app"
15
+
16
+ [build-system]
17
+ requires = ["hatchling>=1.20.0"]
18
+ build-backend = "hatchling.build"
19
+
20
+ [project.optional-dependencies]
21
+ dev = [
22
+ "pytest>=9.0.1", # Latest: 9.0.1+ - Context7: /pytest-dev/pytest
23
+ "pytest-cov>=5.0.0",
24
+ "ruff>=0.14.5", # Latest: 0.14.5+ - Context7: /astral-sh/ruff
25
+ ]
26
+
27
+ [tool.uv]
28
+ package = true
29
+
30
+ [tool.uv.sources]
31
+ vds_cli = { path = "src" }
32
+
33
+ [dependency-groups]
34
+ dev = [
35
+ "pytest>=9.0.1",
36
+ "pytest-cov>=5.0.0",
37
+ "ruff>=0.14.5",
38
+ ]
@@ -0,0 +1,3 @@
1
+ """VDS Platform CLI - Cross-platform Python CLI wrapper."""
2
+
3
+ __version__ = "4.0.0"
@@ -0,0 +1,173 @@
1
+ """Main CLI application using Typer.
2
+
3
+ Based on Typer v0.20.0+ API
4
+ Context7: /websites/typer_tiangolo
5
+ Key Features: typer.Typer(), @app.command(), Annotated options
6
+ """
7
+
8
+ from pathlib import Path
9
+
10
+ import typer
11
+ from rich.console import Console
12
+ from rich.table import Table
13
+
14
+ from .env import load_environment
15
+ from .router import run_orchestrator
16
+
17
+ app = typer.Typer(help="VDS Platform CLI - Unified Interface for AI Agents")
18
+ console = Console()
19
+
20
+ PASS_THRU_CONTEXT = {"allow_extra_args": True, "ignore_unknown_options": True}
21
+
22
+ # Get scripts directory (parent of vds_cli package)
23
+ SCRIPT_DIR = Path(__file__).resolve().parent.parent.parent.parent
24
+
25
+
26
+ @app.command()
27
+ def env(
28
+ action: str = typer.Argument(..., help="Action: load or status"),
29
+ ) -> None:
30
+ """Environment management."""
31
+ settings = load_environment()
32
+
33
+ if action == "load":
34
+ console.print("[blue]🔄 Loading VDS environment...[/blue]")
35
+ if settings.vds_username:
36
+ console.print("[green]✅ VDS environment loaded successfully.[/green]")
37
+ else:
38
+ console.print("[yellow]⚠️ VDS environment file not found at ~/.vds/.env[/yellow]")
39
+ console.print("[yellow]💡 Create ~/.vds/.env with your credentials[/yellow]")
40
+
41
+ elif action == "status":
42
+ table = Table(title="Environment Status")
43
+ table.add_column("Variable", style="cyan")
44
+ table.add_column("Status", style="magenta")
45
+
46
+ table.add_row(
47
+ "Bitbucket Token",
48
+ "✅ Set" if settings.bitbucket_access_token else "❌ Missing",
49
+ )
50
+ table.add_row(
51
+ "Internal Confluence Token",
52
+ "✅ Set" if settings.internal_confluence_token else "❌ Missing",
53
+ )
54
+ table.add_row(
55
+ "External Confluence Token",
56
+ "✅ Set" if settings.external_confluence_token else "❌ Missing",
57
+ )
58
+ table.add_row(
59
+ "VDS Credentials",
60
+ "✅ Set" if settings.vds_username and settings.vds_password else "❌ Missing",
61
+ )
62
+
63
+ console.print(table)
64
+ else:
65
+ console.print(f"[red]❌ Unknown action: {action}[/red]")
66
+ console.print("[yellow]Available actions: load, status[/yellow]")
67
+ raise typer.Exit(1) from None
68
+
69
+
70
+ def _run_service(service: str, args: list[str]) -> None:
71
+ if not args:
72
+ typer.echo(
73
+ f"Error: No arguments passed to '{service}'. "
74
+ "Append the underlying CLI command and flags.",
75
+ err=True,
76
+ )
77
+ raise typer.Exit(1) from None
78
+
79
+ load_environment() # Ensure environment is loaded
80
+ exit_code = run_orchestrator(service, args, SCRIPT_DIR)
81
+ if exit_code != 0:
82
+ raise typer.Exit(exit_code) from None
83
+
84
+
85
+ @app.command(context_settings=PASS_THRU_CONTEXT)
86
+ def git(ctx: typer.Context) -> None:
87
+ """Git repository operations."""
88
+ _run_service("git", list(ctx.args))
89
+
90
+
91
+ @app.command(context_settings=PASS_THRU_CONTEXT)
92
+ def jira(ctx: typer.Context) -> None:
93
+ """JIRA operations."""
94
+ _run_service("jira", list(ctx.args))
95
+
96
+
97
+ @app.command(context_settings=PASS_THRU_CONTEXT)
98
+ def confluence(ctx: typer.Context) -> None:
99
+ """Confluence operations."""
100
+ _run_service("confluence", list(ctx.args))
101
+
102
+
103
+ @app.command(context_settings=PASS_THRU_CONTEXT)
104
+ def bitbucket(ctx: typer.Context) -> None:
105
+ """Bitbucket operations."""
106
+ _run_service("bitbucket", list(ctx.args))
107
+
108
+
109
+ @app.command(context_settings=PASS_THRU_CONTEXT)
110
+ def pdf(ctx: typer.Context) -> None:
111
+ """PDF orchestrator operations."""
112
+ _run_service("pdf", list(ctx.args))
113
+
114
+
115
+ @app.command()
116
+ def status() -> None:
117
+ """System status and health checks."""
118
+ settings = load_environment()
119
+ console.print("[cyan]📊 VDS Platform Status[/cyan]\n")
120
+
121
+ # Check orchestrators
122
+ table = Table(title="Orchestrator Status")
123
+ table.add_column("Orchestrator", style="cyan")
124
+ table.add_column("Status", style="magenta")
125
+
126
+ for name in ["jira", "confluence", "bitbucket", "git", "pdf"]:
127
+ path = SCRIPT_DIR / f"{name}_orchestrator"
128
+ status_text = "✅ Available" if path.exists() else "❌ Missing"
129
+ table.add_row(name.title(), status_text)
130
+
131
+ console.print(table)
132
+
133
+ # Check environment
134
+ env_table = Table(title="Environment Status")
135
+ env_table.add_column("Variable", style="cyan")
136
+ env_table.add_column("Status", style="magenta")
137
+
138
+ env_table.add_row(
139
+ "Bitbucket Token",
140
+ "✅ Set" if settings.bitbucket_access_token else "❌ Missing",
141
+ )
142
+ env_table.add_row(
143
+ "Internal Confluence Token",
144
+ "✅ Set" if settings.internal_confluence_token else "❌ Missing",
145
+ )
146
+ env_table.add_row(
147
+ "External Confluence Token",
148
+ "✅ Set" if settings.external_confluence_token else "❌ Missing",
149
+ )
150
+ env_table.add_row(
151
+ "VDS Credentials",
152
+ "✅ Set" if settings.vds_username and settings.vds_password else "❌ Missing",
153
+ )
154
+
155
+ console.print("\n")
156
+ console.print(env_table)
157
+
158
+
159
+ @app.command()
160
+ def version() -> None:
161
+ """Show version information."""
162
+ from . import __version__
163
+
164
+ console.print(f"[cyan]VDS Platform CLI v{__version__}[/cyan]")
165
+
166
+
167
+ def main() -> None:
168
+ """Main entry point."""
169
+ app()
170
+
171
+
172
+ if __name__ == "__main__":
173
+ main()