@ngocsangairvds/vsaf 4.1.8 → 4.1.9

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 (1065) hide show
  1. package/package.json +1 -1
  2. package/packages/cli/dist/commands/skill.js +1 -1
  3. package/packages/cli/dist/commands/skill.js.map +1 -1
  4. package/skills/vds-skill/_shared/config-check.js +0 -76
  5. package/skills/vds-skill/_shared/credentials.js +0 -139
  6. package/skills/vds-skill/create-bitbucket-pr/SKILL.md +0 -57
  7. package/skills/vds-skill/create-bitbucket-pr/scripts/create-pr.js +0 -125
  8. package/skills/vds-skill/create-jira-epic/SKILL.md +0 -55
  9. package/skills/vds-skill/create-jira-epic/scripts/create-epic.js +0 -120
  10. package/skills/vds-skill/install-deps.mjs +0 -567
  11. package/skills/vds-skill/pack.yaml +0 -24
  12. package/skills/vds-skill/pull/SKILL.md +0 -38
  13. package/skills/vds-skill/pull/scripts/pull.js +0 -59
  14. package/skills/vds-skill/push-prd/SKILL.md +0 -227
  15. package/skills/vds-skill/push-srs/SKILL.md +0 -116
  16. package/skills/vds-skill/search-confluence/SKILL.md +0 -53
  17. package/skills/vds-skill/search-confluence/scripts/search.js +0 -114
  18. package/skills/vds-skill/vds-scripts/.claude/phase7-CLOSURE.md +0 -100
  19. package/skills/vds-skill/vds-scripts/.dockerignore +0 -62
  20. package/skills/vds-skill/vds-scripts/.github/ISSUE_TEMPLATE/cli-change.md +0 -92
  21. package/skills/vds-skill/vds-scripts/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -48
  22. package/skills/vds-skill/vds-scripts/.github/workflows/chaos-smoke.yml +0 -266
  23. package/skills/vds-skill/vds-scripts/.github/workflows/confluence-sync.yml +0 -44
  24. package/skills/vds-skill/vds-scripts/.github/workflows/docs-confluence-evidence.yml +0 -170
  25. package/skills/vds-skill/vds-scripts/.github/workflows/docs-quality.yml +0 -59
  26. package/skills/vds-skill/vds-scripts/.github/workflows/lint-and-test.yml +0 -90
  27. package/skills/vds-skill/vds-scripts/.github/workflows/scheduler-load-smoke.yml +0 -104
  28. package/skills/vds-skill/vds-scripts/.github/workflows/telegram-bridge-ci.yml +0 -131
  29. package/skills/vds-skill/vds-scripts/.graphifyignore +0 -29
  30. package/skills/vds-skill/vds-scripts/.importlinter +0 -86
  31. package/skills/vds-skill/vds-scripts/.mcp.json +0 -11
  32. package/skills/vds-skill/vds-scripts/.pre-commit-config.yaml +0 -62
  33. package/skills/vds-skill/vds-scripts/.ruffignore +0 -3
  34. package/skills/vds-skill/vds-scripts/.secrets.baseline +0 -133
  35. package/skills/vds-skill/vds-scripts/AGENTS.md +0 -250
  36. package/skills/vds-skill/vds-scripts/AGENTS.vi.md +0 -92
  37. package/skills/vds-skill/vds-scripts/ECOSYSTEM-CHANGELOG.md +0 -52
  38. package/skills/vds-skill/vds-scripts/ECOSYSTEM-DOCS.md +0 -602
  39. package/skills/vds-skill/vds-scripts/ECOSYSTEM_ALIGNMENT.md +0 -133
  40. package/skills/vds-skill/vds-scripts/Makefile +0 -119
  41. package/skills/vds-skill/vds-scripts/README.md +0 -103
  42. package/skills/vds-skill/vds-scripts/bitbucket_manifest_mapping.toml +0 -34
  43. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/ARCHITECTURE_ANALYSIS.md +0 -258
  44. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/BITBUCKET_API_PRACTICES.md +0 -393
  45. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/EVALUATION_REPORT.md +0 -61
  46. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/FEATURES.md +0 -908
  47. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/README.md +0 -817
  48. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/pyproject.toml +0 -49
  49. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/__init__.py +0 -50
  50. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/async_client.py +0 -641
  51. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/cli.py +0 -2271
  52. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/client.py +0 -2693
  53. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/config.py +0 -186
  54. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/errors.py +0 -34
  55. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/factory.py +0 -185
  56. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/parsers.py +0 -113
  57. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/protocols.py +0 -244
  58. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/repo_ops.py +0 -325
  59. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/__init__.py +0 -8
  60. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/conftest.py +0 -65
  61. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_advanced_search.py +0 -155
  62. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_async_client.py +0 -505
  63. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_branch_permissions.py +0 -172
  64. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_cli.py +0 -113
  65. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_cli_archive.py +0 -122
  66. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_cli_clone.py +0 -131
  67. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client.py +0 -207
  68. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_archive.py +0 -73
  69. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_branch_conditions.py +0 -101
  70. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_code_advanced.py +0 -180
  71. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_code_file.py +0 -33
  72. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_deployment_environments.py +0 -193
  73. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_issues.py +0 -163
  74. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_pipelines_advanced.py +0 -171
  75. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_pr_blockers.py +0 -118
  76. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_client_repository_variables.py +0 -155
  77. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_code.py +0 -98
  78. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_code_advanced.py +0 -279
  79. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_code_insights.py +0 -334
  80. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_conditions.py +0 -149
  81. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_config.py +0 -297
  82. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_deployment_env.py +0 -352
  83. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_errors.py +0 -67
  84. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_factory.py +0 -352
  85. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_fork_operations.py +0 -203
  86. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_issue_cli.py +0 -262
  87. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_pipeline_advanced.py +0 -265
  88. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_pr_blocker.py +0 -206
  89. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_protocols.py +0 -336
  90. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_repo_ops_archive.py +0 -169
  91. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_repo_ops_clone.py +0 -115
  92. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_repo_ops_parsing.py +0 -149
  93. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_repo_settings.py +0 -336
  94. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_repo_variables.py +0 -266
  95. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_webhooks.py +0 -188
  96. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/test_workspace.py +0 -234
  97. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/unit/__init__.py +0 -0
  98. package/skills/vds-skill/vds-scripts/bitbucket_orchestrator/tests/unit/test_parsers.py +0 -254
  99. package/skills/vds-skill/vds-scripts/brd_orchestrator/README.md +0 -29
  100. package/skills/vds-skill/vds-scripts/brd_orchestrator/pyproject.toml +0 -63
  101. package/skills/vds-skill/vds-scripts/brd_orchestrator/src/vds_brd_orchestrator/__init__.py +0 -17
  102. package/skills/vds-skill/vds-scripts/brd_orchestrator/src/vds_brd_orchestrator/cli.py +0 -187
  103. package/skills/vds-skill/vds-scripts/brd_orchestrator/src/vds_brd_orchestrator/validator.py +0 -121
  104. package/skills/vds-skill/vds-scripts/brd_orchestrator/tests/__init__.py +0 -0
  105. package/skills/vds-skill/vds-scripts/brd_orchestrator/tests/test_cli.py +0 -62
  106. package/skills/vds-skill/vds-scripts/brd_orchestrator/tests/test_validator.py +0 -33
  107. package/skills/vds-skill/vds-scripts/code/code_evidence_pack.json +0 -435
  108. package/skills/vds-skill/vds-scripts/confluence_orchestrator/Dockerfile +0 -19
  109. package/skills/vds-skill/vds-scripts/confluence_orchestrator/README.md +0 -479
  110. package/skills/vds-skill/vds-scripts/confluence_orchestrator/SYNC_SCRIPTS.md +0 -127
  111. package/skills/vds-skill/vds-scripts/confluence_orchestrator/SYNC_STANDARDIZATION.md +0 -108
  112. package/skills/vds-skill/vds-scripts/confluence_orchestrator/pyproject.toml +0 -50
  113. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/__init__.py +0 -56
  114. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/async_client.py +0 -100
  115. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/cli.py +0 -3160
  116. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/config.py +0 -215
  117. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content.py +0 -368
  118. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content_v2.py +0 -144
  119. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/crawl_tree.py +0 -1833
  120. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/errors.py +0 -44
  121. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/eventing.py +0 -111
  122. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/http.py +0 -1850
  123. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/orchestration.py +0 -166
  124. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/protocols.py +0 -61
  125. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/reporting.py +0 -78
  126. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/tree.py +0 -122
  127. package/skills/vds-skill/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/tree_copier.py +0 -431
  128. package/skills/vds-skill/vds-scripts/confluence_orchestrator/sync_pdfs_from_markdown.py +0 -203
  129. package/skills/vds-skill/vds-scripts/confluence_orchestrator/sync_pdfs_to_confluence.py +0 -299
  130. package/skills/vds-skill/vds-scripts/confluence_orchestrator/sync_png_attachments.py +0 -299
  131. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/conftest.py +0 -46
  132. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_advanced_content.py +0 -252
  133. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_advanced_search.py +0 -193
  134. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_async_client.py +0 -104
  135. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_cache_management.py +0 -246
  136. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_cli.py +0 -716
  137. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_config.py +0 -130
  138. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_content.py +0 -192
  139. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_content_flags.py +0 -27
  140. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_content_labels.py +0 -94
  141. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_crawl_tree.py +0 -2252
  142. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_degraded_write_safety.py +0 -176
  143. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_draft_management.py +0 -225
  144. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_errors.py +0 -75
  145. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_eventing.py +0 -73
  146. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_eventing_chaos.py +0 -37
  147. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_eventing_rate_limit.py +0 -44
  148. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_eventing_timeout.py +0 -49
  149. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_export.py +0 -231
  150. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_history.py +0 -217
  151. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_http.py +0 -375
  152. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_orchestration.py +0 -93
  153. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_reporting.py +0 -24
  154. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_search_cql.py +0 -36
  155. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_space_management.py +0 -236
  156. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_space_permissions.py +0 -384
  157. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_tree_copier.py +0 -644
  158. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_tree_copier_remap.py +0 -289
  159. package/skills/vds-skill/vds-scripts/confluence_orchestrator/tests/test_user_group_management.py +0 -387
  160. package/skills/vds-skill/vds-scripts/diagram_generator/README.md +0 -663
  161. package/skills/vds-skill/vds-scripts/diagram_generator/ci_validate.sh +0 -16
  162. 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
  163. package/skills/vds-skill/vds-scripts/diagram_generator/docs-nttc/projects/INSURANCE/analysis/current-state/insurance-claim-business/insurance-claim-business-component.puml +0 -23
  164. 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
  165. package/skills/vds-skill/vds-scripts/diagram_generator/docs-nttc/projects/INSURANCE/analysis/current-state/insurance-claim-business/insurance-claim-business-sequence.puml +0 -21
  166. 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
  167. package/skills/vds-skill/vds-scripts/diagram_generator/docs-nttc/projects/INSURANCE/analysis/current-state/insurance-claim-business/insurance-claim-business-usecase.puml +0 -14
  168. package/skills/vds-skill/vds-scripts/diagram_generator/examples/github-actions-validate.yml +0 -39
  169. package/skills/vds-skill/vds-scripts/diagram_generator/generate_all_diagrams.py +0 -827
  170. package/skills/vds-skill/vds-scripts/diagram_generator/generate_insurance_c4_diagrams.py +0 -261
  171. package/skills/vds-skill/vds-scripts/diagram_generator/generate_insurance_c4_quick.py +0 -486
  172. package/skills/vds-skill/vds-scripts/diagram_generator/pyproject.toml +0 -28
  173. package/skills/vds-skill/vds-scripts/diagram_generator/render_png.py +0 -59
  174. package/skills/vds-skill/vds-scripts/diagram_generator/src/vds_diagram_generator/__init__.py +0 -3
  175. package/skills/vds-skill/vds-scripts/diagram_generator/src/vds_diagram_generator/cli.py +0 -50
  176. package/skills/vds-skill/vds-scripts/diagram_generator/test_c4_hierarchical.py +0 -142
  177. package/skills/vds-skill/vds-scripts/diagram_generator/test_c4_quick.py +0 -131
  178. package/skills/vds-skill/vds-scripts/diagram_generator/tests/__init__.py +0 -0
  179. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_analyzer_completeness.py +0 -260
  180. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_c4_syntax_correctness.py +0 -138
  181. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_component_coverage.py +0 -182
  182. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_mermaid_output.py +0 -80
  183. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_png_generation.py +0 -112
  184. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_scenario_templates.py +0 -15
  185. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_sequence_accuracy.py +0 -93
  186. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_structurizr_export.py +0 -177
  187. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_style_consistency.py +0 -174
  188. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_usecase_generator.py +0 -201
  189. package/skills/vds-skill/vds-scripts/diagram_generator/tests/test_usecase_integration.py +0 -124
  190. package/skills/vds-skill/vds-scripts/docker/.dockerignore +0 -38
  191. package/skills/vds-skill/vds-scripts/docker/ADR.md +0 -392
  192. package/skills/vds-skill/vds-scripts/docker/Dockerfile +0 -68
  193. package/skills/vds-skill/vds-scripts/docker/MIGRATION.md +0 -453
  194. package/skills/vds-skill/vds-scripts/docker/README.md +0 -347
  195. package/skills/vds-skill/vds-scripts/docker/ROLLBACK.md +0 -596
  196. package/skills/vds-skill/vds-scripts/docker/compose.phase2-verification.yml +0 -31
  197. package/skills/vds-skill/vds-scripts/docker/docker-compose.cli.yml +0 -206
  198. package/skills/vds-skill/vds-scripts/docker/docker-compose.infra.yml +0 -276
  199. package/skills/vds-skill/vds-scripts/docker/docker-compose.services.yml +0 -425
  200. package/skills/vds-skill/vds-scripts/docker/infrastructure/init-schemas.sql +0 -177
  201. package/skills/vds-skill/vds-scripts/docker/infrastructure/pgbouncer/pgbouncer.ini +0 -75
  202. package/skills/vds-skill/vds-scripts/docker/infrastructure/pgbouncer/userlist.txt +0 -50
  203. package/skills/vds-skill/vds-scripts/docker/infrastructure/pgbouncer/userlist.txt.template +0 -36
  204. package/skills/vds-skill/vds-scripts/docs/.confluence-evidence/.gitkeep +0 -0
  205. package/skills/vds-skill/vds-scripts/docs/.confluence-evidence/PREFLIGHT.md +0 -132
  206. package/skills/vds-skill/vds-scripts/docs/.confluence-evidence/README.md +0 -84
  207. package/skills/vds-skill/vds-scripts/docs/.confluence.yaml +0 -157
  208. package/skills/vds-skill/vds-scripts/docs/.freshness.yaml +0 -54
  209. package/skills/vds-skill/vds-scripts/docs/README.md +0 -235
  210. package/skills/vds-skill/vds-scripts/docs/agents/README.md +0 -33
  211. package/skills/vds-skill/vds-scripts/docs/agents/explanation/data-flow.md +0 -132
  212. package/skills/vds-skill/vds-scripts/docs/agents/explanation/development-roadmap.md +0 -49
  213. package/skills/vds-skill/vds-scripts/docs/agents/explanation/features-overview.md +0 -62
  214. package/skills/vds-skill/vds-scripts/docs/agents/explanation/index.md +0 -36
  215. package/skills/vds-skill/vds-scripts/docs/agents/explanation/runtime-verification-and-gap-reporting.md +0 -127
  216. package/skills/vds-skill/vds-scripts/docs/agents/explanation/system-architecture.md +0 -139
  217. package/skills/vds-skill/vds-scripts/docs/agents/explanation/whats-new.md +0 -75
  218. package/skills/vds-skill/vds-scripts/docs/agents/explanation/who-ecosystem-introduction.md +0 -65
  219. package/skills/vds-skill/vds-scripts/docs/agents/explanation/who-ecosystem-model.md +0 -41
  220. package/skills/vds-skill/vds-scripts/docs/agents/how-to/02-using-vds-ai-memory.md +0 -98
  221. package/skills/vds-skill/vds-scripts/docs/agents/how-to/03-memory-cross-agent.md +0 -241
  222. package/skills/vds-skill/vds-scripts/docs/agents/how-to/04-using-progress-reports.md +0 -240
  223. package/skills/vds-skill/vds-scripts/docs/agents/how-to/08-semantic-search.md +0 -46
  224. package/skills/vds-skill/vds-scripts/docs/agents/how-to/apply-phase3-migration.md +0 -148
  225. package/skills/vds-skill/vds-scripts/docs/agents/how-to/choose-the-right-command-or-skill.md +0 -34
  226. package/skills/vds-skill/vds-scripts/docs/agents/how-to/contribute-new-orchestrator.md +0 -149
  227. package/skills/vds-skill/vds-scripts/docs/agents/how-to/decision-tree.md +0 -63
  228. package/skills/vds-skill/vds-scripts/docs/agents/how-to/first-audit-run.md +0 -83
  229. package/skills/vds-skill/vds-scripts/docs/agents/how-to/index.md +0 -49
  230. package/skills/vds-skill/vds-scripts/docs/agents/how-to/install-and-bootstrap-who-scripts-and-skills.md +0 -314
  231. package/skills/vds-skill/vds-scripts/docs/agents/how-to/orchestrator-workflows/analytics-pipeline-workflow.md +0 -165
  232. package/skills/vds-skill/vds-scripts/docs/agents/how-to/orchestrator-workflows/code-quality-gate-workflow.md +0 -138
  233. package/skills/vds-skill/vds-scripts/docs/agents/how-to/orchestrator-workflows/confluence-bitbucket-sync-workflow.md +0 -130
  234. package/skills/vds-skill/vds-scripts/docs/agents/how-to/orchestrator-workflows/document-delivery-workflow.md +0 -142
  235. package/skills/vds-skill/vds-scripts/docs/agents/how-to/orchestrator-workflows/memory-progress-workflow.md +0 -140
  236. package/skills/vds-skill/vds-scripts/docs/agents/how-to/orchestrator-workflows/research-spec-audit-workflow.md +0 -135
  237. package/skills/vds-skill/vds-scripts/docs/agents/how-to/phase131-all-project-preparation.md +0 -211
  238. package/skills/vds-skill/vds-scripts/docs/agents/how-to/phase131-bounded-parallel-analysis.md +0 -123
  239. package/skills/vds-skill/vds-scripts/docs/agents/how-to/phase131-confluence-upload-recovery.md +0 -204
  240. package/skills/vds-skill/vds-scripts/docs/agents/how-to/phase132-department-preparation.md +0 -144
  241. package/skills/vds-skill/vds-scripts/docs/agents/how-to/run-ecosystem-daily-report.md +0 -213
  242. package/skills/vds-skill/vds-scripts/docs/agents/how-to/tips-and-tricks.md +0 -138
  243. package/skills/vds-skill/vds-scripts/docs/agents/how-to/troubleshooting-guide.md +0 -221
  244. package/skills/vds-skill/vds-scripts/docs/agents/reference/agent-operational-contract.md +0 -162
  245. package/skills/vds-skill/vds-scripts/docs/agents/reference/alignment-phase179-report.md +0 -144
  246. package/skills/vds-skill/vds-scripts/docs/agents/reference/audit-triage-playbook.md +0 -256
  247. package/skills/vds-skill/vds-scripts/docs/agents/reference/backup-restore.md +0 -132
  248. package/skills/vds-skill/vds-scripts/docs/agents/reference/bitbucket-orchestrator.md +0 -56
  249. package/skills/vds-skill/vds-scripts/docs/agents/reference/brd-orchestrator.md +0 -52
  250. package/skills/vds-skill/vds-scripts/docs/agents/reference/capability-coverage-review.md +0 -51
  251. package/skills/vds-skill/vds-scripts/docs/agents/reference/ci-workflows.md +0 -98
  252. package/skills/vds-skill/vds-scripts/docs/agents/reference/circular-dependency-orchestrator.md +0 -55
  253. package/skills/vds-skill/vds-scripts/docs/agents/reference/cli-commands.md +0 -583
  254. package/skills/vds-skill/vds-scripts/docs/agents/reference/cli-development-standards.md +0 -41
  255. package/skills/vds-skill/vds-scripts/docs/agents/reference/cli-help-matrix.md +0 -84
  256. package/skills/vds-skill/vds-scripts/docs/agents/reference/common-errors.md +0 -126
  257. package/skills/vds-skill/vds-scripts/docs/agents/reference/configuration-reference.md +0 -128
  258. package/skills/vds-skill/vds-scripts/docs/agents/reference/confluence-orchestrator.md +0 -56
  259. package/skills/vds-skill/vds-scripts/docs/agents/reference/confluence-sync-target.md +0 -111
  260. package/skills/vds-skill/vds-scripts/docs/agents/reference/confluence-sync.md +0 -46
  261. package/skills/vds-skill/vds-scripts/docs/agents/reference/db-query-orchestrator.md +0 -93
  262. package/skills/vds-skill/vds-scripts/docs/agents/reference/diagrams-orchestrator.md +0 -52
  263. package/skills/vds-skill/vds-scripts/docs/agents/reference/ecosystem-daily-report.md +0 -229
  264. package/skills/vds-skill/vds-scripts/docs/agents/reference/elastic-orchestrator.md +0 -57
  265. package/skills/vds-skill/vds-scripts/docs/agents/reference/env-git-helper.md +0 -216
  266. package/skills/vds-skill/vds-scripts/docs/agents/reference/evolution-orchestrator.md +0 -113
  267. package/skills/vds-skill/vds-scripts/docs/agents/reference/excel-orchestrator.md +0 -51
  268. package/skills/vds-skill/vds-scripts/docs/agents/reference/git-orchestrator.md +0 -62
  269. package/skills/vds-skill/vds-scripts/docs/agents/reference/google-sheets-orchestrator.md +0 -51
  270. package/skills/vds-skill/vds-scripts/docs/agents/reference/grafana-orchestrator.md +0 -52
  271. package/skills/vds-skill/vds-scripts/docs/agents/reference/hexagonal-orchestrator.md +0 -64
  272. package/skills/vds-skill/vds-scripts/docs/agents/reference/index.md +0 -36
  273. package/skills/vds-skill/vds-scripts/docs/agents/reference/infrastructure-v2.15.md +0 -67
  274. package/skills/vds-skill/vds-scripts/docs/agents/reference/intellij-orchestrator.md +0 -50
  275. package/skills/vds-skill/vds-scripts/docs/agents/reference/jira-orchestrator.md +0 -60
  276. package/skills/vds-skill/vds-scripts/docs/agents/reference/links-orchestrator.md +0 -57
  277. package/skills/vds-skill/vds-scripts/docs/agents/reference/lint-cli.md +0 -99
  278. package/skills/vds-skill/vds-scripts/docs/agents/reference/lsp-orchestrator.md +0 -51
  279. package/skills/vds-skill/vds-scripts/docs/agents/reference/markdown-orchestrator.md +0 -53
  280. package/skills/vds-skill/vds-scripts/docs/agents/reference/mcp-orchestrator.md +0 -88
  281. package/skills/vds-skill/vds-scripts/docs/agents/reference/memory-orchestrator.md +0 -53
  282. package/skills/vds-skill/vds-scripts/docs/agents/reference/metabase-orchestrator.md +0 -51
  283. package/skills/vds-skill/vds-scripts/docs/agents/reference/migration-playbook.md +0 -71
  284. package/skills/vds-skill/vds-scripts/docs/agents/reference/multi-agent-orchestrator.md +0 -52
  285. package/skills/vds-skill/vds-scripts/docs/agents/reference/openapi-orchestrator.md +0 -57
  286. package/skills/vds-skill/vds-scripts/docs/agents/reference/orchestrator-architecture.md +0 -194
  287. package/skills/vds-skill/vds-scripts/docs/agents/reference/orchestrator-comparison-matrix.md +0 -79
  288. package/skills/vds-skill/vds-scripts/docs/agents/reference/orchestrator-index.md +0 -73
  289. package/skills/vds-skill/vds-scripts/docs/agents/reference/pdf-orchestrator.md +0 -57
  290. package/skills/vds-skill/vds-scripts/docs/agents/reference/portable-paths-and-config.md +0 -0
  291. package/skills/vds-skill/vds-scripts/docs/agents/reference/portable-paths-validation-matrix.md +0 -129
  292. package/skills/vds-skill/vds-scripts/docs/agents/reference/progress-orchestrator.md +0 -51
  293. package/skills/vds-skill/vds-scripts/docs/agents/reference/progress-report-cli.md +0 -215
  294. package/skills/vds-skill/vds-scripts/docs/agents/reference/public-interface-orchestrator.md +0 -73
  295. package/skills/vds-skill/vds-scripts/docs/agents/reference/research-orchestrator.md +0 -53
  296. package/skills/vds-skill/vds-scripts/docs/agents/reference/schema-orchestrator.md +0 -57
  297. package/skills/vds-skill/vds-scripts/docs/agents/reference/search-tools.md +0 -34
  298. package/skills/vds-skill/vds-scripts/docs/agents/reference/skills-commands.md +0 -256
  299. package/skills/vds-skill/vds-scripts/docs/agents/reference/skills-reference.md +0 -32
  300. package/skills/vds-skill/vds-scripts/docs/agents/reference/sonarqube-orchestrator.md +0 -62
  301. package/skills/vds-skill/vds-scripts/docs/agents/reference/spec-orchestrator.md +0 -56
  302. package/skills/vds-skill/vds-scripts/docs/agents/reference/structure-orchestrator.md +0 -69
  303. package/skills/vds-skill/vds-scripts/docs/agents/reference/system-requirements.md +0 -76
  304. package/skills/vds-skill/vds-scripts/docs/agents/reference/tasks-orchestrator.md +0 -53
  305. package/skills/vds-skill/vds-scripts/docs/agents/reference/validation-and-sync-notes.md +0 -54
  306. package/skills/vds-skill/vds-scripts/docs/agents/reference/vds-ai-memory-api.md +0 -51
  307. package/skills/vds-skill/vds-scripts/docs/agents/reference/vds-cli-reference.md +0 -34
  308. package/skills/vds-skill/vds-scripts/docs/agents/reference/who-capability-inventory.md +0 -96
  309. package/skills/vds-skill/vds-scripts/docs/agents/reference/who-capability-routing-matrix.md +0 -14
  310. package/skills/vds-skill/vds-scripts/docs/agents/tutorials/feature-progression-guide.md +0 -112
  311. package/skills/vds-skill/vds-scripts/docs/agents/tutorials/index.md +0 -36
  312. package/skills/vds-skill/vds-scripts/docs/agents/tutorials/quick-start.md +0 -50
  313. package/skills/vds-skill/vds-scripts/docs/agents/tutorials/who-skills-and-scripts-onboarding.md +0 -47
  314. package/skills/vds-skill/vds-scripts/docs/agents/tutorials/zero-to-productive-developer.md +0 -339
  315. package/skills/vds-skill/vds-scripts/docs/confluence/IMPLEMENTATION-SUMMARY.md +0 -78
  316. package/skills/vds-skill/vds-scripts/docs/confluence/SYNC-GUIDE.md +0 -47
  317. package/skills/vds-skill/vds-scripts/docs/deployment/offline-docker-image-load.md +0 -59
  318. package/skills/vds-skill/vds-scripts/docs/evolution-auto-run-rollout.md +0 -325
  319. package/skills/vds-skill/vds-scripts/docs/evolution-loop-deep-integration.md +0 -496
  320. package/skills/vds-skill/vds-scripts/docs/evolution-loop-integration-guide.md +0 -359
  321. package/skills/vds-skill/vds-scripts/docs/openspace-schema-snapshot.md +0 -73
  322. package/skills/vds-skill/vds-scripts/docs/operations/sla-mttr-policy.md +0 -44
  323. package/skills/vds-skill/vds-scripts/docs/p0-closure-evidence/SUMMARY.md +0 -58
  324. package/skills/vds-skill/vds-scripts/docs/p4-closure-evidence/.gitkeep +0 -0
  325. package/skills/vds-skill/vds-scripts/docs/p4-closure-evidence/smoke-20260427T024137Z-b95b586b.json +0 -15
  326. package/skills/vds-skill/vds-scripts/docs/p8-preflight-evidence/alembic-and-runtime-advisory-locks.md +0 -45
  327. package/skills/vds-skill/vds-scripts/docs/p8-preflight-evidence/dbos-listen-notify.md +0 -54
  328. package/skills/vds-skill/vds-scripts/docs/p8-preflight-evidence/pgbouncer-search-path-empirical.md +0 -110
  329. package/skills/vds-skill/vds-scripts/docs/p8-preflight-evidence/pgvector-set-local-audit.md +0 -51
  330. package/skills/vds-skill/vds-scripts/docs/p8-preflight-evidence/topology-decision-session-mode.md +0 -57
  331. package/skills/vds-skill/vds-scripts/docs/phases/CHANGELOG.md +0 -103
  332. package/skills/vds-skill/vds-scripts/docs/phases/PHASE_125_COMPLETION_AND_MERGE.md +0 -212
  333. package/skills/vds-skill/vds-scripts/docs/phases/phase125/IMPLEMENTATION_REPORT.md +0 -227
  334. package/skills/vds-skill/vds-scripts/docs/phases/phase125/TSK-125.10-11-implementation-summary.md +0 -196
  335. package/skills/vds-skill/vds-scripts/docs/phases/phase125/profile-patch-ollama-local-anthropic.md +0 -122
  336. package/skills/vds-skill/vds-scripts/docs/phases/phase125_completion_summary.md +0 -369
  337. package/skills/vds-skill/vds-scripts/docs/phases/phase125_llm_analysis_skill.md +0 -164
  338. package/skills/vds-skill/vds-scripts/docs/phases/phase125_merge_complete.md +0 -147
  339. package/skills/vds-skill/vds-scripts/docs/phases/phase125_skill_runtime_closure_20260321.md +0 -91
  340. package/skills/vds-skill/vds-scripts/docs/phases/phase2-portable-paths/closure-handoff-summary-2026-03-23.md +0 -290
  341. package/skills/vds-skill/vds-scripts/docs/phases/phase2-portable-paths/remaining-risk-register-2026-03-25.md +0 -143
  342. package/skills/vds-skill/vds-scripts/docs/phases/phase2-portable-paths/verification-evidence-2026-03-23.md +0 -135
  343. package/skills/vds-skill/vds-scripts/docs/v0-sunset-known-issues.md +0 -88
  344. package/skills/vds-skill/vds-scripts/docs/vi/TRANSLATION-BACKLOG.md +0 -72
  345. package/skills/vds-skill/vds-scripts/docs/vi/agents/README.md +0 -41
  346. package/skills/vds-skill/vds-scripts/docs/vi/agents/explanation/features-overview.md +0 -29
  347. package/skills/vds-skill/vds-scripts/docs/vi/agents/explanation/index.md +0 -14
  348. package/skills/vds-skill/vds-scripts/docs/vi/agents/explanation/runtime-verification-and-gap-reporting.md +0 -129
  349. package/skills/vds-skill/vds-scripts/docs/vi/agents/explanation/whats-new.md +0 -37
  350. package/skills/vds-skill/vds-scripts/docs/vi/agents/explanation/who-ecosystem-introduction.md +0 -21
  351. package/skills/vds-skill/vds-scripts/docs/vi/agents/explanation/who-ecosystem-model.md +0 -36
  352. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/02-using-vds-ai-memory.md +0 -100
  353. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/03-memory-cross-agent.md +0 -243
  354. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/04-using-progress-reports.md +0 -242
  355. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/08-semantic-search.md +0 -16
  356. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/choose-the-right-command-or-skill.md +0 -36
  357. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/decision-tree.md +0 -77
  358. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/first-audit-run.md +0 -85
  359. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/index.md +0 -21
  360. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/install-and-bootstrap-who-scripts-and-skills.md +0 -156
  361. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/analytics-pipeline-workflow.md +0 -174
  362. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/code-quality-gate-workflow.md +0 -147
  363. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/confluence-bitbucket-sync-workflow.md +0 -139
  364. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/document-delivery-workflow.md +0 -151
  365. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/memory-progress-workflow.md +0 -149
  366. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/research-spec-audit-workflow.md +0 -144
  367. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/phase131-all-project-preparation.md +0 -213
  368. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/phase131-bounded-parallel-analysis.md +0 -125
  369. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/phase131-confluence-upload-recovery.md +0 -206
  370. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/phase132-department-preparation.md +0 -146
  371. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/tips-and-tricks.md +0 -34
  372. package/skills/vds-skill/vds-scripts/docs/vi/agents/how-to/troubleshooting-guide.md +0 -36
  373. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/agent-operational-contract.md +0 -98
  374. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/audit-triage-playbook.md +0 -258
  375. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/bitbucket-orchestrator.md +0 -30
  376. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/brd-orchestrator.md +0 -29
  377. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/capability-coverage-review.md +0 -46
  378. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/circular-dependency-orchestrator.md +0 -29
  379. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/cli-commands.md +0 -409
  380. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/cli-development-standards.md +0 -19
  381. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/cli-help-matrix.md +0 -71
  382. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/common-errors.md +0 -133
  383. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/configuration-reference.md +0 -25
  384. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/confluence-orchestrator.md +0 -30
  385. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/db-query-orchestrator.md +0 -34
  386. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/diagrams-orchestrator.md +0 -31
  387. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/elastic-orchestrator.md +0 -30
  388. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/evolution-orchestrator.md +0 -31
  389. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/excel-orchestrator.md +0 -60
  390. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/git-orchestrator.md +0 -31
  391. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/google-sheets-orchestrator.md +0 -60
  392. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/grafana-orchestrator.md +0 -30
  393. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/hexagonal-orchestrator.md +0 -73
  394. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/index.md +0 -25
  395. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/intellij-orchestrator.md +0 -59
  396. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/jira-orchestrator.md +0 -32
  397. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/links-orchestrator.md +0 -66
  398. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/lsp-orchestrator.md +0 -60
  399. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/markdown-orchestrator.md +0 -62
  400. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/mcp-orchestrator.md +0 -34
  401. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/memory-orchestrator.md +0 -45
  402. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/metabase-orchestrator.md +0 -30
  403. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/multi-agent-orchestrator.md +0 -61
  404. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/openapi-orchestrator.md +0 -66
  405. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/orchestrator-architecture.md +0 -24
  406. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/orchestrator-index.md +0 -73
  407. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/pdf-orchestrator.md +0 -30
  408. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/portable-paths-and-config.md +0 -123
  409. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/portable-paths-validation-matrix.md +0 -131
  410. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/progress-orchestrator.md +0 -43
  411. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/progress-report-cli.md +0 -217
  412. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/public-interface-orchestrator.md +0 -82
  413. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/research-orchestrator.md +0 -45
  414. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/schema-orchestrator.md +0 -66
  415. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/search-tools.md +0 -19
  416. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/skills-reference.md +0 -27
  417. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/sonarqube-orchestrator.md +0 -71
  418. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/spec-orchestrator.md +0 -56
  419. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/structure-orchestrator.md +0 -78
  420. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/system-requirements.md +0 -30
  421. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/tasks-orchestrator.md +0 -45
  422. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/validation-and-sync-notes.md +0 -26
  423. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/vds-ai-memory-api.md +0 -53
  424. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/vds-cli-reference.md +0 -34
  425. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/who-capability-inventory.md +0 -98
  426. package/skills/vds-skill/vds-scripts/docs/vi/agents/reference/who-capability-routing-matrix.md +0 -16
  427. package/skills/vds-skill/vds-scripts/docs/vi/agents/tutorials/feature-progression-guide.md +0 -124
  428. package/skills/vds-skill/vds-scripts/docs/vi/agents/tutorials/index.md +0 -13
  429. package/skills/vds-skill/vds-scripts/docs/vi/agents/tutorials/quick-start.md +0 -30
  430. package/skills/vds-skill/vds-scripts/docs/vi/agents/tutorials/who-skills-and-scripts-onboarding.md +0 -42
  431. package/skills/vds-skill/vds-scripts/docs/vi/agents/tutorials/zero-to-productive-developer.md +0 -137
  432. package/skills/vds-skill/vds-scripts/elastic_orchestrator/README.md +0 -450
  433. package/skills/vds-skill/vds-scripts/elastic_orchestrator/pyproject.toml +0 -97
  434. package/skills/vds-skill/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/__init__.py +0 -81
  435. package/skills/vds-skill/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/cli.py +0 -652
  436. package/skills/vds-skill/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/client.py +0 -743
  437. package/skills/vds-skill/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/config.py +0 -208
  438. package/skills/vds-skill/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/errors.py +0 -34
  439. package/skills/vds-skill/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/py.typed +0 -0
  440. package/skills/vds-skill/vds-scripts/elastic_orchestrator/tests/__init__.py +0 -0
  441. package/skills/vds-skill/vds-scripts/elastic_orchestrator/tests/conftest.py +0 -227
  442. package/skills/vds-skill/vds-scripts/elastic_orchestrator/tests/test_client.py +0 -990
  443. package/skills/vds-skill/vds-scripts/elastic_orchestrator/tests/test_config.py +0 -268
  444. package/skills/vds-skill/vds-scripts/elastic_orchestrator/tests/test_e2e_verification.py +0 -272
  445. package/skills/vds-skill/vds-scripts/elastic_orchestrator/tests/test_errors.py +0 -78
  446. package/skills/vds-skill/vds-scripts/excel_orchestrator/README.md +0 -288
  447. package/skills/vds-skill/vds-scripts/excel_orchestrator/RESEARCH_BASED_UPDATES_REPORT.md +0 -261
  448. package/skills/vds-skill/vds-scripts/excel_orchestrator/add_essential_missing_effort.py +0 -255
  449. package/skills/vds-skill/vds-scripts/excel_orchestrator/adjust_effort_complexity.py +0 -184
  450. package/skills/vds-skill/vds-scripts/excel_orchestrator/brd_analysis_and_task_breakdown.py +0 -632
  451. package/skills/vds-skill/vds-scripts/excel_orchestrator/brd_analysis_comprehensive.py +0 -1029
  452. package/skills/vds-skill/vds-scripts/excel_orchestrator/check_overlaps_and_brd_coverage.py +0 -570
  453. package/skills/vds-skill/vds-scripts/excel_orchestrator/clean_remarks_column.py +0 -127
  454. package/skills/vds-skill/vds-scripts/excel_orchestrator/comprehensive_brd_check.py +0 -322
  455. package/skills/vds-skill/vds-scripts/excel_orchestrator/create_buffered_summary.py +0 -119
  456. package/skills/vds-skill/vds-scripts/excel_orchestrator/create_service_totals_sheet.py +0 -118
  457. package/skills/vds-skill/vds-scripts/excel_orchestrator/examples/basic_operations.py +0 -85
  458. package/skills/vds-skill/vds-scripts/excel_orchestrator/expand_all_tasks.py +0 -341
  459. package/skills/vds-skill/vds-scripts/excel_orchestrator/expand_tasks.py +0 -304
  460. package/skills/vds-skill/vds-scripts/excel_orchestrator/fill_brd_references.py +0 -347
  461. package/skills/vds-skill/vds-scripts/excel_orchestrator/fill_remarks_and_colors.py +0 -132
  462. package/skills/vds-skill/vds-scripts/excel_orchestrator/finalize_brd_and_cleanup.py +0 -295
  463. package/skills/vds-skill/vds-scripts/excel_orchestrator/finalize_brd_coverage.py +0 -327
  464. package/skills/vds-skill/vds-scripts/excel_orchestrator/fix_all_formulas.py +0 -99
  465. package/skills/vds-skill/vds-scripts/excel_orchestrator/fix_detail_presentation.py +0 -113
  466. package/skills/vds-skill/vds-scripts/excel_orchestrator/fix_presentation_and_effort.py +0 -116
  467. package/skills/vds-skill/vds-scripts/excel_orchestrator/fix_presentation_consistency.py +0 -231
  468. package/skills/vds-skill/vds-scripts/excel_orchestrator/fix_remarks_matching.py +0 -179
  469. package/skills/vds-skill/vds-scripts/excel_orchestrator/group_tasks_by_service_id.py +0 -210
  470. package/skills/vds-skill/vds-scripts/excel_orchestrator/increase_brd_coverage.py +0 -497
  471. package/skills/vds-skill/vds-scripts/excel_orchestrator/increase_effort_complexity.py +0 -155
  472. package/skills/vds-skill/vds-scripts/excel_orchestrator/organize_and_deduplicate.py +0 -273
  473. package/skills/vds-skill/vds-scripts/excel_orchestrator/pyproject.toml +0 -64
  474. package/skills/vds-skill/vds-scripts/excel_orchestrator/rebuild_all_formulas.py +0 -146
  475. package/skills/vds-skill/vds-scripts/excel_orchestrator/remove_base_multiplier_and_check_duplicates.py +0 -310
  476. package/skills/vds-skill/vds-scripts/excel_orchestrator/remove_duplicate_brd_tasks.py +0 -137
  477. package/skills/vds-skill/vds-scripts/excel_orchestrator/research_based_updates.py +0 -457
  478. package/skills/vds-skill/vds-scripts/excel_orchestrator/restore_e_values.py +0 -172
  479. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/__init__.py +0 -5
  480. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/cli.py +0 -746
  481. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/config.py +0 -74
  482. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/converters.py +0 -226
  483. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/errors.py +0 -88
  484. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/excel_client.py +0 -443
  485. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/formatters.py +0 -211
  486. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/logging.py +0 -57
  487. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/source_contract.py +0 -29
  488. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/target_state_status.py +0 -837
  489. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/ulnc_alignment.py +0 -1291
  490. package/skills/vds-skill/vds-scripts/excel_orchestrator/src/vds_excel_orchestrator/validators.py +0 -164
  491. package/skills/vds-skill/vds-scripts/excel_orchestrator/sync_detail_and_total_sheets.py +0 -211
  492. package/skills/vds-skill/vds-scripts/excel_orchestrator/tests/__init__.py +0 -1
  493. package/skills/vds-skill/vds-scripts/excel_orchestrator/tests/conftest.py +0 -36
  494. package/skills/vds-skill/vds-scripts/excel_orchestrator/tests/test_cli.py +0 -383
  495. package/skills/vds-skill/vds-scripts/excel_orchestrator/tests/test_excel_client.py +0 -129
  496. package/skills/vds-skill/vds-scripts/excel_orchestrator/tests/test_ulnc_alignment.py +0 -373
  497. package/skills/vds-skill/vds-scripts/excel_orchestrator/tests/test_validators.py +0 -64
  498. package/skills/vds-skill/vds-scripts/excel_orchestrator/update_api_database_effort.py +0 -261
  499. package/skills/vds-skill/vds-scripts/excel_orchestrator/update_buffers_inline.py +0 -115
  500. package/skills/vds-skill/vds-scripts/excel_orchestrator/update_complex_services_and_add_new.py +0 -336
  501. package/skills/vds-skill/vds-scripts/excel_orchestrator/update_responsibility_and_fix_rows.py +0 -208
  502. package/skills/vds-skill/vds-scripts/excel_orchestrator/update_task_breakdown_vietnamese.py +0 -309
  503. package/skills/vds-skill/vds-scripts/excel_orchestrator/update_vietnamese_and_responsibility.py +0 -415
  504. package/skills/vds-skill/vds-scripts/excel_orchestrator/verify_brd_coverage_comprehensive.py +0 -401
  505. package/skills/vds-skill/vds-scripts/git_orchestrator/ENHANCEMENT_SUMMARY.md +0 -119
  506. package/skills/vds-skill/vds-scripts/git_orchestrator/README.md +0 -286
  507. package/skills/vds-skill/vds-scripts/git_orchestrator/VERIFICATION_REPORT.md +0 -152
  508. package/skills/vds-skill/vds-scripts/git_orchestrator/pyproject.toml +0 -37
  509. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__init__.py +0 -30
  510. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__main__.py +0 -4
  511. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/branch_probe.py +0 -271
  512. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/cli.py +0 -892
  513. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/logging_config.py +0 -63
  514. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/manifest.py +0 -249
  515. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/orchestrator.py +0 -1647
  516. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/protocols.py +0 -35
  517. package/skills/vds-skill/vds-scripts/git_orchestrator/src/vds_git_orchestrator/reporting.py +0 -55
  518. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/__init__.py +0 -0
  519. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/test_cli_settings.py +0 -19
  520. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/test_integration.py +0 -79
  521. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/test_manifest.py +0 -79
  522. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/test_orchestrator.py +0 -207
  523. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/test_public_api.py +0 -235
  524. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/test_resilience.py +0 -343
  525. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/unit/__init__.py +0 -0
  526. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/unit/test_branch_probe.py +0 -327
  527. package/skills/vds-skill/vds-scripts/git_orchestrator/tests/unit/test_protocols.py +0 -132
  528. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/README.md +0 -241
  529. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/pyproject.toml +0 -45
  530. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/src/vds_google_sheets_orchestrator/__init__.py +0 -69
  531. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/src/vds_google_sheets_orchestrator/cli.py +0 -568
  532. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/src/vds_google_sheets_orchestrator/client.py +0 -186
  533. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/src/vds_google_sheets_orchestrator/config.py +0 -46
  534. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/src/vds_google_sheets_orchestrator/errors.py +0 -41
  535. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/tests/__init__.py +0 -1
  536. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/tests/conftest.py +0 -1
  537. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/tests/unit/__init__.py +0 -1
  538. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/tests/unit/test_cli.py +0 -212
  539. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/tests/unit/test_client.py +0 -24
  540. package/skills/vds-skill/vds-scripts/google_sheets_orchestrator/tests/unit/test_config.py +0 -16
  541. package/skills/vds-skill/vds-scripts/grafana_orchestrator/README.md +0 -572
  542. package/skills/vds-skill/vds-scripts/grafana_orchestrator/pyproject.toml +0 -102
  543. package/skills/vds-skill/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/__init__.py +0 -78
  544. package/skills/vds-skill/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/cli.py +0 -455
  545. package/skills/vds-skill/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/client.py +0 -700
  546. package/skills/vds-skill/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/config.py +0 -243
  547. package/skills/vds-skill/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/errors.py +0 -34
  548. package/skills/vds-skill/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/py.typed +0 -1
  549. package/skills/vds-skill/vds-scripts/grafana_orchestrator/tests/__init__.py +0 -1
  550. package/skills/vds-skill/vds-scripts/grafana_orchestrator/tests/conftest.py +0 -308
  551. package/skills/vds-skill/vds-scripts/grafana_orchestrator/tests/test_client.py +0 -458
  552. package/skills/vds-skill/vds-scripts/grafana_orchestrator/tests/test_config.py +0 -203
  553. package/skills/vds-skill/vds-scripts/grafana_orchestrator/tests/test_errors.py +0 -78
  554. package/skills/vds-skill/vds-scripts/jira_orchestrator/README.md +0 -864
  555. package/skills/vds-skill/vds-scripts/jira_orchestrator/pyproject.toml +0 -43
  556. package/skills/vds-skill/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/__init__.py +0 -65
  557. package/skills/vds-skill/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/adapter.py +0 -1685
  558. package/skills/vds-skill/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/cli.py +0 -2806
  559. package/skills/vds-skill/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/config.py +0 -168
  560. package/skills/vds-skill/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/errors.py +0 -34
  561. package/skills/vds-skill/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/reporting.py +0 -66
  562. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/__init__.py +0 -1
  563. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/conftest.py +0 -86
  564. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_agile_list_payloads.py +0 -54
  565. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_bulk_operations.py +0 -91
  566. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_components.py +0 -56
  567. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_createmeta.py +0 -45
  568. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_dashboard.py +0 -119
  569. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_issue_properties.py +0 -53
  570. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_permissions_compat.py +0 -41
  571. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_reindex.py +0 -42
  572. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_remote_links.py +0 -75
  573. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_transitions.py +0 -90
  574. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_user_management.py +0 -116
  575. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_version_management.py +0 -181
  576. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_adapter_watchers.py +0 -43
  577. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_advanced_search.py +0 -179
  578. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_agile.py +0 -304
  579. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_application_properties.py +0 -243
  580. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_backlog.py +0 -91
  581. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_bulk_operations.py +0 -403
  582. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_cli.py +0 -108
  583. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_components.py +0 -119
  584. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_config.py +0 -166
  585. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_dashboard.py +0 -122
  586. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_discover_fields.py +0 -207
  587. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_errors.py +0 -72
  588. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_filter_management.py +0 -411
  589. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_issue_archiving.py +0 -179
  590. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_issue_links.py +0 -257
  591. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_issue_properties.py +0 -189
  592. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_link_types.py +0 -407
  593. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_parse_set.py +0 -37
  594. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_permissions.py +0 -343
  595. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_reindex.py +0 -81
  596. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_remote_links.py +0 -269
  597. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_security_schemes.py +0 -202
  598. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_transitions_changelog.py +0 -109
  599. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_user_management.py +0 -246
  600. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_version_management.py +0 -503
  601. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_watchers.py +0 -116
  602. package/skills/vds-skill/vds-scripts/jira_orchestrator/tests/test_worklog.py +0 -243
  603. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/README.md +0 -864
  604. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/pyproject.toml +0 -43
  605. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/__init__.py +0 -65
  606. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/adapter.py +0 -1689
  607. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/cli.py +0 -2799
  608. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/config.py +0 -137
  609. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/errors.py +0 -34
  610. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/reporting.py +0 -65
  611. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/__init__.py +0 -1
  612. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/conftest.py +0 -86
  613. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_agile_list_payloads.py +0 -54
  614. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_bulk_operations.py +0 -101
  615. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_components.py +0 -64
  616. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_createmeta.py +0 -45
  617. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_dashboard.py +0 -135
  618. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_issue_properties.py +0 -63
  619. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_permissions_compat.py +0 -42
  620. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_reindex.py +0 -42
  621. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_remote_links.py +0 -89
  622. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_transitions.py +0 -91
  623. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_user_management.py +0 -130
  624. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_version_management.py +0 -189
  625. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_watchers.py +0 -49
  626. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_advanced_search.py +0 -213
  627. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_agile.py +0 -334
  628. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_application_properties.py +0 -261
  629. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_backlog.py +0 -91
  630. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_bulk_operations.py +0 -443
  631. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_cli.py +0 -106
  632. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_components.py +0 -133
  633. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_config.py +0 -166
  634. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_dashboard.py +0 -130
  635. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_discover_fields.py +0 -207
  636. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_errors.py +0 -61
  637. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_filter_management.py +0 -478
  638. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_issue_archiving.py +0 -181
  639. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_issue_links.py +0 -257
  640. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_issue_properties.py +0 -203
  641. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_link_types.py +0 -426
  642. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_parse_set.py +0 -37
  643. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_permissions.py +0 -358
  644. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_reindex.py +0 -81
  645. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_remote_links.py +0 -292
  646. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_security_schemes.py +0 -218
  647. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_transitions_changelog.py +0 -121
  648. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_user_management.py +0 -283
  649. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_version_management.py +0 -561
  650. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_watchers.py +0 -128
  651. package/skills/vds-skill/vds-scripts/jira_viettelmoney_orchestrator/tests/test_worklog.py +0 -265
  652. package/skills/vds-skill/vds-scripts/llms.txt +0 -159
  653. package/skills/vds-skill/vds-scripts/markdown_orchestrator/README.md +0 -72
  654. package/skills/vds-skill/vds-scripts/markdown_orchestrator/pyproject.toml +0 -39
  655. package/skills/vds-skill/vds-scripts/markdown_orchestrator/src/vds_markdown_orchestrator/__init__.py +0 -5
  656. package/skills/vds-skill/vds-scripts/markdown_orchestrator/src/vds_markdown_orchestrator/cli.py +0 -102
  657. package/skills/vds-skill/vds-scripts/mcp_server/Dockerfile +0 -63
  658. package/skills/vds-skill/vds-scripts/mcp_server/README.md +0 -140
  659. package/skills/vds-skill/vds-scripts/mcp_server/pyproject.toml +0 -41
  660. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/__init__.py +0 -3
  661. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/config.py +0 -36
  662. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/server.py +0 -111
  663. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/tools/__init__.py +0 -15
  664. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/tools/bitbucket_tools.py +0 -47
  665. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/tools/confluence_tools.py +0 -53
  666. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/tools/git_tools.py +0 -71
  667. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/tools/jira_tools.py +0 -63
  668. package/skills/vds-skill/vds-scripts/mcp_server/src/vds_mcp_server/tools/vidp_tools.py +0 -64
  669. package/skills/vds-skill/vds-scripts/mcp_server/tests/__init__.py +0 -1
  670. package/skills/vds-skill/vds-scripts/mcp_server/tests/conftest.py +0 -31
  671. package/skills/vds-skill/vds-scripts/mcp_server/tests/unit/__init__.py +0 -1
  672. package/skills/vds-skill/vds-scripts/mcp_server/tests/unit/test_bitbucket_tools.py +0 -28
  673. package/skills/vds-skill/vds-scripts/mcp_server/tests/unit/test_confluence_tools.py +0 -28
  674. package/skills/vds-skill/vds-scripts/mcp_server/tests/unit/test_git_tools.py +0 -35
  675. package/skills/vds-skill/vds-scripts/mcp_server/tests/unit/test_jira_tools.py +0 -35
  676. package/skills/vds-skill/vds-scripts/mcp_server/tests/verification/__init__.py +0 -6
  677. package/skills/vds-skill/vds-scripts/mcp_server/tests/verification/conftest.py +0 -51
  678. package/skills/vds-skill/vds-scripts/mcp_server/tests/verification/test_mcp_confluence_tools.py +0 -40
  679. package/skills/vds-skill/vds-scripts/mcp_server/tests/verification/test_mcp_jira_tools.py +0 -39
  680. package/skills/vds-skill/vds-scripts/mcp_server/tests/verification/test_mcp_tool_registration.py +0 -50
  681. package/skills/vds-skill/vds-scripts/pdf_orchestrator/.dockerignore +0 -93
  682. package/skills/vds-skill/vds-scripts/pdf_orchestrator/.env.example +0 -40
  683. package/skills/vds-skill/vds-scripts/pdf_orchestrator/.ruff_rules.py +0 -350
  684. package/skills/vds-skill/vds-scripts/pdf_orchestrator/.yamllint.yml +0 -43
  685. package/skills/vds-skill/vds-scripts/pdf_orchestrator/DEVELOPMENT_PLAN.md +0 -80
  686. package/skills/vds-skill/vds-scripts/pdf_orchestrator/Dockerfile +0 -87
  687. package/skills/vds-skill/vds-scripts/pdf_orchestrator/README.md +0 -608
  688. package/skills/vds-skill/vds-scripts/pdf_orchestrator/cli_verification_test/test.md +0 -6
  689. package/skills/vds-skill/vds-scripts/pdf_orchestrator/cli_verification_test/test.pdf +0 -0
  690. package/skills/vds-skill/vds-scripts/pdf_orchestrator/config/alertmanager.yml +0 -83
  691. package/skills/vds-skill/vds-scripts/pdf_orchestrator/config/prometheus.prod.yml +0 -98
  692. package/skills/vds-skill/vds-scripts/pdf_orchestrator/config/prometheus.yml +0 -40
  693. package/skills/vds-skill/vds-scripts/pdf_orchestrator/config/redis.conf +0 -78
  694. package/skills/vds-skill/vds-scripts/pdf_orchestrator/docs/COMPETITIVE_ANALYSIS_REPORT.md +0 -309
  695. package/skills/vds-skill/vds-scripts/pdf_orchestrator/docs/FEATURES_GUIDE.md +0 -518
  696. package/skills/vds-skill/vds-scripts/pdf_orchestrator/docs/MULTI_USER_DEPLOYMENT_GUIDE.md +0 -615
  697. package/skills/vds-skill/vds-scripts/pdf_orchestrator/docs/USER_GUIDE.md +0 -829
  698. package/skills/vds-skill/vds-scripts/pdf_orchestrator/pyproject.toml +0 -87
  699. package/skills/vds-skill/vds-scripts/pdf_orchestrator/pytest.ini +0 -71
  700. package/skills/vds-skill/vds-scripts/pdf_orchestrator/ruff.toml +0 -6
  701. package/skills/vds-skill/vds-scripts/pdf_orchestrator/scripts/debug_security_report.py +0 -59
  702. package/skills/vds-skill/vds-scripts/pdf_orchestrator/scripts/demo_library_selector.py +0 -109
  703. package/skills/vds-skill/vds-scripts/pdf_orchestrator/scripts/generate_project_stats.py +0 -52
  704. package/skills/vds-skill/vds-scripts/pdf_orchestrator/scripts/generate_styled_pdf.py +0 -95
  705. package/skills/vds-skill/vds-scripts/pdf_orchestrator/scripts/migrate_render_pdfs.py +0 -285
  706. package/skills/vds-skill/vds-scripts/pdf_orchestrator/scripts/setup_team.bat +0 -283
  707. package/skills/vds-skill/vds-scripts/pdf_orchestrator/scripts/setup_team.sh +0 -324
  708. package/skills/vds-skill/vds-scripts/pdf_orchestrator/src/vds_pdf_orchestrator/__init__.py +0 -5
  709. package/skills/vds-skill/vds-scripts/pdf_orchestrator/src/vds_pdf_orchestrator/cli.py +0 -542
  710. package/skills/vds-skill/vds-scripts/pdf_orchestrator/src/vds_pdf_orchestrator/config.py +0 -33
  711. package/skills/vds-skill/vds-scripts/pdf_orchestrator/tests/README.md +0 -650
  712. package/skills/vds-skill/vds-scripts/pdf_orchestrator/tests/__init__.py +0 -0
  713. package/skills/vds-skill/vds-scripts/pdf_orchestrator/tests/conftest.py +0 -520
  714. package/skills/vds-skill/vds-scripts/pdf_orchestrator/tests/requirements.txt +0 -51
  715. package/skills/vds-skill/vds-scripts/pdf_orchestrator/tests/run_tests.py +0 -659
  716. package/skills/vds-skill/vds-scripts/pdf_orchestrator/tests/test_config.py +0 -36
  717. package/skills/vds-skill/vds-scripts/platform_core/pyproject.toml +0 -49
  718. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/__init__.py +0 -16
  719. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/alembic/__init__.py +0 -18
  720. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/alembic/runtime.py +0 -139
  721. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/config.py +0 -88
  722. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/credentials.py +0 -40
  723. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/env.py +0 -24
  724. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/errors.py +0 -127
  725. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/http/__init__.py +0 -18
  726. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/http/auth.py +0 -32
  727. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/http/errors.py +0 -47
  728. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/http/pagination.py +0 -65
  729. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/http/retry.py +0 -62
  730. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/http/stack.py +0 -61
  731. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/logging.py +0 -132
  732. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/protocols.py +0 -77
  733. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/serialization.py +0 -80
  734. package/skills/vds-skill/vds-scripts/platform_core/src/vds_platform_core/severity.py +0 -175
  735. package/skills/vds-skill/vds-scripts/platform_core/tests/__init__.py +0 -0
  736. package/skills/vds-skill/vds-scripts/platform_core/tests/conftest.py +0 -1
  737. package/skills/vds-skill/vds-scripts/platform_core/tests/test_alembic_runtime.py +0 -300
  738. package/skills/vds-skill/vds-scripts/platform_core/tests/test_auth.py +0 -84
  739. package/skills/vds-skill/vds-scripts/platform_core/tests/test_config.py +0 -83
  740. package/skills/vds-skill/vds-scripts/platform_core/tests/test_credentials.py +0 -73
  741. package/skills/vds-skill/vds-scripts/platform_core/tests/test_env.py +0 -56
  742. package/skills/vds-skill/vds-scripts/platform_core/tests/test_errors.py +0 -201
  743. package/skills/vds-skill/vds-scripts/platform_core/tests/test_errors_http.py +0 -74
  744. package/skills/vds-skill/vds-scripts/platform_core/tests/test_http_settings.py +0 -116
  745. package/skills/vds-skill/vds-scripts/platform_core/tests/test_logging.py +0 -148
  746. package/skills/vds-skill/vds-scripts/platform_core/tests/test_pagination.py +0 -153
  747. package/skills/vds-skill/vds-scripts/platform_core/tests/test_protocols.py +0 -132
  748. package/skills/vds-skill/vds-scripts/platform_core/tests/test_retry.py +0 -151
  749. package/skills/vds-skill/vds-scripts/platform_core/tests/test_serialization.py +0 -92
  750. package/skills/vds-skill/vds-scripts/platform_core/tests/test_severity.py +0 -178
  751. package/skills/vds-skill/vds-scripts/platform_core/tests/test_stack.py +0 -130
  752. package/skills/vds-skill/vds-scripts/platform_core/uv.lock +0 -341
  753. package/skills/vds-skill/vds-scripts/pyproject.toml +0 -145
  754. package/skills/vds-skill/vds-scripts/pyrightconfig.json +0 -82
  755. package/skills/vds-skill/vds-scripts/repo-manifest.yaml +0 -380
  756. package/skills/vds-skill/vds-scripts/repo-manifest.yaml.example +0 -25
  757. package/skills/vds-skill/vds-scripts/ruff.toml +0 -100
  758. package/skills/vds-skill/vds-scripts/scripts/BRD-Validation-API.postman_collection.json +0 -706
  759. package/skills/vds-skill/vds-scripts/scripts/BRD-Validation-README.md +0 -308
  760. package/skills/vds-skill/vds-scripts/scripts/README.md +0 -271
  761. package/skills/vds-skill/vds-scripts/scripts/_validate_alias_phase2.py +0 -137
  762. package/skills/vds-skill/vds-scripts/scripts/audit-cli-patterns.sh +0 -135
  763. package/skills/vds-skill/vds-scripts/scripts/audit-dashboard.sh +0 -525
  764. package/skills/vds-skill/vds-scripts/scripts/backup.sh +0 -123
  765. package/skills/vds-skill/vds-scripts/scripts/bootstrap_uv.sh +0 -69
  766. package/skills/vds-skill/vds-scripts/scripts/brd-validation-environment.json +0 -51
  767. package/skills/vds-skill/vds-scripts/scripts/brd-validation-test-results.json +0 -13023
  768. package/skills/vds-skill/vds-scripts/scripts/brd_coverage_report.json +0 -276
  769. package/skills/vds-skill/vds-scripts/scripts/check-future-annotations.py +0 -22
  770. package/skills/vds-skill/vds-scripts/scripts/check-invalid-symlinks.py +0 -183
  771. package/skills/vds-skill/vds-scripts/scripts/check-no-debug-markers.py +0 -21
  772. package/skills/vds-skill/vds-scripts/scripts/check-no-unittest.py +0 -21
  773. package/skills/vds-skill/vds-scripts/scripts/ci/assert_no_openspace_commits.sh +0 -37
  774. package/skills/vds-skill/vds-scripts/scripts/ci/verify_branch_protection.sh +0 -64
  775. package/skills/vds-skill/vds-scripts/scripts/closure/phase1_check.sh +0 -483
  776. package/skills/vds-skill/vds-scripts/scripts/closure/phase2_check.sh +0 -500
  777. package/skills/vds-skill/vds-scripts/scripts/create_memory_session.py +0 -36
  778. package/skills/vds-skill/vds-scripts/scripts/deploy-bootstrap.sh +0 -201
  779. package/skills/vds-skill/vds-scripts/scripts/deployment/load_docker_images_offline.sh +0 -90
  780. package/skills/vds-skill/vds-scripts/scripts/dev/cli_smoke.sh +0 -259
  781. package/skills/vds-skill/vds-scripts/scripts/final_completion_report.md +0 -139
  782. package/skills/vds-skill/vds-scripts/scripts/folder_structure_report.json +0 -321
  783. package/skills/vds-skill/vds-scripts/scripts/generate_completion_report.py +0 -132
  784. package/skills/vds-skill/vds-scripts/scripts/generate_intellij_modules.py +0 -154
  785. package/skills/vds-skill/vds-scripts/scripts/init-pgbouncer-userlist.sh +0 -154
  786. package/skills/vds-skill/vds-scripts/scripts/link_integrity_report.json +0 -807
  787. package/skills/vds-skill/vds-scripts/scripts/move_audit_artifact_pages.py +0 -252
  788. package/skills/vds-skill/vds-scripts/scripts/move_audit_artifact_pages_rest.py +0 -165
  789. package/skills/vds-skill/vds-scripts/scripts/move_wrong_dept_pages.py +0 -235
  790. package/skills/vds-skill/vds-scripts/scripts/openspace_bootstrap.sh +0 -56
  791. package/skills/vds-skill/vds-scripts/scripts/openspace_common.sh +0 -75
  792. package/skills/vds-skill/vds-scripts/scripts/openspace_doctor.sh +0 -61
  793. package/skills/vds-skill/vds-scripts/scripts/openspace_sync_shadow.sh +0 -65
  794. package/skills/vds-skill/vds-scripts/scripts/phase7-baseline.sh +0 -77
  795. package/skills/vds-skill/vds-scripts/scripts/preflight/env_check.sh +0 -102
  796. package/skills/vds-skill/vds-scripts/scripts/repair_autopay_reports.sh +0 -173
  797. package/skills/vds-skill/vds-scripts/scripts/rollback_drill.sh +0 -659
  798. package/skills/vds-skill/vds-scripts/scripts/run-audit-in-tmux.sh +0 -286
  799. package/skills/vds-skill/vds-scripts/scripts/run-department-audit.sh +0 -495
  800. package/skills/vds-skill/vds-scripts/scripts/run-project-audit.sh +0 -267
  801. package/skills/vds-skill/vds-scripts/scripts/save_intellij_memories.py +0 -112
  802. package/skills/vds-skill/vds-scripts/scripts/save_memories_to_vds_ai.py +0 -81
  803. package/skills/vds-skill/vds-scripts/scripts/save_memories_vds_style.py +0 -133
  804. package/skills/vds-skill/vds-scripts/scripts/search_intellij_memories.py +0 -48
  805. package/skills/vds-skill/vds-scripts/scripts/setup_intellij_workspace.py +0 -71
  806. package/skills/vds-skill/vds-scripts/scripts/smoke-test-deploy.sh +0 -137
  807. package/skills/vds-skill/vds-scripts/scripts/smoke_deploy_lib.py +0 -205
  808. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/README.md +0 -89
  809. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/confluence_sync_coordinator.sh +0 -27
  810. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/coordination.sh +0 -114
  811. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/diagram_coordinator.sh +0 -25
  812. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/docs_root.sh +0 -22
  813. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/generate_diagrams.sh +0 -22
  814. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/markdown_coordinator.sh +0 -25
  815. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/progress_dashboard.sh +0 -17
  816. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/schema_coordinator.sh +0 -25
  817. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/sync_confluence.sh +0 -30
  818. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/update_dependencies.sh +0 -19
  819. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/validate_links.sh +0 -86
  820. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/validate_markdown.sh +0 -52
  821. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/validate_schemas.sh +0 -26
  822. package/skills/vds-skill/vds-scripts/scripts/target-state-automation/validate_structure.sh +0 -98
  823. package/skills/vds-skill/vds-scripts/scripts/tests/__init__.py +0 -1
  824. package/skills/vds-skill/vds-scripts/scripts/tests/test_dockerfile_correctness.py +0 -815
  825. package/skills/vds-skill/vds-scripts/scripts/tests/test_makefile_loadouts.py +0 -560
  826. package/skills/vds-skill/vds-scripts/scripts/tests/test_smoke_deploy.py +0 -313
  827. package/skills/vds-skill/vds-scripts/scripts/tests/test_verify_alembic.py +0 -581
  828. package/skills/vds-skill/vds-scripts/scripts/tests/test_verify_infra_topology.py +0 -254
  829. package/skills/vds-skill/vds-scripts/scripts/update_modules_xml.py +0 -194
  830. package/skills/vds-skill/vds-scripts/scripts/uv-workspace-alignment-verification-2026-03-25.md +0 -128
  831. package/skills/vds-skill/vds-scripts/scripts/uv-workspace-alignment-verification-2026-04-18.md +0 -100
  832. package/skills/vds-skill/vds-scripts/scripts/validate-cli-standardization.sh +0 -188
  833. package/skills/vds-skill/vds-scripts/scripts/validate_brd_coverage.py +0 -197
  834. package/skills/vds-skill/vds-scripts/scripts/validate_folder_structure.py +0 -234
  835. package/skills/vds-skill/vds-scripts/scripts/validate_link_integrity.py +0 -274
  836. package/skills/vds-skill/vds-scripts/scripts/vami017-caller-compat-report.md +0 -62
  837. package/skills/vds-skill/vds-scripts/scripts/vami017-phase-b-scaffold-notes.md +0 -79
  838. package/skills/vds-skill/vds-scripts/scripts/vds_sh_helpers.sh +0 -180
  839. package/skills/vds-skill/vds-scripts/scripts/verification/phase2_portable_paths_ubuntu_docker.sh +0 -26
  840. package/skills/vds-skill/vds-scripts/scripts/verify-infra-topology.py +0 -868
  841. package/skills/vds-skill/vds-scripts/scripts/verify-memory-cli-e2e.sh +0 -598
  842. package/skills/vds-skill/vds-scripts/scripts/verify-worktree-features.sh +0 -306
  843. package/skills/vds-skill/vds-scripts/scripts/worktree-add.sh +0 -128
  844. package/skills/vds-skill/vds-scripts/scripts/worktree-remove.sh +0 -112
  845. package/skills/vds-skill/vds-scripts/scripts/worktree_compose.sh +0 -269
  846. package/skills/vds-skill/vds-scripts/scripts/worktree_uv.sh +0 -77
  847. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/IMPLEMENTATION_AUDIT.md +0 -376
  848. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/README.md +0 -507
  849. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/pyproject.toml +0 -106
  850. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/scripts/ensure_symlink.sh +0 -38
  851. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/__init__.py +0 -164
  852. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/batch.py +0 -212
  853. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/cli.py +0 -1407
  854. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/client.py +0 -608
  855. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/config.py +0 -260
  856. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/diff.py +0 -220
  857. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/errors.py +0 -34
  858. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/external_sca.py +0 -932
  859. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/portfolio.py +0 -225
  860. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/pr.py +0 -505
  861. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/reports.py +0 -342
  862. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/scanner.py +0 -351
  863. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/webhooks.py +0 -269
  864. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/__init__.py +0 -0
  865. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/conftest.py +0 -134
  866. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/test_batch.py +0 -419
  867. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/test_config.py +0 -145
  868. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/test_errors.py +0 -78
  869. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/test_external_sca.py +0 -466
  870. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/test_pr.py +0 -471
  871. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/test_reports.py +0 -511
  872. package/skills/vds-skill/vds-scripts/sonarqube_orchestrator/tests/test_webhooks.py +0 -660
  873. package/skills/vds-skill/vds-scripts/uv.lock +0 -5046
  874. package/skills/vds-skill/vds-scripts/vds_agent_core/CHANGELOG.md +0 -36
  875. package/skills/vds-skill/vds-scripts/vds_agent_core/README.md +0 -453
  876. package/skills/vds-skill/vds-scripts/vds_agent_core/docs/PHASE9A_ASSESSMENT.md +0 -50
  877. package/skills/vds-skill/vds-scripts/vds_agent_core/docs/embedding.md +0 -468
  878. package/skills/vds-skill/vds-scripts/vds_agent_core/pyproject.toml +0 -51
  879. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/__init__.py +0 -29
  880. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/agents/__init__.py +0 -26
  881. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/agents/hooks.py +0 -119
  882. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/agents/loop.py +0 -864
  883. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/agents/tools.py +0 -41
  884. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/config.py +0 -252
  885. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/llm/__init__.py +0 -55
  886. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/llm/_cascade.py +0 -143
  887. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/llm/budget.py +0 -353
  888. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/llm/cache.py +0 -373
  889. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/llm/embedding.py +0 -815
  890. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/llm/provider.py +0 -173
  891. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/llm/schemas.py +0 -45
  892. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/observability/__init__.py +0 -77
  893. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/observability/decorators.py +0 -258
  894. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/observability/jsonl_exporter.py +0 -236
  895. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/observability/tracer.py +0 -497
  896. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/profiles.py +0 -2015
  897. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/runtime/__init__.py +0 -0
  898. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/runtime/agent_id.py +0 -60
  899. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/security/__init__.py +0 -13
  900. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/security/credentials.py +0 -106
  901. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/skills/__init__.py +0 -1
  902. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/skills/executor.py +0 -238
  903. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/skills/manager.py +0 -381
  904. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/skills/policy.py +0 -568
  905. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/workflows/__init__.py +0 -19
  906. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/workflows/langgraph_runner.py +0 -102
  907. package/skills/vds-skill/vds-scripts/vds_agent_core/src/vds_agent_core/workflows/protocols.py +0 -81
  908. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/__init__.py +0 -0
  909. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/conftest.py +0 -62
  910. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/integration/__init__.py +0 -0
  911. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/integration/test_audit_loop_hooks_integration.py +0 -135
  912. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/integration/test_audit_observability_integration.py +0 -246
  913. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/integration/test_public_api_stability.py +0 -91
  914. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/__init__.py +0 -0
  915. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/__init__.py +0 -0
  916. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_call_site_parallelism.py +0 -30
  917. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_dimension_guardrail.py +0 -25
  918. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_drop_in_provider_extensibility.py +0 -76
  919. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_embedding.py +0 -393
  920. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_embedding_cache.py +0 -302
  921. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_embedding_extra.py +0 -696
  922. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_embedding_subclass.py +0 -49
  923. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_no_provider_leakage_in_env.py +0 -34
  924. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_provider_auto_route.py +0 -48
  925. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_runtime_log_clean.py +0 -111
  926. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/llm/test_w7_logic_fixes.py +0 -219
  927. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/profiles/__init__.py +0 -0
  928. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/profiles/test_embedding_block_parser.py +0 -194
  929. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/profiles/test_env_resolver_allowlist.py +0 -141
  930. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/profiles/test_profile_authorization.py +0 -158
  931. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/profiles/test_profiles_w3_extra.py +0 -547
  932. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/profiles/test_real_audit_profile_compat.py +0 -129
  933. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/runtime/__init__.py +0 -0
  934. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/runtime/test_for_agent.py +0 -322
  935. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/runtime/test_w9_cascade_edges.py +0 -369
  936. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/security/__init__.py +0 -0
  937. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/security/test_credentials.py +0 -132
  938. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_agent_loop.py +0 -663
  939. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_agent_loop_coverage.py +0 -429
  940. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_agents_hooks_defaults.py +0 -22
  941. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_budget.py +0 -155
  942. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_budget_coverage.py +0 -264
  943. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_budget_tracking_only.py +0 -71
  944. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_cache.py +0 -251
  945. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_cache_context.py +0 -62
  946. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_config.py +0 -155
  947. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_langgraph_runner.py +0 -45
  948. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_langgraph_runner_coverage.py +0 -98
  949. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_llm_cache_deep.py +0 -113
  950. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_observability_decorators.py +0 -697
  951. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_observability_hooks.py +0 -217
  952. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_observability_jsonl_exporter.py +0 -542
  953. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_observability_jsonl_wiring.py +0 -313
  954. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_observability_tracer.py +0 -896
  955. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_profiles.py +0 -1571
  956. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_profiles_coverage.py +0 -444
  957. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_provider.py +0 -316
  958. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_schemas.py +0 -63
  959. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_skill_executor.py +0 -297
  960. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_skill_manager.py +0 -370
  961. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_skill_manager_coverage.py +0 -364
  962. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_skill_policy.py +0 -402
  963. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_skill_rubric.py +0 -47
  964. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_tools.py +0 -51
  965. package/skills/vds-skill/vds-scripts/vds_agent_core/tests/unit/test_workflow_protocols.py +0 -136
  966. package/skills/vds-skill/vds-scripts/vds_cli/README.md +0 -201
  967. package/skills/vds-skill/vds-scripts/vds_cli/VERIFICATION_REPORT.md +0 -41
  968. package/skills/vds-skill/vds-scripts/vds_cli/pyproject.toml +0 -50
  969. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/__init__.py +0 -3
  970. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/assets/git-credential-helper.py +0 -235
  971. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/cli.py +0 -1158
  972. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/commands/__init__.py +0 -1
  973. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/commands/lint_cli.py +0 -389
  974. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/confluence_sync.py +0 -846
  975. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/docs/consumption/__init__.py +0 -7
  976. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/docs/consumption/funnel.py +0 -105
  977. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/docs/consumption/scanner.py +0 -211
  978. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/docs/freshness/report.py +0 -90
  979. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/docs/types.py +0 -27
  980. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/docs_cmd.py +0 -672
  981. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/docs_metrics.py +0 -75
  982. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/docs_sync.py +0 -1171
  983. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/ecosystem/__init__.py +0 -39
  984. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/ecosystem/report.py +0 -439
  985. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/ecosystem_docs.py +0 -164
  986. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/env.py +0 -111
  987. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/env_git_helper.py +0 -281
  988. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/__init__.py +0 -3
  989. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/google_sheets_orchestrator.py +0 -173
  990. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/router.py +0 -232
  991. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/skills_cmd.py +0 -274
  992. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/sync_api.py +0 -613
  993. package/skills/vds-skill/vds-scripts/vds_cli/src/vds_cli/sync_service.py +0 -283
  994. package/skills/vds-skill/vds-scripts/vds_cli/tests/conftest.py +0 -62
  995. package/skills/vds-skill/vds-scripts/vds_cli/tests/test_env_git_helper_lifecycle.py +0 -261
  996. package/skills/vds-skill/vds-scripts/vds_cli/tests/test_git_credential_helper.py +0 -240
  997. package/skills/vds-skill/vds-scripts/vds_cli/tests/test_router_help_proxy.py +0 -43
  998. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_cli.py +0 -264
  999. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_cli_DOC004.py +0 -110
  1000. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_confluence_sync.py +0 -315
  1001. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_confluence_sync_wave7.py +0 -375
  1002. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_consumption_funnel.py +0 -106
  1003. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_consumption_scanner.py +0 -144
  1004. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_docs_cmd.py +0 -89
  1005. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_docs_cmd_wave8.py +0 -161
  1006. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_docs_metrics.py +0 -16
  1007. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_docs_quality_score.py +0 -61
  1008. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_docs_sync.py +0 -417
  1009. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_ecosystem_cli_dashboard.py +0 -667
  1010. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_ecosystem_cli_dashboard_rendering.py +0 -143
  1011. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_ecosystem_docs.py +0 -63
  1012. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_env.py +0 -85
  1013. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_freshness_report.py +0 -125
  1014. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_lint_cli.py +0 -224
  1015. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_router.py +0 -101
  1016. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_skills_cmd.py +0 -419
  1017. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_sync_api.py +0 -357
  1018. package/skills/vds-skill/vds-scripts/vds_cli/tests/unit/test_sync_service.py +0 -170
  1019. package/skills/vds-skill/vds-scripts/vds_cli/tests/verification/conftest.py +0 -51
  1020. package/skills/vds-skill/vds-scripts/vds_cli/tests/verification/test_bitbucket_real.py +0 -32
  1021. package/skills/vds-skill/vds-scripts/vds_cli/tests/verification/test_confluence_real.py +0 -32
  1022. package/skills/vds-skill/vds-scripts/vds_cli/tests/verification/test_jira_real.py +0 -40
  1023. package/skills/vds-skill/vds-scripts/vds_cli_common/README.md +0 -190
  1024. package/skills/vds-skill/vds-scripts/vds_cli_common/pyproject.toml +0 -96
  1025. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/__init__.py +0 -36
  1026. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/app.py +0 -55
  1027. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/completers.py +0 -139
  1028. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/context.py +0 -201
  1029. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/env.py +0 -163
  1030. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/errors.py +0 -440
  1031. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/migrate_sdlc_config.py +0 -210
  1032. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/output.py +0 -284
  1033. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/paths.py +0 -78
  1034. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/testing.py +0 -211
  1035. package/skills/vds-skill/vds-scripts/vds_cli_common/src/vds_cli_common/version.py +0 -85
  1036. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/__init__.py +0 -0
  1037. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_app.py +0 -126
  1038. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_completers.py +0 -148
  1039. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_context.py +0 -192
  1040. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_env.py +0 -235
  1041. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_errors.py +0 -275
  1042. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_migrate_sdlc_config.py +0 -257
  1043. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_output.py +0 -229
  1044. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_paths.py +0 -61
  1045. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_testing.py +0 -138
  1046. package/skills/vds-skill/vds-scripts/vds_cli_common/tests/test_version.py +0 -64
  1047. package/skills/vds-skill/vds-scripts/vidp_orchestrator/README.md +0 -31
  1048. package/skills/vds-skill/vds-scripts/vidp_orchestrator/pyproject.toml +0 -50
  1049. package/skills/vds-skill/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/__init__.py +0 -26
  1050. package/skills/vds-skill/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/cli.py +0 -246
  1051. package/skills/vds-skill/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/client.py +0 -104
  1052. package/skills/vds-skill/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/config.py +0 -82
  1053. package/skills/vds-skill/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/workflows.json +0 -3
  1054. package/skills/vds-skill/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/workflows.py +0 -130
  1055. package/skills/vds-skill/vds-scripts-skill/.openskills.json +0 -6
  1056. package/skills/vds-skill/vds-scripts-skill/QUALITY.md +0 -44
  1057. package/skills/vds-skill/vds-scripts-skill/SKILL.md +0 -132
  1058. package/skills/vds-skill/vds-scripts-skill/references/audit-commands.md +0 -171
  1059. package/skills/vds-skill/vds-scripts-skill/references/capability-index.md +0 -34
  1060. package/skills/vds-skill/vds-scripts-skill/references/development-commands.md +0 -12
  1061. package/skills/vds-skill/vds-scripts-skill/references/google-sheets.md +0 -71
  1062. package/skills/vds-skill/vds-scripts-skill/references/integration-commands.md +0 -17
  1063. package/skills/vds-skill/vds-scripts-skill/references/platform-bootstrap.md +0 -31
  1064. package/skills/vds-skill/vds-scripts-skill/references/specialist-routing.md +0 -14
  1065. package/skills/vds-skill/vds-scripts-skill/references/validation-commands.md +0 -15
@@ -1,435 +0,0 @@
1
- {
2
- "repo_path": "/Users/vds-ai/.vds/cache/repos/policy-project/cdcn-policy-data-processing-service",
3
- "files": [
4
- {
5
- "file_path": "README.md",
6
- "content": "# Câu lệnh insert bảng TRANS_DAILY_HIS_FINANCE DB Bankplus để test đẩy Kafka message\n\n```\nINSERT INTO BANKPLUS.TRANS_DAILY_HIS_FINANCE(TRANS_DAILY_HIS_FINANCE_ID,\n REQUEST_ID,\n REQUEST_DATE,\n PROCESS_CODE,\n SERVICE_CODE,\n PROCESS_NAME,\n REQUEST_MTI,\n REF_NO,\n AUDIT_NO,\n ACC_TYPE_NAME,\n MSISDN,\n VIETTEL_BANK_CODE,\n TRANS_AMOUNT,\n TRANS_AMOUNT_WORD,\n TRANS_FEE,\n TRANS_CONTENT,\n TRANS_STATUS,\n RESPONSE_DATE,\n RESPONSE_MTI,\n SRC_REQUEST_ID,\n SMS_ID,\n REQUEST_CONTENT,\n APP_ID,\n TELCO_CODE,\n MOBILE_ID,\n CUST_CORE_BANK_CODE,\n INSERT_DATE,\n ERROR_CODE)\nVALUES (SEQ_TRANS_DAILY_HIS_FINANCE_ID.nextval,\n 201126911676466,\n TO_DATE('2020-12-29 19:04:25', 'YYYY-MM-DD HH24:MI:SS'),\n '300001',\n null,\n 'Hoan tien giao dich ',\n '0400',\n null,\n '676466',\n 'Tài khoản KH cá nhân',\n '84385077993',\n 'MM',\n 30000,\n null,\n 2600,\n 'Goi ban tin revert giao dich tru tien MM 201126911676466',\n '0',\n TO_DATE('2020-11-26 19:04:24', 'YYYY-MM-DD HH24:MI:SS'),\n null,\n 201126765399480,\n null,\n '0|MTI|1400, 3|PROCESS CODE|678910, 4|TRANSACTION AMOUNT|3000000, 7|TRANSMISSION DATE/TIME|20201126190425, 11|SYSTEM TRACE AUDIT NUMBER|676466, 28|TRANSACTION FEE|2600, 32|TELCO CODE|BankPlus, 37|REFERENCE NUMBER|126911676466, 55|VIETTEL REQUEST ID|201126911676466, 60|MOBILE NUMBER|84385077993, 64|MESSAGE SIGNATURE|ABC123, 67|TRANSACTION INQUIRY TYPE|2, 83|DISCOUNT_AMOUNT BANK|000, 87|INTEREST TYPE|2, 92|ORINGINAL REQUEST ID|201126765399480, 100|VIETTEL BANK CODE|MM, 124|CONTENT DESCRIPTION SERVICE|Goi ban tin revert giao dich tru tien MM 201126911676466,',\n '4',\n 'BankPlus',\n 70584925,\n 'MM',\n TO_DATE('2020-11-26 19:04:24', 'YYYY-MM-DD HH24:MI:SS'),\n '00');\n```\n\n# Kafka consumer configs\nclass: org.apache.kafka.clients.consumer.ConsumerConfig\n\n# Kafka producer configs\nclass: org.apache.kafka.clients.producer.ProducerConfig\n\n# Spring Cloud Stream producer properties\nclass: org.springframework.cloud.stream.binder.ProducerProperties\n",
7
- "truncated": false,
8
- "original_lines": 69,
9
- "original_bytes": 3310,
10
- "priority": 1
11
- },
12
- {
13
- "file_path": "Dockerfile",
14
- "content": "FROM openjdk:8-jre-alpine\n\nWORKDIR /java-app\n\nCOPY dist/policy-data-processing-service-1.0-RELEASE.jar app.jar\n\nENTRYPOINT [\"java\",\"-jar\",\"/java-app/app.jar\"]",
15
- "truncated": false,
16
- "original_lines": 7,
17
- "original_bytes": 158,
18
- "priority": 3
19
- },
20
- {
21
- "file_path": "pom.xml",
22
- "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n <modelVersion>4.0.0</modelVersion>\n <parent>\n <groupId>vn.com.viettel.vds</groupId>\n <artifactId>java-spring-parent-pom</artifactId>\n <version>1.0-SNAPSHOT</version>\n </parent>\n <artifactId>policy-data-processing-service</artifactId>\n <version>1.0-RELEASE</version>\n <name>policy-data-processing-service</name>\n <description>Policy Data Processing Service</description>\n\n <properties>\n <java.version>1.8</java.version>\n <spring-cloud.version>Hoxton.SR4</spring-cloud.version>\n <springdoc.version>1.4.8</springdoc.version>\n <mariadb-java-client.version>2.4.3</mariadb-java-client.version>\n <mapstruct.version>1.3.1.Final</mapstruct.version>\n <hibernate.version>5.4.12.Final</hibernate.version>\n <newrelic.version>5.11.0</newrelic.version>\n <log4j2.version>2.23.1</log4j2.version>\n </properties>\n\n <dependencies>\n <!-- Web -->\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-web</artifactId>\n <exclusions>\n <exclusion>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-logging</artifactId>\n </exclusion>\n </exclusions>\n </dependency>\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-log4j2</artifactId>\n </dependency>\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-actuator</artifactId>\n </dependency>\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-devtools</artifactId>\n <scope>runtime</scope>\n <optional>true</optional>\n </dependency>\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-configuration-processor</artifactId>\n <optional>true</optional>\n </dependency>\n <dependency>\n <groupId>org.projectlombok</groupId>\n <artifactId>lombok</artifactId>\n <optional>true</optional>\n </dependency>\n <dependency>\n <groupId>com.fasterxml.jackson.datatype</groupId>\n <artifactId>jackson-datatype-hibernate5</artifactId>\n </dependency>\n <!-- Web -->\n\n <!-- Database -->\n <dependency>\n <groupId>org.mariadb.jdbc</groupId>\n <artifactId>mariadb-java-client</artifactId>\n <version>${mariadb-java-client.version}</version>\n </dependency>\n <dependency>\n <groupId>org.mapstruct</groupId>\n <artifactId>mapstruct</artifactId>\n <version>${mapstruct.version}</version>\n </dependency>\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-data-jpa</artifactId>\n </dependency>\n <dependency>\n <groupId>org.hibernate</groupId>\n <artifactId>hibernate-envers</artifactId>\n <version>${hibernate.version}</version>\n </dependency>\n <!-- Database -->\n\n <!-- Cache -->\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-cache</artifactId>\n </dependency>\n <!-- Cache -->\n\n <!-- Data migration -->\n <dependency>\n <groupId>org.liquibase</groupId>\n <artifactId>liquibase-core</artifactId>\n </dependency>\n <!-- Data migration -->\n\n <!-- Cloud config -->\n <dependency>\n <groupId>org.springframework.cloud</groupId>\n <artifactId>spring-cloud-starter-config</artifactId>\n </dependency>\n <!-- Cloud config -->\n\n <!-- Others -->\n <dependency>\n <groupId>org.springframework.cloud</groupId>\n <artifactId>spring-cloud-starter-sleuth</artifactId>\n </dependency>\n <dependency>\n <groupId>com.google.code.gson</groupId>\n <artifactId>gson</artifactId>\n <version>2.8.6</version>\n </dependency>\n <dependency>\n <groupId>org.apache.commons</groupId>\n <artifactId>commons-collections4</artifactId>\n <version>4.4</version>\n </dependency>\n\n <!-- Others -->\n\n <!-- Feign -->\n <dependency>\n <groupId>org.springframework.cloud</groupId>\n <artifactId>spring-cloud-starter-openfeign</artifactId>\n </dependency>\n <!-- Feign -->\n\n <!-- Cloud stream -->\n <dependency>\n <groupId>org.springframework.cloud</groupId>\n <artifactId>spring-cloud-stream</artifactId>\n </dependency>\n <dependency>\n <groupId>org.springframework.cloud</groupId>\n <artifactId>spring-cloud-stream-binder-kafka</artifactId>\n </dependency>\n <dependency>\n <groupId>org.springframework.kafka</groupId>\n <artifactId>spring-kafka</artifactId>\n </dependency>\n <!-- Cloud stream -->\n\n <!-- Redis -->\n <dependency>\n <groupId>org.redisson</groupId>\n <artifactId>redisson-spring-data-22</artifactId>\n <version>3.33.0</version>\n </dependency>\n <!-- Redis -->\n\n <!-- Redis -->\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-data-redis</artifactId>\n </dependency>\n <!-- Redis -->\n\n <!-- Micrometer -->\n <dependency>\n <groupId>io.micrometer</groupId>\n <artifactId>micrometer-registry-prometheus</artifactId>\n </dependency>\n <!-- Micrometer -->\n\n <!-- Vault -->\n <dependency>\n <groupId>org.springframework.cloud</groupId>\n <artifactId>spring-cloud-starter-vault-config</artifactId>\n </dependency>\n <dependency>\n <groupId>org.springframework.cloud</groupId>\n <artifactId>spring-cloud-vault-config-databases</artifactId>\n </dependency>\n <!-- End Vault -->\n\n <!-- Springdoc -->\n <dependency>\n <groupId>org.springdoc</groupId>\n <artifactId>springdoc-openapi-ui</artifactId>\n <version>${springdoc.version}</version>\n </dependency>\n <!-- Springdoc -->\n\n <!-- log -->\n <dependency>\n <groupId>com.newrelic.agent.java</groupId>\n <artifactId>newrelic-api</artifactId>\n <version>${newrelic.version}</version>\n </dependency>\n <dependency>\n <groupId>org.zalando</groupId>\n <artifactId>logbook-spring-boot-starter</artifactId>\n <version>2.1.0</version>\n </dependency>\n <!-- log -->\n\n <!-- Test -->\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-test</artifactId>\n <scope>test</scope>\n <exclusions>\n <exclusion>\n <groupId>org.junit.vintage</groupId>\n <artifactId>junit-vintage-engine</artifactId>\n </exclusion>\n </exclusions>\n </dependency>\n <dependency>\n <groupId>org.springframework.cloud</groupId>\n <artifactId>spring-cloud-stream-test-support</artifactId>\n <scope>test</scope>\n </dependency>\n <dependency>\n <groupId>org.springframework.cloud</groupId>\n <artifactId>spring-cloud-stream</artifactId>\n <type>test-jar</type>\n <scope>test</scope>\n <classifier>test-binder</classifier>\n </dependency>\n <!-- Test -->\n </dependencies>\n\n <dependencyManagement>\n <dependencies>\n <dependency>\n <groupId>org.springframework.cloud</groupId>\n <artifactId>spring-cloud-dependencies</artifactId>\n <version>${spring-cloud.version}</version>\n <type>pom</type>\n <scope>import</scope>\n </dependency>\n </dependencies>\n </dependencyManagement>\n\n <build>\n <plugins>\n <plugin>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-maven-plugin</artifactId>\n </plugin>\n <plugin>\n <groupId>org.apache.maven.plugins</groupId>\n <artifactId>maven-compiler-plugin</artifactId>\n <configuration>\n <source>${maven.compiler.source}</source> <!-- depending on your project -->\n <target>${maven.compiler.source}</target> <!-- depending on your project -->\n <annotationProcessorPaths>\n <path>\n <groupId>org.projectlombok</groupId>\n <artifactId>lombok</artifactId>\n <version>${lombok.version}</version>\n </path>\n <path>\n <groupId>org.mapstruct</groupId>\n <artifactId>mapstruct-processor</artifactId>\n <version>1.3.1.Final</version>\n </path>\n <!-- other annotation processors -->\n </annotationProcessorPaths>\n </configuration>\n </plugin>\n </plugins>\n </build>\n\n <profiles>\n <profile>\n <id>remove-resource</id>\n <build>\n <resources>\n <resource>\n <directory>src/main/resources</directory>\n <filtering>true</filtering>\n <includes>\n <include>db/**</include>\n <include>i18n/**</include>\n </includes>\n </resource>\n </resources>\n </build>\n </profile>\n </profiles>\n\n <repositories>\n <repository>\n <id>central</id>\n <url>http://nexus.digital.vn/repository/maven-snapshots</url>\n </repository>\n <repository>\n <id>central2</id>\n <url>http://nexus.digital.vn/repository/maven-public</url>\n </repository>\n </repositories>\n\n</project>\n",
23
- "truncated": false,
24
- "original_lines": 304,
25
- "original_bytes": 9296,
26
- "priority": 5
27
- },
28
- {
29
- "file_path": "src/main/java/vn/com/viettel/vds/Main.java",
30
- "content": "package vn.com.viettel.vds;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\n@SpringBootApplication\npublic class Main {\n\n public static void main(String[] args) {\n SpringApplication.run(Main.class);\n }\n}\n",
31
- "truncated": false,
32
- "original_lines": 12,
33
- "original_bytes": 282,
34
- "priority": 9
35
- },
36
- {
37
- "file_path": "src/main/java/vn/com/viettel/vds/aop/RepositoryAspect.java",
38
- "content": "package vn.com.viettel.vds.aop;\n\nimport lombok.extern.slf4j.Slf4j;\nimport org.aspectj.lang.ProceedingJoinPoint;\nimport org.aspectj.lang.annotation.Around;\nimport org.aspectj.lang.annotation.Aspect;\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.context.annotation.Configuration;\n\n/**\n * AOP for logging out slow queries\n *\n * @author thanhnd59\n */\n@Aspect\n@Configuration\n@Slf4j\npublic class RepositoryAspect {\n\n @Value(\"${application.repository.query-limit-warning-ms:1000}\")\n private int executionLimitMs;\n\n @Around(\"execution(* vn.com.viettel.vds.repository.*.*(..))\")\n public Object logExecutionTime(ProceedingJoinPoint joinPoint) throws Throwable {\n long start = System.currentTimeMillis();\n Object proceed = joinPoint.proceed();\n long executionTime = System.currentTimeMillis() - start;\n String message = joinPoint.getSignature() + \" exec in \" + executionTime + \" ms\";\n if (executionTime >= executionLimitMs) {\n log.warn(message + \" : SLOW QUERY\");\n }\n return proceed;\n }\n}\n",
39
- "truncated": false,
40
- "original_lines": 34,
41
- "original_bytes": 1049,
42
- "priority": 9
43
- },
44
- {
45
- "file_path": "src/main/java/vn/com/viettel/vds/aop/ThreadContextAspect.java",
46
- "content": "package vn.com.viettel.vds.aop;\n\nimport lombok.extern.log4j.Log4j2;\nimport org.aspectj.lang.ProceedingJoinPoint;\nimport org.aspectj.lang.annotation.Around;\nimport org.aspectj.lang.annotation.Aspect;\nimport org.aspectj.lang.reflect.MethodSignature;\nimport org.springframework.stereotype.Component;\nimport vn.com.viettel.vds.util.common.ThreadContextManage;\n\nimport java.lang.reflect.Method;\n\n@Aspect\n@Component\n@Log4j2\npublic class ThreadContextAspect {\n @Around(\"@annotation(ThreadLocalSpace)\")\n public Object processClearThreadLocalContext(ProceedingJoinPoint joinPoint) throws Throwable {\n try {\n return joinPoint.proceed();\n } catch (Exception e) {\n log.error(\"error process :\", e);\n throw e;\n } finally {\n if (this.isClearContext(joinPoint)) {\n ThreadContextManage.getInstance().clear();\n }\n }\n }\n\n private boolean isClearContext(ProceedingJoinPoint proceedingJoinPoint) {\n return this.getAnnotationThreadLocalSpaceOfMethod(proceedingJoinPoint).isClearContext();\n }\n\n private ThreadLocalSpace getAnnotationThreadLocalSpaceOfMethod(ProceedingJoinPoint proceedingJoinPoint) {\n MethodSignature methodSignature = (MethodSignature) proceedingJoinPoint.getSignature();\n Method method = methodSignature.getMethod();\n return method.getAnnotation(ThreadLocalSpace.class);\n }\n}\n",
47
- "truncated": false,
48
- "original_lines": 40,
49
- "original_bytes": 1419,
50
- "priority": 9
51
- },
52
- {
53
- "file_path": "src/main/java/vn/com/viettel/vds/aop/ThreadLocalSpace.java",
54
- "content": "package vn.com.viettel.vds.aop;\n\nimport java.lang.annotation.ElementType;\nimport java.lang.annotation.Retention;\nimport java.lang.annotation.RetentionPolicy;\nimport java.lang.annotation.Target;\n\n@Target(ElementType.METHOD)\n@Retention(RetentionPolicy.RUNTIME)\npublic @interface ThreadLocalSpace {\n boolean isClearContext() default true;\n}\n",
55
- "truncated": false,
56
- "original_lines": 12,
57
- "original_bytes": 341,
58
- "priority": 9
59
- },
60
- {
61
- "file_path": "src/main/java/vn/com/viettel/vds/client/PolicyManagementServiceClient.java",
62
- "content": "package vn.com.viettel.vds.client;\n\nimport org.springframework.cloud.openfeign.FeignClient;\nimport org.springframework.stereotype.Component;\nimport org.springframework.web.bind.annotation.*;\nimport vn.com.viettel.vds.domain.dto.CustomerPaymentLimitTransDTO;\nimport vn.com.viettel.vds.domain.input.AccumulatePolicyLimitDTO;\nimport vn.com.viettel.vds.domain.input.CustomerIncentiveAggregationDTO;\nimport vn.com.viettel.vds.domain.input.CustomerPaymentMessageDTO;\nimport vn.com.viettel.vds.domain.dto.GetPoliciesOutputDTO;\nimport vn.com.viettel.vds.domain.dto.PoliciesDataRespDTO;\nimport vn.com.viettel.vds.domain.output.*;\n\nimport java.util.List;\n\n@Component\n@FeignClient(url = \"${app.client.policy-management-service.url}\", name = \"policy-management-service\")\npublic interface PolicyManagementServiceClient {\n\n @GetMapping(\"public/v1/policies/fee/available-list\")\n GetPoliciesOutputDTO getAvailablePolicies(\n @RequestParam(value = \"process-code\") String processCode,\n @RequestParam(value = \"service-code\") String serviceCode,\n @RequestParam(value = \"transaction-date\") String date);\n\n @GetMapping(\"public/v1/sys-param-groups/{code}/params\")\n SysParamGroupDTO getSysParamGroups(@PathVariable(\"code\") String code);\n\n @GetMapping(\"public/v1/sys-param-groups/{code}/params/{paramCode}\")\n SysParamDTO getSysParam(@PathVariable(\"code\") String code,\n @PathVariable(\"paramCode\") String paramCode);\n\n @GetMapping(\"public/v1/policies/fee/upgrade/available-list\")\n GetPoliciesOutputDTO getAvailablePoliciesUpgrade(@RequestParam(value = \"process-code\") String processCode,\n @RequestParam(value = \"service-code\" ,required = false) String serviceCode,\n @RequestParam(value = \"money-source\" ,required = false) String moneySource,\n @RequestParam(value = \"transaction-date\") String date);\n\n @GetMapping(\"public/v1/customer-fees/get-conditions-by-id\")\n ConditionDetailPolicyDTO getConditionsById(@RequestParam(\"id\") Long id);\n\n @GetMapping(\"public/v1/policies/fee/upgrade/available-list-upgrade\")\n PoliciesDataRespDTO getAvailablePoliciesList(\n @RequestParam(value = \"process-code\") String processCode,\n @RequestParam(value = \"service-code\", required = false) String serviceCode,\n @RequestParam(value = \"transaction-date\") String transactionDate);\n\n @PostMapping(\"/public/v1/customer-fees/confirm-accumulate\")\n void confirmAccumulate(@RequestBody List<CustomerPaymentMessageDTO> listMsg);\n\n @PostMapping(\"/public/v1/customer-fees/accumulate-payment-limit\")\n Boolean accumulatePaymentLimit(@RequestBody List<CustomerPaymentMessageDTO> listMsg);\n\n @PostMapping(\"public/v1/policies/fee/upgrade/save-policies-cia\")\n void saveAvailablePolicyCIA(@RequestBody CustomerIncentiveAggregationDTO request);\n\n @PostMapping(\"/public/v1/payment-limit/availableListLimit\")\n List<AccumulatePolicyLimitDTO> availableListLimit(@RequestBody CustomerPaymentLimitTransDTO msg);\n\n @GetMapping(\"/public/v1/services/cache\")\n ServiceCacheDTO getService();\n}\n",
63
- "truncated": false,
64
- "original_lines": 62,
65
- "original_bytes": 3132,
66
- "priority": 9
67
- },
68
- {
69
- "file_path": "src/main/java/vn/com/viettel/vds/config/AppConfig.java",
70
- "content": "package vn.com.viettel.vds.config;\n\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.util.TimeZone;\nimport javax.annotation.PostConstruct;\n\nimport lombok.Getter;\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.web.filter.CharacterEncodingFilter;\nimport vn.com.viettel.vds.filter.message.AccumulationFilter;\nimport vn.com.viettel.vds.filter.message.CommonValidationFilter;\nimport vn.com.viettel.vds.filter.message.ServiceFilter;\nimport vn.com.viettel.vds.filter.message.TransDailyHisFinanceMessageFilter;\n\n@Configuration\n@Getter\npublic class AppConfig {\n\n /**\n * applicationShortName Type String\n */\n @Value(\"${application-short-name:policy-data-process}\")\n private String applicationShortName;\n\n @Value(\"${policy.redis-key}\")\n private String redisKey;\n\n @Value(\"${policy.redis-prefix-key:policy-payment-fee}\")\n private String redisPrefixKey;\n\n @Value(\"${app.cache.redisson.cacheExpirations.AccumulateLimit:90000}\")\n private long accumulateLimit;\n\n @Value(\"${app.cache.redisson.cacheExpirations.CustomerPaymentAccumulation:90000}\")\n private int customerPaymentAccumulation;\n\n @Value(\"${app.system:''}\")\n private String system;\n\n\n @PostConstruct\n void started() {\n TimeZone.setDefault(TimeZone.getTimeZone(\"Asia/Ho_Chi_Minh\"));\n }\n\n @Bean\n CharacterEncodingFilter characterEncodingFilter() {\n CharacterEncodingFilter filter = new CharacterEncodingFilter();\n filter.setEncoding(\"UTF-8\");\n filter.setForceEncoding(true);\n return filter;\n }\n\n @Bean\n List<TransDailyHisFinanceMessageFilter> transDailyHisFinanceMessageFilter(\n CommonValidationFilter commonValidationFilter, ServiceFilter serviceFilter,\n AccumulationFilter accumulationFilter) {\n //filter chain\n List<TransDailyHisFinanceMessageFilter> filters = new ArrayList<>();\n filters.add(commonValidationFilter);\n filters.add(serviceFilter);\n filters.add(accumulationFilter);\n return filters;\n }\n\n public String getLimitCode(String code, String transType) {\n if (\"VTM\".equals(system) && \"OUT\".equals(transType)) return code;\n return code.concat(\"_\".concat(transType));\n }\n}\n",
71
- "truncated": false,
72
- "original_lines": 73,
73
- "original_bytes": 2266,
74
- "priority": 9
75
- },
76
- {
77
- "file_path": "src/main/java/vn/com/viettel/vds/config/AsyncConfiguration.java",
78
- "content": "package vn.com.viettel.vds.config;\n\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.core.task.TaskExecutor;\nimport org.springframework.scheduling.annotation.EnableAsync;\nimport org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;\n\n@Configuration\n@EnableAsync\npublic class AsyncConfiguration {\n @Value(\"20\")\n private int corePoolSize;\n\n @Value(\"50\")\n private int maxPoolSize;\n\n @Value(\"10000\")\n private int queueCapacity;\n\n @Bean(name = \"threadPoolTaskExecutor\")\n public TaskExecutor getAsyncExecutor() {\n return asyncExecutor(\"async-thread\");\n }\n\n public TaskExecutor asyncExecutor(String threadNamePrefix) {\n ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();\n executor.setCorePoolSize(corePoolSize);\n executor.setMaxPoolSize(maxPoolSize);\n executor.setQueueCapacity(queueCapacity);\n executor.setWaitForTasksToCompleteOnShutdown(true);\n executor.setThreadNamePrefix(threadNamePrefix);\n executor.initialize();\n return executor;\n }\n}\n",
79
- "truncated": false,
80
- "original_lines": 37,
81
- "original_bytes": 1148,
82
- "priority": 9
83
- },
84
- {
85
- "file_path": "src/main/java/vn/com/viettel/vds/config/CustomIdGenerator.java",
86
- "content": "package vn.com.viettel.vds.config;\n\nimport org.hibernate.engine.spi.SharedSessionContractImplementor;\nimport org.hibernate.id.IdentifierGenerator;\nimport vn.com.viettel.vds.util.ULIDUtil;\n\nimport java.io.Serializable;\n\npublic class CustomIdGenerator implements IdentifierGenerator {\n @Override\n public Serializable generate(SharedSessionContractImplementor sharedSessionContractImplementor, Object o) {\n return ULIDUtil.nextULID();\n }\n}\n",
87
- "truncated": false,
88
- "original_lines": 14,
89
- "original_bytes": 453,
90
- "priority": 9
91
- },
92
- {
93
- "file_path": "src/main/java/vn/com/viettel/vds/config/FeignClientConfig.java",
94
- "content": "package vn.com.viettel.vds.config;\n\nimport org.springframework.cloud.openfeign.EnableFeignClients;\nimport org.springframework.context.annotation.Configuration;\n\n@Configuration\n@EnableFeignClients(basePackages = \"vn.com.viettel.vds.client\")\npublic class FeignClientConfig {\n\n}\n",
95
- "truncated": false,
96
- "original_lines": 10,
97
- "original_bytes": 276,
98
- "priority": 9
99
- },
100
- {
101
- "file_path": "src/main/java/vn/com/viettel/vds/config/JacksonConfig.java",
102
- "content": "package vn.com.viettel.vds.config;\n\nimport com.fasterxml.jackson.annotation.JsonInclude;\nimport com.fasterxml.jackson.databind.DeserializationFeature;\nimport com.fasterxml.jackson.databind.MapperFeature;\nimport com.fasterxml.jackson.databind.Module;\nimport com.fasterxml.jackson.databind.ObjectMapper;\nimport com.fasterxml.jackson.databind.SerializationFeature;\nimport com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module;\nimport com.fasterxml.jackson.datatype.jdk8.Jdk8Module;\nimport com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;\nimport com.fasterxml.jackson.module.paramnames.ParameterNamesModule;\nimport lombok.Getter;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\n\n@Getter\n@Configuration\npublic class JacksonConfig {\n\n @Bean\n public Module module() {\n return new Hibernate5Module();\n }\n\n @Bean\n public ObjectMapper objectMapper() {\n ObjectMapper mapper = new ObjectMapper();\n mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);\n mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true);\n mapper.registerModule(new ParameterNamesModule())\n .registerModule(new Jdk8Module())\n .registerModule(new JavaTimeModule());\n mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);\n mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);\n return mapper;\n }\n}\n",
103
- "truncated": false,
104
- "original_lines": 38,
105
- "original_bytes": 1429,
106
- "priority": 9
107
- },
108
- {
109
- "file_path": "src/main/java/vn/com/viettel/vds/config/LogBookConfig.java",
110
- "content": "package vn.com.viettel.vds.config;\n\nimport java.util.List;\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.zalando.logbook.BodyFilter;\nimport org.zalando.logbook.json.JacksonJsonFieldBodyFilter;\n\n@Configuration\npublic class LogBookConfig {\n\n List<String> filterResponseHeader;\n\n @Value(\"#{'${logbook.filter.body}'.split(',')}\")\n List<String> filterBody;\n\n @Bean\n BodyFilter bodyFilter() {\n return new JacksonJsonFieldBodyFilter(filterBody, \"******\");\n }\n}\n",
111
- "truncated": false,
112
- "original_lines": 22,
113
- "original_bytes": 600,
114
- "priority": 9
115
- },
116
- {
117
- "file_path": "src/main/java/vn/com/viettel/vds/config/OpenApiConfig.java",
118
- "content": "package vn.com.viettel.vds.config;\n\nimport io.swagger.v3.oas.models.Components;\nimport io.swagger.v3.oas.models.OpenAPI;\nimport io.swagger.v3.oas.models.info.Contact;\nimport io.swagger.v3.oas.models.info.Info;\nimport io.swagger.v3.oas.models.security.SecurityScheme;\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\n\n@Configuration\npublic class OpenApiConfig {\n\n @Value(\"${info.build.version}\")\n private String projectVersion;\n\n @Bean\n public OpenAPI customOpenAPI() {\n return new OpenAPI()\n .components(new Components()\n .addSecuritySchemes(\"bearer-key\", new SecurityScheme()\n .type(SecurityScheme.Type.HTTP)\n .scheme(\"bearer\")\n .bearerFormat(\"JWT\")))\n .info(new Info()\n .title(\"Policy Data Processing Service\")\n .description(\"Dịch vụ Xử lý dữ liệu\")\n .contact(new Contact()\n .name(\"CDCN\")\n .url(\"http://swagger.digital.vn/\"))\n .version(projectVersion));\n }\n}\n",
119
- "truncated": false,
120
- "original_lines": 34,
121
- "original_bytes": 1147,
122
- "priority": 9
123
- },
124
- {
125
- "file_path": "src/main/java/vn/com/viettel/vds/config/auditor/JpaAuditConfig.java",
126
- "content": "package vn.com.viettel.vds.config.auditor;\n\nimport java.util.Optional;\nimport org.apache.logging.log4j.ThreadContext;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.data.domain.AuditorAware;\nimport org.springframework.data.jpa.repository.config.EnableJpaAuditing;\nimport vn.com.viettel.vds.constant.Constants;\n\n/**\n * Description class\n *\n * @author : HoangTD\n * @since : 10/31/2020, Sat\n **/\n@Configuration\n@EnableJpaAuditing(auditorAwareRef = \"auditProvider\")\npublic class JpaAuditConfig {\n\n @Bean\n public AuditorAware<String> auditProvider() {\n return () -> Optional.of(Optional.ofNullable(ThreadContext.get(Constants.ACTION_USER))\n .orElse(Constants.USER_DEFAULT));\n }\n}\n",
127
- "truncated": false,
128
- "original_lines": 26,
129
- "original_bytes": 781,
130
- "priority": 9
131
- },
132
- {
133
- "file_path": "src/main/java/vn/com/viettel/vds/config/database/DatabaseLookup.java",
134
- "content": "package vn.com.viettel.vds.config.database;\n\nimport java.util.Collections;\nimport java.util.EnumMap;\nimport java.util.Map;\nimport javax.sql.DataSource;\nimport org.apache.commons.logging.Log;\nimport org.apache.commons.logging.LogFactory;\nimport org.springframework.boot.jdbc.DatabaseDriver;\nimport org.springframework.jdbc.support.JdbcUtils;\nimport org.springframework.jdbc.support.MetaDataAccessException;\nimport org.springframework.orm.jpa.vendor.Database;\n\nfinal class DatabaseLookup {\n\n private static final Log logger = LogFactory.getLog(DatabaseLookup.class);\n\n private static final Map<DatabaseDriver, Database> LOOKUP;\n\n static {\n Map<DatabaseDriver, Database> map = new EnumMap<>(DatabaseDriver.class);\n map.put(DatabaseDriver.DERBY, Database.DERBY);\n map.put(DatabaseDriver.H2, Database.H2);\n map.put(DatabaseDriver.HSQLDB, Database.HSQL);\n map.put(DatabaseDriver.MYSQL, Database.MYSQL);\n map.put(DatabaseDriver.ORACLE, Database.ORACLE);\n map.put(DatabaseDriver.POSTGRESQL, Database.POSTGRESQL);\n map.put(DatabaseDriver.SQLSERVER, Database.SQL_SERVER);\n map.put(DatabaseDriver.DB2, Database.DB2);\n map.put(DatabaseDriver.INFORMIX, Database.INFORMIX);\n map.put(DatabaseDriver.HANA, Database.HANA);\n map.put(DatabaseDriver.MARIADB, Database.MYSQL);\n LOOKUP = Collections.unmodifiableMap(map);\n }\n\n private DatabaseLookup() {\n }\n\n /**\n * Return the most suitable {@link Database} for the given {@link DataSource}.\n *\n * @param dataSource the source {@link DataSource}\n * @return the most suitable {@link Database}\n */\n static Database getDatabase(DataSource dataSource) {\n if (dataSource == null) {\n return Database.DEFAULT;\n }\n try {\n String url = JdbcUtils.extractDatabaseMetaData(dataSource, \"getURL\");\n DatabaseDriver driver = DatabaseDriver.fromJdbcUrl(url);\n Database database = LOOKUP.get(driver);\n if (database != null) {\n return database;\n }\n } catch (MetaDataAccessException ex) {\n logger.warn(\"Unable to determine jdbc url from datasource\", ex);\n }\n return Database.DEFAULT;\n }\n\n}\n",
135
- "truncated": false,
136
- "original_lines": 62,
137
- "original_bytes": 2116,
138
- "priority": 9
139
- },
140
- {
141
- "file_path": "src/main/java/vn/com/viettel/vds/config/database/MainDatabaseConfig.java",
142
- "content": "package vn.com.viettel.vds.config.database;\n\nimport com.zaxxer.hikari.HikariDataSource;\nimport javax.persistence.EntityManagerFactory;\nimport javax.sql.DataSource;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.beans.factory.annotation.Qualifier;\nimport org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;\nimport org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;\nimport org.springframework.boot.context.properties.ConfigurationProperties;\nimport org.springframework.boot.context.properties.EnableConfigurationProperties;\nimport org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.context.annotation.Primary;\nimport org.springframework.core.env.Environment;\nimport org.springframework.data.jpa.repository.config.EnableJpaRepositories;\nimport org.springframework.orm.jpa.JpaTransactionManager;\nimport org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;\nimport org.springframework.transaction.PlatformTransactionManager;\nimport org.springframework.transaction.annotation.EnableTransactionManagement;\n\n@Configuration\n@ConditionalOnProperty(value = \"app.datasource.main.enabled\", havingValue = \"true\", matchIfMissing = true)\n@EnableTransactionManagement\n@EnableJpaRepositories(\n entityManagerFactoryRef = \"mainEntityManagerFactory\",\n transactionManagerRef = \"mainTransactionManager\",\n basePackages = {\"vn.com.viettel.vds.repository.main\"})\n@EnableConfigurationProperties(MainJpaProperties.class)\npublic class MainDatabaseConfig {\n\n @Autowired\n private Environment env;\n\n @Bean\n @Primary\n @ConfigurationProperties(\"app.datasource.main\")\n public DataSourceProperties defaultDataSourceProperties() {\n return new DataSourceProperties();\n }\n\n @Primary\n @Bean(name = \"mainDataSource\")\n @ConfigurationProperties(prefix = \"app.datasource.main.hikari\")\n public DataSource dataSource() {\n return defaultDataSourceProperties().initializeDataSourceBuilder().type(HikariDataSource.class)\n .build();\n }\n\n @Primary\n @Bean(name = \"mainEntityManagerFactory\")\n public LocalContainerEntityManagerFactoryBean mainEntityManagerFactory(\n EntityManagerFactoryBuilder builder, @Qualifier(\"mainDataSource\") DataSource dataSource,\n MainJpaProperties mainJpaProperties) {\n LocalContainerEntityManagerFactoryBean factory = builder\n .dataSource(dataSource)\n .packages(\"vn.com.viettel.vds.model.main\")\n .persistenceUnit(\"dbMain\")\n .build();\n factory.setJpaPropertyMap(mainJpaProperties.getProperties());\n return factory;\n }\n\n @Primary\n @Bean(name = \"mainTransactionManager\")\n public PlatformTransactionManager mainTransactionManager(\n @Qualifier(\"mainEntityManagerFactory\") EntityManagerFactory entityManagerFactory) {\n return new JpaTransactionManager(entityManagerFactory);\n }\n\n}\n",
143
- "truncated": false,
144
- "original_lines": 72,
145
- "original_bytes": 2989,
146
- "priority": 9
147
- },
148
- {
149
- "file_path": "src/main/java/vn/com/viettel/vds/config/database/MainJpaProperties.java",
150
- "content": "package vn.com.viettel.vds.config.database;\n\nimport java.util.ArrayList;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\nimport org.springframework.boot.context.properties.ConfigurationProperties;\nimport org.springframework.orm.jpa.vendor.Database;\n\n@ConfigurationProperties(prefix = \"app.datasource.main.jpa\")\npublic class MainJpaProperties {\n\n\t/**\n\t * Additional native properties to set on the JPA provider.\n\t */\n\tprivate Map<String, String> properties = new HashMap<>();\n\n\t/**\n\t * Mapping resources (equivalent to \"mapping-file\" entries in persistence.xml).\n\t */\n\tprivate final List<String> mappingResources = new ArrayList<>();\n\n\t/**\n\t * Name of the target database to operate on, auto-detected by default. Can be\n\t * alternatively set using the \"Database\" enum.\n\t */\n\tprivate String databasePlatform;\n\n\t/**\n\t * Target database to operate on, auto-detected by default. Can be alternatively set\n\t * using the \"databasePlatform\" property.\n\t */\n\tprivate Database database;\n\n\t/**\n\t * Whether to initialize the schema on startup.\n\t */\n\tprivate boolean generateDdl = false;\n\n\t/**\n\t * Whether to enable logging of SQL statements.\n\t */\n\tprivate boolean showSql = false;\n\n\t/**\n\t * Register OpenEntityManagerInViewInterceptor. Binds a JPA EntityManager to the\n\t * thread for the entire processing of the request.\n\t */\n\tprivate Boolean openInView;\n\n\tpublic Map<String, String> getProperties() {\n\t\treturn this.properties;\n\t}\n\n\tpublic void setProperties(Map<String, String> properties) {\n\t\tthis.properties = properties;\n\t}\n\n\tpublic List<String> getMappingResources() {\n\t\treturn this.mappingResources;\n\t}\n\n\tpublic String getDatabasePlatform() {\n\t\treturn this.databasePlatform;\n\t}\n\n\tpublic void setDatabasePlatform(String databasePlatform) {\n\t\tthis.databasePlatform = databasePlatform;\n\t}\n\n\tpublic Database getDatabase() {\n\t\treturn this.database;\n\t}\n\n\tpublic void setDatabase(Database database) {\n\t\tthis.database = database;\n\t}\n\n\tpublic boolean isGenerateDdl() {\n\t\treturn this.generateDdl;\n\t}\n\n\tpublic void setGenerateDdl(boolean generateDdl) {\n\t\tthis.generateDdl = generateDdl;\n\t}\n\n\tpublic boolean isShowSql() {\n\t\treturn this.showSql;\n\t}\n\n\tpublic void setShowSql(boolean showSql) {\n\t\tthis.showSql = showSql;\n\t}\n\n\tpublic Boolean getOpenInView() {\n\t\treturn this.openInView;\n\t}\n\n\tpublic void setOpenInView(Boolean openInView) {\n\t\tthis.openInView = openInView;\n\t}\n\n}\n",
151
- "truncated": false,
152
- "original_lines": 103,
153
- "original_bytes": 2377,
154
- "priority": 9
155
- },
156
- {
157
- "file_path": "src/main/java/vn/com/viettel/vds/config/database/SecondDatabaseConfig.java",
158
- "content": "package vn.com.viettel.vds.config.database;\n\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.data.redis.repository.configuration.EnableRedisRepositories;\n\n/*cache database*/\n\n@Configuration\n@EnableRedisRepositories(basePackages = {\"vn.com.viettel.vds.repository.secondary\"})\npublic class SecondDatabaseConfig {\n\n}\n",
159
- "truncated": false,
160
- "original_lines": 12,
161
- "original_bytes": 354,
162
- "priority": 9
163
- },
164
- {
165
- "file_path": "src/main/java/vn/com/viettel/vds/config/formatdate/LocalDateTimeDeserializer.java",
166
- "content": "package vn.com.viettel.vds.config.formatdate;\n\nimport com.fasterxml.jackson.core.JsonParser;\nimport com.fasterxml.jackson.databind.DeserializationContext;\nimport com.fasterxml.jackson.databind.JsonDeserializer;\nimport java.io.IOException;\nimport java.time.LocalDateTime;\nimport java.time.format.DateTimeParseException;\nimport lombok.extern.slf4j.Slf4j;\nimport vn.com.viettel.vds.util.common.DateTimeUtils;\n\n/**\n * Thực hiện parse data json request to localDateTime\n *\n * @author HoangTD5\n * @version 0.1\n * @date 8/26/2020\n */\n@Slf4j\npublic class LocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime> {\n\n public static final String YYYY_MM_DD_HH_MM_SS = \"yyyy-MM-dd HH:mm:ss\";\n public static final String YYYY_MM_DD_T_HH_MM_SS = \"yyyy-MM-dd'T'HH:mm:ss\";\n public static final String YYYY_MM_DD_FULL = \"yyyy-MM-dd'T'HH:mm:ss.SSSZ\";\n\n @Override\n public LocalDateTime deserialize(JsonParser jsonParser,\n DeserializationContext deserializationContext) throws IOException {\n String str = jsonParser.getText();\n try {\n return DateTimeUtils.convertStringToLocalDateTime(str, YYYY_MM_DD_T_HH_MM_SS);\n } catch (DateTimeParseException e) {\n return deserialize(str);\n }\n }\n\n private LocalDateTime deserialize(String str) {\n try {\n return DateTimeUtils.convertStringToLocalDateTime(str, YYYY_MM_DD_HH_MM_SS);\n } catch (DateTimeParseException e) {\n return deserialize2(str);\n }\n }\n\n private LocalDateTime deserialize2(String str) {\n try {\n return DateTimeUtils.convertStringToLocalDateTime(str, YYYY_MM_DD_FULL);\n } catch (DateTimeParseException e) {\n return null;\n }\n }\n}\n",
167
- "truncated": false,
168
- "original_lines": 52,
169
- "original_bytes": 1650,
170
- "priority": 9
171
- },
172
- {
173
- "file_path": "src/main/java/vn/com/viettel/vds/config/formatdate/LocalDateTimeSerializer.java",
174
- "content": "package vn.com.viettel.vds.config.formatdate;\n\nimport com.fasterxml.jackson.core.JsonGenerator;\nimport com.fasterxml.jackson.databind.JsonSerializer;\nimport com.fasterxml.jackson.databind.SerializerProvider;\nimport java.io.IOException;\nimport java.time.LocalDateTime;\nimport java.time.format.DateTimeParseException;\nimport lombok.extern.slf4j.Slf4j;\nimport vn.com.viettel.vds.util.common.DateTimeUtils;\n\n/**\n * Thực hiện parse data response to string json\n *\n * @author HoangTD5\n * @version 0.1\n * @date 8/26/2020\n */\n@Slf4j\npublic class LocalDateTimeSerializer extends JsonSerializer<LocalDateTime> {\n\n public static final String YYYY_MM_DD_T_HH_MM_SS = \"yyyy-MM-dd'T'HH:mm:ss\";\n\n @Override\n public void serialize(LocalDateTime localDateTime, JsonGenerator jsonGenerator,\n SerializerProvider serializerProvider) throws IOException {\n try {\n String result = DateTimeUtils.localDateTimeToString(localDateTime, YYYY_MM_DD_T_HH_MM_SS);\n jsonGenerator.writeString(result);\n } catch (DateTimeParseException e) {\n log.error(e.getMessage(), e);\n jsonGenerator.writeString(\"\");\n }\n }\n}\n",
175
- "truncated": false,
176
- "original_lines": 35,
177
- "original_bytes": 1120,
178
- "priority": 9
179
- },
180
- {
181
- "file_path": "src/main/java/vn/com/viettel/vds/config/kafka/KafkaConsumerConfig.java",
182
- "content": "package vn.com.viettel.vds.config.kafka;\n\nimport org.apache.kafka.clients.consumer.ConsumerConfig;\nimport org.apache.kafka.common.serialization.StringDeserializer;\nimport org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;\nimport org.springframework.boot.context.properties.EnableConfigurationProperties;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.kafka.annotation.EnableKafka;\nimport org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory;\nimport org.springframework.kafka.core.ConsumerFactory;\nimport org.springframework.kafka.core.DefaultKafkaConsumerFactory;\nimport org.springframework.kafka.listener.ContainerProperties;\n\nimport java.util.HashMap;\nimport java.util.Map;\nimport java.util.Objects;\n\n@Configuration\n@EnableKafka\n@EnableConfigurationProperties(MultiKafkaProperties.class)\npublic class KafkaConsumerConfig {\n\n private final MultiKafkaProperties multiKafkaProperties;\n\n public KafkaConsumerConfig(MultiKafkaProperties multiKafkaProperties) {\n this.multiKafkaProperties = multiKafkaProperties;\n }\n\n /**\n * Cấu hình mặc định cho consumer\n */\n private Map<String, Object> defaultConsumerProps(MultiKafkaProperties.ConsumerConfig consumer) {\n Map<String, Object> props = new HashMap<>();\n\n // Deserialize\n props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);\n props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);\n\n // Quản lý offset thủ công\n props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, consumer.isEnableAutoCommit());\n props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, consumer.getAutoOffsetReset());\n\n // Poll / heartbeat\n if (Objects.nonNull(consumer.getMaxPollIntervalMs())) {\n props.put(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG, consumer.getMaxPollIntervalMs());\n }\n if (Objects.nonNull(consumer.getMaxPollRecords())) {\n props.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, consumer.getMaxPollRecords());\n }\n if (Objects.nonNull(consumer.getSessionTimeoutMs())) {\n props.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, consumer.getSessionTimeoutMs());\n }\n if (Objects.nonNull(consumer.getHeartbeatIntervalMs())) {\n props.put(ConsumerConfig.HEARTBEAT_INTERVAL_MS_CONFIG, consumer.getHeartbeatIntervalMs());\n }\n\n // Retry network / reconnect\n if (Objects.nonNull(consumer.getReconnectBackoffMs())) {\n props.put(ConsumerConfig.RECONNECT_BACKOFF_MS_CONFIG, consumer.getReconnectBackoffMs());\n }\n if (Objects.nonNull(consumer.getReconnectBackoffMaxMs())) {\n props.put(ConsumerConfig.RECONNECT_BACKOFF_MAX_MS_CONFIG, consumer.getReconnectBackoffMaxMs());\n }\n if (Objects.nonNull(consumer.getRetryBackoffMs())) {\n props.put(ConsumerConfig.RETRY_BACKOFF_MS_CONFIG, consumer.getRetryBackoffMs());\n }\n\n // Tăng độ an toàn\n if (Objects.nonNull(consumer.getFetchMaxWaitMs())) {\n props.put(ConsumerConfig.FETCH_MAX_WAIT_MS_CONFIG, consumer.getFetchMaxWaitMs());\n }\n if (Objects.nonNull(consumer.getFetchMinBytes())) {\n props.put(ConsumerConfig.FETCH_MIN_BYTES_CONFIG, consumer.getFetchMinBytes());\n }\n\n return props;\n }\n\n /**\n * Build properties cho từng cluster\n */\n private Map<String, Object> buildConsumerProps(MultiKafkaProperties.ClusterConfig cluster) {\n\n Map<String, Object> props = new HashMap<>(defaultConsumerProps(cluster.getConsumer()));\n props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, cluster.getBootstrapServers());\n props.put(ConsumerConfig.GROUP_ID_CONFIG, cluster.getGroupId());\n if (cluster.getAuth() != null && cluster.getAuth().isEnabled()) {\n props.putAll(buildAuthProps(cluster.getAuth()));\n }\n return props;\n }\n\n /**\n * Build Auth nếu có\n */\n private Map<String, Object> buildAuthProps(MultiKafkaProperties.AuthConfig auth) {\n Map<String, Object> authProps = new HashMap<>();\n authProps.put(\"security.protocol\", auth.getProtocol());\n authProps.put(\"sasl.mechanism\", auth.getMechanism());\n authProps.put(\"sasl.jaas.config\",\n String.format(\"org.apache.kafka.common.security.plain.PlainLoginModule required username=\\\"%s\\\" password=\\\"%s\\\";\",\n auth.getUsername(), auth.getPassword()));\n return authProps;\n }\n\n /**\n * Build KafkaListener factory từ ConsumerFactory\n */\n private ConcurrentKafkaListenerContainerFactory<String, String> buildFactory(ConsumerFactory<String, String> consumerFactory, MultiKafkaProperties.ClusterConfig clusterConfig) {\n ConcurrentKafkaListenerContainerFactory<String, String> factory = new ConcurrentKafkaListenerContainerFactory<>();\n factory.setConsumerFactory(consumerFactory);\n if (Objects.nonNull(clusterConfig.getAckMode())) {\n factory.getContainerProperties().setAckMode(ContainerProperties.AckMode.RECORD);\n }\n return factory;\n }\n\n /**\n * Factory cluster policyService\n */\n @Bean\n @ConditionalOnProperty(name = \"spring.kafka.clusters.policyService.enabled\", havingValue = \"true\")\n public ConcurrentKafkaListenerContainerFactory<String, String> clusterPolicyFactory() {\n MultiKafkaProperties.ClusterConfig cluster = multiKafkaProperties.getClusters().get(\"policyService\");\n ConsumerFactory<String, String> consumerFactory = new DefaultKafkaConsumerFactory<>(buildConsumerProps(cluster));\n return buildFactory(consumerFactory, cluster);\n }\n\n /**\n * Factory cluster tranHis\n */\n @Bean\n @ConditionalOnProperty(name = \"spring.kafka.clusters.tranHis.enabled\", havingValue = \"true\")\n public ConcurrentKafkaListenerContainerFactory<String, String> clusterTranHisFactory() {\n MultiKafkaProperties.ClusterConfig cluster = multiKafkaProperties.getClusters().get(\"tranHis\");\n ConsumerFactory<String, String> consumerFactory = new DefaultKafkaConsumerFactory<>(buildConsumerProps(cluster));\n return buildFactory(consumerFactory, cluster);\n }\n}\n",
183
- "truncated": false,
184
- "original_lines": 140,
185
- "original_bytes": 6369,
186
- "priority": 9
187
- },
188
- {
189
- "file_path": "src/main/java/vn/com/viettel/vds/config/kafka/MultiKafkaProperties.java",
190
- "content": "package vn.com.viettel.vds.config.kafka;\n\nimport lombok.Data;\nimport org.springframework.boot.context.properties.ConfigurationProperties;\nimport org.springframework.stereotype.Component;\n\nimport java.util.HashMap;\nimport java.util.Map;\n\n@Component\n@ConfigurationProperties(prefix = \"spring.kafka\")\n@Data\npublic class MultiKafkaProperties {\n\n private Map<String, ClusterConfig> clusters = new HashMap<>();\n private String groupId;\n\n\n @Data\n public static class ClusterConfig {\n private boolean enabled;\n private String bootstrapServers;\n private String groupId;\n private AuthConfig auth;\n private ConsumerConfig consumer;\n private ProducerConfig producer;\n private String ackMode;\n }\n\n @Data\n public static class ConsumerConfig {\n private Map<String, TopicConfig> topics = new HashMap<>();\n private String autoOffsetReset;\n private boolean enableAutoCommit;\n private int maxPollIntervalMs;\n private int maxPollRecords;\n private int sessionTimeoutMs;\n private int heartbeatIntervalMs;\n private int reconnectBackoffMs;\n private int reconnectBackoffMaxMs;\n private int retryBackoffMs;\n private int fetchMaxWaitMs;\n private int fetchMinBytes;\n }\n\n @Data\n public static class ProducerConfig {\n private Map<String, TopicConfig> topics = new HashMap<>();\n }\n\n @Data\n public static class AuthConfig {\n private boolean enabled;\n private String protocol;\n private String mechanism;\n private String username;\n private String password;\n }\n\n @Data\n public static class TopicConfig {\n private String value;\n private boolean autoStartup;\n }\n}\n\n",
191
- "truncated": false,
192
- "original_lines": 66,
193
- "original_bytes": 1768,
194
- "priority": 9
195
- },
196
- {
197
- "file_path": "src/main/java/vn/com/viettel/vds/config/locale/CustomLocaleResolver.java",
198
- "content": "package vn.com.viettel.vds.config.locale;\n\nimport java.util.Arrays;\nimport java.util.List;\nimport java.util.Locale;\nimport javax.servlet.http.HttpServletRequest;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.web.servlet.config.annotation.InterceptorRegistry;\nimport org.springframework.web.servlet.config.annotation.WebMvcConfigurer;\nimport org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver;\nimport org.springframework.web.servlet.i18n.LocaleChangeInterceptor;\n\n@Configuration\n@SuppressWarnings(\"java:S1874\")\npublic class CustomLocaleResolver\n extends AcceptHeaderLocaleResolver\n implements WebMvcConfigurer {\n\n private static final List<Locale> LOCALES = Arrays.asList(\n new Locale(\"en\"),\n new Locale(\"vi\"));\n\n @Override\n public Locale resolveLocale(HttpServletRequest request) {\n String headerLang = request.getHeader(\"Accept-Language\");\n return headerLang == null || headerLang.isEmpty()\n ? Locale.getDefault()\n : Locale.lookup(Locale.LanguageRange.parse(headerLang), LOCALES);\n }\n\n /**\n * @param registry\n */\n @Override\n public void addInterceptors(InterceptorRegistry registry) {\n LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();\n localeChangeInterceptor.setParamName(\"lang\");\n registry.addInterceptor(localeChangeInterceptor);\n }\n\n}\n",
199
- "truncated": false,
200
- "original_lines": 41,
201
- "original_bytes": 1384,
202
- "priority": 9
203
- },
204
- {
205
- "file_path": "src/main/java/vn/com/viettel/vds/config/redis/RedisCacheErrorHandler.java",
206
- "content": "package vn.com.viettel.vds.config.redis;\n\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.cache.Cache;\nimport org.springframework.cache.interceptor.CacheErrorHandler;\n\n/**\n * @author SonNV41\n * @version v1\n * @date 4/22/2022\n */\n@Slf4j\npublic class RedisCacheErrorHandler implements CacheErrorHandler {\n\n @Override\n public void handleCacheGetError(RuntimeException exception, Cache cache, Object key) {\n handleTimeOutException(exception);\n log.info(\"Unable to get into cache {}:{}\", cache.getName(), exception.getMessage());\n }\n\n @Override\n public void handleCachePutError(\n RuntimeException exception, Cache cache, Object key, Object value) {\n handleTimeOutException(exception);\n log.info(\"Unable to put into cache {}:{}\", cache.getName(), exception.getMessage());\n }\n\n @Override\n public void handleCacheEvictError(RuntimeException exception, Cache cache, Object key) {\n handleTimeOutException(exception);\n log.info(\"Unable to evict cache {}:{}:{}\", cache.getName(), key, exception.getMessage());\n }\n\n @Override\n public void handleCacheClearError(RuntimeException exception, Cache cache) {\n handleTimeOutException(exception);\n log.info(\"Unable to clean cache {}:{}\", cache.getName(), exception.getMessage());\n }\n\n /**\n * We handle redis connection timeout exception , if the exception is handled then it is treated\n * as a cache miss and gets the data from actual storage\n *\n * @param e\n */\n private void handleTimeOutException(RuntimeException e) {\n log.error(e.getMessage(), e);\n }\n}\n",
207
- "truncated": false,
208
- "original_lines": 49,
209
- "original_bytes": 1635,
210
- "priority": 9
211
- },
212
- {
213
- "file_path": "src/main/java/vn/com/viettel/vds/config/redis/RedissonCacheConfig.java",
214
- "content": "package vn.com.viettel.vds.config.redis;\n\nimport lombok.extern.slf4j.Slf4j;\nimport org.apache.commons.lang3.StringUtils;\nimport org.redisson.Redisson;\nimport org.redisson.api.RedissonClient;\nimport org.redisson.config.Config;\nimport org.redisson.spring.data.connection.RedissonConnectionFactory;\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;\nimport org.springframework.boot.context.properties.EnableConfigurationProperties;\nimport org.springframework.cache.CacheManager;\nimport org.springframework.cache.annotation.CachingConfigurerSupport;\nimport org.springframework.cache.annotation.EnableCaching;\nimport org.springframework.cache.interceptor.CacheErrorHandler;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.data.redis.cache.RedisCacheConfiguration;\nimport org.springframework.data.redis.cache.RedisCacheManager;\nimport org.springframework.data.redis.core.RedisTemplate;\nimport org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;\nimport org.springframework.data.redis.serializer.RedisSerializationContext.SerializationPair;\nimport org.springframework.data.redis.serializer.RedisSerializer;\nimport vn.com.viettel.vds.constant.Constants;\n\nimport java.time.Duration;\nimport java.util.Arrays;\nimport java.util.HashMap;\nimport java.util.Map;\n\n/**\n * @author SonNV41\n * @version v1\n * @date 4/22/2022\n */\n@Configuration\n@EnableCaching\n@ConditionalOnProperty(value = \"app.cache.redisson.enable\", havingValue = \"true\")\n@EnableConfigurationProperties(RedissonClusterConfigurationProperties.class)\n@Slf4j\npublic class RedissonCacheConfig extends CachingConfigurerSupport {\n\n @Value(\"${app.cache.redisson.clientName}\")\n private String applicationShortName;\n\n public SerializationPair<Object> getJdkSerialization() {\n ClassLoader loader = Thread.currentThread().getContextClassLoader();\n JdkSerializationRedisSerializer jdkSerializer = new JdkSerializationRedisSerializer(loader);\n return SerializationPair.fromSerializer(jdkSerializer);\n }\n\n public RedisCacheConfiguration createDefaultCacheConfiguration(long ttl) {\n return RedisCacheConfiguration.defaultCacheConfig()\n .serializeValuesWith(getJdkSerialization())\n .computePrefixWith(cacheName -> {\n String prefix = applicationShortName + \"::\";\n if (!StringUtils.isEmpty(cacheName)) {\n prefix += cacheName + \"::\";\n }\n return prefix;\n })\n .entryTtl(Duration.ofMillis(ttl));\n }\n\n @Bean(\"redisStringTemplate\")\n public RedisTemplate<String, String> redisStringTemplate(RedissonConnectionFactory cf) {\n RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();\n redisTemplate.setKeySerializer(RedisSerializer.string());\n redisTemplate.setHashKeySerializer(RedisSerializer.string());\n redisTemplate.setConnectionFactory(cf);\n return redisTemplate;\n }\n\n @Bean(\"redisObjectTemplate\")\n public RedisTemplate<String, Object> redisTemplate(RedissonConnectionFactory cf) {\n RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();\n redisTemplate.setKeySerializer(RedisSerializer.string());\n redisTemplate.setHashKeySerializer(RedisSerializer.string());\n redisTemplate.setConnectionFactory(cf);\n return redisTemplate;\n }\n\n @Bean(destroyMethod = \"shutdown\")\n public RedissonClient redisson(\n RedissonClusterConfigurationProperties prop) {\n Config config = new Config();\n config.useClusterServers()\n .setCheckSlotsCoverage(prop.isCheckSlotsCoverage())\n .setIdleConnectionTimeout(prop.getIdleConnectTimeout())\n .setConnectTimeout(prop.getConnectTimeout())\n .setTimeout(prop.getTimeout())\n .setRetryAttempts(prop.getRetryAttempts())\n .setRetryInterval(prop.getRetryInterval())\n .setFailedSlaveReconnectionInterval(prop.getFailedSlaveReconnectionInterval())\n .setFailedSlaveCheckInterval(prop.getFailedSlaveCheckInterval())\n .setSubscriptionsPerConnection(prop.getSubscriptionsPerConnection())\n .setClientName(prop.getClientName())\n .setSubscriptionConnectionPoolSize(prop.getSubscriptionConnectionPoolSize())\n .setSlaveConnectionMinimumIdleSize(prop.getSlaveConnectionMinimumIdleSize())\n .setSlaveConnectionPoolSize(prop.getSlaveConnectionPoolSize())\n .setMasterConnectionMinimumIdleSize(prop.getMasterConnectionMinimumIdleSize())\n .setMasterConnectionPoolSize(prop.getMasterConnectionPoolSize())\n .setScanInterval(prop.getScanInterval())\n .setPingConnectionInterval(prop.getPingConnectionInterval())\n .setKeepAlive(prop.isKeepAlive())\n .setTcpNoDelay(prop.isTcpNoDelay())\n .setNodeAddresses(Arrays.asList(prop.getNodeAddresses().split(\",\")));\n if (StringUtils.isNotBlank(prop.getPassword())) {\n config.useClusterServers().setPassword(prop.getPassword());\n }\n return Redisson.create(config);\n }\n\n @Bean\n public RedissonConnectionFactory redissonConnectionFactory(RedissonClient redisson) {\n\n return new RedissonConnectionFactory(redisson);\n }\n\n @Bean(name = Constants.CacheManagerName.POLICY_PAYMENT_CACHE_MANAGER)\n public CacheManager redisCacheManager(\n RedissonConnectionFactory redissonConnectionFactory,\n RedissonClusterConfigurationProperties properties) {\n Map<String, RedisCacheConfiguration> config = new HashMap<>();\n for (Map.Entry<String, Long> cachesWithTtl : properties.getCacheExpirations()\n .entrySet()) {\n config.put(cachesWithTtl.getKey(),\n createDefaultCacheConfiguration(cachesWithTtl.getValue()));\n }\n return RedisCacheManager\n .builder(redissonConnectionFactory)\n .cacheDefaults(createDefaultCacheConfiguration(properties.getTtl()))\n .withInitialCacheConfigurations(config).build();\n }\n\n @Override\n public CacheErrorHandler errorHandler() {\n return new RedisCacheErrorHandler();\n }\n}\n",
215
- "truncated": false,
216
- "original_lines": 140,
217
- "original_bytes": 6354,
218
- "priority": 9
219
- },
220
- {
221
- "file_path": "src/main/java/vn/com/viettel/vds/config/redis/RedissonClusterConfigurationProperties.java",
222
- "content": "package vn.com.viettel.vds.config.redis;\n\nimport lombok.Data;\nimport org.springframework.boot.context.properties.ConfigurationProperties;\n\nimport java.util.HashMap;\nimport java.util.Map;\n\n/**\n * @author SonNV41\n * @version v1\n * @date 4/22/2022\n */\n@ConfigurationProperties(prefix = \"app.cache.redisson\")\n@Data\npublic class RedissonClusterConfigurationProperties {\n\n // redis cluster default config\n private boolean checkSlotsCoverage = true;\n private int idleConnectTimeout = 10000;\n private int connectTimeout = 10000;\n private int timeout = 3000;\n private int retryAttempts = 3;\n private int retryInterval = 1500;\n private int failedSlaveReconnectionInterval = 3000;\n private int failedSlaveCheckInterval = 60000;\n private String password = null;\n private int subscriptionsPerConnection = 5;\n private String clientName = null;\n private int subscriptionConnectionPoolSize = 50;\n private int slaveConnectionMinimumIdleSize = 24;\n private int slaveConnectionPoolSize = 64;\n private int masterConnectionMinimumIdleSize = 24;\n private int masterConnectionPoolSize = 64;\n private String nodeAddresses = null;\n private int scanInterval = 1000;\n private int pingConnectionInterval = 30000;\n private boolean keepAlive = false;\n private boolean tcpNoDelay = false;\n\n // cache\n private long ttl = 60000;\n private Map<String, Long> cacheExpirations = new HashMap<>();\n}\n",
223
- "truncated": false,
224
- "original_lines": 44,
225
- "original_bytes": 1436,
226
- "priority": 9
227
- },
228
- {
229
- "file_path": "src/main/java/vn/com/viettel/vds/config/streaming/EventStreamConfig.java",
230
- "content": "package vn.com.viettel.vds.config.streaming;\n\nimport org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;\nimport org.springframework.boot.context.properties.EnableConfigurationProperties;\nimport org.springframework.cloud.stream.annotation.EnableBinding;\nimport org.springframework.cloud.stream.config.ListenerContainerCustomizer;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.kafka.listener.ConcurrentMessageListenerContainer;\n\n@ConditionalOnExpression(\"${spring.cloud.stream.enabled:false}\")\n@EnableBinding({TransDailyHisFinanceInputBinding.class, PolAccumulationBinding.class, PmtPaymentOrderCmdInput.class})\n@EnableConfigurationProperties(KafkaStreamProperties.class)\n@SuppressWarnings(\"squid:S3740\")\npublic class EventStreamConfig {\n\n @Bean\n ListenerContainerCustomizer listenerContainerCustomizer(KafkaStreamProperties kafkaStreamProperties) {\n return (container, destinationName, group) -> {\n if (container instanceof ConcurrentMessageListenerContainer) {\n ((ConcurrentMessageListenerContainer) container).getContainerProperties()\n .setShutdownTimeout(kafkaStreamProperties.getShutdownTimeout());\n }\n };\n }\n\n}\n",
231
- "truncated": false,
232
- "original_lines": 26,
233
- "original_bytes": 1207,
234
- "priority": 9
235
- },
236
- {
237
- "file_path": "src/main/java/vn/com/viettel/vds/config/streaming/KafkaStreamProperties.java",
238
- "content": "package vn.com.viettel.vds.config.streaming;\n\nimport org.springframework.boot.context.properties.ConfigurationProperties;\n\n@ConfigurationProperties(prefix = \"spring.cloud.stream\")\npublic class KafkaStreamProperties {\n private Long shutdownTimeout;\n\n public Long getShutdownTimeout() {\n return shutdownTimeout;\n }\n\n public void setShutdownTimeout(Long shutdownTimeout) {\n this.shutdownTimeout = shutdownTimeout;\n }\n}\n",
239
- "truncated": false,
240
- "original_lines": 16,
241
- "original_bytes": 427,
242
- "priority": 9
243
- },
244
- {
245
- "file_path": "src/main/java/vn/com/viettel/vds/config/streaming/PmtPaymentOrderCmdInput.java",
246
- "content": "package vn.com.viettel.vds.config.streaming;\n\nimport org.springframework.cloud.stream.annotation.Input;\nimport org.springframework.messaging.SubscribableChannel;\n\nimport static vn.com.viettel.vds.constant.Constants.StreamingBindingAddress.PMT_PAYMENT_ORDER_CMD;\n\npublic interface PmtPaymentOrderCmdInput {\n @Input(PMT_PAYMENT_ORDER_CMD)\n SubscribableChannel consumer();\n}\n",
247
- "truncated": false,
248
- "original_lines": 11,
249
- "original_bytes": 378,
250
- "priority": 9
251
- },
252
- {
253
- "file_path": "src/main/java/vn/com/viettel/vds/config/streaming/PolAccumulationBinding.java",
254
- "content": "package vn.com.viettel.vds.config.streaming;\n\nimport static vn.com.viettel.vds.constant.Constants.StreamingBindingAddress.POL_ACCUMULATION_UPDATE_CONSUMER;\nimport static vn.com.viettel.vds.constant.Constants.StreamingBindingAddress.POL_ACCUMULATION_UPDATE_PRODUCER;\n\nimport org.springframework.cloud.stream.annotation.Input;\nimport org.springframework.cloud.stream.annotation.Output;\nimport org.springframework.messaging.MessageChannel;\nimport org.springframework.messaging.SubscribableChannel;\n\npublic interface PolAccumulationBinding {\n\n @Output(POL_ACCUMULATION_UPDATE_PRODUCER)\n MessageChannel producer();\n\n @Input(POL_ACCUMULATION_UPDATE_CONSUMER)\n SubscribableChannel consumer();\n}\n",
255
- "truncated": false,
256
- "original_lines": 18,
257
- "original_bytes": 692,
258
- "priority": 9
259
- },
260
- {
261
- "file_path": "src/main/java/vn/com/viettel/vds/config/streaming/TransDailyHisFinanceInputBinding.java",
262
- "content": "package vn.com.viettel.vds.config.streaming;\n\nimport static vn.com.viettel.vds.constant.Constants.StreamingBindingAddress.BANKPLUS_TRANS_DAILY_HIS_FINANCE;\n\nimport org.springframework.cloud.stream.annotation.Input;\nimport org.springframework.messaging.SubscribableChannel;\n\npublic interface TransDailyHisFinanceInputBinding {\n\n @Input(BANKPLUS_TRANS_DAILY_HIS_FINANCE)\n SubscribableChannel consumer();\n}\n",
263
- "truncated": false,
264
- "original_lines": 12,
265
- "original_bytes": 406,
266
- "priority": 9
267
- },
268
- {
269
- "file_path": "src/main/java/vn/com/viettel/vds/constant/Constants.java",
270
- "content": "package vn.com.viettel.vds.constant;\n\nimport com.google.gson.Gson;\nimport lombok.AccessLevel;\nimport lombok.NoArgsConstructor;\nimport lombok.experimental.UtilityClass;\n\n@NoArgsConstructor(access = AccessLevel.PRIVATE)\npublic final class Constants {\n\n public static final Gson GSON = new Gson();\n public static final String ERROR_CODE_SUCCESS = \"00\";\n public static final String CORRECT_CODE_SUCCESS = \"00\";\n public static final Boolean CALCULATOR_TRANS = true;\n\n public static final String TIME_PERIOD_SUB = \"FEE_SUB\";\n public static final String MTI_PAYMENT = \"0400\";\n public static final String SYSTEM = \"SYSTEM\";\n public static final String BANK_CODE_VTT = \"VTT\";\n\n public static final String ACTION_USER_INFO = \"ACTION_USER_INFO\";\n public static final String ACTION_USER = \"ACTION_USER\";\n public static final String USER_DEFAULT = \"ADMIN\";\n public static final String PATH_MESSAGE = \"i18n/messages\";\n public static final String PATH_ERROR = \"i18n/errors\";\n\n public static final String HEADER_PARTITION_KEY = \"partitionKey\";\n\n public static final String POLICY_SRC_KEY = \"POLICY_SRC::\";\n\n public static final Integer POLICY_TYPE_FEE = 1;\n\n public static final Integer POLICY_TYPE_DISCOUNT = 2;\n\n public static final String ACCUMULATE_SOURCE = \"1\"; //Chính sách phí lũy kế đến nguồn tiền\n public static final String MONEY_SOURCE_BANK_CODE_NAPAS = \"NAPAS\";\n public static final String PROCESS_CODE_PM1001 = \"PM1001\";\n public static final String PAYMENT_LIMIT_PREFIX = \"PAYMENT_LIMIT_\";\n\n public static final String PREFIX_FEE = \"PF\";\n public static final String PREFIX_DIS = \"CK\";\n\n @NoArgsConstructor(access = AccessLevel.PRIVATE)\n public static class RegexPattern {\n\n public static final String DIGITS = \"\\\\d+\";\n public static final String HOURS_PARAM = \"^([01][0-9]|2[0-3]):(00|15|30|45)$\";\n public static final String NUMBER_SEPERATE_COMMA = \"^(\\\\d+,)*\\\\d+$\";\n public static final String PHONE_NUMBER = \"^(0|84)[0-9]{0,13}$\";\n public static final String COMMA = \",\";\n }\n\n @NoArgsConstructor(access = AccessLevel.PRIVATE)\n public static class StreamingBindingAddress {\n\n public static final String BANKPLUS_TRANS_DAILY_HIS_FINANCE = \"bankplus-trans-daily-his-finance\";\n\n public static final String POL_ACCUMULATION_UPDATE_CONSUMER = \"pol-accumulation-in\";\n public static final String POL_ACCUMULATION_UPDATE_PRODUCER = \"pol-accumulation-out\";\n public static final String PMT_PAYMENT_ORDER_CMD = \"cmd-payment-order-cmd\";\n }\n\n @NoArgsConstructor(access = AccessLevel.PRIVATE)\n public static class TransactionStatus {\n\n public static final String TRANSACTION_STATUS = \"TRANSACTION_STATUS\";\n\n public static final String SUCCESS = \"SUCCESS\";\n public static final String TIMEOUT = \"TIMEOUT\";\n public static final String FAILED = \"FAILED\";\n public static final String UNDEFINED = \"UNDEFINED\";\n }\n\n @NoArgsConstructor(access = AccessLevel.PRIVATE)\n public static class PmtPaymentOrderCmdStatusEnum {\n public static final String THAT_BAI = \"THAT_BAI\";\n public static final String THANH_CONG = \"THANH_CONG\";\n public static final String THANH_CONG_MOT_PHAN = \"THANH_CONG_MOT_PHAN\";\n public static final String TIMEOUT = \"TIMEOUT\";\n public static final String TRU_TIEN_THANH_CONG = \"TRU_TIEN_THANH_CONG\";\n public static final String TRU_TIEN_TIMEOUT = \"TRU_TIEN_TIMEOUT\";\n }\n @NoArgsConstructor(access = AccessLevel.PRIVATE)\n public static class ConditionCode {\n public static final String DIS_CUMULATIVE_DISCOUNT=\"DIS_CUMULATIVE_DISCOUNT\";\n\n }\n\n @NoArgsConstructor(access = AccessLevel.PRIVATE)\n public static class PolicyType {\n\n public static final int FEE = 1;\n\n public static final int DISCOUNT = 2;\n }\n\n @UtilityClass\n public class CustomerIncentiveAggregationConstants {\n public final String KEY_LOG_PROCESS = \"CustomerIncentiveAggregation process message - \";\n public final String MESSAGE_NOT_NULL=\"không được để trống\";\n public final String MESSAGE_NOT_REGEX=\"không đúng định dạng\";\n public final String REGEX_DATE = \"^(0[1-9]|[12][0-9]|3[01])-(0[1-9]|1[0-2])-(\\\\d{4})$\";\n\n public final String REGEX_NUMBER = \"^[0-9]+$\";\n\n public final String REGEX_LOCAL_DATE_TIME = \"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}$\";\n\n }\n\n @NoArgsConstructor(access = AccessLevel.PRIVATE)\n public static final class Redis {\n public static final String ACCUMULATE_POLICY_LIMIT_PREFIX = \"ACCUMULATE_LIMIT_V2\";\n public static final String ACCUMULATE_POLICY_FEE_PREFIX = \"ACCUMULATE_FEE\";\n }\n\n @NoArgsConstructor(access = AccessLevel.PRIVATE)\n public static class CacheManagerName {\n\n public static final String POLICY_PAYMENT_CACHE_MANAGER = \"policyPaymentCacheManager\";\n }\n\n @UtilityClass\n public class ThreadContext {\n public static final String KEY_PARAM_TRANS_STATUS = \"PARAM_TRANS_STATUS\";\n }\n @NoArgsConstructor(access = AccessLevel.PRIVATE)\n public static class LimitFormula {\n public static final String TRANS_AMOUNT = \"TRANS_AMOUNT\";\n public static final String TRANS_AMOUNT_ADD_FEE = \"TRANS_AMOUNT_ADD_FEE\";\n public static final String TRANS_AMOUNT_ADD_FEE_SUB_DISCOUNT = \"TRANS_AMOUNT_ADD_FEE_SUB_DISCOUNT\";\n public static final String TRANS_AMOUNT_SUB_DISCOUNT = \"TRANS_AMOUNT_SUB_DISCOUNT\";\n public static final String TRANS_AMOUNT_ADD_FEE_ADD_TAX_SUB_DISCOUNT = \"TRANS_AMOUNT_ADD_FEE_ADD_TAX_SUB_DISCOUNT\";\n public static final String TRANS_AMOUNT_SUB_DISCOUNT_SUB_SHARE_VALUE = \"TRANS_AMOUNT_SUB_DISCOUNT_SUB_SHARE_VALUE\";\n public static final String TRANS_AMOUNT_SUB_SHARE_VALUE = \"TRANS_AMOUNT_SUB_SHARE_VALUE\";\n }\n}\n",
271
- "truncated": false,
272
- "original_lines": 136,
273
- "original_bytes": 5619,
274
- "priority": 9
275
- },
276
- {
277
- "file_path": "src/main/java/vn/com/viettel/vds/constant/enums/AccumulationOperationEnum.java",
278
- "content": "package vn.com.viettel.vds.constant.enums;\n\npublic enum AccumulationOperationEnum {\n INCREASE,\n DECREASE\n}\n",
279
- "truncated": false,
280
- "original_lines": 6,
281
- "original_bytes": 109,
282
- "priority": 9
283
- },
284
- {
285
- "file_path": "src/main/java/vn/com/viettel/vds/constant/enums/CommonStatusEnum.java",
286
- "content": "package vn.com.viettel.vds.constant.enums;\n\nimport lombok.AllArgsConstructor;\nimport lombok.Getter;\n\n@Getter\n@AllArgsConstructor\npublic enum CommonStatusEnum {\n\n ENABLED(1, \"ENABLED\"),\n DISABLED(0, \"DISABLED\"),\n ;\n\n private final int value;\n private final String code;\n\n}\n",
287
- "truncated": false,
288
- "original_lines": 17,
289
- "original_bytes": 277,
290
- "priority": 9
291
- },
292
- {
293
- "file_path": "src/main/java/vn/com/viettel/vds/constant/enums/ErrorCodeEnum.java",
294
- "content": "package vn.com.viettel.vds.constant.enums;\n\nimport lombok.AllArgsConstructor;\nimport lombok.Getter;\n\n/**\n * Cấu hình enum error\n *\n * @author : HoangTD\n * @since : 11/5/2020, Thu\n **/\n@Getter\n@AllArgsConstructor\npublic enum ErrorCodeEnum implements Message {\n PS0001,\n PS0002,\n PS0003,\n PS0004,\n PS0005,\n PS0006,\n TB026,\n E01,\n TB099,\n TB001,\n TB002,\n TB003,\n TB004,\n TB005,\n TB006,\n TB007,\n TB008,\n TB009\n}\n",
295
- "truncated": false,
296
- "original_lines": 33,
297
- "original_bytes": 429,
298
- "priority": 9
299
- },
300
- {
301
- "file_path": "src/main/java/vn/com/viettel/vds/constant/enums/ErrorCodeTdhfEnum.java",
302
- "content": "package vn.com.viettel.vds.constant.enums;\n\npublic enum ErrorCodeTdhfEnum {\n\n TRU_TIEN_THAT_BAI(\"604\"),\n TRU_TIEN_THANH_CONG(\"00\"),\n TRU_TIEN_TIMEOUT(\"32\");\n\n private String errorCode;\n\n ErrorCodeTdhfEnum(String errorCode) {\n this.errorCode = errorCode;\n }\n\n public String getErrorCode() {\n return errorCode;\n }\n}\n",
303
- "truncated": false,
304
- "original_lines": 18,
305
- "original_bytes": 352,
306
- "priority": 9
307
- },
308
- {
309
- "file_path": "src/main/java/vn/com/viettel/vds/constant/enums/Message.java",
310
- "content": "package vn.com.viettel.vds.constant.enums;\n\n/**\n * Base message i18n\n *\n * @author HoangTD5\n * @version v1\n * @date 11/6/2020\n */\npublic interface Message {\n\n}\n",
311
- "truncated": false,
312
- "original_lines": 12,
313
- "original_bytes": 160,
314
- "priority": 9
315
- },
316
- {
317
- "file_path": "src/main/java/vn/com/viettel/vds/constant/enums/MessageCodeEnum.java",
318
- "content": "package vn.com.viettel.vds.constant.enums;\n\nimport lombok.AllArgsConstructor;\nimport lombok.Getter;\n\n/**\n * Cấu hình enum message\n *\n * @author : HoangTD\n * @since : 11/5/2020, Thu\n **/\n@Getter\n@AllArgsConstructor\npublic enum MessageCodeEnum implements Message {\n MIS0101\n}\n",
319
- "truncated": false,
320
- "original_lines": 16,
321
- "original_bytes": 278,
322
- "priority": 9
323
- },
324
- {
325
- "file_path": "src/main/java/vn/com/viettel/vds/constant/enums/PeriodEnum.java",
326
- "content": "package vn.com.viettel.vds.constant.enums;\n\nimport lombok.AllArgsConstructor;\nimport lombok.Getter;\n\n@Getter\n@AllArgsConstructor\npublic enum PeriodEnum {\n ALL(\"ALL\"),\n QUARTERLY(\"QUARTERLY\"),\n MONTHLY(\"MONTHLY\"),\n WEEKLY(\"WEEKLY\"),\n DAILY(\"DAILY\"),\n ;\n\n private final String value;\n\n public static PeriodEnum resolve(String value) {\n for (PeriodEnum periodEnum :\n values()) {\n if (periodEnum.getValue().equals(value)) {\n return periodEnum;\n }\n }\n return null;\n }\n}\n",
327
- "truncated": false,
328
- "original_lines": 27,
329
- "original_bytes": 507,
330
- "priority": 9
331
- },
332
- {
333
- "file_path": "src/main/java/vn/com/viettel/vds/constant/enums/PmtPaymentOrderCmdStatusEnum.java",
334
- "content": "package vn.com.viettel.vds.constant.enums;\n\npublic enum PmtPaymentOrderCmdStatusEnum {\n TRU_TIEN_THAT_BAI,\n THANH_CONG,\n THANH_CONG_MOT_PHAN,\n TIMEOUT,\n TRU_TIEN_THANH_CONG,\n TRU_TIEN_TIMEOUT\n}\n",
335
- "truncated": false,
336
- "original_lines": 10,
337
- "original_bytes": 212,
338
- "priority": 9
339
- },
340
- {
341
- "file_path": "src/main/java/vn/com/viettel/vds/constant/enums/TrackingContextEnum.java",
342
- "content": "package vn.com.viettel.vds.constant.enums;\n\nimport lombok.AllArgsConstructor;\nimport lombok.Getter;\n\n@Getter\n@AllArgsConstructor\npublic enum TrackingContextEnum {\n\n X_FORWARD_FOR(\"x-forwarded-for\", \"forwardIP\"),\n X_REAL_IP(\"x-real-ip\", \"clientIP\"),\n X_REQUEST_ID(\"x-request-id\", \"requestID\"),\n X_CORRELATION_ID(\"X-Correlation-ID\", \"correlationID\");\n\n private final String headerKey;\n private final String threadKey;\n}\n",
343
- "truncated": false,
344
- "original_lines": 17,
345
- "original_bytes": 424,
346
- "priority": 9
347
- },
348
- {
349
- "file_path": "src/main/java/vn/com/viettel/vds/constant/enums/TransactionStatusEnum.java",
350
- "content": "package vn.com.viettel.vds.constant.enums;\n\nimport com.fasterxml.jackson.annotation.JsonCreator;\nimport com.fasterxml.jackson.annotation.JsonValue;\nimport lombok.AllArgsConstructor;\nimport lombok.Getter;\n\nimport java.util.HashMap;\nimport java.util.Map;\n\n@Getter\n@AllArgsConstructor\npublic enum TransactionStatusEnum {\n // that bai\n UNKNOWN(null, null),\n SUCCESS(\"SUCCESS\", \"Thành công\"),\n TIMEOUT(\"TIMEOUT\", \"Timeout\");\n\n @JsonValue\n private final String value;\n\n private final String text;\n\n private static final Map<String, TransactionStatusEnum> TRANSACTION_STATUS_ENUM_MAP = new HashMap<>();\n\n static {\n for (TransactionStatusEnum status : TransactionStatusEnum.values()) {\n TRANSACTION_STATUS_ENUM_MAP.put(status.value, status);\n }\n }\n\n @JsonCreator\n public static TransactionStatusEnum fromValue(String value) {\n if (value == null) {\n return TransactionStatusEnum.UNKNOWN;\n }\n TransactionStatusEnum transactionStatusEnum = TRANSACTION_STATUS_ENUM_MAP.get(value);\n if (transactionStatusEnum == null) {\n return TransactionStatusEnum.UNKNOWN;\n }\n return transactionStatusEnum;\n }\n}\n",
351
- "truncated": false,
352
- "original_lines": 43,
353
- "original_bytes": 1215,
354
- "priority": 9
355
- },
356
- {
357
- "file_path": "src/main/java/vn/com/viettel/vds/constant/enums/filter/FilterVisaEnum.java",
358
- "content": "package vn.com.viettel.vds.constant.enums.filter;\n\npublic enum FilterVisaEnum {\n VALID_COMMON,\n VALID_PROCESS_SERVICE_CODE,\n VALID_ACCUMULATION\n}\n",
359
- "truncated": false,
360
- "original_lines": 7,
361
- "original_bytes": 149,
362
- "priority": 9
363
- },
364
- {
365
- "file_path": "src/main/java/vn/com/viettel/vds/constant/enums/state/TransDailyHisFinanceStateEnum.java",
366
- "content": "package vn.com.viettel.vds.constant.enums.state;\n\npublic enum TransDailyHisFinanceStateEnum {\n START,\n FILTER_PASSED,\n\n LAST_STATUS_IS_SUCCESS_TIMEOUT,\n CURRENT_STATUS_IS_FAILED,\n CURRENT_STATUS_IS_SUCCESS_TIMEOUT,\n FINISH\n}\n",
367
- "truncated": false,
368
- "original_lines": 11,
369
- "original_bytes": 231,
370
- "priority": 9
371
- },
372
- {
373
- "file_path": "src/main/java/vn/com/viettel/vds/consumer/AccumulateConsumer.java",
374
- "content": "package vn.com.viettel.vds.consumer;\n\nimport com.fasterxml.jackson.databind.JsonNode;\nimport com.fasterxml.jackson.databind.ObjectMapper;\nimport lombok.RequiredArgsConstructor;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.kafka.annotation.KafkaListener;\nimport org.springframework.kafka.support.KafkaHeaders;\nimport org.springframework.messaging.handler.annotation.Header;\nimport org.springframework.messaging.handler.annotation.Payload;\nimport org.springframework.stereotype.Component;\nimport vn.com.viettel.vds.domain.input.CustomerPaymentMessageDTO;\nimport vn.com.viettel.vds.model.main.CustomerPaymentAggregation;\nimport vn.com.viettel.vds.repository.main.CustomerPaymentAggregationRepository;\nimport vn.com.viettel.vds.service.main.AccumulateService;\nimport vn.com.viettel.vds.util.common.DataUtils;\n\nimport java.util.Arrays;\nimport java.util.Collections;\nimport java.util.List;\n\n\n@Slf4j\n@Component\n@RequiredArgsConstructor\npublic class AccumulateConsumer {\n\n private final AccumulateService accumulateService;\n private final CustomerPaymentAggregationRepository customerPaymentAggregationRepository;\n private final ObjectMapper objectMapper;\n\n @KafkaListener(autoStartup = \"${spring.kafka.clusters.policyService.consumer.topics.v1_policy_customer_payment.autoStartup}\",\n topics = \"${spring.kafka.clusters.policyService.consumer.topics.v1_policy_customer_payment.value}\",\n groupId = \"${spring.kafka.clusters.policyService.groupId}\",\n containerFactory = \"clusterPolicyFactory\")\n public void listenerAccumulate(@Payload String message, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic) {\n try {\n log.info(\"listenerAccumulate From message {}\", message);\n JsonNode node = objectMapper.readTree(message);\n List<CustomerPaymentMessageDTO> listMsg =\n node.isArray()\n ? Arrays.asList(DataUtils.OBJECT_MAPPER_CUSTOM.readValue(message, CustomerPaymentMessageDTO[].class))\n : Collections.singletonList(DataUtils.OBJECT_MAPPER_CUSTOM.readValue(message, CustomerPaymentMessageDTO.class));\n accumulateService.processAccumulate(listMsg, topic);\n } catch (Exception ex) {\n log.error(\"listenerAccumulate Exception {} message {}\", ex.getMessage(), message, ex);\n }\n }\n\n @KafkaListener(autoStartup = \"${spring.kafka.clusters.policyService.consumer.topics.v1_policy_customer_confirm_trans.autoStartup}\",\n topics = \"${spring.kafka.clusters.policyService.consumer.topics.v1_policy_customer_confirm_trans.value}\",\n groupId = \"${spring.kafka.clusters.policyService.groupId}\",\n containerFactory = \"clusterPolicyFactory\")\n public void listenerConfirmAccumulate(@Payload String message, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic) {\n try {\n log.info(\"listenerConfirmAccumulate From messages {}\", message);\n List<CustomerPaymentMessageDTO> listMsg = Arrays.asList(DataUtils.OBJECT_MAPPER_CUSTOM.readValue(message, CustomerPaymentMessageDTO[].class));\n accumulateService.processAccumulate(listMsg, topic);\n } catch (Exception ex) {\n log.error(\"listenerConfirmAccumulate Exception {} Payload {}\", ex.getMessage(), message, ex);\n }\n }\n\n @KafkaListener(autoStartup = \"${spring.kafka.clusters.policyService.consumer.topics.v1_customer_payment_aggregation.autoStartup}\",\n topics = \"${spring.kafka.clusters.policyService.consumer.topics.v1_customer_payment_aggregation.value}\",\n groupId = \"${spring.kafka.clusters.policyService.groupId}\",\n containerFactory = \"clusterPolicyFactory\")\n public void listenerCustomerPaymentAggregation(@Payload String message) {\n try {\n log.info(\"listenerCustomerPaymentAggregation From message {}\", message);\n List<CustomerPaymentAggregation> listMsg = Arrays.asList(objectMapper.readValue(message, CustomerPaymentAggregation[].class));\n customerPaymentAggregationRepository.saveAll(listMsg);\n } catch (Exception ex) {\n log.error(\"listenerCustomerPaymentAggregation Exception {} message {}\", ex.getMessage(), message, ex);\n }\n }\n}\n",
375
- "truncated": false,
376
- "original_lines": 77,
377
- "original_bytes": 4269,
378
- "priority": 9
379
- },
380
- {
381
- "file_path": "src/main/java/vn/com/viettel/vds/consumer/CustomerIncentiveAggregationConsumer.java",
382
- "content": "package vn.com.viettel.vds.consumer;\n\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.kafka.annotation.KafkaListener;\nimport org.springframework.messaging.handler.annotation.Payload;\nimport org.springframework.stereotype.Component;\nimport vn.com.viettel.vds.client.PolicyManagementServiceClient;\nimport vn.com.viettel.vds.domain.input.CustomerIncentiveAggregationDTO;\nimport vn.com.viettel.vds.util.common.DataUtils;\n\n@Slf4j\n@Component\npublic class CustomerIncentiveAggregationConsumer {\n\n private final PolicyManagementServiceClient policyManagementServiceClient;\n\n @Autowired\n public CustomerIncentiveAggregationConsumer(PolicyManagementServiceClient policyManagementServiceClient) {\n this.policyManagementServiceClient = policyManagementServiceClient;\n }\n\n @KafkaListener(autoStartup = \"${spring.kafka.clusters.policyService.consumer.topics.v1_policy_customer_incentive_aggregations.autoStartup}\",\n topics = \"${spring.kafka.clusters.policyService.consumer.topics.v1_policy_customer_incentive_aggregations.value}\",\n groupId = \"${spring.kafka.clusters.policyService.groupId}\",\n containerFactory = \"clusterPolicyFactory\")\n public void consumer(@Payload String message) {\n try {\n log.info(\"CustomerIncentiveAggregationConsumer From message {}\", message);\n CustomerIncentiveAggregationDTO msg = DataUtils.OBJECT_MAPPER_CUSTOM.readValue(message, CustomerIncentiveAggregationDTO.class);\n this.policyManagementServiceClient.saveAvailablePolicyCIA(msg);\n } catch (Exception ex) {\n log.info(\"CustomerIncentiveAggregation Exception {}, message {}\", ex.getMessage(), message);\n }\n }\n\n\n}\n",
383
- "truncated": false,
384
- "original_lines": 38,
385
- "original_bytes": 1780,
386
- "priority": 9
387
- },
388
- {
389
- "file_path": "src/main/java/vn/com/viettel/vds/consumer/CustomerPaymentLimitConsumer.java",
390
- "content": "package vn.com.viettel.vds.consumer;\n\nimport com.fasterxml.jackson.core.JsonProcessingException;\nimport com.fasterxml.jackson.databind.JsonNode;\nimport com.fasterxml.jackson.databind.ObjectMapper;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.kafka.annotation.KafkaListener;\nimport org.springframework.messaging.handler.annotation.Payload;\nimport org.springframework.stereotype.Component;\nimport vn.com.viettel.vds.client.PolicyManagementServiceClient;\nimport vn.com.viettel.vds.constant.Constants;\nimport vn.com.viettel.vds.constant.enums.TransactionStatusEnum;\nimport vn.com.viettel.vds.domain.dto.CustomerDTO;\nimport vn.com.viettel.vds.domain.dto.CustomerPaymentLimitTransDTO;\nimport vn.com.viettel.vds.domain.input.AccumulateLimitInputDTO;\nimport vn.com.viettel.vds.domain.input.AccumulatePolicyLimitDTO;\nimport vn.com.viettel.vds.service.main.CustomerPaymentLimitService;\nimport vn.com.viettel.vds.service.main.CustomerPaymentLimitTransService;\nimport vn.com.viettel.vds.service.main.RedisService;\nimport vn.com.viettel.vds.util.common.DataUtils;\nimport vn.com.viettel.vds.util.common.TransactionStatusUtils;\n\nimport java.util.*;\nimport java.util.concurrent.TimeUnit;\nimport java.util.stream.Collectors;\n\n@Slf4j\n@Component\n@SuppressWarnings({\"java:S3776\", \"S1871\", \"java:S6541\", \"java:S1871\", \"java:S112\", \"java:S2142\"})\npublic class CustomerPaymentLimitConsumer {\n @Autowired\n private PolicyManagementServiceClient policyManagementServiceClient;\n\n private static final String AUTH = \"AUTH\";\n\n @Autowired\n private CustomerPaymentLimitService limitService;\n\n @Autowired\n private TransactionStatusUtils transactionStatus;\n\n @Autowired\n private CustomerPaymentLimitTransService transService;\n\n @Autowired\n private RedisService redisService;\n\n @Autowired\n private ObjectMapper objectMapper;\n\n @KafkaListener(autoStartup = \"${spring.kafka.clusters.policyService.consumer.topics.v1_policy_customer_limit_trans.autoStartup}\",\n topics = \"${spring.kafka.clusters.policyService.consumer.topics.v1_policy_customer_limit_trans.value}\",\n groupId = \"${spring.kafka.clusters.policyService.groupId}\",\n containerFactory = \"clusterPolicyFactory\")\n public void listenerCustomerPaymentLimit(@Payload String message) {\n String keyLock = \"\";\n try {\n log.info(\"listenerCustomerPaymentLimit From message {}\", message);\n List<CustomerPaymentLimitTransDTO> listMsg = Arrays.asList(DataUtils.OBJECT_MAPPER_CUSTOM.readValue(message, CustomerPaymentLimitTransDTO[].class));\n\n Set<String> requestIds = listMsg.stream()\n .filter(Objects::nonNull)\n .map(CustomerPaymentLimitTransDTO::getRequestId)\n .sorted(Comparator.reverseOrder()) // Sắp xếp theo thứ tự ngược\n .collect(Collectors.toCollection(LinkedHashSet::new)); // Thu thập vào LinkedHashSet\n\n keyLock = \"POLICY_PAYMENT_LIMIT\".concat(\"|\").concat(String.valueOf(requestIds));\n Boolean isLock = redisService.lock(keyLock, keyLock, 10, TimeUnit.SECONDS);\n if (Boolean.FALSE.equals(isLock)) return;\n\n Map<String, Integer> quantity = new HashMap<>();\n for (CustomerPaymentLimitTransDTO msg : listMsg) {\n msg.setLitmitType(\"ADD\");\n limitService.savePaymentLimit(msg, quantity, null);\n }\n } catch (Exception ex) {\n log.error(\"listenerAuthAccumulate Exception {} message {}\", ex.getMessage(), message, ex);\n }\n }\n\n @KafkaListener(autoStartup = \"${spring.kafka.clusters.policyService.consumer.topics.v1_policy_customer_payment.autoStartup}\",\n topics = \"${spring.kafka.clusters.policyService.consumer.topics.v1_policy_customer_payment.value}\",\n groupId = \"${spring.kafka.clusters.policyService.groupId}-limit\",\n containerFactory = \"clusterPolicyFactory\")\n public void listenerUpdateCustomerPaymentLimit(@Payload String message) {\n try {\n log.info(\"listenerUpdateCustomerPaymentLimit From message {}\", message);\n JsonNode node = objectMapper.readTree(message);\n List<CustomerPaymentLimitTransDTO> listMsg =\n node.isArray()\n ? Arrays.asList(DataUtils.OBJECT_MAPPER_CUSTOM.readValue(message, CustomerPaymentLimitTransDTO[].class))\n : Collections.singletonList(DataUtils.OBJECT_MAPPER_CUSTOM.readValue(message, CustomerPaymentLimitTransDTO.class));\n updateCustomerPaymentLimitHandler(listMsg);\n } catch (Exception ex) {\n log.error(\"listenerUpdateCustomerPaymentLimit Exception {} message {}\", ex.getMessage(), message, ex);\n }\n }\n\n public void updateCustomerPaymentLimitHandler(List<CustomerPaymentLimitTransDTO> listMsg) {\n String keyLock = \"\";\n try {\n Map<String, Integer> quantity = new HashMap<>();\n Set<String> requestIds = listMsg.stream()\n .filter(Objects::nonNull)\n .map(CustomerPaymentLimitTransDTO::getRequestId)\n .sorted(Comparator.reverseOrder())\n .collect(Collectors.toCollection(LinkedHashSet::new));\n keyLock = \"POLICY_PAYMENT_LIMIT\".concat(\"|\").concat(String.valueOf(requestIds));\n Boolean isLock = redisService.lock(keyLock, keyLock, 10, TimeUnit.SECONDS);\n if (Boolean.FALSE.equals(isLock)) {\n tryLock(keyLock, keyLock, 10, TimeUnit.SECONDS);\n }\n\n Map<String, CustomerPaymentLimitTransDTO> mapTrans = transService.findByRequestIdInAndRequestMti(requestIds, \"NOT_AUTH\").stream().collect(Collectors.toMap(CustomerPaymentLimitTransDTO::getRequestId, transDTO -> transDTO));\n\n if (mapTrans == null || mapTrans.isEmpty()) {\n log.info(\"return updateCustomerPaymentLimitHandler CustomerPaymentLimitTrans isEmpty\");\n return;\n }\n\n Map<String, Boolean> mapAllFalse = new HashMap<>();\n Map<String, Boolean> mapSenderAllFalse = new HashMap<>();\n Map<String, Boolean> mapReceiverAllFalse = new HashMap<>();\n\n //group dich vu va nguon tien, check trang thai gd false all thi giam tru so luong gd cua dich vu\n Map<String, List<CustomerPaymentLimitTransDTO>> listMap = listMsg.stream().collect(Collectors.groupingBy(msg -> DataUtils.groupingByKeyLimitTrans(msg)));\n listMap.forEach((key, value) ->\n mapAllFalse.put(key, value.stream().allMatch(f -> TransactionStatusEnum.UNKNOWN\n .equals(transactionStatus.getErrorCode(f.getErrorCode(), f.getCorrectCode())))));\n\n listMsg.forEach(val -> {\n val.setSenderJson(Objects.nonNull(mapTrans.get(val.getRequestId())) ? mapTrans.get(val.getRequestId()).getSenderJson() : null);\n if (Boolean.TRUE.equals(Objects.nonNull(val.getSenderJson()))) {\n try {\n val.setSender(objectMapper.readValue(val.getSenderJson(), CustomerDTO.class));\n } catch (JsonProcessingException e) {\n log.info(\"Sender parse json fail {}\", e.getMessage());\n }\n }\n val.setReceiverJson(Objects.nonNull(mapTrans.get(val.getRequestId())) ? mapTrans.get(val.getRequestId()).getReceiverJson() : null);\n if (Boolean.TRUE.equals(Objects.nonNull(val.getReceiverJson()))) {\n try {\n val.setReceiver(objectMapper.readValue(val.getReceiverJson(), CustomerDTO.class));\n } catch (JsonProcessingException e) {\n log.info(\"Receiver parse json fail {}\", e.getMessage());\n }\n }\n });\n\n //group cac dich vu cung chinh sach, check trang thai gd false all thi giam tru so luong gd cua chinh sach\n Map<String, List<CustomerPaymentLimitTransDTO>> listMapSender = listMsg.stream().filter(f -> Objects.nonNull(f.getSender()) && Objects.nonNull(f.getSender().getId())).collect(Collectors.groupingBy(msg -> msg.getSender().getPolicyLimit().stream().map(a -> a.getCode()).collect(Collectors.joining(\",\"))));\n listMapSender.forEach((key, value) ->\n mapSenderAllFalse.put(key, value.stream().allMatch(f -> TransactionStatusEnum.UNKNOWN\n .equals(transactionStatus.getErrorCode(f.getErrorCode(), f.getCorrectCode())))));\n Map<String, List<CustomerPaymentLimitTransDTO>> listMapReceiver = listMsg.stream().filter(f -> Objects.nonNull(f.getReceiver()) && Objects.nonNull(f.getReceiver().getId())).collect(Collectors.groupingBy(msg -> msg.getReceiver().getPolicyLimit().stream().map(a -> a.getCode()).collect(Collectors.joining(\",\"))));\n listMapReceiver.forEach((key, value) ->\n mapReceiverAllFalse.put(key, value.stream().allMatch(f -> TransactionStatusEnum.UNKNOWN\n .equals(transactionStatus.getErrorCode(f.getErrorCode(), f.getCorrectCode())))));\n\n for (CustomerPaymentLimitTransDTO msg : listMsg) {\n msg.setLitmitType(\"UPDATE\");\n msg.setMapAllFalse(mapAllFalse);\n msg.setMapSenderAllFalse(mapSenderAllFalse);\n msg.setMapReceiverAllFalse(mapReceiverAllFalse);\n limitService.savePaymentLimit(msg, quantity, mapTrans.get(msg.getRequestId()));\n }\n\n } catch (Exception ex) {\n throw new RuntimeException(ex);\n } finally {\n redisService.release(keyLock);\n }\n }\n\n @KafkaListener(autoStartup = \"${spring.kafka.clusters.policyService.consumer.topics.v1_policy_auth_accumulate.autoStartup}\",\n topics = \"${spring.kafka.clusters.policyService.consumer.topics.v1_policy_auth_accumulate.value}\",\n groupId = \"${spring.kafka.clusters.policyService.groupId}\",\n containerFactory = \"clusterPolicyFactory\")\n public void listenerAuthAccumulate(@Payload String message) {\n try {\n log.info(\"listenerAuthAccumulate From message {}\", message);\n CustomerPaymentLimitTransDTO msg = DataUtils.OBJECT_MAPPER_CUSTOM.readValue(message, CustomerPaymentLimitTransDTO.class);\n if (Constants.ERROR_CODE_SUCCESS.equals(getErrorCode(msg.getErrorCode(), msg.getCorrectCode()))) {\n msg.setAuth(AUTH);\n if (Boolean.TRUE.equals(DataUtils.nullOrEmpty(msg.getRequestType()))) {\n msg.setRequestType(\"ADD\");\n }\n List<AccumulatePolicyLimitDTO> limitDTOList = policyManagementServiceClient.availableListLimit(msg);\n if (Boolean.TRUE.equals(DataUtils.notNullOrEmpty(limitDTOList))) {\n limitService.saveAuthPaymentLimit(AccumulateLimitInputDTO.builder()\n .policyLimit(limitDTOList)\n .customerPayment(msg)\n .build());\n }\n }\n } catch (Exception ex) {\n log.error(\"listenerAuthAccumulate Exception {} message {}\", ex.getMessage(), message, ex);\n }\n }\n\n private String getErrorCode(String errorCode, String correctCode) {\n if (Boolean.TRUE.equals(DataUtils.notNullOrEmpty(correctCode))) {\n return correctCode;\n }\n return errorCode;\n }\n\n private void tryLock(String keyLog, String value, long timeout, TimeUnit unit) throws InterruptedException {\n boolean tryLock;\n do {\n tryLock = redisService.lock(keyLog, value, timeout, unit);\n Thread.sleep(50);\n } while (!tryLock);\n // TryLock thành công rồi mới cho phép xử lý tiếp.\n }\n}\n",
391
- "truncated": false,
392
- "original_lines": 217,
393
- "original_bytes": 11963,
394
- "priority": 9
395
- },
396
- {
397
- "file_path": "src/main/java/vn/com/viettel/vds/consumer/SaveHistoryConsumer.java",
398
- "content": "package vn.com.viettel.vds.consumer;\n\nimport com.fasterxml.jackson.databind.ObjectMapper;\nimport lombok.RequiredArgsConstructor;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.kafka.annotation.KafkaListener;\nimport org.springframework.messaging.handler.annotation.Payload;\nimport org.springframework.stereotype.Component;\nimport vn.com.viettel.vds.model.main.CusPayFeeHistory;\nimport vn.com.viettel.vds.model.main.PayFeeRequestHistory;\nimport vn.com.viettel.vds.repository.main.CusPayFeeHistoryRepository;\nimport vn.com.viettel.vds.repository.main.PayFeeRequestHistoryRepository;\n\nimport java.util.Arrays;\nimport java.util.List;\n\n\n@Slf4j\n@Component\n@RequiredArgsConstructor\npublic class SaveHistoryConsumer {\n\n private final ObjectMapper objectMapper;\n\n private final PayFeeRequestHistoryRepository payFeeRequestHistoryRepository;\n\n private final CusPayFeeHistoryRepository cusPayFeeHistoryRepository;\n\n @KafkaListener(autoStartup = \"${spring.kafka.clusters.policyService.consumer.topics.policy_insert_pay_fee_request_history.autoStartup}\",\n topics = \"${spring.kafka.clusters.policyService.consumer.topics.policy_insert_pay_fee_request_history.value}\",\n groupId = \"${spring.kafka.clusters.policyService.groupId}\",\n containerFactory = \"clusterPolicyFactory\")\n public void listenerPayFeeRequestHistory(@Payload String message) {\n try {\n log.info(\"listenerPayFeeRequestHistory message {}\", message);\n PayFeeRequestHistory payFeeRequestHistory = objectMapper.readValue(message, PayFeeRequestHistory.class);\n payFeeRequestHistoryRepository.save(payFeeRequestHistory);\n } catch (Exception ex) {\n log.error(\"listenerPayFeeRequestHistory message {} Exception {}\", message, ex.getMessage(), ex);\n }\n }\n\n @KafkaListener(autoStartup = \"${spring.kafka.clusters.policyService.consumer.topics.v1_cus_pay_fee_history.autoStartup}\",\n topics = \"${spring.kafka.clusters.policyService.consumer.topics.v1_cus_pay_fee_history.value}\",\n groupId = \"${spring.kafka.clusters.policyService.groupId}\",\n containerFactory = \"clusterPolicyFactory\")\n public void listenerCusPayFeeHistory(@Payload String message) {\n try {\n log.info(\"listenerCusPayFeeHistory message {}\", message);\n List<CusPayFeeHistory> cusPayFeeHistory = Arrays.asList(objectMapper.readValue(message, CusPayFeeHistory[].class));\n cusPayFeeHistoryRepository.saveAll(cusPayFeeHistory);\n } catch (Exception ex) {\n log.error(\"listenerCusPayFeeHistory message {} Exception {}\", message, ex.getMessage(), ex);\n }\n }\n}\n",
399
- "truncated": false,
400
- "original_lines": 56,
401
- "original_bytes": 2687,
402
- "priority": 9
403
- }
404
- ],
405
- "total_files_scanned": 206,
406
- "total_files_included": 50,
407
- "config_pack": {
408
- "config_root": "/Users/vds-ai/.vds/cache/repos/DOPS-project/app-config/cdcn-policy-data-processing-service",
409
- "repo_slug": "cdcn-policy-data-processing-service",
410
- "matched_folder": "cdcn-policy-data-processing-service",
411
- "env_dirs": [
412
- "staging",
413
- "alpha"
414
- ],
415
- "files": [
416
- {
417
- "path": "/Users/vds-ai/.vds/cache/repos/DOPS-project/app-config/cdcn-policy-data-processing-service/staging/application.yml",
418
- "env": "staging",
419
- "file_type": "yml"
420
- },
421
- {
422
- "path": "/Users/vds-ai/.vds/cache/repos/DOPS-project/app-config/cdcn-policy-data-processing-service/staging/log4j2.xml",
423
- "env": "staging",
424
- "file_type": "xml"
425
- },
426
- {
427
- "path": "/Users/vds-ai/.vds/cache/repos/DOPS-project/app-config/cdcn-policy-data-processing-service/alpha/application.yml",
428
- "env": "alpha",
429
- "file_type": "yml"
430
- }
431
- ],
432
- "warning": null
433
- },
434
- "lib_pack": null
435
- }