@ngocsangairvds/vsaf 3.2.16 → 4.0.0

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 (2337) hide show
  1. package/README.md +638 -302
  2. package/package.json +51 -13
  3. package/packages/cli/dist/commands/doctor.d.ts +9 -0
  4. package/packages/cli/dist/commands/doctor.d.ts.map +1 -0
  5. package/packages/cli/dist/commands/doctor.js +49 -0
  6. package/packages/cli/dist/commands/doctor.js.map +1 -0
  7. package/packages/cli/dist/commands/init.d.ts +6 -0
  8. package/packages/cli/dist/commands/init.d.ts.map +1 -0
  9. package/packages/cli/dist/commands/init.js +66 -0
  10. package/packages/cli/dist/commands/init.js.map +1 -0
  11. package/packages/cli/dist/commands/install.d.ts +38 -0
  12. package/packages/cli/dist/commands/install.d.ts.map +1 -0
  13. package/packages/cli/dist/commands/install.js +246 -0
  14. package/packages/cli/dist/commands/install.js.map +1 -0
  15. package/packages/cli/dist/commands/list.d.ts +7 -0
  16. package/packages/cli/dist/commands/list.d.ts.map +1 -0
  17. package/packages/cli/dist/commands/list.js +40 -0
  18. package/packages/cli/dist/commands/list.js.map +1 -0
  19. package/packages/cli/dist/commands/mcp.d.ts +2 -0
  20. package/packages/cli/dist/commands/mcp.d.ts.map +1 -0
  21. package/packages/cli/dist/commands/mcp.js +8 -0
  22. package/packages/cli/dist/commands/mcp.js.map +1 -0
  23. package/packages/cli/dist/commands/run.d.ts +13 -0
  24. package/packages/cli/dist/commands/run.d.ts.map +1 -0
  25. package/packages/cli/dist/commands/run.js +90 -0
  26. package/packages/cli/dist/commands/run.js.map +1 -0
  27. package/packages/cli/dist/commands/serve.d.ts +6 -0
  28. package/packages/cli/dist/commands/serve.d.ts.map +1 -0
  29. package/packages/cli/dist/commands/serve.js +28 -0
  30. package/packages/cli/dist/commands/serve.js.map +1 -0
  31. package/packages/cli/dist/commands/skill.d.ts +48 -0
  32. package/packages/cli/dist/commands/skill.d.ts.map +1 -0
  33. package/packages/cli/dist/commands/skill.js +283 -0
  34. package/packages/cli/dist/commands/skill.js.map +1 -0
  35. package/packages/cli/dist/commands/status.d.ts +4 -0
  36. package/packages/cli/dist/commands/status.d.ts.map +1 -0
  37. package/packages/cli/dist/commands/status.js +21 -0
  38. package/packages/cli/dist/commands/status.js.map +1 -0
  39. package/packages/cli/dist/index.d.ts +3 -0
  40. package/packages/cli/dist/index.d.ts.map +1 -0
  41. package/packages/cli/dist/index.js +218 -0
  42. package/packages/cli/dist/index.js.map +1 -0
  43. package/packages/cli/dist/mcp/server.d.ts +40 -0
  44. package/packages/cli/dist/mcp/server.d.ts.map +1 -0
  45. package/packages/cli/dist/mcp/server.js +219 -0
  46. package/packages/cli/dist/mcp/server.js.map +1 -0
  47. package/packages/cli/dist/server/app.d.ts +8 -0
  48. package/packages/cli/dist/server/app.d.ts.map +1 -0
  49. package/packages/cli/dist/server/app.js +29 -0
  50. package/packages/cli/dist/server/app.js.map +1 -0
  51. package/packages/cli/dist/server/routes/health.d.ts +3 -0
  52. package/packages/cli/dist/server/routes/health.d.ts.map +1 -0
  53. package/packages/cli/dist/server/routes/health.js +13 -0
  54. package/packages/cli/dist/server/routes/health.js.map +1 -0
  55. package/packages/cli/dist/server/routes/runs.d.ts +9 -0
  56. package/packages/cli/dist/server/routes/runs.d.ts.map +1 -0
  57. package/packages/cli/dist/server/routes/runs.js +57 -0
  58. package/packages/cli/dist/server/routes/runs.js.map +1 -0
  59. package/packages/cli/dist/server/routes/workflows.d.ts +5 -0
  60. package/packages/cli/dist/server/routes/workflows.d.ts.map +1 -0
  61. package/packages/cli/dist/server/routes/workflows.js +56 -0
  62. package/packages/cli/dist/server/routes/workflows.js.map +1 -0
  63. package/packages/cli/dist/server/services/execution-manager.d.ts +15 -0
  64. package/packages/cli/dist/server/services/execution-manager.d.ts.map +1 -0
  65. package/packages/cli/dist/server/services/execution-manager.js +78 -0
  66. package/packages/cli/dist/server/services/execution-manager.js.map +1 -0
  67. package/packages/cli/dist/server/services/sse-manager.d.ts +9 -0
  68. package/packages/cli/dist/server/services/sse-manager.d.ts.map +1 -0
  69. package/packages/cli/dist/server/services/sse-manager.js +41 -0
  70. package/packages/cli/dist/server/services/sse-manager.js.map +1 -0
  71. package/packages/cli/dist/server/static.d.ts +3 -0
  72. package/packages/cli/dist/server/static.d.ts.map +1 -0
  73. package/packages/cli/dist/server/static.js +30 -0
  74. package/packages/cli/dist/server/static.js.map +1 -0
  75. package/packages/cli/dist/ui/progress.d.ts +3 -0
  76. package/packages/cli/dist/ui/progress.d.ts.map +1 -0
  77. package/packages/cli/dist/ui/progress.js +27 -0
  78. package/packages/cli/dist/ui/progress.js.map +1 -0
  79. package/packages/core/dist/commands/command-loader.d.ts +9 -0
  80. package/packages/core/dist/commands/command-loader.d.ts.map +1 -0
  81. package/packages/core/dist/commands/command-loader.js +32 -0
  82. package/packages/core/dist/commands/command-loader.js.map +1 -0
  83. package/packages/core/dist/commands/prompt-builder.d.ts +3 -0
  84. package/packages/core/dist/commands/prompt-builder.d.ts.map +1 -0
  85. package/packages/core/dist/commands/prompt-builder.js +9 -0
  86. package/packages/core/dist/commands/prompt-builder.js.map +1 -0
  87. package/packages/core/dist/config/config-loader.d.ts +13 -0
  88. package/packages/core/dist/config/config-loader.d.ts.map +1 -0
  89. package/packages/core/dist/config/config-loader.js +40 -0
  90. package/packages/core/dist/config/config-loader.js.map +1 -0
  91. package/packages/core/dist/engine/condition-evaluator.d.ts +7 -0
  92. package/packages/core/dist/engine/condition-evaluator.d.ts.map +1 -0
  93. package/packages/core/dist/engine/condition-evaluator.js +37 -0
  94. package/packages/core/dist/engine/condition-evaluator.js.map +1 -0
  95. package/packages/core/dist/engine/contract-validator.d.ts +2 -0
  96. package/packages/core/dist/engine/contract-validator.d.ts.map +1 -0
  97. package/packages/core/dist/engine/contract-validator.js +8 -0
  98. package/packages/core/dist/engine/contract-validator.js.map +1 -0
  99. package/packages/core/dist/engine/cycle-detector.d.ts +4 -0
  100. package/packages/core/dist/engine/cycle-detector.d.ts.map +1 -0
  101. package/packages/core/dist/engine/cycle-detector.js +39 -0
  102. package/packages/core/dist/engine/cycle-detector.js.map +1 -0
  103. package/packages/core/dist/engine/dag-executor.d.ts +58 -0
  104. package/packages/core/dist/engine/dag-executor.d.ts.map +1 -0
  105. package/packages/core/dist/engine/dag-executor.js +262 -0
  106. package/packages/core/dist/engine/dag-executor.js.map +1 -0
  107. package/packages/core/dist/engine/dag-parser.d.ts +3 -0
  108. package/packages/core/dist/engine/dag-parser.d.ts.map +1 -0
  109. package/packages/core/dist/engine/dag-parser.js +83 -0
  110. package/packages/core/dist/engine/dag-parser.js.map +1 -0
  111. package/packages/core/dist/engine/node-runner.d.ts +16 -0
  112. package/packages/core/dist/engine/node-runner.d.ts.map +1 -0
  113. package/packages/core/dist/engine/node-runner.js +54 -0
  114. package/packages/core/dist/engine/node-runner.js.map +1 -0
  115. package/packages/core/dist/engine/variable-resolver.d.ts +10 -0
  116. package/packages/core/dist/engine/variable-resolver.d.ts.map +1 -0
  117. package/packages/core/dist/engine/variable-resolver.js +25 -0
  118. package/packages/core/dist/engine/variable-resolver.js.map +1 -0
  119. package/packages/core/dist/index.d.ts +20 -0
  120. package/packages/core/dist/index.d.ts.map +1 -0
  121. package/packages/core/dist/index.js +55 -0
  122. package/packages/core/dist/index.js.map +1 -0
  123. package/packages/core/dist/isolation/artifact-store.d.ts +9 -0
  124. package/packages/core/dist/isolation/artifact-store.d.ts.map +1 -0
  125. package/packages/core/dist/isolation/artifact-store.js +30 -0
  126. package/packages/core/dist/isolation/artifact-store.js.map +1 -0
  127. package/packages/core/dist/isolation/workspace-manager.d.ts +36 -0
  128. package/packages/core/dist/isolation/workspace-manager.d.ts.map +1 -0
  129. package/packages/core/dist/isolation/workspace-manager.js +189 -0
  130. package/packages/core/dist/isolation/workspace-manager.js.map +1 -0
  131. package/packages/core/dist/providers/provider-registry.d.ts +8 -0
  132. package/packages/core/dist/providers/provider-registry.d.ts.map +1 -0
  133. package/packages/core/dist/providers/provider-registry.js +21 -0
  134. package/packages/core/dist/providers/provider-registry.js.map +1 -0
  135. package/packages/core/dist/schema/ajv-instance.d.ts +3 -0
  136. package/packages/core/dist/schema/ajv-instance.d.ts.map +1 -0
  137. package/packages/core/dist/schema/ajv-instance.js +12 -0
  138. package/packages/core/dist/schema/ajv-instance.js.map +1 -0
  139. package/packages/core/dist/schema/validators.d.ts +11 -0
  140. package/packages/core/dist/schema/validators.d.ts.map +1 -0
  141. package/packages/core/dist/schema/validators.js +68 -0
  142. package/packages/core/dist/schema/validators.js.map +1 -0
  143. package/packages/core/dist/schema/workflow-schema.d.ts +158 -0
  144. package/packages/core/dist/schema/workflow-schema.d.ts.map +1 -0
  145. package/packages/core/dist/schema/workflow-schema.js +84 -0
  146. package/packages/core/dist/schema/workflow-schema.js.map +1 -0
  147. package/packages/core/dist/skills/skill-loader.d.ts +9 -0
  148. package/packages/core/dist/skills/skill-loader.d.ts.map +1 -0
  149. package/packages/core/dist/skills/skill-loader.js +37 -0
  150. package/packages/core/dist/skills/skill-loader.js.map +1 -0
  151. package/packages/core/dist/store/event-log.d.ts +8 -0
  152. package/packages/core/dist/store/event-log.d.ts.map +1 -0
  153. package/packages/core/dist/store/event-log.js +30 -0
  154. package/packages/core/dist/store/event-log.js.map +1 -0
  155. package/packages/core/dist/store/run-store.d.ts +20 -0
  156. package/packages/core/dist/store/run-store.d.ts.map +1 -0
  157. package/packages/core/dist/store/run-store.js +113 -0
  158. package/packages/core/dist/store/run-store.js.map +1 -0
  159. package/packages/core/dist/store/types.d.ts +30 -0
  160. package/packages/core/dist/store/types.d.ts.map +1 -0
  161. package/packages/core/dist/store/types.js +3 -0
  162. package/packages/core/dist/store/types.js.map +1 -0
  163. package/packages/core/dist/types/dag.d.ts +36 -0
  164. package/packages/core/dist/types/dag.d.ts.map +1 -0
  165. package/packages/core/dist/types/dag.js +3 -0
  166. package/packages/core/dist/types/dag.js.map +1 -0
  167. package/packages/core/dist/types/index.d.ts +4 -0
  168. package/packages/core/dist/types/index.d.ts.map +1 -0
  169. package/packages/core/dist/types/index.js +20 -0
  170. package/packages/core/dist/types/index.js.map +1 -0
  171. package/packages/core/dist/types/provider.d.ts +19 -0
  172. package/packages/core/dist/types/provider.d.ts.map +1 -0
  173. package/packages/core/dist/types/provider.js +3 -0
  174. package/packages/core/dist/types/provider.js.map +1 -0
  175. package/packages/core/dist/types/workflow.d.ts +47 -0
  176. package/packages/core/dist/types/workflow.d.ts.map +1 -0
  177. package/packages/core/dist/types/workflow.js +3 -0
  178. package/packages/core/dist/types/workflow.js.map +1 -0
  179. package/skills/sdlc/architecture/SKILL.md +202 -0
  180. package/skills/sdlc/diagnose/SKILL.md +117 -0
  181. package/skills/sdlc/discovery/SKILL.md +182 -0
  182. package/skills/sdlc/feature-complete/SKILL.md +159 -0
  183. package/skills/sdlc/grill-me/SKILL.md +10 -0
  184. package/skills/sdlc/hotfix-analyze/SKILL.md +174 -0
  185. package/skills/sdlc/hotfix-green/SKILL.md +101 -0
  186. package/skills/sdlc/hotfix-red/SKILL.md +96 -0
  187. package/skills/sdlc/hotfix-review/SKILL.md +151 -0
  188. package/skills/sdlc/implement/SKILL.md +234 -0
  189. package/skills/sdlc/improve-codebase-architecture/SKILL.md +70 -0
  190. package/skills/sdlc/init/SKILL.md +195 -0
  191. package/skills/sdlc/install-deps.mjs +139 -0
  192. package/skills/sdlc/onboard-code/SKILL.md +193 -0
  193. package/skills/sdlc/onboard-docs/SKILL.md +121 -0
  194. package/skills/sdlc/pack.yaml +59 -0
  195. package/skills/sdlc/prd/SKILL.md +163 -0
  196. package/skills/sdlc/review/SKILL.md +229 -0
  197. package/skills/sdlc/sdlc-health/SKILL.md +165 -0
  198. package/skills/sdlc/setup/SKILL.md +162 -0
  199. package/skills/sdlc/ship/SKILL.md +279 -0
  200. package/skills/sdlc/srs/SKILL.md +135 -0
  201. package/skills/sdlc/tdd/SKILL.md +107 -0
  202. package/skills/sdlc/test-design/SKILL.md +126 -0
  203. package/skills/sdlc/workflows/hotfix-tdd.yaml +20 -0
  204. package/skills/sdlc/workflows/hotfix.yaml +34 -0
  205. package/skills/sdlc/workflows/master-sdlc.yaml +45 -0
  206. package/skills/sdlc/workflows/onboarding.yaml +9 -0
  207. package/skills/sdlc/workflows/sdlc-build.yaml +16 -0
  208. package/skills/sdlc/workflows/sdlc-design.yaml +12 -0
  209. package/skills/sdlc/workflows/sdlc-qa.yaml +17 -0
  210. package/skills/sdlc/workflows/sdlc-testcase.yaml +7 -0
  211. package/skills/sdlc/workflows/sdlc-thinking.yaml +12 -0
  212. package/skills/sdlc/zoom-out/SKILL.md +7 -0
  213. package/assets/templates/.claude/settings.json +0 -48
  214. package/assets/templates/.codex/instructions.md +0 -143
  215. package/assets/templates/CLAUDE.md +0 -161
  216. package/bin/vsaf.js +0 -142
  217. package/src/config.js +0 -167
  218. package/src/global.js +0 -261
  219. package/src/project.js +0 -191
  220. package/src/status.js +0 -91
  221. package/src/utils.js +0 -126
  222. package/src/workflow.js +0 -106
  223. package/tools/bmad/_config/agent-manifest.csv +0 -7
  224. package/tools/bmad/_config/bmad-help.csv +0 -44
  225. package/tools/bmad/_config/files-manifest.csv +0 -261
  226. package/tools/bmad/_config/manifest.yaml +0 -21
  227. package/tools/bmad/_config/skill-manifest.csv +0 -42
  228. package/tools/bmad/bmm/1-analysis/bmad-document-project/templates/srs-feature-template.md +0 -669
  229. package/tools/bmad/bmm/1-analysis/bmad-document-project/templates/srs-system-template.md +0 -430
  230. package/tools/bmad/bmm/config.yaml +0 -20
  231. package/tools/bmad/bmm/module-help.csv +0 -33
  232. package/tools/bmad/core/config.yaml +0 -9
  233. package/tools/bmad/core/module-help.csv +0 -12
  234. package/tools/skills/bmad-agent-architect/SKILL.md +0 -54
  235. package/tools/skills/bmad-agent-architect/bmad-skill-manifest.yaml +0 -11
  236. package/tools/skills/bmad-agent-dev/SKILL.md +0 -69
  237. package/tools/skills/bmad-agent-dev/bmad-skill-manifest.yaml +0 -11
  238. package/tools/skills/bmad-agent-pm/SKILL.md +0 -59
  239. package/tools/skills/bmad-agent-pm/bmad-skill-manifest.yaml +0 -11
  240. package/tools/skills/bmad-agent-tech-writer/SKILL.md +0 -57
  241. package/tools/skills/bmad-agent-tech-writer/bmad-skill-manifest.yaml +0 -11
  242. package/tools/skills/bmad-agent-tech-writer/explain-concept.md +0 -20
  243. package/tools/skills/bmad-agent-tech-writer/mermaid-gen.md +0 -20
  244. package/tools/skills/bmad-agent-tech-writer/validate-doc.md +0 -19
  245. package/tools/skills/bmad-agent-tech-writer/write-document.md +0 -20
  246. package/tools/skills/bmad-agent-ux-designer/SKILL.md +0 -55
  247. package/tools/skills/bmad-agent-ux-designer/bmad-skill-manifest.yaml +0 -11
  248. package/tools/skills/bmad-checkpoint-preview/SKILL.md +0 -29
  249. package/tools/skills/bmad-checkpoint-preview/generate-trail.md +0 -38
  250. package/tools/skills/bmad-checkpoint-preview/step-01-orientation.md +0 -105
  251. package/tools/skills/bmad-checkpoint-preview/step-02-walkthrough.md +0 -89
  252. package/tools/skills/bmad-checkpoint-preview/step-03-detail-pass.md +0 -106
  253. package/tools/skills/bmad-checkpoint-preview/step-04-testing.md +0 -74
  254. package/tools/skills/bmad-checkpoint-preview/step-05-wrapup.md +0 -24
  255. package/tools/skills/bmad-correct-course/SKILL.md +0 -6
  256. package/tools/skills/bmad-correct-course/checklist.md +0 -288
  257. package/tools/skills/bmad-correct-course/workflow.md +0 -267
  258. package/tools/skills/bmad-create-story/SKILL.md +0 -6
  259. package/tools/skills/bmad-create-story/checklist.md +0 -357
  260. package/tools/skills/bmad-create-story/discover-inputs.md +0 -88
  261. package/tools/skills/bmad-create-story/template.md +0 -49
  262. package/tools/skills/bmad-create-story/workflow.md +0 -380
  263. package/tools/skills/bmad-create-ux-design/SKILL.md +0 -6
  264. package/tools/skills/bmad-create-ux-design/steps/step-01-init.md +0 -135
  265. package/tools/skills/bmad-create-ux-design/steps/step-01b-continue.md +0 -127
  266. package/tools/skills/bmad-create-ux-design/steps/step-02-discovery.md +0 -190
  267. package/tools/skills/bmad-create-ux-design/steps/step-03-core-experience.md +0 -217
  268. package/tools/skills/bmad-create-ux-design/steps/step-04-emotional-response.md +0 -220
  269. package/tools/skills/bmad-create-ux-design/steps/step-05-inspiration.md +0 -235
  270. package/tools/skills/bmad-create-ux-design/steps/step-06-design-system.md +0 -253
  271. package/tools/skills/bmad-create-ux-design/steps/step-07-defining-experience.md +0 -255
  272. package/tools/skills/bmad-create-ux-design/steps/step-08-visual-foundation.md +0 -225
  273. package/tools/skills/bmad-create-ux-design/steps/step-09-design-directions.md +0 -225
  274. package/tools/skills/bmad-create-ux-design/steps/step-10-user-journeys.md +0 -242
  275. package/tools/skills/bmad-create-ux-design/steps/step-11-component-strategy.md +0 -249
  276. package/tools/skills/bmad-create-ux-design/steps/step-12-ux-patterns.md +0 -238
  277. package/tools/skills/bmad-create-ux-design/steps/step-13-responsive-accessibility.md +0 -265
  278. package/tools/skills/bmad-create-ux-design/steps/step-14-complete.md +0 -171
  279. package/tools/skills/bmad-create-ux-design/ux-design-template.md +0 -13
  280. package/tools/skills/bmad-create-ux-design/workflow.md +0 -35
  281. package/tools/skills/bmad-dev-story/SKILL.md +0 -6
  282. package/tools/skills/bmad-dev-story/checklist.md +0 -80
  283. package/tools/skills/bmad-dev-story/workflow.md +0 -450
  284. package/tools/skills/bmad-distillator/SKILL.md +0 -177
  285. package/tools/skills/bmad-distillator/agents/distillate-compressor.md +0 -116
  286. package/tools/skills/bmad-distillator/agents/round-trip-reconstructor.md +0 -68
  287. package/tools/skills/bmad-distillator/resources/compression-rules.md +0 -51
  288. package/tools/skills/bmad-distillator/resources/distillate-format-reference.md +0 -227
  289. package/tools/skills/bmad-distillator/resources/splitting-strategy.md +0 -78
  290. package/tools/skills/bmad-distillator/scripts/analyze_sources.py +0 -300
  291. package/tools/skills/bmad-distillator/scripts/tests/test_analyze_sources.py +0 -204
  292. package/tools/skills/bmad-document-project/SKILL.md +0 -6
  293. package/tools/skills/bmad-document-project/checklist.md +0 -245
  294. package/tools/skills/bmad-document-project/documentation-requirements.csv +0 -12
  295. package/tools/skills/bmad-document-project/instructions.md +0 -128
  296. package/tools/skills/bmad-document-project/templates/deep-dive-template.md +0 -345
  297. package/tools/skills/bmad-document-project/templates/index-template.md +0 -169
  298. package/tools/skills/bmad-document-project/templates/project-overview-template.md +0 -103
  299. package/tools/skills/bmad-document-project/templates/project-scan-report-schema.json +0 -160
  300. package/tools/skills/bmad-document-project/templates/source-tree-template.md +0 -135
  301. package/tools/skills/bmad-document-project/workflow.md +0 -25
  302. package/tools/skills/bmad-document-project/workflows/deep-dive-instructions.md +0 -299
  303. package/tools/skills/bmad-document-project/workflows/deep-dive-workflow.md +0 -34
  304. package/tools/skills/bmad-document-project/workflows/full-scan-instructions.md +0 -1107
  305. package/tools/skills/bmad-document-project/workflows/full-scan-workflow.md +0 -34
  306. package/tools/skills/bmad-edit-prd/SKILL.md +0 -6
  307. package/tools/skills/bmad-edit-prd/steps-e/step-e-01-discovery.md +0 -242
  308. package/tools/skills/bmad-edit-prd/steps-e/step-e-01b-legacy-conversion.md +0 -204
  309. package/tools/skills/bmad-edit-prd/steps-e/step-e-02-review.md +0 -245
  310. package/tools/skills/bmad-edit-prd/steps-e/step-e-03-edit.md +0 -250
  311. package/tools/skills/bmad-edit-prd/steps-e/step-e-04-complete.md +0 -163
  312. package/tools/skills/bmad-edit-prd/workflow.md +0 -62
  313. package/tools/skills/bmad-editorial-review-prose/SKILL.md +0 -86
  314. package/tools/skills/bmad-editorial-review-structure/SKILL.md +0 -179
  315. package/tools/skills/bmad-generate-project-context/SKILL.md +0 -6
  316. package/tools/skills/bmad-generate-project-context/project-context-template.md +0 -21
  317. package/tools/skills/bmad-generate-project-context/steps/step-01-discover.md +0 -186
  318. package/tools/skills/bmad-generate-project-context/steps/step-02-generate.md +0 -321
  319. package/tools/skills/bmad-generate-project-context/steps/step-03-complete.md +0 -278
  320. package/tools/skills/bmad-generate-project-context/workflow.md +0 -39
  321. package/tools/skills/bmad-help/SKILL.md +0 -75
  322. package/tools/skills/bmad-index-docs/SKILL.md +0 -66
  323. package/tools/skills/bmad-market-research/SKILL.md +0 -6
  324. package/tools/skills/bmad-market-research/research.template.md +0 -29
  325. package/tools/skills/bmad-market-research/steps/step-01-init.md +0 -184
  326. package/tools/skills/bmad-market-research/steps/step-02-customer-behavior.md +0 -239
  327. package/tools/skills/bmad-market-research/steps/step-03-customer-pain-points.md +0 -251
  328. package/tools/skills/bmad-market-research/steps/step-04-customer-decisions.md +0 -261
  329. package/tools/skills/bmad-market-research/steps/step-05-competitive-analysis.md +0 -173
  330. package/tools/skills/bmad-market-research/steps/step-06-research-completion.md +0 -478
  331. package/tools/skills/bmad-market-research/workflow.md +0 -51
  332. package/tools/skills/bmad-product-brief/SKILL.md +0 -82
  333. package/tools/skills/bmad-product-brief/agents/artifact-analyzer.md +0 -60
  334. package/tools/skills/bmad-product-brief/agents/opportunity-reviewer.md +0 -44
  335. package/tools/skills/bmad-product-brief/agents/skeptic-reviewer.md +0 -44
  336. package/tools/skills/bmad-product-brief/agents/web-researcher.md +0 -49
  337. package/tools/skills/bmad-product-brief/bmad-manifest.json +0 -17
  338. package/tools/skills/bmad-product-brief/prompts/contextual-discovery.md +0 -57
  339. package/tools/skills/bmad-product-brief/prompts/draft-and-review.md +0 -86
  340. package/tools/skills/bmad-product-brief/prompts/finalize.md +0 -75
  341. package/tools/skills/bmad-product-brief/prompts/guided-elicitation.md +0 -70
  342. package/tools/skills/bmad-product-brief/resources/brief-template.md +0 -60
  343. package/tools/skills/bmad-quick-dev/SKILL.md +0 -6
  344. package/tools/skills/bmad-quick-dev/compile-epic-context.md +0 -62
  345. package/tools/skills/bmad-quick-dev/spec-template.md +0 -88
  346. package/tools/skills/bmad-quick-dev/step-01-clarify-and-route.md +0 -91
  347. package/tools/skills/bmad-quick-dev/step-02-plan.md +0 -47
  348. package/tools/skills/bmad-quick-dev/step-03-implement.md +0 -39
  349. package/tools/skills/bmad-quick-dev/step-04-review.md +0 -49
  350. package/tools/skills/bmad-quick-dev/step-05-present.md +0 -63
  351. package/tools/skills/bmad-quick-dev/step-oneshot.md +0 -61
  352. package/tools/skills/bmad-quick-dev/workflow.md +0 -75
  353. package/tools/skills/bmad-retrospective/SKILL.md +0 -6
  354. package/tools/skills/bmad-retrospective/workflow.md +0 -1479
  355. package/tools/skills/bmad-shard-doc/SKILL.md +0 -105
  356. package/tools/skills/bmad-sprint-planning/SKILL.md +0 -6
  357. package/tools/skills/bmad-sprint-planning/checklist.md +0 -33
  358. package/tools/skills/bmad-sprint-planning/sprint-status-template.yaml +0 -56
  359. package/tools/skills/bmad-sprint-planning/workflow.md +0 -263
  360. package/tools/skills/bmad-sprint-status/SKILL.md +0 -6
  361. package/tools/skills/bmad-sprint-status/workflow.md +0 -261
  362. package/tools/skills/bmad-technical-research/SKILL.md +0 -6
  363. package/tools/skills/bmad-technical-research/research.template.md +0 -29
  364. package/tools/skills/bmad-technical-research/technical-steps/step-01-init.md +0 -137
  365. package/tools/skills/bmad-technical-research/technical-steps/step-02-technical-overview.md +0 -239
  366. package/tools/skills/bmad-technical-research/technical-steps/step-03-integration-patterns.md +0 -248
  367. package/tools/skills/bmad-technical-research/technical-steps/step-04-architectural-patterns.md +0 -202
  368. package/tools/skills/bmad-technical-research/technical-steps/step-05-implementation-research.md +0 -233
  369. package/tools/skills/bmad-technical-research/technical-steps/step-06-research-synthesis.md +0 -487
  370. package/tools/skills/bmad-technical-research/workflow.md +0 -52
  371. package/tools/skills/bmad-validate-prd/data/prd-purpose.md +0 -197
  372. package/tools/skills/gitnexus/gitnexus-cli/SKILL.md +0 -82
  373. package/tools/skills/gitnexus/gitnexus-debugging/SKILL.md +0 -89
  374. package/tools/skills/gitnexus/gitnexus-exploring/SKILL.md +0 -78
  375. package/tools/skills/gitnexus/gitnexus-guide/SKILL.md +0 -64
  376. package/tools/skills/gitnexus/gitnexus-impact-analysis/SKILL.md +0 -97
  377. package/tools/skills/gitnexus/gitnexus-refactoring/SKILL.md +0 -121
  378. package/tools/skills/vds-scripts-skill/.openskills.json +0 -6
  379. package/tools/skills/vds-scripts-skill/QUALITY.md +0 -44
  380. package/tools/skills/vds-scripts-skill/SKILL.md +0 -127
  381. package/tools/skills/vds-scripts-skill/references/audit-commands.md +0 -171
  382. package/tools/skills/vds-scripts-skill/references/capability-index.md +0 -34
  383. package/tools/skills/vds-scripts-skill/references/development-commands.md +0 -12
  384. package/tools/skills/vds-scripts-skill/references/google-sheets.md +0 -71
  385. package/tools/skills/vds-scripts-skill/references/integration-commands.md +0 -17
  386. package/tools/skills/vds-scripts-skill/references/platform-bootstrap.md +0 -31
  387. package/tools/skills/vds-scripts-skill/references/specialist-routing.md +0 -14
  388. package/tools/skills/vds-scripts-skill/references/validation-commands.md +0 -15
  389. package/tools/skills/vsaf-build/SKILL.md +0 -146
  390. package/tools/skills/vsaf-discover/SKILL.md +0 -92
  391. package/tools/skills/vsaf-doc/SKILL.md +0 -22
  392. package/tools/skills/vsaf-doc-prd/SKILL.md +0 -58
  393. package/tools/skills/vsaf-doc-srs/SKILL.md +0 -170
  394. package/tools/skills/vsaf-docs/SKILL.md +0 -81
  395. package/tools/skills/vsaf-onboard/SKILL.md +0 -81
  396. package/tools/skills/vsaf-plan/SKILL.md +0 -101
  397. package/tools/skills/vsaf-push-prd/SKILL.md +0 -154
  398. package/tools/skills/vsaf-push-srs/SKILL.md +0 -166
  399. package/tools/skills/vsaf-retro/SKILL.md +0 -94
  400. package/tools/skills/vsaf-ship/SKILL.md +0 -142
  401. package/tools/skills/vsaf-sprint/SKILL.md +0 -111
  402. package/tools/skills/vsaf-test/SKILL.md +0 -207
  403. package/tools/vds-scripts/.claude/phase7-CLOSURE.md +0 -100
  404. package/tools/vds-scripts/.dockerignore +0 -62
  405. package/tools/vds-scripts/.github/ISSUE_TEMPLATE/cli-change.md +0 -92
  406. package/tools/vds-scripts/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -48
  407. package/tools/vds-scripts/.github/workflows/chaos-smoke.yml +0 -266
  408. package/tools/vds-scripts/.github/workflows/confluence-sync.yml +0 -44
  409. package/tools/vds-scripts/.github/workflows/docs-confluence-evidence.yml +0 -170
  410. package/tools/vds-scripts/.github/workflows/docs-quality.yml +0 -59
  411. package/tools/vds-scripts/.github/workflows/lint-and-test.yml +0 -90
  412. package/tools/vds-scripts/.github/workflows/scheduler-load-smoke.yml +0 -104
  413. package/tools/vds-scripts/.github/workflows/telegram-bridge-ci.yml +0 -131
  414. package/tools/vds-scripts/.graphifyignore +0 -29
  415. package/tools/vds-scripts/.importlinter +0 -86
  416. package/tools/vds-scripts/.mcp.json +0 -11
  417. package/tools/vds-scripts/.pre-commit-config.yaml +0 -62
  418. package/tools/vds-scripts/.ruffignore +0 -3
  419. package/tools/vds-scripts/.secrets.baseline +0 -133
  420. package/tools/vds-scripts/AGENTS.md +0 -250
  421. package/tools/vds-scripts/AGENTS.vi.md +0 -92
  422. package/tools/vds-scripts/Makefile +0 -97
  423. package/tools/vds-scripts/README.md +0 -103
  424. package/tools/vds-scripts/bitbucket_manifest_mapping.toml +0 -34
  425. package/tools/vds-scripts/bitbucket_orchestrator/ARCHITECTURE_ANALYSIS.md +0 -258
  426. package/tools/vds-scripts/bitbucket_orchestrator/BITBUCKET_API_PRACTICES.md +0 -393
  427. package/tools/vds-scripts/bitbucket_orchestrator/EVALUATION_REPORT.md +0 -61
  428. package/tools/vds-scripts/bitbucket_orchestrator/FEATURES.md +0 -908
  429. package/tools/vds-scripts/bitbucket_orchestrator/README.md +0 -817
  430. package/tools/vds-scripts/bitbucket_orchestrator/pyproject.toml +0 -49
  431. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/__init__.py +0 -50
  432. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/async_client.py +0 -641
  433. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/cli.py +0 -2271
  434. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/client.py +0 -2693
  435. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/config.py +0 -186
  436. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/errors.py +0 -34
  437. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/factory.py +0 -185
  438. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/parsers.py +0 -113
  439. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/protocols.py +0 -244
  440. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/repo_ops.py +0 -325
  441. package/tools/vds-scripts/bitbucket_orchestrator/tests/__init__.py +0 -8
  442. package/tools/vds-scripts/bitbucket_orchestrator/tests/conftest.py +0 -65
  443. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_advanced_search.py +0 -155
  444. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_async_client.py +0 -505
  445. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_branch_permissions.py +0 -172
  446. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_cli.py +0 -113
  447. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_cli_archive.py +0 -122
  448. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_cli_clone.py +0 -131
  449. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client.py +0 -207
  450. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_archive.py +0 -73
  451. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_branch_conditions.py +0 -101
  452. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_code_advanced.py +0 -180
  453. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_code_file.py +0 -33
  454. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_deployment_environments.py +0 -193
  455. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_issues.py +0 -163
  456. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_pipelines_advanced.py +0 -171
  457. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_pr_blockers.py +0 -118
  458. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_repository_variables.py +0 -155
  459. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code.py +0 -98
  460. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code_advanced.py +0 -279
  461. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code_insights.py +0 -334
  462. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_conditions.py +0 -149
  463. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_config.py +0 -297
  464. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_deployment_env.py +0 -352
  465. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_errors.py +0 -67
  466. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_factory.py +0 -352
  467. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_fork_operations.py +0 -203
  468. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_issue_cli.py +0 -262
  469. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_pipeline_advanced.py +0 -265
  470. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_pr_blocker.py +0 -206
  471. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_protocols.py +0 -336
  472. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_ops_archive.py +0 -169
  473. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_ops_clone.py +0 -115
  474. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_ops_parsing.py +0 -149
  475. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_settings.py +0 -336
  476. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_variables.py +0 -266
  477. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_webhooks.py +0 -188
  478. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_workspace.py +0 -234
  479. package/tools/vds-scripts/bitbucket_orchestrator/tests/unit/__init__.py +0 -0
  480. package/tools/vds-scripts/bitbucket_orchestrator/tests/unit/test_parsers.py +0 -254
  481. package/tools/vds-scripts/code/code_evidence_pack.json +0 -435
  482. package/tools/vds-scripts/confluence_orchestrator/Dockerfile +0 -19
  483. package/tools/vds-scripts/confluence_orchestrator/README.md +0 -479
  484. package/tools/vds-scripts/confluence_orchestrator/SYNC_SCRIPTS.md +0 -127
  485. package/tools/vds-scripts/confluence_orchestrator/SYNC_STANDARDIZATION.md +0 -108
  486. package/tools/vds-scripts/confluence_orchestrator/pyproject.toml +0 -50
  487. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/__init__.py +0 -56
  488. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/async_client.py +0 -100
  489. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/cli.py +0 -3160
  490. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/config.py +0 -215
  491. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content.py +0 -368
  492. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content_v2.py +0 -144
  493. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/crawl_tree.py +0 -1833
  494. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/errors.py +0 -44
  495. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/eventing.py +0 -111
  496. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/http.py +0 -1850
  497. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/orchestration.py +0 -166
  498. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/protocols.py +0 -61
  499. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/reporting.py +0 -78
  500. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/tree.py +0 -122
  501. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/tree_copier.py +0 -431
  502. package/tools/vds-scripts/confluence_orchestrator/sync_pdfs_from_markdown.py +0 -203
  503. package/tools/vds-scripts/confluence_orchestrator/sync_pdfs_to_confluence.py +0 -299
  504. package/tools/vds-scripts/confluence_orchestrator/sync_png_attachments.py +0 -299
  505. package/tools/vds-scripts/confluence_orchestrator/tests/conftest.py +0 -46
  506. package/tools/vds-scripts/confluence_orchestrator/tests/test_advanced_content.py +0 -252
  507. package/tools/vds-scripts/confluence_orchestrator/tests/test_advanced_search.py +0 -193
  508. package/tools/vds-scripts/confluence_orchestrator/tests/test_async_client.py +0 -104
  509. package/tools/vds-scripts/confluence_orchestrator/tests/test_cache_management.py +0 -246
  510. package/tools/vds-scripts/confluence_orchestrator/tests/test_cli.py +0 -716
  511. package/tools/vds-scripts/confluence_orchestrator/tests/test_config.py +0 -130
  512. package/tools/vds-scripts/confluence_orchestrator/tests/test_content.py +0 -192
  513. package/tools/vds-scripts/confluence_orchestrator/tests/test_content_flags.py +0 -27
  514. package/tools/vds-scripts/confluence_orchestrator/tests/test_content_labels.py +0 -94
  515. package/tools/vds-scripts/confluence_orchestrator/tests/test_crawl_tree.py +0 -2252
  516. package/tools/vds-scripts/confluence_orchestrator/tests/test_degraded_write_safety.py +0 -176
  517. package/tools/vds-scripts/confluence_orchestrator/tests/test_draft_management.py +0 -225
  518. package/tools/vds-scripts/confluence_orchestrator/tests/test_errors.py +0 -75
  519. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing.py +0 -73
  520. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_chaos.py +0 -37
  521. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_rate_limit.py +0 -44
  522. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_timeout.py +0 -49
  523. package/tools/vds-scripts/confluence_orchestrator/tests/test_export.py +0 -231
  524. package/tools/vds-scripts/confluence_orchestrator/tests/test_history.py +0 -217
  525. package/tools/vds-scripts/confluence_orchestrator/tests/test_http.py +0 -375
  526. package/tools/vds-scripts/confluence_orchestrator/tests/test_orchestration.py +0 -93
  527. package/tools/vds-scripts/confluence_orchestrator/tests/test_protocols.py +0 -23
  528. package/tools/vds-scripts/confluence_orchestrator/tests/test_reporting.py +0 -24
  529. package/tools/vds-scripts/confluence_orchestrator/tests/test_search_cql.py +0 -36
  530. package/tools/vds-scripts/confluence_orchestrator/tests/test_space_management.py +0 -236
  531. package/tools/vds-scripts/confluence_orchestrator/tests/test_space_permissions.py +0 -384
  532. package/tools/vds-scripts/confluence_orchestrator/tests/test_tree_copier.py +0 -644
  533. package/tools/vds-scripts/confluence_orchestrator/tests/test_tree_copier_remap.py +0 -289
  534. package/tools/vds-scripts/confluence_orchestrator/tests/test_user_group_management.py +0 -387
  535. package/tools/vds-scripts/db_query_orchestrator/Dockerfile +0 -64
  536. package/tools/vds-scripts/db_query_orchestrator/README.md +0 -105
  537. package/tools/vds-scripts/db_query_orchestrator/pyproject.toml +0 -67
  538. package/tools/vds-scripts/db_query_orchestrator/src/vds_db_query_orchestrator/__init__.py +0 -5
  539. package/tools/vds-scripts/db_query_orchestrator/src/vds_db_query_orchestrator/cli.py +0 -545
  540. package/tools/vds-scripts/db_query_orchestrator/tests/__init__.py +0 -0
  541. package/tools/vds-scripts/db_query_orchestrator/tests/test_cli.py +0 -171
  542. package/tools/vds-scripts/docker/.dockerignore +0 -38
  543. package/tools/vds-scripts/docker/ADR.md +0 -392
  544. package/tools/vds-scripts/docker/Dockerfile +0 -68
  545. package/tools/vds-scripts/docker/MIGRATION.md +0 -453
  546. package/tools/vds-scripts/docker/README.md +0 -347
  547. package/tools/vds-scripts/docker/ROLLBACK.md +0 -596
  548. package/tools/vds-scripts/docker/docker-compose.cli.yml +0 -90
  549. package/tools/vds-scripts/docker/docker-compose.infra.yml +0 -276
  550. package/tools/vds-scripts/docker/docker-compose.services.yml +0 -386
  551. package/tools/vds-scripts/docker/infrastructure/init-schemas.sql +0 -143
  552. package/tools/vds-scripts/docker/infrastructure/pgbouncer/pgbouncer.ini +0 -71
  553. package/tools/vds-scripts/docker/infrastructure/pgbouncer/userlist.txt +0 -50
  554. package/tools/vds-scripts/docker/infrastructure/pgbouncer/userlist.txt.template +0 -36
  555. package/tools/vds-scripts/docs/.confluence-evidence/.gitkeep +0 -0
  556. package/tools/vds-scripts/docs/.confluence-evidence/PREFLIGHT.md +0 -132
  557. package/tools/vds-scripts/docs/.confluence-evidence/README.md +0 -84
  558. package/tools/vds-scripts/docs/.confluence.yaml +0 -157
  559. package/tools/vds-scripts/docs/.freshness.yaml +0 -54
  560. package/tools/vds-scripts/docs/README.md +0 -235
  561. package/tools/vds-scripts/docs/agents/README.md +0 -33
  562. package/tools/vds-scripts/docs/agents/explanation/data-flow.md +0 -132
  563. package/tools/vds-scripts/docs/agents/explanation/development-roadmap.md +0 -49
  564. package/tools/vds-scripts/docs/agents/explanation/features-overview.md +0 -62
  565. package/tools/vds-scripts/docs/agents/explanation/index.md +0 -36
  566. package/tools/vds-scripts/docs/agents/explanation/runtime-verification-and-gap-reporting.md +0 -127
  567. package/tools/vds-scripts/docs/agents/explanation/system-architecture.md +0 -139
  568. package/tools/vds-scripts/docs/agents/explanation/whats-new.md +0 -75
  569. package/tools/vds-scripts/docs/agents/explanation/who-ecosystem-introduction.md +0 -65
  570. package/tools/vds-scripts/docs/agents/explanation/who-ecosystem-model.md +0 -41
  571. package/tools/vds-scripts/docs/agents/how-to/02-using-vds-ai-memory.md +0 -98
  572. package/tools/vds-scripts/docs/agents/how-to/03-memory-cross-agent.md +0 -241
  573. package/tools/vds-scripts/docs/agents/how-to/04-using-progress-reports.md +0 -240
  574. package/tools/vds-scripts/docs/agents/how-to/08-semantic-search.md +0 -46
  575. package/tools/vds-scripts/docs/agents/how-to/apply-phase3-migration.md +0 -148
  576. package/tools/vds-scripts/docs/agents/how-to/choose-the-right-command-or-skill.md +0 -34
  577. package/tools/vds-scripts/docs/agents/how-to/contribute-new-orchestrator.md +0 -149
  578. package/tools/vds-scripts/docs/agents/how-to/decision-tree.md +0 -63
  579. package/tools/vds-scripts/docs/agents/how-to/first-audit-run.md +0 -83
  580. package/tools/vds-scripts/docs/agents/how-to/index.md +0 -49
  581. package/tools/vds-scripts/docs/agents/how-to/install-and-bootstrap-who-scripts-and-skills.md +0 -314
  582. package/tools/vds-scripts/docs/agents/how-to/orchestrator-workflows/analytics-pipeline-workflow.md +0 -165
  583. package/tools/vds-scripts/docs/agents/how-to/orchestrator-workflows/code-quality-gate-workflow.md +0 -138
  584. package/tools/vds-scripts/docs/agents/how-to/orchestrator-workflows/confluence-bitbucket-sync-workflow.md +0 -130
  585. package/tools/vds-scripts/docs/agents/how-to/orchestrator-workflows/document-delivery-workflow.md +0 -142
  586. package/tools/vds-scripts/docs/agents/how-to/orchestrator-workflows/memory-progress-workflow.md +0 -140
  587. package/tools/vds-scripts/docs/agents/how-to/orchestrator-workflows/research-spec-audit-workflow.md +0 -135
  588. package/tools/vds-scripts/docs/agents/how-to/phase131-all-project-preparation.md +0 -211
  589. package/tools/vds-scripts/docs/agents/how-to/phase131-bounded-parallel-analysis.md +0 -123
  590. package/tools/vds-scripts/docs/agents/how-to/phase131-confluence-upload-recovery.md +0 -204
  591. package/tools/vds-scripts/docs/agents/how-to/phase132-department-preparation.md +0 -144
  592. package/tools/vds-scripts/docs/agents/how-to/run-ecosystem-daily-report.md +0 -213
  593. package/tools/vds-scripts/docs/agents/how-to/tips-and-tricks.md +0 -138
  594. package/tools/vds-scripts/docs/agents/how-to/troubleshooting-guide.md +0 -221
  595. package/tools/vds-scripts/docs/agents/reference/agent-operational-contract.md +0 -162
  596. package/tools/vds-scripts/docs/agents/reference/alignment-phase179-report.md +0 -144
  597. package/tools/vds-scripts/docs/agents/reference/audit-triage-playbook.md +0 -256
  598. package/tools/vds-scripts/docs/agents/reference/backup-restore.md +0 -132
  599. package/tools/vds-scripts/docs/agents/reference/bitbucket-orchestrator.md +0 -56
  600. package/tools/vds-scripts/docs/agents/reference/brd-orchestrator.md +0 -52
  601. package/tools/vds-scripts/docs/agents/reference/capability-coverage-review.md +0 -51
  602. package/tools/vds-scripts/docs/agents/reference/ci-workflows.md +0 -98
  603. package/tools/vds-scripts/docs/agents/reference/circular-dependency-orchestrator.md +0 -55
  604. package/tools/vds-scripts/docs/agents/reference/cli-commands.md +0 -583
  605. package/tools/vds-scripts/docs/agents/reference/cli-development-standards.md +0 -41
  606. package/tools/vds-scripts/docs/agents/reference/cli-help-matrix.md +0 -84
  607. package/tools/vds-scripts/docs/agents/reference/common-errors.md +0 -126
  608. package/tools/vds-scripts/docs/agents/reference/configuration-reference.md +0 -128
  609. package/tools/vds-scripts/docs/agents/reference/confluence-orchestrator.md +0 -56
  610. package/tools/vds-scripts/docs/agents/reference/confluence-sync-target.md +0 -111
  611. package/tools/vds-scripts/docs/agents/reference/confluence-sync.md +0 -46
  612. package/tools/vds-scripts/docs/agents/reference/db-query-orchestrator.md +0 -93
  613. package/tools/vds-scripts/docs/agents/reference/diagrams-orchestrator.md +0 -52
  614. package/tools/vds-scripts/docs/agents/reference/ecosystem-daily-report.md +0 -229
  615. package/tools/vds-scripts/docs/agents/reference/elastic-orchestrator.md +0 -57
  616. package/tools/vds-scripts/docs/agents/reference/env-git-helper.md +0 -216
  617. package/tools/vds-scripts/docs/agents/reference/evolution-orchestrator.md +0 -113
  618. package/tools/vds-scripts/docs/agents/reference/excel-orchestrator.md +0 -51
  619. package/tools/vds-scripts/docs/agents/reference/git-orchestrator.md +0 -62
  620. package/tools/vds-scripts/docs/agents/reference/google-sheets-orchestrator.md +0 -51
  621. package/tools/vds-scripts/docs/agents/reference/grafana-orchestrator.md +0 -52
  622. package/tools/vds-scripts/docs/agents/reference/hexagonal-orchestrator.md +0 -64
  623. package/tools/vds-scripts/docs/agents/reference/index.md +0 -36
  624. package/tools/vds-scripts/docs/agents/reference/infrastructure-v2.15.md +0 -67
  625. package/tools/vds-scripts/docs/agents/reference/intellij-orchestrator.md +0 -50
  626. package/tools/vds-scripts/docs/agents/reference/jira-orchestrator.md +0 -60
  627. package/tools/vds-scripts/docs/agents/reference/links-orchestrator.md +0 -57
  628. package/tools/vds-scripts/docs/agents/reference/lint-cli.md +0 -99
  629. package/tools/vds-scripts/docs/agents/reference/lsp-orchestrator.md +0 -51
  630. package/tools/vds-scripts/docs/agents/reference/markdown-orchestrator.md +0 -53
  631. package/tools/vds-scripts/docs/agents/reference/mcp-orchestrator.md +0 -88
  632. package/tools/vds-scripts/docs/agents/reference/memory-orchestrator.md +0 -53
  633. package/tools/vds-scripts/docs/agents/reference/metabase-orchestrator.md +0 -51
  634. package/tools/vds-scripts/docs/agents/reference/migration-playbook.md +0 -71
  635. package/tools/vds-scripts/docs/agents/reference/multi-agent-orchestrator.md +0 -52
  636. package/tools/vds-scripts/docs/agents/reference/openapi-orchestrator.md +0 -57
  637. package/tools/vds-scripts/docs/agents/reference/orchestrator-architecture.md +0 -194
  638. package/tools/vds-scripts/docs/agents/reference/orchestrator-comparison-matrix.md +0 -79
  639. package/tools/vds-scripts/docs/agents/reference/orchestrator-index.md +0 -73
  640. package/tools/vds-scripts/docs/agents/reference/pdf-orchestrator.md +0 -57
  641. package/tools/vds-scripts/docs/agents/reference/portable-paths-and-config.md +0 -0
  642. package/tools/vds-scripts/docs/agents/reference/portable-paths-validation-matrix.md +0 -129
  643. package/tools/vds-scripts/docs/agents/reference/progress-orchestrator.md +0 -51
  644. package/tools/vds-scripts/docs/agents/reference/progress-report-cli.md +0 -215
  645. package/tools/vds-scripts/docs/agents/reference/public-interface-orchestrator.md +0 -73
  646. package/tools/vds-scripts/docs/agents/reference/research-orchestrator.md +0 -53
  647. package/tools/vds-scripts/docs/agents/reference/schema-orchestrator.md +0 -57
  648. package/tools/vds-scripts/docs/agents/reference/search-tools.md +0 -34
  649. package/tools/vds-scripts/docs/agents/reference/skills-commands.md +0 -256
  650. package/tools/vds-scripts/docs/agents/reference/skills-reference.md +0 -32
  651. package/tools/vds-scripts/docs/agents/reference/sonarqube-orchestrator.md +0 -62
  652. package/tools/vds-scripts/docs/agents/reference/spec-orchestrator.md +0 -56
  653. package/tools/vds-scripts/docs/agents/reference/structure-orchestrator.md +0 -69
  654. package/tools/vds-scripts/docs/agents/reference/system-requirements.md +0 -76
  655. package/tools/vds-scripts/docs/agents/reference/tasks-orchestrator.md +0 -53
  656. package/tools/vds-scripts/docs/agents/reference/validation-and-sync-notes.md +0 -54
  657. package/tools/vds-scripts/docs/agents/reference/vds-ai-memory-api.md +0 -51
  658. package/tools/vds-scripts/docs/agents/reference/vds-cli-reference.md +0 -34
  659. package/tools/vds-scripts/docs/agents/reference/who-capability-inventory.md +0 -96
  660. package/tools/vds-scripts/docs/agents/reference/who-capability-routing-matrix.md +0 -14
  661. package/tools/vds-scripts/docs/agents/tutorials/feature-progression-guide.md +0 -112
  662. package/tools/vds-scripts/docs/agents/tutorials/index.md +0 -36
  663. package/tools/vds-scripts/docs/agents/tutorials/quick-start.md +0 -50
  664. package/tools/vds-scripts/docs/agents/tutorials/who-skills-and-scripts-onboarding.md +0 -47
  665. package/tools/vds-scripts/docs/agents/tutorials/zero-to-productive-developer.md +0 -339
  666. package/tools/vds-scripts/docs/confluence/IMPLEMENTATION-SUMMARY.md +0 -78
  667. package/tools/vds-scripts/docs/confluence/SYNC-GUIDE.md +0 -47
  668. package/tools/vds-scripts/docs/deployment/offline-docker-image-load.md +0 -59
  669. package/tools/vds-scripts/docs/evolution-auto-run-rollout.md +0 -325
  670. package/tools/vds-scripts/docs/evolution-loop-deep-integration.md +0 -496
  671. package/tools/vds-scripts/docs/evolution-loop-integration-guide.md +0 -359
  672. package/tools/vds-scripts/docs/openspace-schema-snapshot.md +0 -73
  673. package/tools/vds-scripts/docs/operations/sla-mttr-policy.md +0 -44
  674. package/tools/vds-scripts/docs/p0-closure-evidence/SUMMARY.md +0 -58
  675. package/tools/vds-scripts/docs/p4-closure-evidence/.gitkeep +0 -0
  676. package/tools/vds-scripts/docs/p4-closure-evidence/smoke-20260427T024137Z-b95b586b.json +0 -15
  677. package/tools/vds-scripts/docs/p8-preflight-evidence/alembic-and-runtime-advisory-locks.md +0 -45
  678. package/tools/vds-scripts/docs/p8-preflight-evidence/dbos-listen-notify.md +0 -54
  679. package/tools/vds-scripts/docs/p8-preflight-evidence/pgbouncer-search-path-empirical.md +0 -110
  680. package/tools/vds-scripts/docs/p8-preflight-evidence/pgvector-set-local-audit.md +0 -51
  681. package/tools/vds-scripts/docs/p8-preflight-evidence/topology-decision-session-mode.md +0 -57
  682. package/tools/vds-scripts/docs/phases/CHANGELOG.md +0 -103
  683. package/tools/vds-scripts/docs/phases/PHASE_125_COMPLETION_AND_MERGE.md +0 -212
  684. package/tools/vds-scripts/docs/phases/phase125/IMPLEMENTATION_REPORT.md +0 -227
  685. package/tools/vds-scripts/docs/phases/phase125/TSK-125.10-11-implementation-summary.md +0 -196
  686. package/tools/vds-scripts/docs/phases/phase125/profile-patch-ollama-local-anthropic.md +0 -122
  687. package/tools/vds-scripts/docs/phases/phase125_completion_summary.md +0 -369
  688. package/tools/vds-scripts/docs/phases/phase125_llm_analysis_skill.md +0 -164
  689. package/tools/vds-scripts/docs/phases/phase125_merge_complete.md +0 -147
  690. package/tools/vds-scripts/docs/phases/phase125_skill_runtime_closure_20260321.md +0 -91
  691. package/tools/vds-scripts/docs/phases/phase2-portable-paths/closure-handoff-summary-2026-03-23.md +0 -290
  692. package/tools/vds-scripts/docs/phases/phase2-portable-paths/remaining-risk-register-2026-03-25.md +0 -143
  693. package/tools/vds-scripts/docs/phases/phase2-portable-paths/verification-evidence-2026-03-23.md +0 -135
  694. package/tools/vds-scripts/docs/v0-sunset-known-issues.md +0 -88
  695. package/tools/vds-scripts/docs/vi/TRANSLATION-BACKLOG.md +0 -72
  696. package/tools/vds-scripts/docs/vi/agents/README.md +0 -41
  697. package/tools/vds-scripts/docs/vi/agents/explanation/features-overview.md +0 -29
  698. package/tools/vds-scripts/docs/vi/agents/explanation/index.md +0 -14
  699. package/tools/vds-scripts/docs/vi/agents/explanation/runtime-verification-and-gap-reporting.md +0 -129
  700. package/tools/vds-scripts/docs/vi/agents/explanation/whats-new.md +0 -37
  701. package/tools/vds-scripts/docs/vi/agents/explanation/who-ecosystem-introduction.md +0 -21
  702. package/tools/vds-scripts/docs/vi/agents/explanation/who-ecosystem-model.md +0 -36
  703. package/tools/vds-scripts/docs/vi/agents/how-to/02-using-vds-ai-memory.md +0 -100
  704. package/tools/vds-scripts/docs/vi/agents/how-to/03-memory-cross-agent.md +0 -243
  705. package/tools/vds-scripts/docs/vi/agents/how-to/04-using-progress-reports.md +0 -242
  706. package/tools/vds-scripts/docs/vi/agents/how-to/08-semantic-search.md +0 -16
  707. package/tools/vds-scripts/docs/vi/agents/how-to/choose-the-right-command-or-skill.md +0 -36
  708. package/tools/vds-scripts/docs/vi/agents/how-to/decision-tree.md +0 -77
  709. package/tools/vds-scripts/docs/vi/agents/how-to/first-audit-run.md +0 -85
  710. package/tools/vds-scripts/docs/vi/agents/how-to/index.md +0 -21
  711. package/tools/vds-scripts/docs/vi/agents/how-to/install-and-bootstrap-who-scripts-and-skills.md +0 -156
  712. package/tools/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/analytics-pipeline-workflow.md +0 -174
  713. package/tools/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/code-quality-gate-workflow.md +0 -147
  714. package/tools/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/confluence-bitbucket-sync-workflow.md +0 -139
  715. package/tools/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/document-delivery-workflow.md +0 -151
  716. package/tools/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/memory-progress-workflow.md +0 -149
  717. package/tools/vds-scripts/docs/vi/agents/how-to/orchestrator-workflows/research-spec-audit-workflow.md +0 -144
  718. package/tools/vds-scripts/docs/vi/agents/how-to/phase131-all-project-preparation.md +0 -213
  719. package/tools/vds-scripts/docs/vi/agents/how-to/phase131-bounded-parallel-analysis.md +0 -125
  720. package/tools/vds-scripts/docs/vi/agents/how-to/phase131-confluence-upload-recovery.md +0 -206
  721. package/tools/vds-scripts/docs/vi/agents/how-to/phase132-department-preparation.md +0 -146
  722. package/tools/vds-scripts/docs/vi/agents/how-to/tips-and-tricks.md +0 -34
  723. package/tools/vds-scripts/docs/vi/agents/how-to/troubleshooting-guide.md +0 -36
  724. package/tools/vds-scripts/docs/vi/agents/reference/agent-operational-contract.md +0 -98
  725. package/tools/vds-scripts/docs/vi/agents/reference/audit-triage-playbook.md +0 -258
  726. package/tools/vds-scripts/docs/vi/agents/reference/bitbucket-orchestrator.md +0 -30
  727. package/tools/vds-scripts/docs/vi/agents/reference/brd-orchestrator.md +0 -29
  728. package/tools/vds-scripts/docs/vi/agents/reference/capability-coverage-review.md +0 -46
  729. package/tools/vds-scripts/docs/vi/agents/reference/circular-dependency-orchestrator.md +0 -29
  730. package/tools/vds-scripts/docs/vi/agents/reference/cli-commands.md +0 -409
  731. package/tools/vds-scripts/docs/vi/agents/reference/cli-development-standards.md +0 -19
  732. package/tools/vds-scripts/docs/vi/agents/reference/cli-help-matrix.md +0 -71
  733. package/tools/vds-scripts/docs/vi/agents/reference/common-errors.md +0 -133
  734. package/tools/vds-scripts/docs/vi/agents/reference/configuration-reference.md +0 -25
  735. package/tools/vds-scripts/docs/vi/agents/reference/confluence-orchestrator.md +0 -30
  736. package/tools/vds-scripts/docs/vi/agents/reference/db-query-orchestrator.md +0 -34
  737. package/tools/vds-scripts/docs/vi/agents/reference/diagrams-orchestrator.md +0 -31
  738. package/tools/vds-scripts/docs/vi/agents/reference/elastic-orchestrator.md +0 -30
  739. package/tools/vds-scripts/docs/vi/agents/reference/evolution-orchestrator.md +0 -31
  740. package/tools/vds-scripts/docs/vi/agents/reference/excel-orchestrator.md +0 -60
  741. package/tools/vds-scripts/docs/vi/agents/reference/git-orchestrator.md +0 -31
  742. package/tools/vds-scripts/docs/vi/agents/reference/google-sheets-orchestrator.md +0 -60
  743. package/tools/vds-scripts/docs/vi/agents/reference/grafana-orchestrator.md +0 -30
  744. package/tools/vds-scripts/docs/vi/agents/reference/hexagonal-orchestrator.md +0 -73
  745. package/tools/vds-scripts/docs/vi/agents/reference/index.md +0 -25
  746. package/tools/vds-scripts/docs/vi/agents/reference/intellij-orchestrator.md +0 -59
  747. package/tools/vds-scripts/docs/vi/agents/reference/jira-orchestrator.md +0 -32
  748. package/tools/vds-scripts/docs/vi/agents/reference/links-orchestrator.md +0 -66
  749. package/tools/vds-scripts/docs/vi/agents/reference/lsp-orchestrator.md +0 -60
  750. package/tools/vds-scripts/docs/vi/agents/reference/markdown-orchestrator.md +0 -62
  751. package/tools/vds-scripts/docs/vi/agents/reference/mcp-orchestrator.md +0 -34
  752. package/tools/vds-scripts/docs/vi/agents/reference/memory-orchestrator.md +0 -45
  753. package/tools/vds-scripts/docs/vi/agents/reference/metabase-orchestrator.md +0 -30
  754. package/tools/vds-scripts/docs/vi/agents/reference/multi-agent-orchestrator.md +0 -61
  755. package/tools/vds-scripts/docs/vi/agents/reference/openapi-orchestrator.md +0 -66
  756. package/tools/vds-scripts/docs/vi/agents/reference/orchestrator-architecture.md +0 -24
  757. package/tools/vds-scripts/docs/vi/agents/reference/orchestrator-index.md +0 -73
  758. package/tools/vds-scripts/docs/vi/agents/reference/pdf-orchestrator.md +0 -30
  759. package/tools/vds-scripts/docs/vi/agents/reference/portable-paths-and-config.md +0 -123
  760. package/tools/vds-scripts/docs/vi/agents/reference/portable-paths-validation-matrix.md +0 -131
  761. package/tools/vds-scripts/docs/vi/agents/reference/progress-orchestrator.md +0 -43
  762. package/tools/vds-scripts/docs/vi/agents/reference/progress-report-cli.md +0 -217
  763. package/tools/vds-scripts/docs/vi/agents/reference/public-interface-orchestrator.md +0 -82
  764. package/tools/vds-scripts/docs/vi/agents/reference/research-orchestrator.md +0 -45
  765. package/tools/vds-scripts/docs/vi/agents/reference/schema-orchestrator.md +0 -66
  766. package/tools/vds-scripts/docs/vi/agents/reference/search-tools.md +0 -19
  767. package/tools/vds-scripts/docs/vi/agents/reference/skills-reference.md +0 -27
  768. package/tools/vds-scripts/docs/vi/agents/reference/sonarqube-orchestrator.md +0 -71
  769. package/tools/vds-scripts/docs/vi/agents/reference/spec-orchestrator.md +0 -56
  770. package/tools/vds-scripts/docs/vi/agents/reference/structure-orchestrator.md +0 -78
  771. package/tools/vds-scripts/docs/vi/agents/reference/system-requirements.md +0 -30
  772. package/tools/vds-scripts/docs/vi/agents/reference/tasks-orchestrator.md +0 -45
  773. package/tools/vds-scripts/docs/vi/agents/reference/validation-and-sync-notes.md +0 -26
  774. package/tools/vds-scripts/docs/vi/agents/reference/vds-ai-memory-api.md +0 -53
  775. package/tools/vds-scripts/docs/vi/agents/reference/vds-cli-reference.md +0 -34
  776. package/tools/vds-scripts/docs/vi/agents/reference/who-capability-inventory.md +0 -98
  777. package/tools/vds-scripts/docs/vi/agents/reference/who-capability-routing-matrix.md +0 -16
  778. package/tools/vds-scripts/docs/vi/agents/tutorials/feature-progression-guide.md +0 -124
  779. package/tools/vds-scripts/docs/vi/agents/tutorials/index.md +0 -13
  780. package/tools/vds-scripts/docs/vi/agents/tutorials/quick-start.md +0 -30
  781. package/tools/vds-scripts/docs/vi/agents/tutorials/who-skills-and-scripts-onboarding.md +0 -42
  782. package/tools/vds-scripts/docs/vi/agents/tutorials/zero-to-productive-developer.md +0 -137
  783. package/tools/vds-scripts/elastic_orchestrator/README.md +0 -450
  784. package/tools/vds-scripts/elastic_orchestrator/pyproject.toml +0 -97
  785. package/tools/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/__init__.py +0 -81
  786. package/tools/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/cli.py +0 -652
  787. package/tools/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/client.py +0 -743
  788. package/tools/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/config.py +0 -208
  789. package/tools/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/errors.py +0 -34
  790. package/tools/vds-scripts/elastic_orchestrator/src/vds_elastic_orchestrator/py.typed +0 -0
  791. package/tools/vds-scripts/elastic_orchestrator/tests/__init__.py +0 -0
  792. package/tools/vds-scripts/elastic_orchestrator/tests/conftest.py +0 -227
  793. package/tools/vds-scripts/elastic_orchestrator/tests/test_client.py +0 -990
  794. package/tools/vds-scripts/elastic_orchestrator/tests/test_config.py +0 -268
  795. package/tools/vds-scripts/elastic_orchestrator/tests/test_e2e_verification.py +0 -272
  796. package/tools/vds-scripts/elastic_orchestrator/tests/test_errors.py +0 -78
  797. package/tools/vds-scripts/git_orchestrator/ENHANCEMENT_SUMMARY.md +0 -119
  798. package/tools/vds-scripts/git_orchestrator/README.md +0 -286
  799. package/tools/vds-scripts/git_orchestrator/VERIFICATION_REPORT.md +0 -152
  800. package/tools/vds-scripts/git_orchestrator/pyproject.toml +0 -37
  801. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__init__.py +0 -30
  802. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__main__.py +0 -4
  803. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/branch_probe.py +0 -271
  804. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/cli.py +0 -892
  805. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/logging_config.py +0 -63
  806. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/manifest.py +0 -249
  807. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/orchestrator.py +0 -1647
  808. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/protocols.py +0 -35
  809. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/reporting.py +0 -55
  810. package/tools/vds-scripts/git_orchestrator/tests/__init__.py +0 -0
  811. package/tools/vds-scripts/git_orchestrator/tests/test_cli_settings.py +0 -19
  812. package/tools/vds-scripts/git_orchestrator/tests/test_integration.py +0 -79
  813. package/tools/vds-scripts/git_orchestrator/tests/test_manifest.py +0 -79
  814. package/tools/vds-scripts/git_orchestrator/tests/test_orchestrator.py +0 -207
  815. package/tools/vds-scripts/git_orchestrator/tests/test_public_api.py +0 -235
  816. package/tools/vds-scripts/git_orchestrator/tests/test_resilience.py +0 -343
  817. package/tools/vds-scripts/git_orchestrator/tests/unit/__init__.py +0 -0
  818. package/tools/vds-scripts/git_orchestrator/tests/unit/test_branch_probe.py +0 -327
  819. package/tools/vds-scripts/git_orchestrator/tests/unit/test_protocols.py +0 -132
  820. package/tools/vds-scripts/google_sheets_orchestrator/README.md +0 -241
  821. package/tools/vds-scripts/google_sheets_orchestrator/pyproject.toml +0 -45
  822. package/tools/vds-scripts/google_sheets_orchestrator/src/vds_google_sheets_orchestrator/__init__.py +0 -69
  823. package/tools/vds-scripts/google_sheets_orchestrator/src/vds_google_sheets_orchestrator/cli.py +0 -568
  824. package/tools/vds-scripts/google_sheets_orchestrator/src/vds_google_sheets_orchestrator/client.py +0 -186
  825. package/tools/vds-scripts/google_sheets_orchestrator/src/vds_google_sheets_orchestrator/config.py +0 -46
  826. package/tools/vds-scripts/google_sheets_orchestrator/src/vds_google_sheets_orchestrator/errors.py +0 -41
  827. package/tools/vds-scripts/google_sheets_orchestrator/tests/__init__.py +0 -1
  828. package/tools/vds-scripts/google_sheets_orchestrator/tests/conftest.py +0 -1
  829. package/tools/vds-scripts/google_sheets_orchestrator/tests/unit/__init__.py +0 -1
  830. package/tools/vds-scripts/google_sheets_orchestrator/tests/unit/test_cli.py +0 -212
  831. package/tools/vds-scripts/google_sheets_orchestrator/tests/unit/test_client.py +0 -24
  832. package/tools/vds-scripts/google_sheets_orchestrator/tests/unit/test_config.py +0 -16
  833. package/tools/vds-scripts/grafana_orchestrator/README.md +0 -572
  834. package/tools/vds-scripts/grafana_orchestrator/pyproject.toml +0 -102
  835. package/tools/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/__init__.py +0 -78
  836. package/tools/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/cli.py +0 -455
  837. package/tools/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/client.py +0 -700
  838. package/tools/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/config.py +0 -243
  839. package/tools/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/errors.py +0 -34
  840. package/tools/vds-scripts/grafana_orchestrator/src/vds_grafana_orchestrator/py.typed +0 -1
  841. package/tools/vds-scripts/grafana_orchestrator/tests/__init__.py +0 -1
  842. package/tools/vds-scripts/grafana_orchestrator/tests/conftest.py +0 -308
  843. package/tools/vds-scripts/grafana_orchestrator/tests/test_client.py +0 -458
  844. package/tools/vds-scripts/grafana_orchestrator/tests/test_config.py +0 -203
  845. package/tools/vds-scripts/grafana_orchestrator/tests/test_errors.py +0 -78
  846. package/tools/vds-scripts/jira_orchestrator/README.md +0 -864
  847. package/tools/vds-scripts/jira_orchestrator/pyproject.toml +0 -43
  848. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/__init__.py +0 -65
  849. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/adapter.py +0 -1685
  850. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/cli.py +0 -2806
  851. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/config.py +0 -168
  852. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/errors.py +0 -34
  853. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/reporting.py +0 -66
  854. package/tools/vds-scripts/jira_orchestrator/tests/__init__.py +0 -1
  855. package/tools/vds-scripts/jira_orchestrator/tests/conftest.py +0 -86
  856. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_agile_list_payloads.py +0 -54
  857. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_bulk_operations.py +0 -91
  858. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_components.py +0 -56
  859. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_createmeta.py +0 -45
  860. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_dashboard.py +0 -119
  861. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_issue_properties.py +0 -53
  862. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_permissions_compat.py +0 -41
  863. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_reindex.py +0 -42
  864. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_remote_links.py +0 -75
  865. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_transitions.py +0 -90
  866. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_user_management.py +0 -116
  867. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_version_management.py +0 -181
  868. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_watchers.py +0 -43
  869. package/tools/vds-scripts/jira_orchestrator/tests/test_advanced_search.py +0 -179
  870. package/tools/vds-scripts/jira_orchestrator/tests/test_agile.py +0 -304
  871. package/tools/vds-scripts/jira_orchestrator/tests/test_application_properties.py +0 -243
  872. package/tools/vds-scripts/jira_orchestrator/tests/test_backlog.py +0 -91
  873. package/tools/vds-scripts/jira_orchestrator/tests/test_bulk_operations.py +0 -403
  874. package/tools/vds-scripts/jira_orchestrator/tests/test_cli.py +0 -108
  875. package/tools/vds-scripts/jira_orchestrator/tests/test_components.py +0 -119
  876. package/tools/vds-scripts/jira_orchestrator/tests/test_config.py +0 -166
  877. package/tools/vds-scripts/jira_orchestrator/tests/test_dashboard.py +0 -122
  878. package/tools/vds-scripts/jira_orchestrator/tests/test_discover_fields.py +0 -207
  879. package/tools/vds-scripts/jira_orchestrator/tests/test_errors.py +0 -72
  880. package/tools/vds-scripts/jira_orchestrator/tests/test_filter_management.py +0 -411
  881. package/tools/vds-scripts/jira_orchestrator/tests/test_issue_archiving.py +0 -179
  882. package/tools/vds-scripts/jira_orchestrator/tests/test_issue_links.py +0 -257
  883. package/tools/vds-scripts/jira_orchestrator/tests/test_issue_properties.py +0 -189
  884. package/tools/vds-scripts/jira_orchestrator/tests/test_link_types.py +0 -407
  885. package/tools/vds-scripts/jira_orchestrator/tests/test_parse_set.py +0 -37
  886. package/tools/vds-scripts/jira_orchestrator/tests/test_permissions.py +0 -343
  887. package/tools/vds-scripts/jira_orchestrator/tests/test_reindex.py +0 -81
  888. package/tools/vds-scripts/jira_orchestrator/tests/test_remote_links.py +0 -269
  889. package/tools/vds-scripts/jira_orchestrator/tests/test_security_schemes.py +0 -202
  890. package/tools/vds-scripts/jira_orchestrator/tests/test_transitions_changelog.py +0 -109
  891. package/tools/vds-scripts/jira_orchestrator/tests/test_user_management.py +0 -246
  892. package/tools/vds-scripts/jira_orchestrator/tests/test_version_management.py +0 -503
  893. package/tools/vds-scripts/jira_orchestrator/tests/test_watchers.py +0 -116
  894. package/tools/vds-scripts/jira_orchestrator/tests/test_worklog.py +0 -243
  895. package/tools/vds-scripts/jira_viettelmoney_orchestrator/README.md +0 -864
  896. package/tools/vds-scripts/jira_viettelmoney_orchestrator/pyproject.toml +0 -43
  897. package/tools/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/__init__.py +0 -65
  898. package/tools/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/adapter.py +0 -1689
  899. package/tools/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/cli.py +0 -2799
  900. package/tools/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/config.py +0 -137
  901. package/tools/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/errors.py +0 -34
  902. package/tools/vds-scripts/jira_viettelmoney_orchestrator/src/vds_jira_viettelmoney_orchestrator/reporting.py +0 -65
  903. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/__init__.py +0 -1
  904. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/conftest.py +0 -86
  905. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_agile_list_payloads.py +0 -54
  906. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_bulk_operations.py +0 -101
  907. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_components.py +0 -64
  908. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_createmeta.py +0 -45
  909. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_dashboard.py +0 -135
  910. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_issue_properties.py +0 -63
  911. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_permissions_compat.py +0 -42
  912. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_reindex.py +0 -42
  913. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_remote_links.py +0 -89
  914. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_transitions.py +0 -91
  915. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_user_management.py +0 -130
  916. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_version_management.py +0 -189
  917. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_adapter_watchers.py +0 -49
  918. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_advanced_search.py +0 -213
  919. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_agile.py +0 -334
  920. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_application_properties.py +0 -261
  921. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_backlog.py +0 -91
  922. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_bulk_operations.py +0 -443
  923. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_cli.py +0 -106
  924. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_components.py +0 -133
  925. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_config.py +0 -166
  926. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_dashboard.py +0 -130
  927. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_discover_fields.py +0 -207
  928. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_errors.py +0 -61
  929. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_filter_management.py +0 -478
  930. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_issue_archiving.py +0 -181
  931. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_issue_links.py +0 -257
  932. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_issue_properties.py +0 -203
  933. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_link_types.py +0 -426
  934. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_parse_set.py +0 -37
  935. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_permissions.py +0 -358
  936. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_reindex.py +0 -81
  937. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_remote_links.py +0 -292
  938. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_security_schemes.py +0 -218
  939. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_transitions_changelog.py +0 -121
  940. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_user_management.py +0 -283
  941. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_version_management.py +0 -561
  942. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_watchers.py +0 -128
  943. package/tools/vds-scripts/jira_viettelmoney_orchestrator/tests/test_worklog.py +0 -265
  944. package/tools/vds-scripts/llms.txt +0 -159
  945. package/tools/vds-scripts/mcp_server/Dockerfile +0 -63
  946. package/tools/vds-scripts/mcp_server/README.md +0 -140
  947. package/tools/vds-scripts/mcp_server/pyproject.toml +0 -41
  948. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/__init__.py +0 -3
  949. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/config.py +0 -36
  950. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/server.py +0 -111
  951. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/__init__.py +0 -15
  952. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/bitbucket_tools.py +0 -47
  953. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/confluence_tools.py +0 -53
  954. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/git_tools.py +0 -71
  955. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/jira_tools.py +0 -63
  956. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/vidp_tools.py +0 -64
  957. package/tools/vds-scripts/mcp_server/tests/__init__.py +0 -1
  958. package/tools/vds-scripts/mcp_server/tests/conftest.py +0 -31
  959. package/tools/vds-scripts/mcp_server/tests/unit/__init__.py +0 -1
  960. package/tools/vds-scripts/mcp_server/tests/unit/test_bitbucket_tools.py +0 -28
  961. package/tools/vds-scripts/mcp_server/tests/unit/test_confluence_tools.py +0 -28
  962. package/tools/vds-scripts/mcp_server/tests/unit/test_git_tools.py +0 -35
  963. package/tools/vds-scripts/mcp_server/tests/unit/test_jira_tools.py +0 -35
  964. package/tools/vds-scripts/mcp_server/tests/verification/__init__.py +0 -6
  965. package/tools/vds-scripts/mcp_server/tests/verification/conftest.py +0 -51
  966. package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_confluence_tools.py +0 -40
  967. package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_jira_tools.py +0 -39
  968. package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_tool_registration.py +0 -50
  969. package/tools/vds-scripts/memory_orchestrator/.env.example +0 -109
  970. package/tools/vds-scripts/memory_orchestrator/Dockerfile +0 -103
  971. package/tools/vds-scripts/memory_orchestrator/README.md +0 -203
  972. package/tools/vds-scripts/memory_orchestrator/alembic/env.py +0 -35
  973. package/tools/vds-scripts/memory_orchestrator/alembic/script.py.mako +0 -28
  974. package/tools/vds-scripts/memory_orchestrator/alembic/versions/0001_add_team_id_to_vector_search_history.py +0 -57
  975. package/tools/vds-scripts/memory_orchestrator/alembic/versions/0002_nullable_query_text_vector_search_history.py +0 -47
  976. package/tools/vds-scripts/memory_orchestrator/alembic/versions/0003_create_memory_vectors_if_missing.py +0 -49
  977. package/tools/vds-scripts/memory_orchestrator/alembic/versions/0004_create_memory_duplicate_groups_and_members.py +0 -61
  978. package/tools/vds-scripts/memory_orchestrator/alembic/versions/0005_create_search_queries_if_missing.py +0 -57
  979. package/tools/vds-scripts/memory_orchestrator/alembic/versions/0006_create_export_import_jobs_if_missing.py +0 -52
  980. package/tools/vds-scripts/memory_orchestrator/alembic/versions/0007_create_remaining_orm_tables.py +0 -145
  981. package/tools/vds-scripts/memory_orchestrator/alembic/versions/0008_alter_export_import_jobs_user_id_to_varchar.py +0 -55
  982. package/tools/vds-scripts/memory_orchestrator/alembic/versions/0009_create_core_tables_if_missing.py +0 -197
  983. package/tools/vds-scripts/memory_orchestrator/alembic/versions/0010_create_service_accounts.py +0 -75
  984. package/tools/vds-scripts/memory_orchestrator/alembic/versions/0011_create_users_table.py +0 -106
  985. package/tools/vds-scripts/memory_orchestrator/alembic/versions/0012_audit_log_v3.py +0 -107
  986. package/tools/vds-scripts/memory_orchestrator/alembic/versions/0042_memory_dedup_resolutions.py +0 -67
  987. package/tools/vds-scripts/memory_orchestrator/alembic/versions/0043_memory_records_tombstones.py +0 -68
  988. package/tools/vds-scripts/memory_orchestrator/alembic/versions/0044_memory_evolution_shadow_soak_state.py +0 -69
  989. package/tools/vds-scripts/memory_orchestrator/alembic.ini +0 -65
  990. package/tools/vds-scripts/memory_orchestrator/conftest.py +0 -42
  991. package/tools/vds-scripts/memory_orchestrator/create_analytics_tables.sql +0 -289
  992. package/tools/vds-scripts/memory_orchestrator/create_memory_evolution_tables.sql +0 -104
  993. package/tools/vds-scripts/memory_orchestrator/create_memory_vectors_table.sql +0 -26
  994. package/tools/vds-scripts/memory_orchestrator/init-db-simple.sql +0 -16
  995. package/tools/vds-scripts/memory_orchestrator/pyproject.toml +0 -169
  996. package/tools/vds-scripts/memory_orchestrator/scripts/__init__.py +0 -0
  997. package/tools/vds-scripts/memory_orchestrator/scripts/deploy.sh +0 -112
  998. package/tools/vds-scripts/memory_orchestrator/scripts/entrypoint.sh +0 -130
  999. package/tools/vds-scripts/memory_orchestrator/scripts/mint_memory_client_service_token.py +0 -179
  1000. package/tools/vds-scripts/memory_orchestrator/scripts/recover_with_infer_false.py +0 -224
  1001. package/tools/vds-scripts/memory_orchestrator/scripts/soak-stalled-rate.sh +0 -95
  1002. package/tools/vds-scripts/memory_orchestrator/scripts/verify-track-alpha.sh +0 -110
  1003. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/__init__.py +0 -5
  1004. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/agents/__init__.py +0 -15
  1005. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/agents/_model_factory.py +0 -37
  1006. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/agents/consolidation.py +0 -49
  1007. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/agents/extraction.py +0 -56
  1008. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/agents/intent.py +0 -40
  1009. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/cli.py +0 -1457
  1010. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/client.py +0 -204
  1011. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/config/__init__.py +0 -0
  1012. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/config/memory_evolution.toml +0 -20
  1013. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/config/rules/__init__.py +0 -0
  1014. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/config/rules/storage_rules.yaml +0 -281
  1015. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/config/session_templates.json +0 -63
  1016. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/db/__init__.py +0 -10
  1017. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/db/alembic_filters.py +0 -66
  1018. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/formatters.py +0 -82
  1019. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/__init__.py +0 -25
  1020. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/__init__.py +0 -0
  1021. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/ai_memory_api.py +0 -1172
  1022. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/mcp_api.py +0 -854
  1023. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/openapi_config.py +0 -426
  1024. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/status_mapping.py +0 -91
  1025. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/__init__.py +0 -0
  1026. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/analytics.py +0 -1406
  1027. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/auth.py +0 -409
  1028. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/authorization.py +0 -474
  1029. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/cache.py +0 -51
  1030. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/cleanup.py +0 -286
  1031. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/deduplication.py +0 -546
  1032. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/dependencies.py +0 -349
  1033. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/embedding.py +0 -190
  1034. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/export_import.py +0 -596
  1035. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/health.py +0 -35
  1036. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/hooks.py +0 -145
  1037. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/maintenance.py +0 -653
  1038. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/promotion.py +0 -68
  1039. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/reconciliation.py +0 -102
  1040. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/sharing.py +0 -674
  1041. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/tasks.py +0 -72
  1042. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/api/v1/versioning.py +0 -483
  1043. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/brain/__init__.py +0 -0
  1044. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/brain/memory_manager.py +0 -914
  1045. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/brain/research_analyzer.py +0 -839
  1046. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/brain/vds_brain_agent.py +0 -1120
  1047. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/config/memory_dedup.toml +0 -15
  1048. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/core/__init__.py +0 -0
  1049. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/core/ai_memory_exceptions.py +0 -225
  1050. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/core/audit_log_writer.py +0 -59
  1051. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/core/auth.py +0 -350
  1052. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/core/config.py +0 -836
  1053. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/core/exceptions.py +0 -203
  1054. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/core/identity.py +0 -175
  1055. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/core/input_validation.py +0 -785
  1056. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/core/legacy_claim_normalizer.py +0 -142
  1057. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/core/rate_limit.py +0 -587
  1058. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/core/rbac_decorators.py +0 -531
  1059. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/core/redis.py +0 -446
  1060. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/core/scope_validator.py +0 -125
  1061. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/core/security.py +0 -109
  1062. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/core/security_middleware.py +0 -535
  1063. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/core/tests/__init__.py +0 -0
  1064. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/core/tests/test_input_validation.py +0 -68
  1065. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/database/__init__.py +0 -0
  1066. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/database/analytics_repository.py +0 -38
  1067. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/database/postgres_manager.py +0 -1897
  1068. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/database/rbac_migration.py +0 -57
  1069. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/database/redis_manager.py +0 -617
  1070. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/domain/__init__.py +0 -1
  1071. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/domain/entities/__init__.py +0 -1
  1072. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/domain/entities/user.py +0 -96
  1073. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/hooks/__init__.py +0 -0
  1074. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/hooks/storage_strategy_hook.py +0 -465
  1075. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/integrations/__init__.py +0 -0
  1076. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/integrations/memory_transformer.py +0 -827
  1077. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/main.py +0 -491
  1078. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/mcp/__init__.py +0 -20
  1079. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/mcp/env_config_parser.py +0 -188
  1080. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/mcp/official_mcp_client.py +0 -1574
  1081. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/mcp/working_mcp_interface.py +0 -340
  1082. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/models/__init__.py +0 -125
  1083. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/models/ai_memory_models.py +0 -1587
  1084. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/models/analytics_models.py +0 -766
  1085. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/models/auth_models.py +0 -460
  1086. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/models/database.py +0 -841
  1087. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/models/deduplication_models.py +0 -354
  1088. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/models/export_import_models.py +0 -353
  1089. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/models/rbac.py +0 -9
  1090. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/models/resource_ownership.py +0 -282
  1091. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/models/search_models.py +0 -427
  1092. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/models/search_models_additional.py +0 -322
  1093. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/models/sharing_models.py +0 -366
  1094. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/perf/__init__.py +0 -0
  1095. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/repositories/__init__.py +0 -1
  1096. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/repositories/dev_mode_user_repository.py +0 -194
  1097. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/repositories/postgres_user_repository.py +0 -280
  1098. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/repositories/service_account_repository.py +0 -330
  1099. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/repositories/user_repository.py +0 -77
  1100. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/__init__.py +0 -0
  1101. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/ai_memory_service.py +0 -2754
  1102. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/analytics_events.py +0 -104
  1103. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/analytics_service.py +0 -2825
  1104. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/auth.py +0 -207
  1105. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/embedding_service.py +0 -51
  1106. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/entity_backfill_service.py +0 -343
  1107. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/fallback_search_service.py +0 -327
  1108. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/health_check.py +0 -1556
  1109. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/mcp_integration_service.py +0 -224
  1110. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/mem0_adapter.py +0 -796
  1111. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/mem0_client.py +0 -48
  1112. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/mem0_sync_service.py +0 -484
  1113. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_admin_service.py +0 -1011
  1114. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_crud_service.py +0 -1469
  1115. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_deduplication.py +0 -1761
  1116. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_evolution/__init__.py +0 -17
  1117. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_evolution/celery_app.py +0 -70
  1118. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_evolution/celery_entrypoint.py +0 -15
  1119. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_evolution/config_loader.py +0 -275
  1120. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_evolution/consolidation_executor.py +0 -309
  1121. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_evolution/processor.py +0 -574
  1122. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_evolution/rules.py +0 -136
  1123. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_evolution/shadow_soak.py +0 -161
  1124. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_evolution/sweeper.py +0 -216
  1125. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_evolution/tracker.py +0 -265
  1126. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_evolution/worker.py +0 -780
  1127. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_export_import.py +0 -1403
  1128. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_search_service.py +0 -1164
  1129. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_sharing.py +0 -741
  1130. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/memory_versioning.py +0 -592
  1131. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/ownership_service.py +0 -798
  1132. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/promotion_service.py +0 -187
  1133. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/query_router_service.py +0 -523
  1134. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/rbac_service.py +0 -711
  1135. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/semantic_cache_service.py +0 -605
  1136. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/session_template_service.py +0 -76
  1137. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/storage_strategy/__init__.py +0 -35
  1138. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/storage_strategy/consolidation_worker.py +0 -384
  1139. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/storage_strategy/content_analyzer.py +0 -482
  1140. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/storage_strategy/pattern_matcher.py +0 -363
  1141. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/storage_strategy/rule_engine.py +0 -447
  1142. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/storage_strategy/storage_engine.py +0 -299
  1143. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/tool_registry_service.py +0 -544
  1144. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/triage_service.py +0 -250
  1145. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/services/vector_search_service.py +0 -497
  1146. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/use_cases/__init__.py +0 -1
  1147. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/use_cases/auth/__init__.py +0 -1
  1148. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/use_cases/auth/create_user_use_case.py +0 -96
  1149. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/use_cases/auth/exceptions.py +0 -94
  1150. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/use_cases/auth/login_use_case.py +0 -217
  1151. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/use_cases/auth/policies.py +0 -102
  1152. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/use_cases/auth/refresh_token_use_case.py +0 -86
  1153. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/utils/__init__.py +0 -0
  1154. package/tools/vds-scripts/memory_orchestrator/src/vds_memory_orchestrator/service/utils/data_transformer.py +0 -28
  1155. package/tools/vds-scripts/memory_orchestrator/tests/__init__.py +0 -0
  1156. package/tools/vds-scripts/memory_orchestrator/tests/auth/__init__.py +0 -6
  1157. package/tools/vds-scripts/memory_orchestrator/tests/auth/conftest.py +0 -124
  1158. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_acquire_jwt_token_deprecation.py +0 -176
  1159. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_alembic_0010_migration.py +0 -193
  1160. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_alembic_0011_users_migration.py +0 -234
  1161. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_alembic_0012_audit_log_v3_migration.py +0 -184
  1162. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_analytics_stream_machine_hint.py +0 -149
  1163. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_audit_log_identity_fields.py +0 -369
  1164. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_audit_log_v3_schema.py +0 -186
  1165. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_auth_api_endpoints.py +0 -264
  1166. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_authenticators.py +0 -343
  1167. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_conftest_factory.py +0 -108
  1168. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_create_user_use_case.py +0 -246
  1169. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_dependencies.py +0 -232
  1170. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_dev_mode_claim_fidelity.py +0 -87
  1171. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_dev_mode_parity.py +0 -187
  1172. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_dev_mode_user_repository.py +0 -271
  1173. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_get_current_identity.py +0 -403
  1174. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_identity.py +0 -272
  1175. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_jwt_auth.py +0 -658
  1176. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_legacy_callers_smoke.py +0 -141
  1177. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_legacy_claim_compat.py +0 -234
  1178. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_legacy_claim_normalizer.py +0 -315
  1179. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_lockout_policy.py +0 -124
  1180. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_login_use_case.py +0 -455
  1181. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_lsp_regression_contracts.py +0 -259
  1182. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_machine_context_detection.py +0 -160
  1183. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_me_endpoint_no_deprecation.py +0 -199
  1184. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_mint_service_token.py +0 -244
  1185. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_postgres_service_account_repository.py +0 -222
  1186. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_postgres_user_repository.py +0 -302
  1187. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_refresh_token_use_case.py +0 -187
  1188. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_scope_validator.py +0 -249
  1189. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_security.py +0 -158
  1190. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_service_account_entity.py +0 -146
  1191. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_service_account_repository_protocol.py +0 -60
  1192. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_token_precedence.py +0 -205
  1193. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_user_entity.py +0 -217
  1194. package/tools/vds-scripts/memory_orchestrator/tests/auth/test_user_repository_protocol.py +0 -141
  1195. package/tools/vds-scripts/memory_orchestrator/tests/cli/__init__.py +0 -1
  1196. package/tools/vds-scripts/memory_orchestrator/tests/cli/test_memory_create_user.py +0 -208
  1197. package/tools/vds-scripts/memory_orchestrator/tests/conftest.py +0 -184
  1198. package/tools/vds-scripts/memory_orchestrator/tests/integration/__init__.py +0 -0
  1199. package/tools/vds-scripts/memory_orchestrator/tests/integration/api/__init__.py +0 -0
  1200. package/tools/vds-scripts/memory_orchestrator/tests/integration/api/test_auth_login_e2e.py +0 -425
  1201. package/tools/vds-scripts/memory_orchestrator/tests/integration/api/test_health_strict_json.py +0 -197
  1202. package/tools/vds-scripts/memory_orchestrator/tests/integration/test_async_mode_status.py +0 -192
  1203. package/tools/vds-scripts/memory_orchestrator/tests/integration/test_vami020_dual_correctness.py +0 -218
  1204. package/tools/vds-scripts/memory_orchestrator/tests/integration/test_worktree_compose.py +0 -257
  1205. package/tools/vds-scripts/memory_orchestrator/tests/service/TEST_DOCUMENTATION.md +0 -467
  1206. package/tools/vds-scripts/memory_orchestrator/tests/service/__init__.py +0 -0
  1207. package/tools/vds-scripts/memory_orchestrator/tests/service/conftest.py +0 -1040
  1208. package/tools/vds-scripts/memory_orchestrator/tests/service/conftest_root.py +0 -63
  1209. package/tools/vds-scripts/memory_orchestrator/tests/service/postman/Local Environment.postman_environment.json +0 -46
  1210. package/tools/vds-scripts/memory_orchestrator/tests/service/postman/README.md +0 -302
  1211. package/tools/vds-scripts/memory_orchestrator/tests/service/postman/VDS Analytics API.postman_collection.json +0 -562
  1212. package/tools/vds-scripts/memory_orchestrator/tests/service/pytest.integration.ini +0 -21
  1213. package/tools/vds-scripts/memory_orchestrator/tests/service/pytest.unit.ini +0 -21
  1214. package/tools/vds-scripts/memory_orchestrator/tests/service/services/__init__.py +0 -0
  1215. package/tools/vds-scripts/memory_orchestrator/tests/service/services/test_health_aggregation.py +0 -370
  1216. package/tools/vds-scripts/memory_orchestrator/tests/service/test_ai_memory_api.py +0 -797
  1217. package/tools/vds-scripts/memory_orchestrator/tests/service/test_ai_memory_service.py +0 -1661
  1218. package/tools/vds-scripts/memory_orchestrator/tests/service/test_ai_memory_service_routing.py +0 -165
  1219. package/tools/vds-scripts/memory_orchestrator/tests/service/test_analytics_alerts.py +0 -89
  1220. package/tools/vds-scripts/memory_orchestrator/tests/service/test_analytics_api_integration.py +0 -604
  1221. package/tools/vds-scripts/memory_orchestrator/tests/service/test_analytics_bi.py +0 -49
  1222. package/tools/vds-scripts/memory_orchestrator/tests/service/test_analytics_dashboard_e2e.py +0 -106
  1223. package/tools/vds-scripts/memory_orchestrator/tests/service/test_analytics_dashboards.py +0 -127
  1224. package/tools/vds-scripts/memory_orchestrator/tests/service/test_analytics_enhanced.py +0 -575
  1225. package/tools/vds-scripts/memory_orchestrator/tests/service/test_analytics_external.py +0 -44
  1226. package/tools/vds-scripts/memory_orchestrator/tests/service/test_analytics_performance_metrics.py +0 -60
  1227. package/tools/vds-scripts/memory_orchestrator/tests/service/test_analytics_realtime.py +0 -63
  1228. package/tools/vds-scripts/memory_orchestrator/tests/service/test_analytics_reports.py +0 -138
  1229. package/tools/vds-scripts/memory_orchestrator/tests/service/test_analytics_service.py +0 -59
  1230. package/tools/vds-scripts/memory_orchestrator/tests/service/test_analytics_stream_cli.py +0 -305
  1231. package/tools/vds-scripts/memory_orchestrator/tests/service/test_analytics_websocket.py +0 -145
  1232. package/tools/vds-scripts/memory_orchestrator/tests/service/test_basic.py +0 -29
  1233. package/tools/vds-scripts/memory_orchestrator/tests/service/test_cache_warm_endpoint.py +0 -38
  1234. package/tools/vds-scripts/memory_orchestrator/tests/service/test_cache_warming_simple.py +0 -197
  1235. package/tools/vds-scripts/memory_orchestrator/tests/service/test_cache_warming_validation.py +0 -378
  1236. package/tools/vds-scripts/memory_orchestrator/tests/service/test_circuit_breaker_integration.py +0 -336
  1237. package/tools/vds-scripts/memory_orchestrator/tests/service/test_cleanup_endpoint.py +0 -126
  1238. package/tools/vds-scripts/memory_orchestrator/tests/service/test_concurrent_load.py +0 -603
  1239. package/tools/vds-scripts/memory_orchestrator/tests/service/test_cors_origins_validator.py +0 -48
  1240. package/tools/vds-scripts/memory_orchestrator/tests/service/test_drain_evolution.py +0 -130
  1241. package/tools/vds-scripts/memory_orchestrator/tests/service/test_embedding_lifecycle.py +0 -34
  1242. package/tools/vds-scripts/memory_orchestrator/tests/service/test_embedding_migration.py +0 -167
  1243. package/tools/vds-scripts/memory_orchestrator/tests/service/test_embedding_protocol_shape.py +0 -84
  1244. package/tools/vds-scripts/memory_orchestrator/tests/service/test_embedding_routes_w9.py +0 -340
  1245. package/tools/vds-scripts/memory_orchestrator/tests/service/test_embedding_service.py +0 -291
  1246. package/tools/vds-scripts/memory_orchestrator/tests/service/test_entity_backfill.py +0 -248
  1247. package/tools/vds-scripts/memory_orchestrator/tests/service/test_fallback_metrics.py +0 -582
  1248. package/tools/vds-scripts/memory_orchestrator/tests/service/test_fallback_search.py +0 -397
  1249. package/tools/vds-scripts/memory_orchestrator/tests/service/test_hooks.py +0 -149
  1250. package/tools/vds-scripts/memory_orchestrator/tests/service/test_include_internal_filter.py +0 -301
  1251. package/tools/vds-scripts/memory_orchestrator/tests/service/test_input_validation.py +0 -713
  1252. package/tools/vds-scripts/memory_orchestrator/tests/service/test_load_batch_endpoint.py +0 -300
  1253. package/tools/vds-scripts/memory_orchestrator/tests/service/test_maintenance_endpoints.py +0 -576
  1254. package/tools/vds-scripts/memory_orchestrator/tests/service/test_mcp_integration_service.py +0 -99
  1255. package/tools/vds-scripts/memory_orchestrator/tests/service/test_mem0_adapter_cloud.py +0 -111
  1256. package/tools/vds-scripts/memory_orchestrator/tests/service/test_mem0_adapter_dual_mode.py +0 -112
  1257. package/tools/vds-scripts/memory_orchestrator/tests/service/test_mem0_adapter_hybrid.py +0 -187
  1258. package/tools/vds-scripts/memory_orchestrator/tests/service/test_mem0_adapter_return_shape.py +0 -188
  1259. package/tools/vds-scripts/memory_orchestrator/tests/service/test_mem0_crud_integration.py +0 -190
  1260. package/tools/vds-scripts/memory_orchestrator/tests/service/test_mem0_sync_fix.py +0 -349
  1261. package/tools/vds-scripts/memory_orchestrator/tests/service/test_mem0_sync_service_resolver.py +0 -106
  1262. package/tools/vds-scripts/memory_orchestrator/tests/service/test_memory_client_maintenance.py +0 -121
  1263. package/tools/vds-scripts/memory_orchestrator/tests/service/test_memory_consolidation_executor.py +0 -47
  1264. package/tools/vds-scripts/memory_orchestrator/tests/service/test_memory_deduplication_service.py +0 -1275
  1265. package/tools/vds-scripts/memory_orchestrator/tests/service/test_memory_evolution_phase232.py +0 -427
  1266. package/tools/vds-scripts/memory_orchestrator/tests/service/test_memory_evolution_processor.py +0 -110
  1267. package/tools/vds-scripts/memory_orchestrator/tests/service/test_memory_evolution_rules.py +0 -29
  1268. package/tools/vds-scripts/memory_orchestrator/tests/service/test_memory_evolution_sweeper.py +0 -17
  1269. package/tools/vds-scripts/memory_orchestrator/tests/service/test_memory_evolution_tracker.py +0 -190
  1270. package/tools/vds-scripts/memory_orchestrator/tests/service/test_memory_export_import.py +0 -79
  1271. package/tools/vds-scripts/memory_orchestrator/tests/service/test_memory_sharing_service.py +0 -121
  1272. package/tools/vds-scripts/memory_orchestrator/tests/service/test_memory_versioning.py +0 -155
  1273. package/tools/vds-scripts/memory_orchestrator/tests/service/test_ollama_gating.py +0 -58
  1274. package/tools/vds-scripts/memory_orchestrator/tests/service/test_ownership_integration.py +0 -678
  1275. package/tools/vds-scripts/memory_orchestrator/tests/service/test_phase175_health_probe_and_get_event_guard.py +0 -131
  1276. package/tools/vds-scripts/memory_orchestrator/tests/service/test_postgres_pool_settings.py +0 -38
  1277. package/tools/vds-scripts/memory_orchestrator/tests/service/test_postgres_query_metrics.py +0 -28
  1278. package/tools/vds-scripts/memory_orchestrator/tests/service/test_postgres_update_cas.py +0 -86
  1279. package/tools/vds-scripts/memory_orchestrator/tests/service/test_rate_limit.py +0 -551
  1280. package/tools/vds-scripts/memory_orchestrator/tests/service/test_rbac.py +0 -661
  1281. package/tools/vds-scripts/memory_orchestrator/tests/service/test_recover_with_infer_false.py +0 -210
  1282. package/tools/vds-scripts/memory_orchestrator/tests/service/test_remote_endpoints.py +0 -59
  1283. package/tools/vds-scripts/memory_orchestrator/tests/service/test_schema_migration.py +0 -267
  1284. package/tools/vds-scripts/memory_orchestrator/tests/service/test_search_service_unwrap.py +0 -38
  1285. package/tools/vds-scripts/memory_orchestrator/tests/service/test_security_integration.py +0 -699
  1286. package/tools/vds-scripts/memory_orchestrator/tests/service/test_security_middleware.py +0 -532
  1287. package/tools/vds-scripts/memory_orchestrator/tests/service/test_semantic_cache_telemetry.py +0 -300
  1288. package/tools/vds-scripts/memory_orchestrator/tests/service/test_session_template_endpoints.py +0 -99
  1289. package/tools/vds-scripts/memory_orchestrator/tests/service/test_session_template_service.py +0 -77
  1290. package/tools/vds-scripts/memory_orchestrator/tests/service/test_sharing_api.py +0 -202
  1291. package/tools/vds-scripts/memory_orchestrator/tests/service/test_storage_strategy.py +0 -46
  1292. package/tools/vds-scripts/memory_orchestrator/tests/service/test_tasks_endpoint.py +0 -80
  1293. package/tools/vds-scripts/memory_orchestrator/tests/service/test_temporal_filters.py +0 -653
  1294. package/tools/vds-scripts/memory_orchestrator/tests/service/test_topic_clustering_benchmark.py +0 -657
  1295. package/tools/vds-scripts/memory_orchestrator/tests/service/test_triage.py +0 -346
  1296. package/tools/vds-scripts/memory_orchestrator/tests/service/test_unit_comprehensive.py +0 -1054
  1297. package/tools/vds-scripts/memory_orchestrator/tests/service/test_versioning_api.py +0 -81
  1298. package/tools/vds-scripts/memory_orchestrator/tests/service/test_wave2a_reconciliation.py +0 -422
  1299. package/tools/vds-scripts/memory_orchestrator/tests/service/test_wave3_stall_metrics.py +0 -578
  1300. package/tools/vds-scripts/memory_orchestrator/tests/service/test_websocket_auth.py +0 -227
  1301. package/tools/vds-scripts/memory_orchestrator/tests/service/test_writeback_classification.py +0 -55
  1302. package/tools/vds-scripts/memory_orchestrator/tests/test_agents/__init__.py +0 -0
  1303. package/tools/vds-scripts/memory_orchestrator/tests/test_agents/test_consolidation_agent.py +0 -128
  1304. package/tools/vds-scripts/memory_orchestrator/tests/test_agents/test_extraction_agent.py +0 -140
  1305. package/tools/vds-scripts/memory_orchestrator/tests/test_agents/test_intent_agent.py +0 -120
  1306. package/tools/vds-scripts/memory_orchestrator/tests/test_agents/test_model_factory.py +0 -85
  1307. package/tools/vds-scripts/memory_orchestrator/tests/test_agents/test_wiring.py +0 -267
  1308. package/tools/vds-scripts/memory_orchestrator/tests/test_alembic_migrations_phase229.py +0 -433
  1309. package/tools/vds-scripts/memory_orchestrator/tests/test_async_compat_lint.py +0 -178
  1310. package/tools/vds-scripts/memory_orchestrator/tests/test_cache_metrics_status.py +0 -124
  1311. package/tools/vds-scripts/memory_orchestrator/tests/test_cli.py +0 -517
  1312. package/tools/vds-scripts/memory_orchestrator/tests/test_cli_health.py +0 -68
  1313. package/tools/vds-scripts/memory_orchestrator/tests/test_client.py +0 -434
  1314. package/tools/vds-scripts/memory_orchestrator/tests/test_config_lazy_validation.py +0 -96
  1315. package/tools/vds-scripts/memory_orchestrator/tests/test_log_hygiene.py +0 -148
  1316. package/tools/vds-scripts/memory_orchestrator/tests/test_mem0_adapter.py +0 -810
  1317. package/tools/vds-scripts/memory_orchestrator/tests/test_mem0_adapter_dual_inversion.py +0 -185
  1318. package/tools/vds-scripts/memory_orchestrator/tests/test_mem0_event_resolver.py +0 -158
  1319. package/tools/vds-scripts/memory_orchestrator/tests/test_mem0_synced_subscriber.py +0 -294
  1320. package/tools/vds-scripts/memory_orchestrator/tests/test_postgres_vector_search_warning.py +0 -176
  1321. package/tools/vds-scripts/memory_orchestrator/tests/test_processor_adapter_diagnostic_phase216.py +0 -71
  1322. package/tools/vds-scripts/memory_orchestrator/tests/test_promotion_cli.py +0 -218
  1323. package/tools/vds-scripts/memory_orchestrator/tests/test_promotion_service.py +0 -322
  1324. package/tools/vds-scripts/memory_orchestrator/tests/test_status_endpoint.py +0 -193
  1325. package/tools/vds-scripts/memory_orchestrator/tests/test_worker_status_emission.py +0 -150
  1326. package/tools/vds-scripts/memory_orchestrator/tests/verification/__init__.py +0 -0
  1327. package/tools/vds-scripts/memory_orchestrator/tests/verification/conftest.py +0 -33
  1328. package/tools/vds-scripts/memory_orchestrator/tests/verification/test_live_api.py +0 -98
  1329. package/tools/vds-scripts/memory_orchestrator/uv.lock +0 -8875
  1330. package/tools/vds-scripts/metabase_orchestrator/pyproject.toml +0 -40
  1331. package/tools/vds-scripts/metabase_orchestrator/src/vds_metabase_orchestrator/__init__.py +0 -3
  1332. package/tools/vds-scripts/metabase_orchestrator/src/vds_metabase_orchestrator/cli.py +0 -519
  1333. package/tools/vds-scripts/metabase_orchestrator/src/vds_metabase_orchestrator/client.py +0 -417
  1334. package/tools/vds-scripts/metabase_orchestrator/src/vds_metabase_orchestrator/config.py +0 -172
  1335. package/tools/vds-scripts/metabase_orchestrator/tests/__init__.py +0 -1
  1336. package/tools/vds-scripts/platform_core/pyproject.toml +0 -49
  1337. package/tools/vds-scripts/platform_core/src/vds_platform_core/__init__.py +0 -16
  1338. package/tools/vds-scripts/platform_core/src/vds_platform_core/alembic/__init__.py +0 -18
  1339. package/tools/vds-scripts/platform_core/src/vds_platform_core/alembic/runtime.py +0 -139
  1340. package/tools/vds-scripts/platform_core/src/vds_platform_core/config.py +0 -88
  1341. package/tools/vds-scripts/platform_core/src/vds_platform_core/credentials.py +0 -40
  1342. package/tools/vds-scripts/platform_core/src/vds_platform_core/env.py +0 -24
  1343. package/tools/vds-scripts/platform_core/src/vds_platform_core/errors.py +0 -127
  1344. package/tools/vds-scripts/platform_core/src/vds_platform_core/http/__init__.py +0 -18
  1345. package/tools/vds-scripts/platform_core/src/vds_platform_core/http/auth.py +0 -32
  1346. package/tools/vds-scripts/platform_core/src/vds_platform_core/http/errors.py +0 -47
  1347. package/tools/vds-scripts/platform_core/src/vds_platform_core/http/pagination.py +0 -65
  1348. package/tools/vds-scripts/platform_core/src/vds_platform_core/http/retry.py +0 -62
  1349. package/tools/vds-scripts/platform_core/src/vds_platform_core/http/stack.py +0 -61
  1350. package/tools/vds-scripts/platform_core/src/vds_platform_core/logging.py +0 -132
  1351. package/tools/vds-scripts/platform_core/src/vds_platform_core/protocols.py +0 -77
  1352. package/tools/vds-scripts/platform_core/src/vds_platform_core/serialization.py +0 -80
  1353. package/tools/vds-scripts/platform_core/src/vds_platform_core/severity.py +0 -175
  1354. package/tools/vds-scripts/platform_core/tests/__init__.py +0 -0
  1355. package/tools/vds-scripts/platform_core/tests/conftest.py +0 -1
  1356. package/tools/vds-scripts/platform_core/tests/test_alembic_runtime.py +0 -300
  1357. package/tools/vds-scripts/platform_core/tests/test_auth.py +0 -84
  1358. package/tools/vds-scripts/platform_core/tests/test_config.py +0 -83
  1359. package/tools/vds-scripts/platform_core/tests/test_credentials.py +0 -73
  1360. package/tools/vds-scripts/platform_core/tests/test_env.py +0 -56
  1361. package/tools/vds-scripts/platform_core/tests/test_errors.py +0 -201
  1362. package/tools/vds-scripts/platform_core/tests/test_errors_http.py +0 -74
  1363. package/tools/vds-scripts/platform_core/tests/test_http_settings.py +0 -116
  1364. package/tools/vds-scripts/platform_core/tests/test_logging.py +0 -148
  1365. package/tools/vds-scripts/platform_core/tests/test_pagination.py +0 -153
  1366. package/tools/vds-scripts/platform_core/tests/test_protocols.py +0 -132
  1367. package/tools/vds-scripts/platform_core/tests/test_retry.py +0 -151
  1368. package/tools/vds-scripts/platform_core/tests/test_serialization.py +0 -92
  1369. package/tools/vds-scripts/platform_core/tests/test_severity.py +0 -178
  1370. package/tools/vds-scripts/platform_core/tests/test_stack.py +0 -130
  1371. package/tools/vds-scripts/platform_core/uv.lock +0 -341
  1372. package/tools/vds-scripts/pyproject.toml +0 -153
  1373. package/tools/vds-scripts/pyrightconfig.json +0 -82
  1374. package/tools/vds-scripts/repo-manifest.yaml +0 -380
  1375. package/tools/vds-scripts/repo-manifest.yaml.example +0 -25
  1376. package/tools/vds-scripts/ruff.toml +0 -103
  1377. package/tools/vds-scripts/scheduler_orchestrator/CLOSURE-v2.0.18.md +0 -99
  1378. package/tools/vds-scripts/scheduler_orchestrator/DEPLOYMENT-RUNBOOK.md +0 -655
  1379. package/tools/vds-scripts/scheduler_orchestrator/Dockerfile +0 -110
  1380. package/tools/vds-scripts/scheduler_orchestrator/GV-VERIFICATION.md +0 -81
  1381. package/tools/vds-scripts/scheduler_orchestrator/README.md +0 -96
  1382. package/tools/vds-scripts/scheduler_orchestrator/WAVE-2-GUARDRAILS.md +0 -89
  1383. package/tools/vds-scripts/scheduler_orchestrator/alembic/env.py +0 -41
  1384. package/tools/vds-scripts/scheduler_orchestrator/alembic/script.py.mako +0 -28
  1385. package/tools/vds-scripts/scheduler_orchestrator/alembic/versions/0001_create_sched_schema.py +0 -57
  1386. package/tools/vds-scripts/scheduler_orchestrator/alembic/versions/20260424_04f7169497f6_create_domain_tables.py +0 -166
  1387. package/tools/vds-scripts/scheduler_orchestrator/alembic/versions/20260424_a1b2c3d4e5f6_add_overlap_policy_to_schedules.py +0 -57
  1388. package/tools/vds-scripts/scheduler_orchestrator/alembic/versions/20260424_b2c3d4e5f6a7_add_dispatcher_state_machine.py +0 -100
  1389. package/tools/vds-scripts/scheduler_orchestrator/alembic/versions/20260424_c3d4e5f6a7b8_add_audit_log.py +0 -141
  1390. package/tools/vds-scripts/scheduler_orchestrator/alembic/versions/20260424_d4e5f6a7b8c9_celery_retirement.py +0 -161
  1391. package/tools/vds-scripts/scheduler_orchestrator/alembic/versions/20260424_e5f6a7b8c9d0_add_udf_enqueue.py +0 -154
  1392. package/tools/vds-scripts/scheduler_orchestrator/alembic/versions/20260426_f6a7b8c9d0e1_add_owner_orchestrator_to_chain_definitions.py +0 -62
  1393. package/tools/vds-scripts/scheduler_orchestrator/alembic/versions/20260427_a1b2c3d4e5f7_ecosystem_report_runs.py +0 -57
  1394. package/tools/vds-scripts/scheduler_orchestrator/alembic/versions/20260428_a1b2c3d4e5f8_add_phase2_report_columns.py +0 -95
  1395. package/tools/vds-scripts/scheduler_orchestrator/alembic/versions/20260430_b2c3d4e5f8a9_add_phase3_report_columns.py +0 -199
  1396. package/tools/vds-scripts/scheduler_orchestrator/alembic.ini +0 -70
  1397. package/tools/vds-scripts/scheduler_orchestrator/config/llm_pricing.yaml +0 -51
  1398. package/tools/vds-scripts/scheduler_orchestrator/config/prometheus-alerts.yaml +0 -277
  1399. package/tools/vds-scripts/scheduler_orchestrator/dashboards/slo-dashboard.json +0 -665
  1400. package/tools/vds-scripts/scheduler_orchestrator/design-notes/dedupe-design.md +0 -324
  1401. package/tools/vds-scripts/scheduler_orchestrator/docs/Q3-2026-GAME-DAY-PREFLIGHT.md +0 -217
  1402. package/tools/vds-scripts/scheduler_orchestrator/docs/authoring-workflows.md +0 -302
  1403. package/tools/vds-scripts/scheduler_orchestrator/docs/autoscaling-k8s-hpa.yaml +0 -193
  1404. package/tools/vds-scripts/scheduler_orchestrator/docs/capability-red-team.md +0 -153
  1405. package/tools/vds-scripts/scheduler_orchestrator/docs/celery-migration-procedure.md +0 -151
  1406. package/tools/vds-scripts/scheduler_orchestrator/docs/celery-retirement-checklist.md +0 -144
  1407. package/tools/vds-scripts/scheduler_orchestrator/docs/chaos-runbook.md +0 -395
  1408. package/tools/vds-scripts/scheduler_orchestrator/docs/conductor-decision.md +0 -232
  1409. package/tools/vds-scripts/scheduler_orchestrator/docs/cross-orchestrator-rollout-checklist.md +0 -223
  1410. package/tools/vds-scripts/scheduler_orchestrator/docs/dr-drill-report.md +0 -173
  1411. package/tools/vds-scripts/scheduler_orchestrator/docs/ecosystem-daily-report-runbook.md +0 -344
  1412. package/tools/vds-scripts/scheduler_orchestrator/docs/error-budget-policy.md +0 -228
  1413. package/tools/vds-scripts/scheduler_orchestrator/docs/evolution-daemon-retirement.md +0 -214
  1414. package/tools/vds-scripts/scheduler_orchestrator/docs/evolution-retirement-files.md +0 -171
  1415. package/tools/vds-scripts/scheduler_orchestrator/docs/game-day-phase2.md +0 -243
  1416. package/tools/vds-scripts/scheduler_orchestrator/docs/mcp-governance-review.md +0 -250
  1417. package/tools/vds-scripts/scheduler_orchestrator/docs/mcp-scheduler-surface.md +0 -317
  1418. package/tools/vds-scripts/scheduler_orchestrator/docs/performance-baseline.md +0 -343
  1419. package/tools/vds-scripts/scheduler_orchestrator/docs/pitr-drill-protocol.md +0 -162
  1420. package/tools/vds-scripts/scheduler_orchestrator/docs/quarterly-game-day.md +0 -206
  1421. package/tools/vds-scripts/scheduler_orchestrator/docs/runbooks/dr-postgres-restore.md +0 -268
  1422. package/tools/vds-scripts/scheduler_orchestrator/docs/runbooks/evolution-auto-promote-runbook.md +0 -194
  1423. package/tools/vds-scripts/scheduler_orchestrator/docs/runbooks/incident-dispatcher-stalled.md +0 -188
  1424. package/tools/vds-scripts/scheduler_orchestrator/docs/runbooks/incident-postgres-unavailable.md +0 -206
  1425. package/tools/vds-scripts/scheduler_orchestrator/docs/runbooks/incident-secret-leaked-in-event.md +0 -170
  1426. package/tools/vds-scripts/scheduler_orchestrator/docs/runbooks/incident-workflow-backlog.md +0 -201
  1427. package/tools/vds-scripts/scheduler_orchestrator/docs/runbooks/orphan-reconciliation-alert.md +0 -140
  1428. package/tools/vds-scripts/scheduler_orchestrator/docs/runbooks/postmortem-template.md +0 -156
  1429. package/tools/vds-scripts/scheduler_orchestrator/docs/runbooks/rollback-deploy.md +0 -209
  1430. package/tools/vds-scripts/scheduler_orchestrator/docs/scaling-decision-phase4.md +0 -176
  1431. package/tools/vds-scripts/scheduler_orchestrator/docs/secret-rotation-drill.md +0 -202
  1432. package/tools/vds-scripts/scheduler_orchestrator/docs/sharding-decision.md +0 -111
  1433. package/tools/vds-scripts/scheduler_orchestrator/docs/sharding-implementation-plan.md +0 -189
  1434. package/tools/vds-scripts/scheduler_orchestrator/docs/udf-enqueue-benchmark.md +0 -209
  1435. package/tools/vds-scripts/scheduler_orchestrator/docs/udf-trigger-demo-plan.md +0 -273
  1436. package/tools/vds-scripts/scheduler_orchestrator/pyproject.toml +0 -129
  1437. package/tools/vds-scripts/scheduler_orchestrator/scripts/autoscale/scale-compose.sh +0 -125
  1438. package/tools/vds-scripts/scheduler_orchestrator/scripts/backfill_last_run_at_from_dbos.py +0 -105
  1439. package/tools/vds-scripts/scheduler_orchestrator/scripts/benchmarks/phase4-sharding-remeasure.sh +0 -244
  1440. package/tools/vds-scripts/scheduler_orchestrator/scripts/benchmarks/udf-vs-dispatcher.sh +0 -157
  1441. package/tools/vds-scripts/scheduler_orchestrator/scripts/chaos/c1-api-kill.sh +0 -226
  1442. package/tools/vds-scripts/scheduler_orchestrator/scripts/chaos/c2-executor-kill.sh +0 -243
  1443. package/tools/vds-scripts/scheduler_orchestrator/scripts/chaos/c3-dispatcher-kill.sh +0 -314
  1444. package/tools/vds-scripts/scheduler_orchestrator/scripts/chaos/c4-postgres-failover.sh +0 -288
  1445. package/tools/vds-scripts/scheduler_orchestrator/scripts/chaos/c5-network-partition.sh +0 -351
  1446. package/tools/vds-scripts/scheduler_orchestrator/scripts/chaos/c6-outbox-storm.sh +0 -403
  1447. package/tools/vds-scripts/scheduler_orchestrator/scripts/collector-diagnostics.py +0 -125
  1448. package/tools/vds-scripts/scheduler_orchestrator/scripts/dr/pitr-drill.sh +0 -363
  1449. package/tools/vds-scripts/scheduler_orchestrator/scripts/entrypoint.sh +0 -100
  1450. package/tools/vds-scripts/scheduler_orchestrator/scripts/generate-report.py +0 -96
  1451. package/tools/vds-scripts/scheduler_orchestrator/scripts/mint_scheduler_service_token.py +0 -76
  1452. package/tools/vds-scripts/scheduler_orchestrator/scripts/verify-phase3-live.py +0 -158
  1453. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/__init__.py +0 -21
  1454. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/api/__init__.py +0 -1
  1455. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/api/v1/__init__.py +0 -5
  1456. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/api/v1/chains.py +0 -131
  1457. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/api/v1/events.py +0 -106
  1458. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/api/v1/health.py +0 -101
  1459. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/api/v1/router.py +0 -34
  1460. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/api/v1/schedules.py +0 -241
  1461. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/api/v1/workflows.py +0 -189
  1462. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/app.py +0 -429
  1463. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/chains/__init__.py +0 -1
  1464. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/chains/registry.py +0 -397
  1465. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/chains/resolver.py +0 -144
  1466. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/chains/triggers.py +0 -626
  1467. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/cli.py +0 -1112
  1468. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/config.py +0 -394
  1469. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/dashboards/__init__.py +0 -1
  1470. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/dashboards/ecosystem-scheduler.json +0 -550
  1471. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/db/__init__.py +0 -1
  1472. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/db/alembic_filters.py +0 -52
  1473. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/db/models.py +0 -428
  1474. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/events/__init__.py +0 -10
  1475. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/events/bus.py +0 -161
  1476. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/events/dispatcher.py +0 -501
  1477. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/events/outbox.py +0 -213
  1478. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/events/retention.py +0 -224
  1479. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/events/schema.py +0 -226
  1480. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/events/ws_server.py +0 -328
  1481. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/mcp/__init__.py +0 -26
  1482. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/mcp/auth.py +0 -184
  1483. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/mcp/server.py +0 -146
  1484. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/mcp/tools_readonly.py +0 -259
  1485. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/observability/__init__.py +0 -15
  1486. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/observability/logging.py +0 -196
  1487. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/observability/metrics.py +0 -347
  1488. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/observability/slo.py +0 -217
  1489. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/observability/workflow_trace_context.py +0 -149
  1490. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/scheduler/__init__.py +0 -1
  1491. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/scheduler/backfill.py +0 -160
  1492. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/scheduler/models.py +0 -88
  1493. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/scheduler/schedules.py +0 -927
  1494. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/scheduler/state_pg.py +0 -55
  1495. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/scheduler/state_ports.py +0 -23
  1496. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/scheduler/writeback.py +0 -153
  1497. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/security/__init__.py +0 -1
  1498. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/security/audit_log.py +0 -238
  1499. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/security/auth.py +0 -49
  1500. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/security/capabilities.py +0 -111
  1501. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/security/middleware.py +0 -54
  1502. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/security/secret_scanner.py +0 -126
  1503. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/__init__.py +0 -1
  1504. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/agent_step.py +0 -30
  1505. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/anomaly.py +0 -67
  1506. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/autoscale.py +0 -452
  1507. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/collector_registry.py +0 -89
  1508. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/collectors/__init__.py +0 -12
  1509. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/collectors/dora_metrics.py +0 -520
  1510. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/collectors/infra_health_collector.py +0 -378
  1511. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/collectors/llm_usage.py +0 -475
  1512. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/collectors/memory_collector.py +0 -101
  1513. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/collectors/phase1_adapters.py +0 -181
  1514. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/collectors/prometheus_collector.py +0 -442
  1515. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/collectors/protocol.py +0 -94
  1516. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/collectors/security_advisory.py +0 -399
  1517. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/collectors/spec_phase_collector.py +0 -137
  1518. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/collectors/test_suite_collector.py +0 -231
  1519. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/collectors/trend_forecast.py +0 -417
  1520. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/collectors/worktree_collector.py +0 -121
  1521. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/discovery.py +0 -97
  1522. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/ecosystem_report.py +0 -1406
  1523. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/envelope.py +0 -210
  1524. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/evolution/__init__.py +0 -1
  1525. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/evolution/auto_promote.py +0 -206
  1526. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/health_score.py +0 -112
  1527. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/memory_dedup/__init__.py +0 -69
  1528. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/memory_dedup/auto_resolve.py +0 -139
  1529. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/memory_dedup/tombstone_purge.py +0 -128
  1530. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/memory_evolution/__init__.py +0 -146
  1531. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/memory_evolution/dispatch.py +0 -140
  1532. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/memory_evolution/replay_dlq.py +0 -123
  1533. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/memory_evolution/repush_local_only.py +0 -129
  1534. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/memory_evolution/repush_stalled.py +0 -123
  1535. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/memory_evolution/resolve_pending_ids.py +0 -125
  1536. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/memory_evolution/sweep.py +0 -121
  1537. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/provider.py +0 -83
  1538. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/queues.py +0 -225
  1539. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/registry.py +0 -351
  1540. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/report_formatter.py +0 -743
  1541. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/slack_formatter.py +0 -110
  1542. package/tools/vds-scripts/scheduler_orchestrator/src/vds_scheduler_orchestrator/workflows/udf_trigger.py +0 -186
  1543. package/tools/vds-scripts/scheduler_orchestrator/tests/__init__.py +0 -8
  1544. package/tools/vds-scripts/scheduler_orchestrator/tests/_mocks/__init__.py +0 -28
  1545. package/tools/vds-scripts/scheduler_orchestrator/tests/_mocks/llm_mock.py +0 -322
  1546. package/tools/vds-scripts/scheduler_orchestrator/tests/conftest.py +0 -339
  1547. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/__init__.py +0 -1
  1548. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_agent_step.py +0 -400
  1549. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_api_v1_auth.py +0 -424
  1550. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_api_v1_reads.py +0 -579
  1551. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_api_v1_writes.py +0 -609
  1552. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_audit_drift_scan.py +0 -205
  1553. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_audit_log_grants.py +0 -231
  1554. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_capability_red_team.py +0 -266
  1555. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_chain_triggers_integration.py +0 -365
  1556. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_chaos_smoke.py +0 -871
  1557. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_cli_http_contract.py +0 -262
  1558. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_cli_schedule_roundtrip.py +0 -297
  1559. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_ecosystem_report_integration.py +0 -461
  1560. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_ecosystem_report_phase3_integration.py +0 -686
  1561. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_fairness.py +0 -373
  1562. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_full_ecosystem.py +0 -638
  1563. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_multi_day_workflow.py +0 -563
  1564. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_outbox_listen.py +0 -327
  1565. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_priority_queues.py +0 -288
  1566. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_queues_rate_limit.py +0 -272
  1567. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_retention_smoke.py +0 -259
  1568. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_secret_rotation_drill.py +0 -215
  1569. package/tools/vds-scripts/scheduler_orchestrator/tests/integration/test_tier1_collectors_live.py +0 -270
  1570. package/tools/vds-scripts/scheduler_orchestrator/tests/load/__init__.py +0 -29
  1571. package/tools/vds-scripts/scheduler_orchestrator/tests/load/capture_pg_metrics.py +0 -198
  1572. package/tools/vds-scripts/scheduler_orchestrator/tests/load/common.py +0 -163
  1573. package/tools/vds-scripts/scheduler_orchestrator/tests/load/nfr_check.py +0 -235
  1574. package/tools/vds-scripts/scheduler_orchestrator/tests/load/run_baselines.sh +0 -167
  1575. package/tools/vds-scripts/scheduler_orchestrator/tests/load/s1_baseline.py +0 -68
  1576. package/tools/vds-scripts/scheduler_orchestrator/tests/load/s2_phase1.py +0 -71
  1577. package/tools/vds-scripts/scheduler_orchestrator/tests/load/s3_phase2.py +0 -108
  1578. package/tools/vds-scripts/scheduler_orchestrator/tests/load/s4_event_storm.py +0 -131
  1579. package/tools/vds-scripts/scheduler_orchestrator/tests/load/s5_chain_fanout.py +0 -105
  1580. package/tools/vds-scripts/scheduler_orchestrator/tests/load/smoke.py +0 -69
  1581. package/tools/vds-scripts/scheduler_orchestrator/tests/test_alembic_downgrade.py +0 -297
  1582. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/__init__.py +0 -1
  1583. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_alembic_include_name.py +0 -82
  1584. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_anomaly.py +0 -135
  1585. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_app_health.py +0 -102
  1586. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_app_memory_evolution_bootstrap.py +0 -65
  1587. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_audit_log_writer.py +0 -321
  1588. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_auth_brute_force_middleware.py +0 -175
  1589. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_autoscale_helpers.py +0 -91
  1590. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_autoscale_helpers_deep.py +0 -271
  1591. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_backfill.py +0 -153
  1592. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_backfill_coverage.py +0 -219
  1593. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_capabilities.py +0 -175
  1594. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_celery_migration_workflows.py +0 -461
  1595. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_chains_branches.py +0 -387
  1596. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_chains_registry.py +0 -504
  1597. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_chains_triggers_complete.py +0 -800
  1598. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_chains_triggers_event.py +0 -649
  1599. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_cli_branches.py +0 -396
  1600. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_cli_capability_attach.py +0 -111
  1601. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_cli_schedules.py +0 -540
  1602. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_collector_protocol.py +0 -180
  1603. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_config.py +0 -62
  1604. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_decimal_json_and_phase3_columns.py +0 -372
  1605. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_dispatcher.py +0 -376
  1606. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_dockerfile_phase213_patch.py +0 -74
  1607. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_dora_metrics_collector.py +0 -740
  1608. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_ecosystem_report_config.py +0 -159
  1609. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_ecosystem_report_coverage.py +0 -1891
  1610. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_envelope.py +0 -256
  1611. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_error_budget_policy_signoff.py +0 -95
  1612. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_events_branches.py +0 -664
  1613. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_events_outbox.py +0 -364
  1614. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_events_retention.py +0 -206
  1615. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_events_schema.py +0 -279
  1616. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_evolution_auto_promote.py +0 -340
  1617. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_health_redact.py +0 -64
  1618. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_health_score.py +0 -240
  1619. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_last_run_at_writeback.py +0 -226
  1620. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_llm_usage_collector.py +0 -1095
  1621. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_mcp_auth.py +0 -204
  1622. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_mcp_readonly_gate.py +0 -273
  1623. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_mcp_tools_readonly.py +0 -382
  1624. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_memory_evolution_branches.py +0 -422
  1625. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_metrics.py +0 -318
  1626. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_observability_and_step_branches.py +0 -247
  1627. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_prometheus_collector_sli.py +0 -186
  1628. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_queues_config.py +0 -203
  1629. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_reconcile_dbos_schedules.py +0 -300
  1630. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_remaining_coverage.py +0 -666
  1631. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_report_formatter.py +0 -388
  1632. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_scheduled_workflow_signatures.py +0 -136
  1633. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_schedules.py +0 -552
  1634. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_schedules_branches.py +0 -772
  1635. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_secret_scanner.py +0 -81
  1636. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_security_advisory_collector.py +0 -495
  1637. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_security_auth_dep.py +0 -182
  1638. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_slack_notification.py +0 -356
  1639. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_slo_metrics.py +0 -204
  1640. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_tier1_collectors.py +0 -717
  1641. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_tier2_collectors.py +0 -867
  1642. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_tier3_collectors.py +0 -185
  1643. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_trend_forecast_collector.py +0 -617
  1644. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_udf_trigger.py +0 -180
  1645. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_workflow_discovery.py +0 -121
  1646. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_workflow_http_refactor_phase217.py +0 -309
  1647. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_workflow_registry.py +0 -398
  1648. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_workflow_registry_branches.py +0 -126
  1649. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_workflow_trace_context.py +0 -295
  1650. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_writeback.py +0 -461
  1651. package/tools/vds-scripts/scheduler_orchestrator/tests/unit/test_ws_server.py +0 -291
  1652. package/tools/vds-scripts/scripts/BRD-Validation-API.postman_collection.json +0 -706
  1653. package/tools/vds-scripts/scripts/BRD-Validation-README.md +0 -308
  1654. package/tools/vds-scripts/scripts/README.md +0 -271
  1655. package/tools/vds-scripts/scripts/_validate_alias_phase2.py +0 -137
  1656. package/tools/vds-scripts/scripts/audit-cli-patterns.sh +0 -135
  1657. package/tools/vds-scripts/scripts/audit-dashboard.sh +0 -525
  1658. package/tools/vds-scripts/scripts/backup.sh +0 -123
  1659. package/tools/vds-scripts/scripts/bootstrap_uv.sh +0 -69
  1660. package/tools/vds-scripts/scripts/brd-validation-environment.json +0 -51
  1661. package/tools/vds-scripts/scripts/brd-validation-test-results.json +0 -13023
  1662. package/tools/vds-scripts/scripts/brd_coverage_report.json +0 -276
  1663. package/tools/vds-scripts/scripts/check-future-annotations.py +0 -22
  1664. package/tools/vds-scripts/scripts/check-invalid-symlinks.py +0 -183
  1665. package/tools/vds-scripts/scripts/check-no-debug-markers.py +0 -21
  1666. package/tools/vds-scripts/scripts/check-no-unittest.py +0 -21
  1667. package/tools/vds-scripts/scripts/ci/assert_no_openspace_commits.sh +0 -37
  1668. package/tools/vds-scripts/scripts/ci/verify_branch_protection.sh +0 -64
  1669. package/tools/vds-scripts/scripts/closure/phase1_check.sh +0 -483
  1670. package/tools/vds-scripts/scripts/closure/phase2_check.sh +0 -500
  1671. package/tools/vds-scripts/scripts/create_memory_session.py +0 -36
  1672. package/tools/vds-scripts/scripts/deploy-bootstrap.sh +0 -201
  1673. package/tools/vds-scripts/scripts/deployment/load_docker_images_offline.sh +0 -90
  1674. package/tools/vds-scripts/scripts/dev/cli_smoke.sh +0 -259
  1675. package/tools/vds-scripts/scripts/final_completion_report.md +0 -139
  1676. package/tools/vds-scripts/scripts/folder_structure_report.json +0 -321
  1677. package/tools/vds-scripts/scripts/generate_completion_report.py +0 -132
  1678. package/tools/vds-scripts/scripts/generate_intellij_modules.py +0 -154
  1679. package/tools/vds-scripts/scripts/init-pgbouncer-userlist.sh +0 -154
  1680. package/tools/vds-scripts/scripts/link_integrity_report.json +0 -807
  1681. package/tools/vds-scripts/scripts/move_audit_artifact_pages.py +0 -252
  1682. package/tools/vds-scripts/scripts/move_audit_artifact_pages_rest.py +0 -165
  1683. package/tools/vds-scripts/scripts/move_wrong_dept_pages.py +0 -235
  1684. package/tools/vds-scripts/scripts/openspace_bootstrap.sh +0 -56
  1685. package/tools/vds-scripts/scripts/openspace_common.sh +0 -75
  1686. package/tools/vds-scripts/scripts/openspace_doctor.sh +0 -61
  1687. package/tools/vds-scripts/scripts/openspace_sync_shadow.sh +0 -65
  1688. package/tools/vds-scripts/scripts/phase7-baseline.sh +0 -77
  1689. package/tools/vds-scripts/scripts/preflight/env_check.sh +0 -102
  1690. package/tools/vds-scripts/scripts/repair_autopay_reports.sh +0 -173
  1691. package/tools/vds-scripts/scripts/rollback_drill.sh +0 -659
  1692. package/tools/vds-scripts/scripts/run-audit-in-tmux.sh +0 -286
  1693. package/tools/vds-scripts/scripts/run-department-audit.sh +0 -495
  1694. package/tools/vds-scripts/scripts/run-project-audit.sh +0 -267
  1695. package/tools/vds-scripts/scripts/save_intellij_memories.py +0 -112
  1696. package/tools/vds-scripts/scripts/save_memories_to_vds_ai.py +0 -81
  1697. package/tools/vds-scripts/scripts/save_memories_vds_style.py +0 -133
  1698. package/tools/vds-scripts/scripts/search_intellij_memories.py +0 -48
  1699. package/tools/vds-scripts/scripts/setup_intellij_workspace.py +0 -71
  1700. package/tools/vds-scripts/scripts/smoke-test-deploy.sh +0 -137
  1701. package/tools/vds-scripts/scripts/smoke_deploy_lib.py +0 -205
  1702. package/tools/vds-scripts/scripts/target-state-automation/README.md +0 -89
  1703. package/tools/vds-scripts/scripts/target-state-automation/confluence_sync_coordinator.sh +0 -27
  1704. package/tools/vds-scripts/scripts/target-state-automation/coordination.sh +0 -114
  1705. package/tools/vds-scripts/scripts/target-state-automation/diagram_coordinator.sh +0 -25
  1706. package/tools/vds-scripts/scripts/target-state-automation/docs_root.sh +0 -22
  1707. package/tools/vds-scripts/scripts/target-state-automation/generate_diagrams.sh +0 -22
  1708. package/tools/vds-scripts/scripts/target-state-automation/markdown_coordinator.sh +0 -25
  1709. package/tools/vds-scripts/scripts/target-state-automation/progress_dashboard.sh +0 -17
  1710. package/tools/vds-scripts/scripts/target-state-automation/schema_coordinator.sh +0 -25
  1711. package/tools/vds-scripts/scripts/target-state-automation/sync_confluence.sh +0 -30
  1712. package/tools/vds-scripts/scripts/target-state-automation/update_dependencies.sh +0 -19
  1713. package/tools/vds-scripts/scripts/target-state-automation/validate_links.sh +0 -86
  1714. package/tools/vds-scripts/scripts/target-state-automation/validate_markdown.sh +0 -52
  1715. package/tools/vds-scripts/scripts/target-state-automation/validate_schemas.sh +0 -26
  1716. package/tools/vds-scripts/scripts/target-state-automation/validate_structure.sh +0 -98
  1717. package/tools/vds-scripts/scripts/tests/__init__.py +0 -1
  1718. package/tools/vds-scripts/scripts/tests/test_dockerfile_correctness.py +0 -815
  1719. package/tools/vds-scripts/scripts/tests/test_makefile_loadouts.py +0 -560
  1720. package/tools/vds-scripts/scripts/tests/test_smoke_deploy.py +0 -313
  1721. package/tools/vds-scripts/scripts/tests/test_verify_alembic.py +0 -581
  1722. package/tools/vds-scripts/scripts/tests/test_verify_infra_topology.py +0 -254
  1723. package/tools/vds-scripts/scripts/update_modules_xml.py +0 -194
  1724. package/tools/vds-scripts/scripts/uv-workspace-alignment-verification-2026-03-25.md +0 -128
  1725. package/tools/vds-scripts/scripts/uv-workspace-alignment-verification-2026-04-18.md +0 -100
  1726. package/tools/vds-scripts/scripts/validate-cli-standardization.sh +0 -188
  1727. package/tools/vds-scripts/scripts/validate_brd_coverage.py +0 -197
  1728. package/tools/vds-scripts/scripts/validate_folder_structure.py +0 -234
  1729. package/tools/vds-scripts/scripts/validate_link_integrity.py +0 -274
  1730. package/tools/vds-scripts/scripts/vami017-caller-compat-report.md +0 -62
  1731. package/tools/vds-scripts/scripts/vami017-phase-b-scaffold-notes.md +0 -79
  1732. package/tools/vds-scripts/scripts/vds_sh_helpers.sh +0 -180
  1733. package/tools/vds-scripts/scripts/verification/phase2_portable_paths_ubuntu_docker.sh +0 -26
  1734. package/tools/vds-scripts/scripts/verify-infra-topology.py +0 -868
  1735. package/tools/vds-scripts/scripts/verify-memory-cli-e2e.sh +0 -598
  1736. package/tools/vds-scripts/scripts/verify-worktree-features.sh +0 -306
  1737. package/tools/vds-scripts/scripts/worktree-add.sh +0 -128
  1738. package/tools/vds-scripts/scripts/worktree-remove.sh +0 -112
  1739. package/tools/vds-scripts/scripts/worktree_compose.sh +0 -269
  1740. package/tools/vds-scripts/scripts/worktree_uv.sh +0 -77
  1741. package/tools/vds-scripts/setup-icloud-nosync.sh +0 -91
  1742. package/tools/vds-scripts/sonarqube_orchestrator/IMPLEMENTATION_AUDIT.md +0 -376
  1743. package/tools/vds-scripts/sonarqube_orchestrator/README.md +0 -507
  1744. package/tools/vds-scripts/sonarqube_orchestrator/pyproject.toml +0 -106
  1745. package/tools/vds-scripts/sonarqube_orchestrator/scripts/ensure_symlink.sh +0 -38
  1746. package/tools/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/__init__.py +0 -164
  1747. package/tools/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/batch.py +0 -212
  1748. package/tools/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/cli.py +0 -1407
  1749. package/tools/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/client.py +0 -608
  1750. package/tools/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/config.py +0 -260
  1751. package/tools/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/diff.py +0 -220
  1752. package/tools/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/errors.py +0 -34
  1753. package/tools/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/external_sca.py +0 -932
  1754. package/tools/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/portfolio.py +0 -225
  1755. package/tools/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/pr.py +0 -505
  1756. package/tools/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/reports.py +0 -342
  1757. package/tools/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/scanner.py +0 -351
  1758. package/tools/vds-scripts/sonarqube_orchestrator/src/vds_sonarqube_orchestrator/webhooks.py +0 -269
  1759. package/tools/vds-scripts/sonarqube_orchestrator/tests/__init__.py +0 -0
  1760. package/tools/vds-scripts/sonarqube_orchestrator/tests/conftest.py +0 -134
  1761. package/tools/vds-scripts/sonarqube_orchestrator/tests/test_batch.py +0 -419
  1762. package/tools/vds-scripts/sonarqube_orchestrator/tests/test_config.py +0 -145
  1763. package/tools/vds-scripts/sonarqube_orchestrator/tests/test_errors.py +0 -78
  1764. package/tools/vds-scripts/sonarqube_orchestrator/tests/test_external_sca.py +0 -466
  1765. package/tools/vds-scripts/sonarqube_orchestrator/tests/test_pr.py +0 -471
  1766. package/tools/vds-scripts/sonarqube_orchestrator/tests/test_reports.py +0 -511
  1767. package/tools/vds-scripts/sonarqube_orchestrator/tests/test_webhooks.py +0 -660
  1768. package/tools/vds-scripts/telegram_bridge/Dockerfile +0 -44
  1769. package/tools/vds-scripts/telegram_bridge/__init__.py +0 -6
  1770. package/tools/vds-scripts/telegram_bridge/alembic/__init__.py +0 -0
  1771. package/tools/vds-scripts/telegram_bridge/alembic/env.py +0 -63
  1772. package/tools/vds-scripts/telegram_bridge/alembic/script.py.mako +0 -24
  1773. package/tools/vds-scripts/telegram_bridge/alembic/versions/0001_telegram_bridge_init.py +0 -193
  1774. package/tools/vds-scripts/telegram_bridge/alembic/versions/0002_polling_state.py +0 -48
  1775. package/tools/vds-scripts/telegram_bridge/alembic/versions/0003_claude_session_store.py +0 -62
  1776. package/tools/vds-scripts/telegram_bridge/alembic.ini +0 -47
  1777. package/tools/vds-scripts/telegram_bridge/cli.py +0 -708
  1778. package/tools/vds-scripts/telegram_bridge/daemon/__init__.py +0 -1
  1779. package/tools/vds-scripts/telegram_bridge/daemon/__main__.py +0 -351
  1780. package/tools/vds-scripts/telegram_bridge/daemon/alembic_head_check.py +0 -116
  1781. package/tools/vds-scripts/telegram_bridge/daemon/audit.py +0 -255
  1782. package/tools/vds-scripts/telegram_bridge/daemon/bot.py +0 -52
  1783. package/tools/vds-scripts/telegram_bridge/daemon/bot_gateway.py +0 -114
  1784. package/tools/vds-scripts/telegram_bridge/daemon/bus.py +0 -106
  1785. package/tools/vds-scripts/telegram_bridge/daemon/commands.py +0 -457
  1786. package/tools/vds-scripts/telegram_bridge/daemon/config.py +0 -129
  1787. package/tools/vds-scripts/telegram_bridge/daemon/dispatcher.py +0 -107
  1788. package/tools/vds-scripts/telegram_bridge/daemon/health_server.py +0 -130
  1789. package/tools/vds-scripts/telegram_bridge/daemon/job_scheduler.py +0 -213
  1790. package/tools/vds-scripts/telegram_bridge/daemon/lifecycle.py +0 -100
  1791. package/tools/vds-scripts/telegram_bridge/daemon/middleware/__init__.py +0 -1
  1792. package/tools/vds-scripts/telegram_bridge/daemon/middleware/allowlist.py +0 -70
  1793. package/tools/vds-scripts/telegram_bridge/daemon/middleware/offset_tracker.py +0 -49
  1794. package/tools/vds-scripts/telegram_bridge/daemon/pg.py +0 -53
  1795. package/tools/vds-scripts/telegram_bridge/daemon/pg_outage_watchdog.py +0 -180
  1796. package/tools/vds-scripts/telegram_bridge/daemon/polling_state.py +0 -64
  1797. package/tools/vds-scripts/telegram_bridge/daemon/preflight.py +0 -106
  1798. package/tools/vds-scripts/telegram_bridge/daemon/registry_loader.py +0 -79
  1799. package/tools/vds-scripts/telegram_bridge/daemon/runner_orchestrator.py +0 -371
  1800. package/tools/vds-scripts/telegram_bridge/daemon/session_registry.py +0 -188
  1801. package/tools/vds-scripts/telegram_bridge/daemon/shim_server.py +0 -331
  1802. package/tools/vds-scripts/telegram_bridge/daemon/throttler.py +0 -501
  1803. package/tools/vds-scripts/telegram_bridge/daemon/topic_promoter.py +0 -343
  1804. package/tools/vds-scripts/telegram_bridge/daemon/uploads.py +0 -165
  1805. package/tools/vds-scripts/telegram_bridge/docker-compose.server.yml +0 -37
  1806. package/tools/vds-scripts/telegram_bridge/docker-compose.telegram.yml +0 -65
  1807. package/tools/vds-scripts/telegram_bridge/jobs/__init__.py +0 -6
  1808. package/tools/vds-scripts/telegram_bridge/jobs/archive_topics.py +0 -161
  1809. package/tools/vds-scripts/telegram_bridge/jobs/rotate_audit.py +0 -264
  1810. package/tools/vds-scripts/telegram_bridge/models/__init__.py +0 -27
  1811. package/tools/vds-scripts/telegram_bridge/models/events.py +0 -123
  1812. package/tools/vds-scripts/telegram_bridge/models/sessions.py +0 -52
  1813. package/tools/vds-scripts/telegram_bridge/models/topics.py +0 -41
  1814. package/tools/vds-scripts/telegram_bridge/pyproject.toml +0 -97
  1815. package/tools/vds-scripts/telegram_bridge/registry.yaml +0 -81
  1816. package/tools/vds-scripts/telegram_bridge/runners/__init__.py +0 -6
  1817. package/tools/vds-scripts/telegram_bridge/runners/_base/__init__.py +0 -1
  1818. package/tools/vds-scripts/telegram_bridge/runners/_base/protocol.py +0 -192
  1819. package/tools/vds-scripts/telegram_bridge/runners/_base/runner.py +0 -245
  1820. package/tools/vds-scripts/telegram_bridge/runners/_base/secret_patterns.py +0 -130
  1821. package/tools/vds-scripts/telegram_bridge/runners/acp/__init__.py +0 -7
  1822. package/tools/vds-scripts/telegram_bridge/runners/acp/__main__.py +0 -56
  1823. package/tools/vds-scripts/telegram_bridge/runners/acp/adapter.py +0 -272
  1824. package/tools/vds-scripts/telegram_bridge/runners/claude/__init__.py +0 -7
  1825. package/tools/vds-scripts/telegram_bridge/runners/claude/__main__.py +0 -61
  1826. package/tools/vds-scripts/telegram_bridge/runners/claude/adapter.py +0 -267
  1827. package/tools/vds-scripts/telegram_bridge/runners/claude/session_store.py +0 -191
  1828. package/tools/vds-scripts/telegram_bridge/runners/claude/upload_tool.py +0 -83
  1829. package/tools/vds-scripts/telegram_bridge/runners/codex/__init__.py +0 -7
  1830. package/tools/vds-scripts/telegram_bridge/runners/codex/__main__.py +0 -50
  1831. package/tools/vds-scripts/telegram_bridge/scripts/verify-tier1.sh +0 -54
  1832. package/tools/vds-scripts/telegram_bridge/scripts/verify-tier3-smoke.sh +0 -145
  1833. package/tools/vds-scripts/telegram_bridge/shim.py +0 -220
  1834. package/tools/vds-scripts/telegram_bridge/skill_content/QUALITY.md +0 -47
  1835. package/tools/vds-scripts/telegram_bridge/skill_content/SKILL.md +0 -99
  1836. package/tools/vds-scripts/telegram_bridge/skill_content/references/CHANGELOG.md +0 -47
  1837. package/tools/vds-scripts/telegram_bridge/skill_content/references/agent-onboarding.md +0 -84
  1838. package/tools/vds-scripts/telegram_bridge/skill_content/references/architecture.md +0 -116
  1839. package/tools/vds-scripts/telegram_bridge/skill_content/references/audit-queries.md +0 -123
  1840. package/tools/vds-scripts/telegram_bridge/skill_content/references/commands.md +0 -84
  1841. package/tools/vds-scripts/telegram_bridge/skill_content/references/setup.md +0 -132
  1842. package/tools/vds-scripts/telegram_bridge/skill_content/references/troubleshooting.md +0 -162
  1843. package/tools/vds-scripts/telegram_bridge/skill_content/references/verification.md +0 -312
  1844. package/tools/vds-scripts/telegram_bridge/skill_content/references/wave-0-spike-results.md +0 -559
  1845. package/tools/vds-scripts/telegram_bridge/tests/__init__.py +0 -0
  1846. package/tools/vds-scripts/telegram_bridge/tests/acceptance/__init__.py +0 -0
  1847. package/tools/vds-scripts/telegram_bridge/tests/acceptance/conftest.py +0 -381
  1848. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_01_first_run_setup.py +0 -47
  1849. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_02_notifier_approver.py +0 -42
  1850. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_03_mobile_remote_control.py +0 -42
  1851. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_04_handoff_continuity.py +0 -88
  1852. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_05_multi_agent.py +0 -132
  1853. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_06_subagent_topic_promotion.py +0 -150
  1854. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_07_subscribe_immediate_promote.py +0 -116
  1855. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_08_file_upload_in.py +0 -215
  1856. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_09_long_block_spill.py +0 -121
  1857. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_10_streaming_throttle.py +0 -90
  1858. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_11_audit_invariant.py +0 -156
  1859. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_12_pg_outage_strict.py +0 -171
  1860. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_13_redaction_in_blob.py +0 -146
  1861. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_14_cli_status_full.py +0 -184
  1862. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_15_allowlist_drop_counter.py +0 -84
  1863. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_16_topic_title_128_cap.py +0 -73
  1864. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_17_idle_timeout_ends.py +0 -110
  1865. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_18_hang_watchdog.py +0 -102
  1866. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_19_topic_creation_race.py +0 -91
  1867. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_20_acp_resource_link.py +0 -121
  1868. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_21_softcap_archive.py +0 -247
  1869. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_22_daemon_restart_continuity.py +0 -47
  1870. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_23_audit_query_cli.py +0 -39
  1871. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_24_cold_rotation.py +0 -38
  1872. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_25_advisory_lock_failfast.py +0 -35
  1873. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_26_token_bucket_fairness.py +0 -34
  1874. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_27_silent_degradation.py +0 -36
  1875. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_28_jsonl_secondary_sink.py +0 -35
  1876. package/tools/vds-scripts/telegram_bridge/tests/acceptance/test_ac_29_ro_mount.py +0 -33
  1877. package/tools/vds-scripts/telegram_bridge/tests/integration/__init__.py +0 -0
  1878. package/tools/vds-scripts/telegram_bridge/tests/integration/conftest.py +0 -196
  1879. package/tools/vds-scripts/telegram_bridge/tests/integration/test_ac_10_audit_forensic_query.py +0 -253
  1880. package/tools/vds-scripts/telegram_bridge/tests/integration/test_ac_11_cold_rotation_roundtrip.py +0 -204
  1881. package/tools/vds-scripts/telegram_bridge/tests/integration/test_ac_25_append_only_trigger.py +0 -188
  1882. package/tools/vds-scripts/telegram_bridge/tests/integration/test_archive_jobs.py +0 -265
  1883. package/tools/vds-scripts/telegram_bridge/tests/integration/test_audit_writer_invariant.py +0 -310
  1884. package/tools/vds-scripts/telegram_bridge/tests/integration/test_claude_session_store.py +0 -202
  1885. package/tools/vds-scripts/telegram_bridge/tests/integration/test_migration_roundtrip.py +0 -231
  1886. package/tools/vds-scripts/telegram_bridge/tests/integration/test_offset_persistence.py +0 -210
  1887. package/tools/vds-scripts/telegram_bridge/tests/integration/test_polling_singleton_constraint.py +0 -81
  1888. package/tools/vds-scripts/telegram_bridge/tests/integration/test_subscriptions.py +0 -194
  1889. package/tools/vds-scripts/telegram_bridge/tests/integration/test_topics_fk_chain.py +0 -216
  1890. package/tools/vds-scripts/telegram_bridge/tests/integration/test_uploads_cas_dedup.py +0 -265
  1891. package/tools/vds-scripts/telegram_bridge/tests/spikes/__init__.py +0 -0
  1892. package/tools/vds-scripts/telegram_bridge/tests/spikes/conftest.py +0 -5
  1893. package/tools/vds-scripts/telegram_bridge/tests/spikes/test_0_10_acp_schema_drift.py +0 -259
  1894. package/tools/vds-scripts/telegram_bridge/tests/spikes/test_0_11_telegram_general_topic_api.py +0 -63
  1895. package/tools/vds-scripts/telegram_bridge/tests/spikes/test_0_12_last_processed_offset.py +0 -56
  1896. package/tools/vds-scripts/telegram_bridge/tests/spikes/test_0_13_resume_corrupted.py +0 -77
  1897. package/tools/vds-scripts/telegram_bridge/tests/spikes/test_0_1_telegram_forum_smoke.py +0 -42
  1898. package/tools/vds-scripts/telegram_bridge/tests/spikes/test_0_2_telegram_file_smoke.py +0 -38
  1899. package/tools/vds-scripts/telegram_bridge/tests/spikes/test_0_3_telegram_permission_smoke.py +0 -40
  1900. package/tools/vds-scripts/telegram_bridge/tests/spikes/test_0_4_claude_sdk_hooks_mcp_smoke.py +0 -45
  1901. package/tools/vds-scripts/telegram_bridge/tests/spikes/test_0_5_session_store_conformance.py +0 -37
  1902. package/tools/vds-scripts/telegram_bridge/tests/spikes/test_0_6_claude_lock_jsonl_smoke.py +0 -51
  1903. package/tools/vds-scripts/telegram_bridge/tests/spikes/test_0_7_codex_acp_smoke.py +0 -58
  1904. package/tools/vds-scripts/telegram_bridge/tests/spikes/test_0_8_generic_acp_smoke.py +0 -57
  1905. package/tools/vds-scripts/telegram_bridge/tests/spikes/test_0_9_daemon_restart_vs_container.py +0 -55
  1906. package/tools/vds-scripts/telegram_bridge/tests/unit/__init__.py +0 -0
  1907. package/tools/vds-scripts/telegram_bridge/tests/unit/test_acp_adapter_full.py +0 -567
  1908. package/tools/vds-scripts/telegram_bridge/tests/unit/test_acp_runner_translate.py +0 -140
  1909. package/tools/vds-scripts/telegram_bridge/tests/unit/test_allowlist_middleware.py +0 -101
  1910. package/tools/vds-scripts/telegram_bridge/tests/unit/test_audit_archive_topics.py +0 -134
  1911. package/tools/vds-scripts/telegram_bridge/tests/unit/test_audit_postgres_unavailable.py +0 -151
  1912. package/tools/vds-scripts/telegram_bridge/tests/unit/test_audit_redact_existing.py +0 -134
  1913. package/tools/vds-scripts/telegram_bridge/tests/unit/test_bot_factory.py +0 -98
  1914. package/tools/vds-scripts/telegram_bridge/tests/unit/test_bot_gateway.py +0 -201
  1915. package/tools/vds-scripts/telegram_bridge/tests/unit/test_bus.py +0 -84
  1916. package/tools/vds-scripts/telegram_bridge/tests/unit/test_claude_adapter.py +0 -580
  1917. package/tools/vds-scripts/telegram_bridge/tests/unit/test_cli_commands.py +0 -459
  1918. package/tools/vds-scripts/telegram_bridge/tests/unit/test_cli_restart.py +0 -65
  1919. package/tools/vds-scripts/telegram_bridge/tests/unit/test_commands.py +0 -641
  1920. package/tools/vds-scripts/telegram_bridge/tests/unit/test_daemon_boot.py +0 -431
  1921. package/tools/vds-scripts/telegram_bridge/tests/unit/test_dispatcher.py +0 -198
  1922. package/tools/vds-scripts/telegram_bridge/tests/unit/test_health_server.py +0 -521
  1923. package/tools/vds-scripts/telegram_bridge/tests/unit/test_job_scheduler.py +0 -226
  1924. package/tools/vds-scripts/telegram_bridge/tests/unit/test_lifecycle_extra.py +0 -149
  1925. package/tools/vds-scripts/telegram_bridge/tests/unit/test_migration_check.py +0 -201
  1926. package/tools/vds-scripts/telegram_bridge/tests/unit/test_models_events.py +0 -72
  1927. package/tools/vds-scripts/telegram_bridge/tests/unit/test_models_sessions.py +0 -34
  1928. package/tools/vds-scripts/telegram_bridge/tests/unit/test_offset_tracker.py +0 -200
  1929. package/tools/vds-scripts/telegram_bridge/tests/unit/test_pg_outage_watchdog.py +0 -207
  1930. package/tools/vds-scripts/telegram_bridge/tests/unit/test_pg_pool.py +0 -124
  1931. package/tools/vds-scripts/telegram_bridge/tests/unit/test_preflight.py +0 -188
  1932. package/tools/vds-scripts/telegram_bridge/tests/unit/test_redaction.py +0 -193
  1933. package/tools/vds-scripts/telegram_bridge/tests/unit/test_registry.py +0 -71
  1934. package/tools/vds-scripts/telegram_bridge/tests/unit/test_registry_loader.py +0 -133
  1935. package/tools/vds-scripts/telegram_bridge/tests/unit/test_rotate_audit.py +0 -416
  1936. package/tools/vds-scripts/telegram_bridge/tests/unit/test_rotate_audit_paths.py +0 -57
  1937. package/tools/vds-scripts/telegram_bridge/tests/unit/test_runner_entrypoints.py +0 -309
  1938. package/tools/vds-scripts/telegram_bridge/tests/unit/test_runner_internals.py +0 -327
  1939. package/tools/vds-scripts/telegram_bridge/tests/unit/test_runner_lifecycle.py +0 -309
  1940. package/tools/vds-scripts/telegram_bridge/tests/unit/test_runner_orchestrator.py +0 -895
  1941. package/tools/vds-scripts/telegram_bridge/tests/unit/test_runner_orchestrator_translate.py +0 -162
  1942. package/tools/vds-scripts/telegram_bridge/tests/unit/test_runner_protocol.py +0 -156
  1943. package/tools/vds-scripts/telegram_bridge/tests/unit/test_runner_reconnect.py +0 -184
  1944. package/tools/vds-scripts/telegram_bridge/tests/unit/test_session_store.py +0 -264
  1945. package/tools/vds-scripts/telegram_bridge/tests/unit/test_session_store_resume_validator.py +0 -109
  1946. package/tools/vds-scripts/telegram_bridge/tests/unit/test_shim.py +0 -52
  1947. package/tools/vds-scripts/telegram_bridge/tests/unit/test_shim_full.py +0 -413
  1948. package/tools/vds-scripts/telegram_bridge/tests/unit/test_shim_server.py +0 -498
  1949. package/tools/vds-scripts/telegram_bridge/tests/unit/test_throttler.py +0 -208
  1950. package/tools/vds-scripts/telegram_bridge/tests/unit/test_throttler_spill.py +0 -176
  1951. package/tools/vds-scripts/telegram_bridge/tests/unit/test_topic_promoter.py +0 -229
  1952. package/tools/vds-scripts/telegram_bridge/tests/unit/test_upload_tool.py +0 -227
  1953. package/tools/vds-scripts/telegram_bridge/tests/unit/test_uploads.py +0 -337
  1954. package/tools/vds-scripts/telegram_bridge/tests/unit/test_uploads_meta.py +0 -91
  1955. package/tools/vds-scripts/uv.lock +0 -6603
  1956. package/tools/vds-scripts/vds-evolution-mono.sh +0 -59
  1957. package/tools/vds-scripts/vds-mail/SKILL.md +0 -185
  1958. package/tools/vds-scripts/vds-mail/scripts/fetch_mail.py +0 -116
  1959. package/tools/vds-scripts/vds-mail/scripts/search_mail.py +0 -131
  1960. package/tools/vds-scripts/vds-mail/scripts/send_mail.py +0 -150
  1961. package/tools/vds-scripts/vds_agent_core/CHANGELOG.md +0 -36
  1962. package/tools/vds-scripts/vds_agent_core/README.md +0 -453
  1963. package/tools/vds-scripts/vds_agent_core/docs/PHASE9A_ASSESSMENT.md +0 -50
  1964. package/tools/vds-scripts/vds_agent_core/docs/embedding.md +0 -468
  1965. package/tools/vds-scripts/vds_agent_core/pyproject.toml +0 -51
  1966. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/__init__.py +0 -29
  1967. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/agents/__init__.py +0 -26
  1968. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/agents/hooks.py +0 -119
  1969. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/agents/loop.py +0 -864
  1970. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/agents/tools.py +0 -41
  1971. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/config.py +0 -252
  1972. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/llm/__init__.py +0 -55
  1973. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/llm/_cascade.py +0 -143
  1974. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/llm/budget.py +0 -353
  1975. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/llm/cache.py +0 -373
  1976. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/llm/embedding.py +0 -815
  1977. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/llm/provider.py +0 -173
  1978. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/llm/schemas.py +0 -45
  1979. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/observability/__init__.py +0 -77
  1980. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/observability/decorators.py +0 -258
  1981. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/observability/jsonl_exporter.py +0 -236
  1982. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/observability/tracer.py +0 -497
  1983. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/profiles.py +0 -2015
  1984. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/runtime/__init__.py +0 -0
  1985. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/runtime/agent_id.py +0 -60
  1986. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/security/__init__.py +0 -13
  1987. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/security/credentials.py +0 -106
  1988. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/skills/__init__.py +0 -1
  1989. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/skills/executor.py +0 -238
  1990. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/skills/manager.py +0 -381
  1991. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/skills/policy.py +0 -568
  1992. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/workflows/__init__.py +0 -19
  1993. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/workflows/langgraph_runner.py +0 -102
  1994. package/tools/vds-scripts/vds_agent_core/src/vds_agent_core/workflows/protocols.py +0 -81
  1995. package/tools/vds-scripts/vds_agent_core/tests/__init__.py +0 -0
  1996. package/tools/vds-scripts/vds_agent_core/tests/conftest.py +0 -62
  1997. package/tools/vds-scripts/vds_agent_core/tests/integration/__init__.py +0 -0
  1998. package/tools/vds-scripts/vds_agent_core/tests/integration/test_audit_loop_hooks_integration.py +0 -135
  1999. package/tools/vds-scripts/vds_agent_core/tests/integration/test_audit_observability_integration.py +0 -246
  2000. package/tools/vds-scripts/vds_agent_core/tests/integration/test_public_api_stability.py +0 -91
  2001. package/tools/vds-scripts/vds_agent_core/tests/unit/__init__.py +0 -0
  2002. package/tools/vds-scripts/vds_agent_core/tests/unit/llm/__init__.py +0 -0
  2003. package/tools/vds-scripts/vds_agent_core/tests/unit/llm/test_call_site_parallelism.py +0 -30
  2004. package/tools/vds-scripts/vds_agent_core/tests/unit/llm/test_dimension_guardrail.py +0 -25
  2005. package/tools/vds-scripts/vds_agent_core/tests/unit/llm/test_drop_in_provider_extensibility.py +0 -76
  2006. package/tools/vds-scripts/vds_agent_core/tests/unit/llm/test_embedding.py +0 -393
  2007. package/tools/vds-scripts/vds_agent_core/tests/unit/llm/test_embedding_cache.py +0 -302
  2008. package/tools/vds-scripts/vds_agent_core/tests/unit/llm/test_embedding_extra.py +0 -696
  2009. package/tools/vds-scripts/vds_agent_core/tests/unit/llm/test_embedding_subclass.py +0 -49
  2010. package/tools/vds-scripts/vds_agent_core/tests/unit/llm/test_no_provider_leakage_in_env.py +0 -34
  2011. package/tools/vds-scripts/vds_agent_core/tests/unit/llm/test_provider_auto_route.py +0 -48
  2012. package/tools/vds-scripts/vds_agent_core/tests/unit/llm/test_runtime_log_clean.py +0 -111
  2013. package/tools/vds-scripts/vds_agent_core/tests/unit/llm/test_w7_logic_fixes.py +0 -219
  2014. package/tools/vds-scripts/vds_agent_core/tests/unit/profiles/__init__.py +0 -0
  2015. package/tools/vds-scripts/vds_agent_core/tests/unit/profiles/test_embedding_block_parser.py +0 -194
  2016. package/tools/vds-scripts/vds_agent_core/tests/unit/profiles/test_env_resolver_allowlist.py +0 -141
  2017. package/tools/vds-scripts/vds_agent_core/tests/unit/profiles/test_profile_authorization.py +0 -158
  2018. package/tools/vds-scripts/vds_agent_core/tests/unit/profiles/test_profiles_w3_extra.py +0 -547
  2019. package/tools/vds-scripts/vds_agent_core/tests/unit/profiles/test_real_audit_profile_compat.py +0 -129
  2020. package/tools/vds-scripts/vds_agent_core/tests/unit/runtime/__init__.py +0 -0
  2021. package/tools/vds-scripts/vds_agent_core/tests/unit/runtime/test_for_agent.py +0 -337
  2022. package/tools/vds-scripts/vds_agent_core/tests/unit/runtime/test_w9_cascade_edges.py +0 -369
  2023. package/tools/vds-scripts/vds_agent_core/tests/unit/security/__init__.py +0 -0
  2024. package/tools/vds-scripts/vds_agent_core/tests/unit/security/test_credentials.py +0 -132
  2025. package/tools/vds-scripts/vds_agent_core/tests/unit/test_agent_loop.py +0 -663
  2026. package/tools/vds-scripts/vds_agent_core/tests/unit/test_agent_loop_coverage.py +0 -429
  2027. package/tools/vds-scripts/vds_agent_core/tests/unit/test_agents_hooks_defaults.py +0 -22
  2028. package/tools/vds-scripts/vds_agent_core/tests/unit/test_budget.py +0 -155
  2029. package/tools/vds-scripts/vds_agent_core/tests/unit/test_budget_coverage.py +0 -264
  2030. package/tools/vds-scripts/vds_agent_core/tests/unit/test_budget_tracking_only.py +0 -71
  2031. package/tools/vds-scripts/vds_agent_core/tests/unit/test_cache.py +0 -251
  2032. package/tools/vds-scripts/vds_agent_core/tests/unit/test_cache_context.py +0 -62
  2033. package/tools/vds-scripts/vds_agent_core/tests/unit/test_config.py +0 -155
  2034. package/tools/vds-scripts/vds_agent_core/tests/unit/test_langgraph_runner.py +0 -45
  2035. package/tools/vds-scripts/vds_agent_core/tests/unit/test_langgraph_runner_coverage.py +0 -98
  2036. package/tools/vds-scripts/vds_agent_core/tests/unit/test_llm_cache_deep.py +0 -113
  2037. package/tools/vds-scripts/vds_agent_core/tests/unit/test_observability_decorators.py +0 -697
  2038. package/tools/vds-scripts/vds_agent_core/tests/unit/test_observability_hooks.py +0 -217
  2039. package/tools/vds-scripts/vds_agent_core/tests/unit/test_observability_jsonl_exporter.py +0 -542
  2040. package/tools/vds-scripts/vds_agent_core/tests/unit/test_observability_jsonl_wiring.py +0 -313
  2041. package/tools/vds-scripts/vds_agent_core/tests/unit/test_observability_tracer.py +0 -896
  2042. package/tools/vds-scripts/vds_agent_core/tests/unit/test_profiles.py +0 -1571
  2043. package/tools/vds-scripts/vds_agent_core/tests/unit/test_profiles_coverage.py +0 -444
  2044. package/tools/vds-scripts/vds_agent_core/tests/unit/test_provider.py +0 -316
  2045. package/tools/vds-scripts/vds_agent_core/tests/unit/test_schemas.py +0 -63
  2046. package/tools/vds-scripts/vds_agent_core/tests/unit/test_skill_executor.py +0 -297
  2047. package/tools/vds-scripts/vds_agent_core/tests/unit/test_skill_manager.py +0 -370
  2048. package/tools/vds-scripts/vds_agent_core/tests/unit/test_skill_manager_coverage.py +0 -364
  2049. package/tools/vds-scripts/vds_agent_core/tests/unit/test_skill_policy.py +0 -402
  2050. package/tools/vds-scripts/vds_agent_core/tests/unit/test_skill_rubric.py +0 -47
  2051. package/tools/vds-scripts/vds_agent_core/tests/unit/test_tools.py +0 -51
  2052. package/tools/vds-scripts/vds_agent_core/tests/unit/test_workflow_protocols.py +0 -136
  2053. package/tools/vds-scripts/vds_cli/README.md +0 -201
  2054. package/tools/vds-scripts/vds_cli/VERIFICATION_REPORT.md +0 -41
  2055. package/tools/vds-scripts/vds_cli/pyproject.toml +0 -53
  2056. package/tools/vds-scripts/vds_cli/src/vds_cli/__init__.py +0 -3
  2057. package/tools/vds-scripts/vds_cli/src/vds_cli/assets/git-credential-helper.py +0 -235
  2058. package/tools/vds-scripts/vds_cli/src/vds_cli/cli.py +0 -1166
  2059. package/tools/vds-scripts/vds_cli/src/vds_cli/commands/__init__.py +0 -1
  2060. package/tools/vds-scripts/vds_cli/src/vds_cli/commands/lint_cli.py +0 -370
  2061. package/tools/vds-scripts/vds_cli/src/vds_cli/confluence_sync.py +0 -846
  2062. package/tools/vds-scripts/vds_cli/src/vds_cli/docs/consumption/__init__.py +0 -7
  2063. package/tools/vds-scripts/vds_cli/src/vds_cli/docs/consumption/funnel.py +0 -105
  2064. package/tools/vds-scripts/vds_cli/src/vds_cli/docs/consumption/scanner.py +0 -211
  2065. package/tools/vds-scripts/vds_cli/src/vds_cli/docs/freshness/report.py +0 -90
  2066. package/tools/vds-scripts/vds_cli/src/vds_cli/docs/types.py +0 -27
  2067. package/tools/vds-scripts/vds_cli/src/vds_cli/docs_cmd.py +0 -672
  2068. package/tools/vds-scripts/vds_cli/src/vds_cli/docs_metrics.py +0 -75
  2069. package/tools/vds-scripts/vds_cli/src/vds_cli/docs_sync.py +0 -1171
  2070. package/tools/vds-scripts/vds_cli/src/vds_cli/ecosystem/__init__.py +0 -39
  2071. package/tools/vds-scripts/vds_cli/src/vds_cli/ecosystem/report.py +0 -439
  2072. package/tools/vds-scripts/vds_cli/src/vds_cli/ecosystem_docs.py +0 -164
  2073. package/tools/vds-scripts/vds_cli/src/vds_cli/env.py +0 -111
  2074. package/tools/vds-scripts/vds_cli/src/vds_cli/env_git_helper.py +0 -281
  2075. package/tools/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/__init__.py +0 -3
  2076. package/tools/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/google_sheets_orchestrator.py +0 -173
  2077. package/tools/vds-scripts/vds_cli/src/vds_cli/router.py +0 -258
  2078. package/tools/vds-scripts/vds_cli/src/vds_cli/skills_cmd.py +0 -274
  2079. package/tools/vds-scripts/vds_cli/src/vds_cli/sync_api.py +0 -613
  2080. package/tools/vds-scripts/vds_cli/src/vds_cli/sync_service.py +0 -283
  2081. package/tools/vds-scripts/vds_cli/tests/conftest.py +0 -60
  2082. package/tools/vds-scripts/vds_cli/tests/test_env_git_helper_lifecycle.py +0 -261
  2083. package/tools/vds-scripts/vds_cli/tests/test_git_credential_helper.py +0 -240
  2084. package/tools/vds-scripts/vds_cli/tests/test_router_help_proxy.py +0 -43
  2085. package/tools/vds-scripts/vds_cli/tests/unit/test_cli.py +0 -245
  2086. package/tools/vds-scripts/vds_cli/tests/unit/test_cli_DOC004.py +0 -110
  2087. package/tools/vds-scripts/vds_cli/tests/unit/test_confluence_sync.py +0 -315
  2088. package/tools/vds-scripts/vds_cli/tests/unit/test_confluence_sync_wave7.py +0 -375
  2089. package/tools/vds-scripts/vds_cli/tests/unit/test_consumption_funnel.py +0 -106
  2090. package/tools/vds-scripts/vds_cli/tests/unit/test_consumption_scanner.py +0 -144
  2091. package/tools/vds-scripts/vds_cli/tests/unit/test_docs_cmd.py +0 -89
  2092. package/tools/vds-scripts/vds_cli/tests/unit/test_docs_cmd_wave8.py +0 -161
  2093. package/tools/vds-scripts/vds_cli/tests/unit/test_docs_metrics.py +0 -16
  2094. package/tools/vds-scripts/vds_cli/tests/unit/test_docs_quality_score.py +0 -61
  2095. package/tools/vds-scripts/vds_cli/tests/unit/test_docs_sync.py +0 -417
  2096. package/tools/vds-scripts/vds_cli/tests/unit/test_ecosystem_cli_dashboard.py +0 -667
  2097. package/tools/vds-scripts/vds_cli/tests/unit/test_ecosystem_cli_dashboard_rendering.py +0 -143
  2098. package/tools/vds-scripts/vds_cli/tests/unit/test_ecosystem_docs.py +0 -63
  2099. package/tools/vds-scripts/vds_cli/tests/unit/test_env.py +0 -85
  2100. package/tools/vds-scripts/vds_cli/tests/unit/test_freshness_report.py +0 -125
  2101. package/tools/vds-scripts/vds_cli/tests/unit/test_lint_cli.py +0 -224
  2102. package/tools/vds-scripts/vds_cli/tests/unit/test_router.py +0 -135
  2103. package/tools/vds-scripts/vds_cli/tests/unit/test_skills_cmd.py +0 -419
  2104. package/tools/vds-scripts/vds_cli/tests/unit/test_sync_api.py +0 -357
  2105. package/tools/vds-scripts/vds_cli/tests/unit/test_sync_service.py +0 -170
  2106. package/tools/vds-scripts/vds_cli/tests/verification/conftest.py +0 -51
  2107. package/tools/vds-scripts/vds_cli/tests/verification/test_bitbucket_real.py +0 -32
  2108. package/tools/vds-scripts/vds_cli/tests/verification/test_confluence_real.py +0 -32
  2109. package/tools/vds-scripts/vds_cli/tests/verification/test_jira_real.py +0 -40
  2110. package/tools/vds-scripts/vds_cli_common/README.md +0 -190
  2111. package/tools/vds-scripts/vds_cli_common/pyproject.toml +0 -96
  2112. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/__init__.py +0 -36
  2113. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/app.py +0 -55
  2114. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/completers.py +0 -139
  2115. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/context.py +0 -201
  2116. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/env.py +0 -163
  2117. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/errors.py +0 -440
  2118. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/output.py +0 -284
  2119. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/paths.py +0 -78
  2120. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/testing.py +0 -211
  2121. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/version.py +0 -85
  2122. package/tools/vds-scripts/vds_cli_common/tests/__init__.py +0 -0
  2123. package/tools/vds-scripts/vds_cli_common/tests/test_app.py +0 -126
  2124. package/tools/vds-scripts/vds_cli_common/tests/test_completers.py +0 -148
  2125. package/tools/vds-scripts/vds_cli_common/tests/test_context.py +0 -192
  2126. package/tools/vds-scripts/vds_cli_common/tests/test_env.py +0 -235
  2127. package/tools/vds-scripts/vds_cli_common/tests/test_errors.py +0 -275
  2128. package/tools/vds-scripts/vds_cli_common/tests/test_output.py +0 -229
  2129. package/tools/vds-scripts/vds_cli_common/tests/test_paths.py +0 -61
  2130. package/tools/vds-scripts/vds_cli_common/tests/test_testing.py +0 -138
  2131. package/tools/vds-scripts/vds_cli_common/tests/test_version.py +0 -64
  2132. package/tools/vds-scripts/vds_evolution/README.md +0 -123
  2133. package/tools/vds-scripts/vds_evolution/collaboration/tests/__init__.py +0 -0
  2134. package/tools/vds-scripts/vds_evolution/collaboration/tests/test_capability_registry.py +0 -177
  2135. package/tools/vds-scripts/vds_evolution/pyproject.toml +0 -66
  2136. package/tools/vds-scripts/vds_evolution/src/vds_evolution/__init__.py +0 -26
  2137. package/tools/vds-scripts/vds_evolution/src/vds_evolution/audit.py +0 -210
  2138. package/tools/vds-scripts/vds_evolution/src/vds_evolution/auto_promote.py +0 -220
  2139. package/tools/vds-scripts/vds_evolution/src/vds_evolution/branch_guard.py +0 -522
  2140. package/tools/vds-scripts/vds_evolution/src/vds_evolution/classifier.py +0 -181
  2141. package/tools/vds-scripts/vds_evolution/src/vds_evolution/cli.py +0 -831
  2142. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/__init__.py +0 -3
  2143. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/capability_registry.py +0 -191
  2144. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/cross_skill_detector.py +0 -180
  2145. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/integration_pattern_gen.py +0 -154
  2146. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/propagator.py +0 -99
  2147. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/router_integration.py +0 -72
  2148. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/schemas/tool-decision-matrix-schema.json +0 -50
  2149. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/skill_graph_indexer.py +0 -46
  2150. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/tests/__init__.py +0 -0
  2151. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/tests/test_capability_registry.py +0 -177
  2152. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/tests/test_cross_skill_detector.py +0 -131
  2153. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/tests/test_integration_pattern_gen.py +0 -94
  2154. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/tests/test_propagator.py +0 -94
  2155. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/tests/test_router_integration.py +0 -63
  2156. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/tests/test_skill_graph_indexer.py +0 -31
  2157. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/tests/test_tool_decision_matrix.py +0 -100
  2158. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/tool_decision_matrix.py +0 -142
  2159. package/tools/vds-scripts/vds_evolution/src/vds_evolution/collaboration/tool_decision_matrix.yaml +0 -82
  2160. package/tools/vds-scripts/vds_evolution/src/vds_evolution/gates/__init__.py +0 -40
  2161. package/tools/vds-scripts/vds_evolution/src/vds_evolution/gates/behavioral.py +0 -232
  2162. package/tools/vds-scripts/vds_evolution/src/vds_evolution/gates/ensemble_judge.py +0 -461
  2163. package/tools/vds-scripts/vds_evolution/src/vds_evolution/gates/schemas/calibration-manifest.schema.json +0 -49
  2164. package/tools/vds-scripts/vds_evolution/src/vds_evolution/gates/schemas/test-dataset.schema.json +0 -43
  2165. package/tools/vds-scripts/vds_evolution/src/vds_evolution/gates/semantic.py +0 -290
  2166. package/tools/vds-scripts/vds_evolution/src/vds_evolution/gates/structural.py +0 -297
  2167. package/tools/vds-scripts/vds_evolution/src/vds_evolution/hmac_binding.py +0 -233
  2168. package/tools/vds-scripts/vds_evolution/src/vds_evolution/models.py +0 -381
  2169. package/tools/vds-scripts/vds_evolution/src/vds_evolution/openspace_integration.py +0 -1300
  2170. package/tools/vds-scripts/vds_evolution/src/vds_evolution/promote.py +0 -327
  2171. package/tools/vds-scripts/vds_evolution/src/vds_evolution/reconciler.py +0 -880
  2172. package/tools/vds-scripts/vds_evolution/src/vds_evolution/router.py +0 -435
  2173. package/tools/vds-scripts/vds_evolution/src/vds_evolution/shadow.py +0 -156
  2174. package/tools/vds-scripts/vds_evolution/src/vds_evolution/switch.py +0 -154
  2175. package/tools/vds-scripts/vds_evolution/tests/__init__.py +0 -0
  2176. package/tools/vds-scripts/vds_evolution/tests/integration/__init__.py +0 -0
  2177. package/tools/vds-scripts/vds_evolution/tests/integration/test_killswitch_cycle_boundary.py +0 -837
  2178. package/tools/vds-scripts/vds_evolution/tests/integration/test_openspace_integration.py +0 -1342
  2179. package/tools/vds-scripts/vds_evolution/tests/unit/__init__.py +0 -0
  2180. package/tools/vds-scripts/vds_evolution/tests/unit/test_classifier.py +0 -110
  2181. package/tools/vds-scripts/vds_evolution/tests/unit/test_cli_openspace_runtime.py +0 -43
  2182. package/tools/vds-scripts/vds_evolution/tests/unit/test_gate1.py +0 -216
  2183. package/tools/vds-scripts/vds_evolution/tests/unit/test_gate2.py +0 -178
  2184. package/tools/vds-scripts/vds_evolution/tests/unit/test_gate3.py +0 -221
  2185. package/tools/vds-scripts/vds_evolution/tests/unit/test_models.py +0 -340
  2186. package/tools/vds-scripts/vds_evolution/tests/unit/test_phase3_plus/__init__.py +0 -0
  2187. package/tools/vds-scripts/vds_evolution/tests/unit/test_phase3_plus/test_auto_promote.py +0 -44
  2188. package/tools/vds-scripts/vds_evolution/tests/unit/test_phase3_plus/test_ensemble_judge.py +0 -79
  2189. package/tools/vds-scripts/vds_evolution/tests/unit/test_phase3_plus/test_hmac_binding.py +0 -86
  2190. package/tools/vds-scripts/vds_evolution/tests/unit/test_reconciler.py +0 -315
  2191. package/tools/vds-scripts/vds_evolution/tests/unit/test_router.py +0 -90
  2192. package/tools/vds-scripts/vds_evolution/uv.lock +0 -797
  2193. package/tools/vds-scripts/vds_memory_client/pyproject.toml +0 -61
  2194. package/tools/vds-scripts/vds_memory_client/src/vds_memory_client/__init__.py +0 -7
  2195. package/tools/vds-scripts/vds_memory_client/src/vds_memory_client/client.py +0 -876
  2196. package/tools/vds-scripts/vds_memory_client/tests/__init__.py +0 -0
  2197. package/tools/vds-scripts/vds_memory_client/tests/test_client.py +0 -821
  2198. package/tools/vds-scripts/vds_memory_client/tests/test_dedup_threshold_phase216.py +0 -69
  2199. package/tools/vds-scripts/vds_memory_client/tests/test_maintenance_methods_phase217.py +0 -403
  2200. package/tools/vds-scripts/vds_memory_client/tests/test_warm_cache.py +0 -70
  2201. package/tools/vds-scripts/vds_sync_orchestrator/pyproject.toml +0 -65
  2202. package/tools/vds-scripts/vds_sync_orchestrator/src/vds_sync_orchestrator/__init__.py +0 -22
  2203. package/tools/vds-scripts/vds_sync_orchestrator/src/vds_sync_orchestrator/discovery.py +0 -60
  2204. package/tools/vds-scripts/vds_sync_orchestrator/src/vds_sync_orchestrator/executor.py +0 -226
  2205. package/tools/vds-scripts/vds_sync_orchestrator/src/vds_sync_orchestrator/facade.py +0 -103
  2206. package/tools/vds-scripts/vds_sync_orchestrator/src/vds_sync_orchestrator/models.py +0 -103
  2207. package/tools/vds-scripts/vds_sync_orchestrator/tests/__init__.py +0 -0
  2208. package/tools/vds-scripts/vds_sync_orchestrator/tests/unit/__init__.py +0 -0
  2209. package/tools/vds-scripts/vds_sync_orchestrator/tests/unit/test_discovery.py +0 -115
  2210. package/tools/vds-scripts/vds_sync_orchestrator/tests/unit/test_executor.py +0 -259
  2211. package/tools/vds-scripts/vds_sync_orchestrator/tests/unit/test_facade.py +0 -181
  2212. package/tools/vds-scripts/vds_sync_orchestrator/tests/unit/test_isolation.py +0 -58
  2213. package/tools/vds-scripts/vds_sync_orchestrator/tests/unit/test_models.py +0 -172
  2214. package/tools/vds-scripts/vidp_orchestrator/README.md +0 -31
  2215. package/tools/vds-scripts/vidp_orchestrator/pyproject.toml +0 -50
  2216. package/tools/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/__init__.py +0 -26
  2217. package/tools/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/cli.py +0 -246
  2218. package/tools/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/client.py +0 -104
  2219. package/tools/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/config.py +0 -82
  2220. package/tools/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/workflows.json +0 -3
  2221. package/tools/vds-scripts/vidp_orchestrator/src/vds_vidp_orchestrator/workflows.py +0 -130
  2222. /package/{tools/skills → skills/sdlc}/bmad-advanced-elicitation/SKILL.md +0 -0
  2223. /package/{tools/skills → skills/sdlc}/bmad-advanced-elicitation/methods.csv +0 -0
  2224. /package/{tools/skills → skills/sdlc}/bmad-agent-analyst/SKILL.md +0 -0
  2225. /package/{tools/skills → skills/sdlc}/bmad-agent-analyst/bmad-skill-manifest.yaml +0 -0
  2226. /package/{tools/skills → skills/sdlc}/bmad-brainstorming/SKILL.md +0 -0
  2227. /package/{tools/skills → skills/sdlc}/bmad-brainstorming/brain-methods.csv +0 -0
  2228. /package/{tools/skills → skills/sdlc}/bmad-brainstorming/steps/step-01-session-setup.md +0 -0
  2229. /package/{tools/skills → skills/sdlc}/bmad-brainstorming/steps/step-01b-continue.md +0 -0
  2230. /package/{tools/skills → skills/sdlc}/bmad-brainstorming/steps/step-02a-user-selected.md +0 -0
  2231. /package/{tools/skills → skills/sdlc}/bmad-brainstorming/steps/step-02b-ai-recommended.md +0 -0
  2232. /package/{tools/skills → skills/sdlc}/bmad-brainstorming/steps/step-02c-random-selection.md +0 -0
  2233. /package/{tools/skills → skills/sdlc}/bmad-brainstorming/steps/step-02d-progressive-flow.md +0 -0
  2234. /package/{tools/skills → skills/sdlc}/bmad-brainstorming/steps/step-03-technique-execution.md +0 -0
  2235. /package/{tools/skills → skills/sdlc}/bmad-brainstorming/steps/step-04-idea-organization.md +0 -0
  2236. /package/{tools/skills → skills/sdlc}/bmad-brainstorming/template.md +0 -0
  2237. /package/{tools/skills → skills/sdlc}/bmad-brainstorming/workflow.md +0 -0
  2238. /package/{tools/skills → skills/sdlc}/bmad-check-implementation-readiness/SKILL.md +0 -0
  2239. /package/{tools/skills → skills/sdlc}/bmad-check-implementation-readiness/steps/step-01-document-discovery.md +0 -0
  2240. /package/{tools/skills → skills/sdlc}/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md +0 -0
  2241. /package/{tools/skills → skills/sdlc}/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -0
  2242. /package/{tools/skills → skills/sdlc}/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md +0 -0
  2243. /package/{tools/skills → skills/sdlc}/bmad-check-implementation-readiness/steps/step-05-epic-quality-review.md +0 -0
  2244. /package/{tools/skills → skills/sdlc}/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +0 -0
  2245. /package/{tools/skills → skills/sdlc}/bmad-check-implementation-readiness/templates/readiness-report-template.md +0 -0
  2246. /package/{tools/skills → skills/sdlc}/bmad-check-implementation-readiness/workflow.md +0 -0
  2247. /package/{tools/skills → skills/sdlc}/bmad-code-review/SKILL.md +0 -0
  2248. /package/{tools/skills → skills/sdlc}/bmad-code-review/steps/step-01-gather-context.md +0 -0
  2249. /package/{tools/skills → skills/sdlc}/bmad-code-review/steps/step-02-review.md +0 -0
  2250. /package/{tools/skills → skills/sdlc}/bmad-code-review/steps/step-03-triage.md +0 -0
  2251. /package/{tools/skills → skills/sdlc}/bmad-code-review/steps/step-04-present.md +0 -0
  2252. /package/{tools/skills → skills/sdlc}/bmad-code-review/workflow.md +0 -0
  2253. /package/{tools/skills → skills/sdlc}/bmad-create-architecture/SKILL.md +0 -0
  2254. /package/{tools/skills → skills/sdlc}/bmad-create-architecture/architecture-decision-template.md +0 -0
  2255. /package/{tools/skills → skills/sdlc}/bmad-create-architecture/data/domain-complexity.csv +0 -0
  2256. /package/{tools/skills → skills/sdlc}/bmad-create-architecture/data/project-types.csv +0 -0
  2257. /package/{tools/skills → skills/sdlc}/bmad-create-architecture/steps/step-01-init.md +0 -0
  2258. /package/{tools/skills → skills/sdlc}/bmad-create-architecture/steps/step-01b-continue.md +0 -0
  2259. /package/{tools/skills → skills/sdlc}/bmad-create-architecture/steps/step-02-context.md +0 -0
  2260. /package/{tools/skills → skills/sdlc}/bmad-create-architecture/steps/step-03-starter.md +0 -0
  2261. /package/{tools/skills → skills/sdlc}/bmad-create-architecture/steps/step-04-decisions.md +0 -0
  2262. /package/{tools/skills → skills/sdlc}/bmad-create-architecture/steps/step-05-patterns.md +0 -0
  2263. /package/{tools/skills → skills/sdlc}/bmad-create-architecture/steps/step-06-structure.md +0 -0
  2264. /package/{tools/skills → skills/sdlc}/bmad-create-architecture/steps/step-07-validation.md +0 -0
  2265. /package/{tools/skills → skills/sdlc}/bmad-create-architecture/steps/step-08-complete.md +0 -0
  2266. /package/{tools/skills → skills/sdlc}/bmad-create-architecture/workflow.md +0 -0
  2267. /package/{tools/skills → skills/sdlc}/bmad-create-epics-and-stories/SKILL.md +0 -0
  2268. /package/{tools/skills → skills/sdlc}/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md +0 -0
  2269. /package/{tools/skills → skills/sdlc}/bmad-create-epics-and-stories/steps/step-02-design-epics.md +0 -0
  2270. /package/{tools/skills → skills/sdlc}/bmad-create-epics-and-stories/steps/step-03-create-stories.md +0 -0
  2271. /package/{tools/skills → skills/sdlc}/bmad-create-epics-and-stories/steps/step-04-final-validation.md +0 -0
  2272. /package/{tools/skills → skills/sdlc}/bmad-create-epics-and-stories/templates/epics-template.md +0 -0
  2273. /package/{tools/skills → skills/sdlc}/bmad-create-epics-and-stories/workflow.md +0 -0
  2274. /package/{tools/skills → skills/sdlc}/bmad-create-prd/SKILL.md +0 -0
  2275. /package/{tools/skills → skills/sdlc}/bmad-create-prd/data/domain-complexity.csv +0 -0
  2276. /package/{tools/skills → skills/sdlc}/bmad-create-prd/data/prd-purpose.md +0 -0
  2277. /package/{tools/skills → skills/sdlc}/bmad-create-prd/data/project-types.csv +0 -0
  2278. /package/{tools/skills → skills/sdlc}/bmad-create-prd/steps-c/step-01-init.md +0 -0
  2279. /package/{tools/skills → skills/sdlc}/bmad-create-prd/steps-c/step-01b-continue.md +0 -0
  2280. /package/{tools/skills → skills/sdlc}/bmad-create-prd/steps-c/step-02-discovery.md +0 -0
  2281. /package/{tools/skills → skills/sdlc}/bmad-create-prd/steps-c/step-02b-vision.md +0 -0
  2282. /package/{tools/skills → skills/sdlc}/bmad-create-prd/steps-c/step-02c-executive-summary.md +0 -0
  2283. /package/{tools/skills → skills/sdlc}/bmad-create-prd/steps-c/step-03-success.md +0 -0
  2284. /package/{tools/skills → skills/sdlc}/bmad-create-prd/steps-c/step-04-journeys.md +0 -0
  2285. /package/{tools/skills → skills/sdlc}/bmad-create-prd/steps-c/step-05-domain.md +0 -0
  2286. /package/{tools/skills → skills/sdlc}/bmad-create-prd/steps-c/step-06-innovation.md +0 -0
  2287. /package/{tools/skills → skills/sdlc}/bmad-create-prd/steps-c/step-07-project-type.md +0 -0
  2288. /package/{tools/skills → skills/sdlc}/bmad-create-prd/steps-c/step-08-scoping.md +0 -0
  2289. /package/{tools/skills → skills/sdlc}/bmad-create-prd/steps-c/step-09-functional.md +0 -0
  2290. /package/{tools/skills → skills/sdlc}/bmad-create-prd/steps-c/step-10-nonfunctional.md +0 -0
  2291. /package/{tools/skills → skills/sdlc}/bmad-create-prd/steps-c/step-11-polish.md +0 -0
  2292. /package/{tools/skills → skills/sdlc}/bmad-create-prd/steps-c/step-12-complete.md +0 -0
  2293. /package/{tools/skills → skills/sdlc}/bmad-create-prd/templates/prd-template.md +0 -0
  2294. /package/{tools/skills → skills/sdlc}/bmad-create-prd/workflow.md +0 -0
  2295. /package/{tools/skills → skills/sdlc}/bmad-domain-research/SKILL.md +0 -0
  2296. /package/{tools/skills → skills/sdlc}/bmad-domain-research/domain-steps/step-01-init.md +0 -0
  2297. /package/{tools/skills → skills/sdlc}/bmad-domain-research/domain-steps/step-02-domain-analysis.md +0 -0
  2298. /package/{tools/skills → skills/sdlc}/bmad-domain-research/domain-steps/step-03-competitive-landscape.md +0 -0
  2299. /package/{tools/skills → skills/sdlc}/bmad-domain-research/domain-steps/step-04-regulatory-focus.md +0 -0
  2300. /package/{tools/skills → skills/sdlc}/bmad-domain-research/domain-steps/step-05-technical-trends.md +0 -0
  2301. /package/{tools/skills → skills/sdlc}/bmad-domain-research/domain-steps/step-06-research-synthesis.md +0 -0
  2302. /package/{tools/skills → skills/sdlc}/bmad-domain-research/research.template.md +0 -0
  2303. /package/{tools/skills → skills/sdlc}/bmad-domain-research/workflow.md +0 -0
  2304. /package/{tools/skills → skills/sdlc}/bmad-party-mode/SKILL.md +0 -0
  2305. /package/{tools/skills → skills/sdlc}/bmad-prfaq/SKILL.md +0 -0
  2306. /package/{tools/skills → skills/sdlc}/bmad-prfaq/agents/artifact-analyzer.md +0 -0
  2307. /package/{tools/skills → skills/sdlc}/bmad-prfaq/agents/web-researcher.md +0 -0
  2308. /package/{tools/skills → skills/sdlc}/bmad-prfaq/assets/prfaq-template.md +0 -0
  2309. /package/{tools/skills → skills/sdlc}/bmad-prfaq/bmad-manifest.json +0 -0
  2310. /package/{tools/skills → skills/sdlc}/bmad-prfaq/references/customer-faq.md +0 -0
  2311. /package/{tools/skills → skills/sdlc}/bmad-prfaq/references/internal-faq.md +0 -0
  2312. /package/{tools/skills → skills/sdlc}/bmad-prfaq/references/press-release.md +0 -0
  2313. /package/{tools/skills → skills/sdlc}/bmad-prfaq/references/verdict.md +0 -0
  2314. /package/{tools/skills → skills/sdlc}/bmad-qa-generate-e2e-tests/SKILL.md +0 -0
  2315. /package/{tools/skills → skills/sdlc}/bmad-qa-generate-e2e-tests/checklist.md +0 -0
  2316. /package/{tools/skills → skills/sdlc}/bmad-qa-generate-e2e-tests/workflow.md +0 -0
  2317. /package/{tools/skills → skills/sdlc}/bmad-review-adversarial-general/SKILL.md +0 -0
  2318. /package/{tools/skills → skills/sdlc}/bmad-review-edge-case-hunter/SKILL.md +0 -0
  2319. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/SKILL.md +0 -0
  2320. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/data/domain-complexity.csv +0 -0
  2321. /package/{tools/skills/bmad-edit-prd → skills/sdlc/bmad-validate-prd}/data/prd-purpose.md +0 -0
  2322. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/data/project-types.csv +0 -0
  2323. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/steps-v/step-v-01-discovery.md +0 -0
  2324. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/steps-v/step-v-02-format-detection.md +0 -0
  2325. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/steps-v/step-v-02b-parity-check.md +0 -0
  2326. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/steps-v/step-v-03-density-validation.md +0 -0
  2327. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +0 -0
  2328. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/steps-v/step-v-05-measurability-validation.md +0 -0
  2329. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/steps-v/step-v-06-traceability-validation.md +0 -0
  2330. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -0
  2331. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +0 -0
  2332. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/steps-v/step-v-09-project-type-validation.md +0 -0
  2333. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/steps-v/step-v-10-smart-validation.md +0 -0
  2334. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +0 -0
  2335. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/steps-v/step-v-12-completeness-validation.md +0 -0
  2336. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/steps-v/step-v-13-report-complete.md +0 -0
  2337. /package/{tools/skills → skills/sdlc}/bmad-validate-prd/workflow.md +0 -0
@@ -1,1891 +0,0 @@
1
- """Coverage tests for workflows/ecosystem_report.py (post-deploy v2.0.18 gap close).
2
-
3
- Targets the four DBOS step bodies + the report renderer + the bootstrap helper:
4
-
5
- - _collect_git_activity → git subprocess + missing-.git skip path
6
- - _collect_scheduler_status → sched.* aggregation queries
7
- - _collect_event_bus_metrics → outbox 24h + subscription topic counts
8
- - _collect_queue_metrics → dbos.workflow_status enqueued/pending/24h
9
- - _generate_and_write_report → markdown rendering + anomaly heuristics
10
- - bootstrap_ecosystem_report_schedule → register_workflows + create idempotent
11
-
12
- The DBOS @workflow body itself is intentionally NOT exercised — it requires a
13
- live DBOS runtime (see test_evolution_auto_promote.py for the same boundary).
14
- The four steps it composes ARE exercised individually, which gives the workflow
15
- function adequate transitive coverage relative to the 80% line-coverage gate.
16
-
17
- All tests mock external surfaces (DBOS, Postgres sessions, asyncio.create_subprocess_exec,
18
- filesystem). No real network, no real DB, no real DBOS instance.
19
- """
20
-
21
- from __future__ import annotations
22
-
23
- from datetime import UTC, date, datetime
24
- from pathlib import Path
25
- from typing import Any
26
- from unittest.mock import AsyncMock, MagicMock, patch
27
-
28
- import pytest
29
-
30
- from vds_scheduler_orchestrator.config import EcosystemReportConfig, _reset_ecosystem_config_for_testing
31
-
32
- # ── Config fixtures ───────────────────────────────────────────────────────────
33
-
34
-
35
- @pytest.fixture(autouse=True)
36
- def _reset_eco_config():
37
- """Reset the ecosystem config singleton before/after each test."""
38
- _reset_ecosystem_config_for_testing()
39
- yield
40
- _reset_ecosystem_config_for_testing()
41
-
42
-
43
- def _make_test_config(tmp_path: Path | None = None, **overrides) -> EcosystemReportConfig:
44
- """Build a test EcosystemReportConfig with predictable defaults."""
45
- defaults = {
46
- "monorepo_root": Path("/fake/monorepo"),
47
- "report_dir": tmp_path if tmp_path else Path("reports/ecosystem"),
48
- "git_repos": ["WHO-project/vds-scripts", "WHO-project/vds-skills"],
49
- "error_threshold": 10,
50
- "pending_threshold": 50,
51
- "commit_threshold": 50,
52
- "zero_outbox_alert": True,
53
- }
54
- defaults.update(overrides)
55
- return EcosystemReportConfig(**defaults)
56
-
57
-
58
- # ── Helpers ───────────────────────────────────────────────────────────────────
59
-
60
-
61
- def _unwrap(step: Any) -> Any:
62
- """Return the raw async function under a @DBOS.step wrapper.
63
-
64
- DBOS wraps the user function with __wrapped__ pointing at the original
65
- coroutine. Falls back to the value itself if the attribute is absent
66
- (e.g. when DBOS decoration is bypassed in some environments).
67
- """
68
- return getattr(step, "__wrapped__", step)
69
-
70
-
71
- def _make_session_mock(
72
- *,
73
- scalar_returns: list[Any] | None = None,
74
- execute_returns: list[Any] | None = None,
75
- ) -> MagicMock:
76
- """Build a fake SQLAlchemy session whose scalar/execute return queued values.
77
-
78
- scalar_returns: each call to session.scalar(...) pops the next value.
79
- execute_returns: each call to session.execute(...) returns a stub whose
80
- .all() yields the next list of rows.
81
- """
82
- session = MagicMock()
83
- if scalar_returns is not None:
84
- session.scalar.side_effect = list(scalar_returns)
85
- if execute_returns is not None:
86
- execute_results = []
87
- for rows in execute_returns:
88
- stub = MagicMock()
89
- stub.all.return_value = rows
90
- execute_results.append(stub)
91
- session.execute.side_effect = execute_results
92
- return session
93
-
94
-
95
- def _make_completed_proc(stdout: str = "") -> MagicMock:
96
- """Build a fake CompletedProcess with the given stdout (legacy helper)."""
97
- proc = MagicMock()
98
- proc.stdout = stdout
99
- proc.returncode = 0
100
- return proc
101
-
102
-
103
- def _make_async_proc(stdout: str = "") -> MagicMock:
104
- """Build a fake asyncio subprocess whose communicate() returns (stdout_bytes, b'')."""
105
- proc = MagicMock()
106
- proc.communicate = AsyncMock(return_value=(stdout.encode(), b""))
107
- proc.returncode = 0
108
- return proc
109
-
110
-
111
- # ── Tests: _collect_git_activity ──────────────────────────────────────────────
112
-
113
-
114
- class TestCollectGitActivity:
115
- """_collect_git_activity() walks _REPOS, runs git log+branch, builds dict."""
116
-
117
- async def test_skips_repo_without_git_directory(self) -> None:
118
- """Repo without .git is logged-and-skipped, not crashed."""
119
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
120
-
121
- cfg = _make_test_config()
122
-
123
- # Make the .git path not exist
124
- path_instance = MagicMock()
125
- path_instance.__truediv__.return_value = path_instance
126
- path_instance.exists.return_value = False
127
-
128
- cfg_root_mock = MagicMock()
129
- cfg_root_mock.__truediv__.return_value = path_instance
130
-
131
- with (
132
- patch(
133
- "vds_scheduler_orchestrator.workflows.ecosystem_report.get_ecosystem_config",
134
- return_value=cfg,
135
- ),
136
- patch.object(cfg, "monorepo_root", cfg_root_mock),
137
- ):
138
- result = await _unwrap(mod._collect_git_activity)()
139
-
140
- assert result["repos"] == {}
141
- assert "since" in result
142
- assert result["since"].endswith("+00:00")
143
-
144
- async def test_collects_commits_authors_branches_for_present_repo(self) -> None:
145
- """Present .git repo → run git log+branch and parse output."""
146
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
147
-
148
- commits_out = "\n".join(
149
- [
150
- "abc|alice|feat: add foo",
151
- "def|bob|Merge branch 'x'",
152
- "ghi|alice|fix: bar",
153
- ]
154
- )
155
- branches_out = "main\nfeature/x\n"
156
-
157
- cfg = _make_test_config()
158
-
159
- # Path(...) chained calls all return the same instance whose .exists()=True.
160
- path_instance = MagicMock()
161
- path_instance.__truediv__.return_value = path_instance
162
- path_instance.exists.return_value = True
163
- path_instance.__str__ = lambda self: "/fake/repo" # type: ignore[assignment]
164
-
165
- with (
166
- patch(
167
- "vds_scheduler_orchestrator.workflows.ecosystem_report.get_ecosystem_config",
168
- return_value=cfg,
169
- ),
170
- patch.object(cfg, "monorepo_root", path_instance),
171
- patch(
172
- "vds_scheduler_orchestrator.workflows.ecosystem_report.asyncio.create_subprocess_exec",
173
- side_effect=[
174
- _make_async_proc(commits_out),
175
- _make_async_proc(branches_out),
176
- _make_async_proc(commits_out),
177
- _make_async_proc(branches_out),
178
- ],
179
- ),
180
- ):
181
- result = await _unwrap(mod._collect_git_activity)()
182
-
183
- # Two repos in git_repos → both populated identically here.
184
- assert len(result["repos"]) == 2
185
- any_repo = next(iter(result["repos"].values()))
186
- assert any_repo["commits"] == 3
187
- assert any_repo["merge_commits"] == 1
188
- assert sorted(any_repo["authors"]) == ["alice", "bob"]
189
- assert "main" in any_repo["branches_changed"]
190
- assert "feature/x" in any_repo["branches_changed"]
191
-
192
- async def test_handles_empty_git_log_output(self) -> None:
193
- """Empty git log output → zero commits, no authors, no merges."""
194
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
195
-
196
- cfg = _make_test_config()
197
-
198
- path_instance = MagicMock()
199
- path_instance.__truediv__.return_value = path_instance
200
- path_instance.exists.return_value = True
201
-
202
- with (
203
- patch(
204
- "vds_scheduler_orchestrator.workflows.ecosystem_report.get_ecosystem_config",
205
- return_value=cfg,
206
- ),
207
- patch.object(cfg, "monorepo_root", path_instance),
208
- patch(
209
- "vds_scheduler_orchestrator.workflows.ecosystem_report.asyncio.create_subprocess_exec",
210
- return_value=_make_async_proc(""),
211
- ),
212
- ):
213
- result = await _unwrap(mod._collect_git_activity)()
214
-
215
- for repo_info in result["repos"].values():
216
- assert repo_info["commits"] == 0
217
- assert repo_info["authors"] == []
218
- assert repo_info["merge_commits"] == 0
219
-
220
-
221
- # ── Tests: _collect_scheduler_status ──────────────────────────────────────────
222
-
223
-
224
- class TestCollectSchedulerStatus:
225
- """_collect_scheduler_status() aggregates schedule/alias/chain counts."""
226
-
227
- async def test_returns_well_formed_dict_with_zero_counts(self) -> None:
228
- """Empty DB → all counts zero, by_orchestrator dicts empty."""
229
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
230
-
231
- # Order: total_schedules, paused_schedules, total_aliases, total_chains.
232
- session = _make_session_mock(
233
- scalar_returns=[0, 0, 0, 0],
234
- execute_returns=[[], []], # orch_counts, alias_counts
235
- )
236
-
237
- with patch(
238
- "vds_scheduler_orchestrator.workflows.registry._make_session",
239
- return_value=session,
240
- ):
241
- result = await _unwrap(mod._collect_scheduler_status)()
242
-
243
- assert result["schedules"] == {
244
- "total": 0,
245
- "paused": 0,
246
- "active": 0,
247
- "by_orchestrator": {},
248
- }
249
- assert result["aliases"] == {"total": 0, "by_orchestrator": {}}
250
- assert result["chains"] == {"total": 0}
251
- session.close.assert_called_once()
252
-
253
- async def test_populates_by_orchestrator_breakdowns(self) -> None:
254
- """Non-empty execute() rows → orchestrator dict populated, active = total - paused."""
255
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
256
-
257
- session = _make_session_mock(
258
- scalar_returns=[10, 3, 5, 2], # 10 total, 3 paused → 7 active
259
- execute_returns=[
260
- [("audit_orchestrator", 6), ("scheduler_orchestrator", 4)],
261
- [("audit_orchestrator", 3), ("scheduler_orchestrator", 2)],
262
- ],
263
- )
264
-
265
- with patch(
266
- "vds_scheduler_orchestrator.workflows.registry._make_session",
267
- return_value=session,
268
- ):
269
- result = await _unwrap(mod._collect_scheduler_status)()
270
-
271
- assert result["schedules"]["total"] == 10
272
- assert result["schedules"]["paused"] == 3
273
- assert result["schedules"]["active"] == 7
274
- assert result["schedules"]["by_orchestrator"]["audit_orchestrator"] == 6
275
- assert result["aliases"]["total"] == 5
276
- assert result["aliases"]["by_orchestrator"]["scheduler_orchestrator"] == 2
277
- assert result["chains"]["total"] == 2
278
-
279
- async def test_session_closed_even_on_exception(self) -> None:
280
- """If a query raises, session.close() still runs (try/finally)."""
281
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
282
-
283
- session = MagicMock()
284
- session.scalar.side_effect = RuntimeError("boom")
285
-
286
- with patch(
287
- "vds_scheduler_orchestrator.workflows.registry._make_session",
288
- return_value=session,
289
- ), pytest.raises(RuntimeError, match="boom"):
290
- await _unwrap(mod._collect_scheduler_status)()
291
-
292
- session.close.assert_called_once()
293
-
294
-
295
- # ── Tests: _collect_event_bus_metrics ─────────────────────────────────────────
296
-
297
-
298
- class TestCollectEventBusMetrics:
299
- """_collect_event_bus_metrics() summarizes outbox + subscription state."""
300
-
301
- async def test_returns_zero_outbox_with_no_latest_event(self) -> None:
302
- """No outbox rows + no subscriptions → outbox_24h=0, latest_event_at=None."""
303
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
304
-
305
- # Order: outbox_24h, total_subs, latest_event (None).
306
- session = _make_session_mock(
307
- scalar_returns=[0, 0, None],
308
- execute_returns=[[]],
309
- )
310
-
311
- with patch(
312
- "vds_scheduler_orchestrator.workflows.registry._make_session",
313
- return_value=session,
314
- ):
315
- result = await _unwrap(mod._collect_event_bus_metrics)()
316
-
317
- assert result == {
318
- "outbox_24h": 0,
319
- "subscriptions": {"total": 0, "by_topic": {}},
320
- "latest_event_at": None,
321
- }
322
- session.close.assert_called_once()
323
-
324
- async def test_serializes_latest_event_timestamp(self) -> None:
325
- """latest_event_at returns an ISO8601 string when a row exists."""
326
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
327
-
328
- latest_dt = datetime(2026, 4, 26, 10, 30, 0, tzinfo=UTC)
329
- session = _make_session_mock(
330
- scalar_returns=[42, 7, latest_dt],
331
- execute_returns=[[("audit.*", 4), ("schedule.*", 3)]],
332
- )
333
-
334
- with patch(
335
- "vds_scheduler_orchestrator.workflows.registry._make_session",
336
- return_value=session,
337
- ):
338
- result = await _unwrap(mod._collect_event_bus_metrics)()
339
-
340
- assert result["outbox_24h"] == 42
341
- assert result["subscriptions"]["total"] == 7
342
- assert result["subscriptions"]["by_topic"]["audit.*"] == 4
343
- assert result["latest_event_at"] == latest_dt.isoformat()
344
-
345
- async def test_session_closed_even_on_exception(self) -> None:
346
- """try/finally guarantees session.close() under exception."""
347
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
348
-
349
- session = MagicMock()
350
- session.scalar.side_effect = RuntimeError("evt boom")
351
-
352
- with patch(
353
- "vds_scheduler_orchestrator.workflows.registry._make_session",
354
- return_value=session,
355
- ), pytest.raises(RuntimeError, match="evt boom"):
356
- await _unwrap(mod._collect_event_bus_metrics)()
357
-
358
- session.close.assert_called_once()
359
-
360
-
361
- # ── Tests: _collect_queue_metrics ─────────────────────────────────────────────
362
-
363
-
364
- class TestCollectQueueMetrics:
365
- """_collect_queue_metrics() reads dbos.workflow_status counts + 24h totals."""
366
-
367
- async def test_extracts_enqueued_and_pending_from_status_counts(self) -> None:
368
- """status_counts dict populates ENQUEUED/PENDING depth; 24h scalars used."""
369
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
370
-
371
- session = _make_session_mock(
372
- scalar_returns=[100, 5], # success_24h, error_24h
373
- execute_returns=[
374
- [("ENQUEUED", 12), ("PENDING", 30), ("SUCCESS", 800), ("ERROR", 5)],
375
- ],
376
- )
377
-
378
- with patch(
379
- "vds_scheduler_orchestrator.workflows.registry._make_session",
380
- return_value=session,
381
- ):
382
- result = await _unwrap(mod._collect_queue_metrics)()
383
-
384
- assert result["enqueued_depth"] == 12
385
- assert result["pending_depth"] == 30
386
- assert result["success_24h"] == 100
387
- assert result["error_24h"] == 5
388
- assert result["workflows_by_status"]["SUCCESS"] == 800
389
-
390
- async def test_defaults_missing_status_keys_to_zero(self) -> None:
391
- """When ENQUEUED / PENDING are absent from status_counts, depth=0."""
392
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
393
-
394
- session = _make_session_mock(
395
- scalar_returns=[0, 0],
396
- execute_returns=[[("SUCCESS", 1)]], # no ENQUEUED, no PENDING
397
- )
398
-
399
- with patch(
400
- "vds_scheduler_orchestrator.workflows.registry._make_session",
401
- return_value=session,
402
- ):
403
- result = await _unwrap(mod._collect_queue_metrics)()
404
-
405
- assert result["enqueued_depth"] == 0
406
- assert result["pending_depth"] == 0
407
-
408
- async def test_since_ms_bound_parameter_is_int_not_datetime(self) -> None:
409
- """since_ms bound to scalar() calls must be int (epoch-ms), not datetime.
410
-
411
- Postgres column dbos.workflow_status.updated_at is bigint (epoch-ms).
412
- Binding a datetime raises:
413
- ERROR: operator does not exist: bigint >= timestamp with time zone
414
- This test guards against regressions to the pre-fix datetime binding.
415
- """
416
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
417
-
418
- bound_params: list[dict] = []
419
-
420
- def _capture_scalar(sql, params=None):
421
- if params is not None:
422
- bound_params.append(dict(params))
423
- return 0
424
-
425
- session = MagicMock()
426
- # execute() for the GROUP BY status query
427
- execute_stub = MagicMock()
428
- execute_stub.all.return_value = []
429
- session.execute.return_value = execute_stub
430
- session.scalar.side_effect = _capture_scalar
431
-
432
- with patch(
433
- "vds_scheduler_orchestrator.workflows.registry._make_session",
434
- return_value=session,
435
- ):
436
- await _unwrap(mod._collect_queue_metrics)()
437
-
438
- # scalar() is called twice: success_24h and error_24h
439
- assert len(bound_params) == 2, f"Expected 2 scalar calls, got {len(bound_params)}"
440
- for call_params in bound_params:
441
- since_value = call_params.get("since_ms")
442
- assert since_value is not None, "Expected 'since_ms' key in bound params"
443
- assert isinstance(since_value, int), (
444
- f"since_ms must be int (epoch-ms), got {type(since_value).__name__}: {since_value!r}"
445
- )
446
- # Sanity: value should be a plausible epoch-ms (after year 2020)
447
- assert since_value > 1_577_836_800_000, (
448
- f"since_ms {since_value} is too small to be a valid epoch-ms timestamp"
449
- )
450
-
451
- async def test_session_closed_even_on_exception(self) -> None:
452
- """try/finally guarantees close() in queue-metrics path."""
453
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
454
-
455
- session = MagicMock()
456
- session.execute.side_effect = RuntimeError("queue boom")
457
-
458
- with patch(
459
- "vds_scheduler_orchestrator.workflows.registry._make_session",
460
- return_value=session,
461
- ), pytest.raises(RuntimeError, match="queue boom"):
462
- await _unwrap(mod._collect_queue_metrics)()
463
-
464
- session.close.assert_called_once()
465
-
466
-
467
- # ── Tests: _generate_and_write_report ─────────────────────────────────────────
468
-
469
-
470
- def _baseline_data() -> tuple[dict, dict, dict, dict]:
471
- """Return (git, scheduler, event, queue) data with no anomalies."""
472
- git_data = {
473
- "repos": {
474
- "WHO-project/vds-scripts": {
475
- "commits": 4,
476
- "authors": ["alice", "bob"],
477
- "branches_changed": ["main"],
478
- "merge_commits": 1,
479
- },
480
- },
481
- "since": "2026-04-25T00:00:00+00:00",
482
- }
483
- scheduler_data = {
484
- "schedules": {
485
- "total": 8,
486
- "paused": 1,
487
- "active": 7,
488
- "by_orchestrator": {"audit_orchestrator": 4, "scheduler_orchestrator": 4},
489
- },
490
- "aliases": {
491
- "total": 5,
492
- "by_orchestrator": {"audit_orchestrator": 3},
493
- },
494
- "chains": {"total": 2},
495
- }
496
- event_data = {
497
- "outbox_24h": 25,
498
- "subscriptions": {"total": 3, "by_topic": {"audit.*": 2, "schedule.*": 1}},
499
- "latest_event_at": "2026-04-26T05:00:00+00:00",
500
- }
501
- queue_data = {
502
- "workflows_by_status": {"SUCCESS": 100, "ENQUEUED": 2, "PENDING": 1},
503
- "enqueued_depth": 2,
504
- "pending_depth": 1,
505
- "success_24h": 100,
506
- "error_24h": 1,
507
- }
508
- return git_data, scheduler_data, event_data, queue_data
509
-
510
-
511
- class TestGenerateAndWriteReport:
512
- """_generate_and_write_report() renders Markdown + applies anomaly heuristics."""
513
-
514
- async def test_writes_report_with_no_anomalies(self, tmp_path) -> None:
515
- """Healthy data → file written, anomalies list empty, ✅ marker present."""
516
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
517
-
518
- git_data, sched_data, evt_data, q_data = _baseline_data()
519
- cfg = _make_test_config(tmp_path=tmp_path)
520
-
521
- with patch(
522
- "vds_scheduler_orchestrator.workflows.ecosystem_report.get_ecosystem_config",
523
- return_value=cfg,
524
- ):
525
- result = await _unwrap(mod._generate_and_write_report)(git_data, sched_data, evt_data, q_data)
526
-
527
- assert result["anomalies"] == []
528
- report_files = list(tmp_path.iterdir())
529
- assert len(report_files) == 1
530
- text = report_files[0].read_text(encoding="utf-8")
531
- assert "Ecosystem Daily Report" in text
532
- assert "No anomalies detected" in text
533
- assert "WHO-project/vds-scripts" in text
534
- assert "audit_orchestrator" in text
535
- assert "Chain Definitions: 2" in text
536
-
537
- async def test_flags_high_error_count_anomaly(self, tmp_path) -> None:
538
- """error_24h > 10 → 'High error count' anomaly recorded."""
539
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
540
-
541
- git_data, sched_data, evt_data, q_data = _baseline_data()
542
- q_data["error_24h"] = 25
543
- cfg = _make_test_config(tmp_path=tmp_path)
544
-
545
- with patch(
546
- "vds_scheduler_orchestrator.workflows.ecosystem_report.get_ecosystem_config",
547
- return_value=cfg,
548
- ):
549
- result = await _unwrap(mod._generate_and_write_report)(git_data, sched_data, evt_data, q_data)
550
-
551
- assert any("High error count" in a for a in result["anomalies"])
552
-
553
- async def test_flags_queue_backlog_anomaly(self, tmp_path) -> None:
554
- """pending_depth > 50 → 'Queue backlog' anomaly recorded."""
555
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
556
-
557
- git_data, sched_data, evt_data, q_data = _baseline_data()
558
- q_data["pending_depth"] = 75
559
- cfg = _make_test_config(tmp_path=tmp_path)
560
-
561
- with patch(
562
- "vds_scheduler_orchestrator.workflows.ecosystem_report.get_ecosystem_config",
563
- return_value=cfg,
564
- ):
565
- result = await _unwrap(mod._generate_and_write_report)(git_data, sched_data, evt_data, q_data)
566
-
567
- assert any("Queue backlog" in a for a in result["anomalies"])
568
-
569
- async def test_flags_zero_outbox_with_active_schedules(self, tmp_path) -> None:
570
- """outbox_24h=0 AND schedules.total>0 → 'Zero events' anomaly."""
571
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
572
-
573
- git_data, sched_data, evt_data, q_data = _baseline_data()
574
- evt_data["outbox_24h"] = 0
575
- # schedules.total stays at 8 from baseline → triggers anomaly.
576
- cfg = _make_test_config(tmp_path=tmp_path)
577
-
578
- with patch(
579
- "vds_scheduler_orchestrator.workflows.ecosystem_report.get_ecosystem_config",
580
- return_value=cfg,
581
- ):
582
- result = await _unwrap(mod._generate_and_write_report)(git_data, sched_data, evt_data, q_data)
583
-
584
- assert any("Zero events" in a for a in result["anomalies"])
585
-
586
- async def test_flags_high_commit_volume_per_repo(self, tmp_path) -> None:
587
- """A repo with > 50 commits surfaces 'High commit volume' anomaly."""
588
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
589
-
590
- git_data, sched_data, evt_data, q_data = _baseline_data()
591
- git_data["repos"]["WHO-project/vds-scripts"]["commits"] = 99
592
- cfg = _make_test_config(tmp_path=tmp_path)
593
-
594
- with patch(
595
- "vds_scheduler_orchestrator.workflows.ecosystem_report.get_ecosystem_config",
596
- return_value=cfg,
597
- ):
598
- result = await _unwrap(mod._generate_and_write_report)(git_data, sched_data, evt_data, q_data)
599
-
600
- assert any("High commit volume" in a for a in result["anomalies"])
601
-
602
- async def test_anomaly_section_lists_warning_marker(self, tmp_path) -> None:
603
- """When anomalies exist, the markdown body includes the ⚠️ marker."""
604
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
605
-
606
- git_data, sched_data, evt_data, q_data = _baseline_data()
607
- q_data["error_24h"] = 100 # force anomaly
608
- cfg = _make_test_config(tmp_path=tmp_path)
609
-
610
- with patch(
611
- "vds_scheduler_orchestrator.workflows.ecosystem_report.get_ecosystem_config",
612
- return_value=cfg,
613
- ):
614
- result = await _unwrap(mod._generate_and_write_report)(git_data, sched_data, evt_data, q_data)
615
-
616
- text = (tmp_path / list(tmp_path.iterdir())[0].name).read_text(encoding="utf-8")
617
- assert "Anomalies Detected" in text
618
- assert result["anomalies"]
619
-
620
- async def test_handles_empty_authors_and_branches(self, tmp_path) -> None:
621
- """Empty authors/branches lists render an em-dash placeholder safely."""
622
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
623
-
624
- git_data, sched_data, evt_data, q_data = _baseline_data()
625
- git_data["repos"]["WHO-project/vds-scripts"]["authors"] = []
626
- git_data["repos"]["WHO-project/vds-scripts"]["branches_changed"] = []
627
- cfg = _make_test_config(tmp_path=tmp_path)
628
-
629
- with patch(
630
- "vds_scheduler_orchestrator.workflows.ecosystem_report.get_ecosystem_config",
631
- return_value=cfg,
632
- ):
633
- await _unwrap(mod._generate_and_write_report)(git_data, sched_data, evt_data, q_data)
634
-
635
- text = (tmp_path / list(tmp_path.iterdir())[0].name).read_text(encoding="utf-8")
636
- assert "Authors: —" in text
637
- assert "Branches: —" in text
638
-
639
- async def test_handles_missing_latest_event_at(self, tmp_path) -> None:
640
- """latest_event_at=None renders as em-dash placeholder."""
641
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
642
-
643
- git_data, sched_data, evt_data, q_data = _baseline_data()
644
- evt_data["latest_event_at"] = None
645
- cfg = _make_test_config(tmp_path=tmp_path)
646
-
647
- with patch(
648
- "vds_scheduler_orchestrator.workflows.ecosystem_report.get_ecosystem_config",
649
- return_value=cfg,
650
- ):
651
- await _unwrap(mod._generate_and_write_report)(git_data, sched_data, evt_data, q_data)
652
-
653
- text = (tmp_path / list(tmp_path.iterdir())[0].name).read_text(encoding="utf-8")
654
- assert "Latest event: —" in text
655
-
656
- async def test_returns_report_path_string(self, tmp_path) -> None:
657
- """report_path in result is a str, ends with -ecosystem-report.md."""
658
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
659
-
660
- git_data, sched_data, evt_data, q_data = _baseline_data()
661
- cfg = _make_test_config(tmp_path=tmp_path)
662
-
663
- with patch(
664
- "vds_scheduler_orchestrator.workflows.ecosystem_report.get_ecosystem_config",
665
- return_value=cfg,
666
- ):
667
- result = await _unwrap(mod._generate_and_write_report)(git_data, sched_data, evt_data, q_data)
668
-
669
- assert isinstance(result["report_path"], str)
670
- assert result["report_path"].endswith("-ecosystem-report.md")
671
-
672
-
673
- # ── Tests: bootstrap_ecosystem_report_schedule ────────────────────────────────
674
-
675
-
676
- class TestBootstrapEcosystemReportSchedule:
677
- """bootstrap_ecosystem_report_schedule() registers alias + schedule idempotently."""
678
-
679
- def _patches(
680
- self,
681
- mock_register: MagicMock,
682
- mock_create: MagicMock,
683
- mock_cfg: MagicMock | None = None,
684
- ):
685
- """Build the patch context manager stack used by every bootstrap test.
686
-
687
- The bootstrap function imports get_config, register_workflows, and
688
- create at module top, so the patch targets are the local module names.
689
- """
690
- if mock_cfg is None:
691
- mock_cfg = MagicMock(dbos_app_version="test-1.0")
692
- return (
693
- patch(
694
- "vds_scheduler_orchestrator.workflows.ecosystem_report.get_config",
695
- return_value=mock_cfg,
696
- ),
697
- patch(
698
- "vds_scheduler_orchestrator.workflows.ecosystem_report.register_workflows",
699
- mock_register,
700
- ),
701
- patch(
702
- "vds_scheduler_orchestrator.workflows.ecosystem_report.create_schedule",
703
- mock_create,
704
- ),
705
- )
706
-
707
- def test_registers_workflow_alias(self) -> None:
708
- """register_workflows is called with the ecosystem.daily.report alias."""
709
- from vds_scheduler_orchestrator.workflows.ecosystem_report import (
710
- bootstrap_ecosystem_report_schedule,
711
- )
712
-
713
- mock_register = MagicMock()
714
- mock_create = MagicMock()
715
- with (
716
- (p1 := self._patches(mock_register, mock_create)[0]),
717
- (p2 := self._patches(mock_register, mock_create)[1]),
718
- (p3 := self._patches(mock_register, mock_create)[2]),
719
- ):
720
- _ = (p1, p2, p3)
721
- bootstrap_ecosystem_report_schedule()
722
-
723
- registrations: dict[str, str] = mock_register.call_args.args[0]
724
- assert "ecosystem.daily.report" in registrations
725
- fqn = registrations["ecosystem.daily.report"]
726
- assert "ecosystem_daily_report_workflow" in fqn
727
-
728
- def test_creates_schedule_with_correct_cron_and_queue(self) -> None:
729
- """create_schedule is called with cron='0 6 * * *' and queue='ops-default'."""
730
- from vds_scheduler_orchestrator.workflows.ecosystem_report import (
731
- bootstrap_ecosystem_report_schedule,
732
- )
733
-
734
- mock_register = MagicMock()
735
- mock_create = MagicMock()
736
- patches = self._patches(mock_register, mock_create)
737
- with patches[0], patches[1], patches[2]:
738
- bootstrap_ecosystem_report_schedule()
739
-
740
- kwargs = mock_create.call_args.kwargs
741
- args = mock_create.call_args.args
742
- assert args[0] == "ecosystem-daily-report"
743
- assert kwargs["cron_expr"] == "0 6 * * *"
744
- assert kwargs["queue_name"] == "ops-default"
745
- assert kwargs["workflow_alias"] == "ecosystem.daily.report"
746
- assert kwargs["owner_orchestrator"] == "scheduler_orchestrator"
747
-
748
- def test_idempotent_on_duplicate_alias(self) -> None:
749
- """DuplicateAliasError from register_workflows is silenced."""
750
- from vds_scheduler_orchestrator.workflows.ecosystem_report import (
751
- bootstrap_ecosystem_report_schedule,
752
- )
753
- from vds_scheduler_orchestrator.workflows.registry import DuplicateAliasError
754
-
755
- mock_register = MagicMock(side_effect=DuplicateAliasError("ecosystem.daily.report"))
756
- mock_create = MagicMock()
757
- patches = self._patches(mock_register, mock_create)
758
- with patches[0], patches[1], patches[2]:
759
- # MUST NOT raise — and must still proceed to create_schedule.
760
- bootstrap_ecosystem_report_schedule()
761
-
762
- mock_create.assert_called_once()
763
-
764
- def test_idempotent_on_duplicate_schedule(self) -> None:
765
- """DuplicateScheduleError from create is silenced."""
766
- from vds_scheduler_orchestrator.scheduler.schedules import (
767
- DuplicateScheduleError,
768
- )
769
- from vds_scheduler_orchestrator.workflows.ecosystem_report import (
770
- bootstrap_ecosystem_report_schedule,
771
- )
772
-
773
- mock_register = MagicMock()
774
- mock_create = MagicMock(side_effect=DuplicateScheduleError("ecosystem-daily-report"))
775
- patches = self._patches(mock_register, mock_create)
776
- with patches[0], patches[1], patches[2]:
777
- # MUST NOT raise.
778
- bootstrap_ecosystem_report_schedule()
779
-
780
- mock_register.assert_called_once()
781
- mock_create.assert_called_once()
782
-
783
- def test_passes_dbos_app_version_to_register(self) -> None:
784
- """register_workflows is given the version from get_config()."""
785
- from vds_scheduler_orchestrator.workflows.ecosystem_report import (
786
- bootstrap_ecosystem_report_schedule,
787
- )
788
-
789
- mock_register = MagicMock()
790
- mock_create = MagicMock()
791
- cfg = MagicMock(dbos_app_version="v9.9.9")
792
- patches = self._patches(mock_register, mock_create, mock_cfg=cfg)
793
- with patches[0], patches[1], patches[2]:
794
- bootstrap_ecosystem_report_schedule()
795
-
796
- kwargs = mock_register.call_args.kwargs
797
- assert kwargs.get("version") == "v9.9.9"
798
- assert kwargs.get("orchestrator") == "scheduler_orchestrator"
799
-
800
-
801
- # ── Tests: _persist_report_run (TSK-2.6) ─────────────────────────────────────
802
-
803
-
804
- def _persist_call_kwargs() -> dict[str, Any]:
805
- """Standard kwargs for calling _persist_report_run in tests."""
806
- return {
807
- "report_date": date(2026, 4, 27),
808
- "report_path": "reports/ecosystem/2026-04-27-ecosystem-report.md",
809
- "anomalies": ["High error rate"],
810
- "git_data": {"repos": {}},
811
- "scheduler_data": {"schedules": {"total": 5}},
812
- "event_data": {"outbox_24h": 10},
813
- "queue_data": {"error_24h": 3, "success_24h": 90, "pending_depth": 2, "enqueued_depth": 1},
814
- }
815
-
816
-
817
- class TestPersistReportRun:
818
- """_persist_report_run() upserts a row in sched.ecosystem_report_runs."""
819
-
820
- async def test_inserts_new_row_when_no_existing(self) -> None:
821
- """No existing row for report_date → session.add() called, commit() called."""
822
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
823
-
824
- session = MagicMock()
825
- query_chain = MagicMock()
826
- session.query.return_value = query_chain
827
- query_chain.filter_by.return_value = query_chain
828
- query_chain.first.return_value = None # no existing row
829
-
830
- with patch(
831
- "vds_scheduler_orchestrator.workflows.ecosystem_report._make_session",
832
- return_value=session,
833
- ):
834
- await _unwrap(mod._persist_report_run)(**_persist_call_kwargs())
835
-
836
- session.add.assert_called_once()
837
- session.flush.assert_called_once()
838
- session.commit.assert_called_once()
839
- session.close.assert_called_once()
840
-
841
- async def test_updates_existing_row(self) -> None:
842
- """Existing row for report_date → fields updated in-place, no session.add()."""
843
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
844
-
845
- existing = MagicMock()
846
- existing.id = "run-existing-123"
847
-
848
- session = MagicMock()
849
- query_chain = MagicMock()
850
- session.query.return_value = query_chain
851
- query_chain.filter_by.return_value = query_chain
852
- query_chain.first.return_value = existing
853
-
854
- with patch(
855
- "vds_scheduler_orchestrator.workflows.ecosystem_report._make_session",
856
- return_value=session,
857
- ):
858
- result = await _unwrap(mod._persist_report_run)(**_persist_call_kwargs())
859
-
860
- # Should NOT add a new row — update in place.
861
- session.add.assert_not_called()
862
- session.commit.assert_called_once()
863
- # Verify fields were updated on the existing object.
864
- assert existing.report_path == "reports/ecosystem/2026-04-27-ecosystem-report.md"
865
- assert existing.anomalies == ["High error rate"]
866
- assert existing.error_24h == 3
867
- assert existing.success_24h == 90
868
- assert existing.pending_depth == 2
869
- assert existing.enqueued_depth == 1
870
- assert result == "run-existing-123"
871
-
872
- async def test_returns_run_id(self) -> None:
873
- """Return value is the run id (string) from the new row."""
874
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
875
-
876
- session = MagicMock()
877
- query_chain = MagicMock()
878
- session.query.return_value = query_chain
879
- query_chain.filter_by.return_value = query_chain
880
- query_chain.first.return_value = None
881
-
882
- # After session.add + flush, run.id is populated by the ORM.
883
- # We simulate this by patching EcosystemReportRun so the constructed
884
- # instance has a known id after flush.
885
- fake_run = MagicMock()
886
- fake_run.id = "new-run-456"
887
-
888
- with (
889
- patch(
890
- "vds_scheduler_orchestrator.workflows.ecosystem_report._make_session",
891
- return_value=session,
892
- ),
893
- patch(
894
- "vds_scheduler_orchestrator.workflows.ecosystem_report.EcosystemReportRun",
895
- return_value=fake_run,
896
- ),
897
- ):
898
- result = await _unwrap(mod._persist_report_run)(**_persist_call_kwargs())
899
-
900
- assert result == "new-run-456"
901
- assert isinstance(result, str)
902
-
903
- async def test_session_closed_on_exception(self) -> None:
904
- """If a query raises, session.close() is still called (try/finally)."""
905
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
906
-
907
- session = MagicMock()
908
- session.query.side_effect = RuntimeError("db gone")
909
-
910
- with patch(
911
- "vds_scheduler_orchestrator.workflows.ecosystem_report._make_session",
912
- return_value=session,
913
- ), pytest.raises(RuntimeError, match="db gone"):
914
- await _unwrap(mod._persist_report_run)(**_persist_call_kwargs())
915
-
916
- session.close.assert_called_once()
917
-
918
- async def test_handles_undefined_column_gracefully(self) -> None:
919
- """Phase 3 columns missing from live DB → SQLAlchemyError caught,
920
- rollback called, ``None`` returned, no exception propagated."""
921
- from sqlalchemy.exc import ProgrammingError
922
-
923
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
924
-
925
- session = MagicMock()
926
- # Simulate ``psycopg2.errors.UndefinedColumn`` wrapped by SQLAlchemy.
927
- # ``ProgrammingError`` is the concrete SQLAlchemyError subclass that
928
- # carries DDL-class server errors like UndefinedColumn.
929
- underlying = Exception('column "dora_summary" of relation "ecosystem_report_runs" does not exist')
930
- session.query.side_effect = ProgrammingError(
931
- statement="INSERT INTO sched.ecosystem_report_runs ...",
932
- params={},
933
- orig=underlying,
934
- )
935
-
936
- with patch(
937
- "vds_scheduler_orchestrator.workflows.ecosystem_report._make_session",
938
- return_value=session,
939
- ):
940
- # MUST NOT raise — graceful degradation.
941
- result = await _unwrap(mod._persist_report_run)(**_persist_call_kwargs())
942
-
943
- # Returned None because persistence was skipped on schema drift.
944
- assert result is None
945
- # Rolled back the doomed transaction.
946
- session.rollback.assert_called_once()
947
- # session.close() still called via finally.
948
- session.close.assert_called_once()
949
- # session.commit() NOT called — we bailed before commit.
950
- session.commit.assert_not_called()
951
-
952
- async def test_handles_sqlalchemy_error_on_insert(self) -> None:
953
- """SQLAlchemyError raised from session.add()/flush() path is also
954
- caught — covers the INSERT branch when no existing row matches."""
955
- from sqlalchemy.exc import OperationalError
956
-
957
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
958
-
959
- session = MagicMock()
960
- query_chain = MagicMock()
961
- session.query.return_value = query_chain
962
- query_chain.filter_by.return_value = query_chain
963
- query_chain.first.return_value = None # take INSERT branch
964
- # flush() raises (e.g. constraint check or schema mismatch on insert).
965
- session.flush.side_effect = OperationalError(
966
- statement="INSERT ...",
967
- params={},
968
- orig=Exception("relation does not exist"),
969
- )
970
-
971
- with patch(
972
- "vds_scheduler_orchestrator.workflows.ecosystem_report._make_session",
973
- return_value=session,
974
- ):
975
- result = await _unwrap(mod._persist_report_run)(**_persist_call_kwargs())
976
-
977
- assert result is None
978
- session.rollback.assert_called_once()
979
- session.close.assert_called_once()
980
-
981
- async def test_rollback_failure_swallowed(self) -> None:
982
- """Rollback itself failing must not raise — defensive double-guard."""
983
- from sqlalchemy.exc import ProgrammingError, SQLAlchemyError
984
-
985
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
986
-
987
- session = MagicMock()
988
- session.query.side_effect = ProgrammingError(
989
- statement="SELECT ...",
990
- params={},
991
- orig=Exception("schema drift"),
992
- )
993
- # Rollback also fails (torn connection, dead session, etc.)
994
- session.rollback.side_effect = SQLAlchemyError("connection lost")
995
-
996
- with patch(
997
- "vds_scheduler_orchestrator.workflows.ecosystem_report._make_session",
998
- return_value=session,
999
- ):
1000
- # Still must not raise to caller.
1001
- result = await _unwrap(mod._persist_report_run)(**_persist_call_kwargs())
1002
-
1003
- assert result is None
1004
- session.close.assert_called_once()
1005
-
1006
- async def test_succeeds_when_all_columns_present(self) -> None:
1007
- """Regression guard: when no schema drift, persistence works normally
1008
- and returns the run id (no SQLAlchemyError path triggered)."""
1009
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
1010
-
1011
- session = MagicMock()
1012
- query_chain = MagicMock()
1013
- session.query.return_value = query_chain
1014
- query_chain.filter_by.return_value = query_chain
1015
- query_chain.first.return_value = None
1016
-
1017
- fake_run = MagicMock()
1018
- fake_run.id = "happy-path-id"
1019
-
1020
- with (
1021
- patch(
1022
- "vds_scheduler_orchestrator.workflows.ecosystem_report._make_session",
1023
- return_value=session,
1024
- ),
1025
- patch(
1026
- "vds_scheduler_orchestrator.workflows.ecosystem_report.EcosystemReportRun",
1027
- return_value=fake_run,
1028
- ),
1029
- ):
1030
- result = await _unwrap(mod._persist_report_run)(**_persist_call_kwargs())
1031
-
1032
- assert result == "happy-path-id"
1033
- session.add.assert_called_once()
1034
- session.flush.assert_called_once()
1035
- session.commit.assert_called_once()
1036
- session.rollback.assert_not_called()
1037
- session.close.assert_called_once()
1038
-
1039
-
1040
- # ── Tests: _publish_completion_event (TSK-2.7) ───────────────────────────────
1041
-
1042
-
1043
- class TestPublishCompletionEvent:
1044
- """_publish_completion_event() publishes ecosystem.daily.completed to the event bus."""
1045
-
1046
- def _call_kwargs(self) -> dict[str, Any]:
1047
- return {
1048
- "report_date": date(2026, 4, 27),
1049
- "report_path": "reports/ecosystem/2026-04-27-ecosystem-report.md",
1050
- "anomaly_count": 2,
1051
- "error_24h": 3,
1052
- "success_24h": 90,
1053
- "health_score": 87,
1054
- "workflow_id": "wf-2026-04-27-abc123",
1055
- }
1056
-
1057
- async def test_publishes_correct_topic(self) -> None:
1058
- """bus.publish is called with topic='ecosystem.daily.completed'."""
1059
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
1060
-
1061
- mock_publish = AsyncMock()
1062
-
1063
- with patch("vds_scheduler_orchestrator.events.bus.publish", mock_publish):
1064
- await _unwrap(mod._publish_completion_event)(**self._call_kwargs())
1065
-
1066
- mock_publish.assert_called_once()
1067
- assert mock_publish.call_args.kwargs.get("topic") == "ecosystem.daily.completed"
1068
-
1069
- async def test_publishes_correct_payload_shape(self) -> None:
1070
- """Payload contains report_date, report_path, anomaly_count, error_24h,
1071
- success_24h, health_score, workflow_id, exec_summary (FR-2.3)."""
1072
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
1073
-
1074
- mock_publish = AsyncMock()
1075
-
1076
- with patch("vds_scheduler_orchestrator.events.bus.publish", mock_publish):
1077
- await _unwrap(mod._publish_completion_event)(**self._call_kwargs())
1078
-
1079
- payload = mock_publish.call_args.kwargs["payload"]
1080
- assert payload == {
1081
- "report_date": "2026-04-27",
1082
- "report_path": "reports/ecosystem/2026-04-27-ecosystem-report.md",
1083
- "anomaly_count": 2,
1084
- "error_24h": 3,
1085
- "success_24h": 90,
1086
- "health_score": 87,
1087
- "workflow_id": "wf-2026-04-27-abc123",
1088
- "exec_summary": "",
1089
- }
1090
-
1091
- async def test_passes_trace_id(self) -> None:
1092
- """trace_id kwarg is passed as 'edr-{report_date}'."""
1093
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
1094
-
1095
- mock_publish = AsyncMock()
1096
-
1097
- with patch("vds_scheduler_orchestrator.events.bus.publish", mock_publish):
1098
- await _unwrap(mod._publish_completion_event)(**self._call_kwargs())
1099
-
1100
- assert mock_publish.call_args.kwargs["trace_id"] == "edr-2026-04-27"
1101
-
1102
- # ── Wave 8 Lane Upsilon Fix 1 — FR-2.3 payload completeness ──────────────
1103
-
1104
- async def test_payload_contains_health_score_as_int(self) -> None:
1105
- """FR-2.3: payload['health_score'] is the integer 0–100 health score."""
1106
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
1107
-
1108
- mock_publish = AsyncMock()
1109
-
1110
- with patch("vds_scheduler_orchestrator.events.bus.publish", mock_publish):
1111
- await _unwrap(mod._publish_completion_event)(**self._call_kwargs())
1112
-
1113
- payload = mock_publish.call_args.kwargs["payload"]
1114
- assert "health_score" in payload, "FR-2.3: payload must include health_score"
1115
- assert isinstance(payload["health_score"], int)
1116
- assert payload["health_score"] == 87
1117
-
1118
- async def test_payload_contains_workflow_id_as_str(self) -> None:
1119
- """FR-2.3: payload['workflow_id'] is a string carrying the DBOS workflow id."""
1120
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
1121
-
1122
- mock_publish = AsyncMock()
1123
-
1124
- with patch("vds_scheduler_orchestrator.events.bus.publish", mock_publish):
1125
- await _unwrap(mod._publish_completion_event)(**self._call_kwargs())
1126
-
1127
- payload = mock_publish.call_args.kwargs["payload"]
1128
- assert "workflow_id" in payload, "FR-2.3: payload must include workflow_id"
1129
- assert isinstance(payload["workflow_id"], str)
1130
- assert payload["workflow_id"] == "wf-2026-04-27-abc123"
1131
-
1132
- async def test_payload_preserves_previously_required_keys(self) -> None:
1133
- """FR-2.3: pre-existing payload keys remain present alongside the new fields."""
1134
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
1135
-
1136
- mock_publish = AsyncMock()
1137
-
1138
- with patch("vds_scheduler_orchestrator.events.bus.publish", mock_publish):
1139
- await _unwrap(mod._publish_completion_event)(**self._call_kwargs())
1140
-
1141
- payload = mock_publish.call_args.kwargs["payload"]
1142
- for required in (
1143
- "report_date",
1144
- "report_path",
1145
- "anomaly_count",
1146
- "error_24h",
1147
- "success_24h",
1148
- "exec_summary",
1149
- ):
1150
- assert required in payload, f"payload missing pre-existing key: {required}"
1151
-
1152
-
1153
- # ── Tests: _load_previous_run (TSK-3.6) ──────────────────────────────────────
1154
-
1155
-
1156
- class TestLoadPreviousRun:
1157
- """_load_previous_run() queries yesterday's ecosystem_report_runs row."""
1158
-
1159
- async def test_returns_none_when_no_prior_run(self) -> None:
1160
- """No row for yesterday → returns None."""
1161
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
1162
-
1163
- session = MagicMock()
1164
- query_chain = MagicMock()
1165
- session.query.return_value = query_chain
1166
- query_chain.filter_by.return_value = query_chain
1167
- query_chain.first.return_value = None
1168
-
1169
- with patch(
1170
- "vds_scheduler_orchestrator.workflows.ecosystem_report._make_session",
1171
- return_value=session,
1172
- ):
1173
- result = await _unwrap(mod._load_previous_run)(report_date=date(2026, 4, 27))
1174
-
1175
- assert result is None
1176
- session.close.assert_called_once()
1177
-
1178
- async def test_returns_dict_when_prior_run_exists(self) -> None:
1179
- """Existing row → returns dict with expected keys."""
1180
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
1181
-
1182
- row = MagicMock()
1183
- row.report_date = date(2026, 4, 26)
1184
- row.error_24h = 3
1185
- row.success_24h = 90
1186
- row.pending_depth = 2
1187
- row.enqueued_depth = 1
1188
- row.anomalies = ["High error count"]
1189
- row.git_summary = {"repos": {}}
1190
-
1191
- session = MagicMock()
1192
- query_chain = MagicMock()
1193
- session.query.return_value = query_chain
1194
- query_chain.filter_by.return_value = query_chain
1195
- query_chain.first.return_value = row
1196
-
1197
- with patch(
1198
- "vds_scheduler_orchestrator.workflows.ecosystem_report._make_session",
1199
- return_value=session,
1200
- ):
1201
- result = await _unwrap(mod._load_previous_run)(report_date=date(2026, 4, 27))
1202
-
1203
- assert result is not None
1204
- assert result["report_date"] == "2026-04-26"
1205
- assert result["error_24h"] == 3
1206
- assert result["success_24h"] == 90
1207
- assert result["pending_depth"] == 2
1208
- assert result["enqueued_depth"] == 1
1209
- assert result["anomalies"] == ["High error count"]
1210
- assert result["git_summary"] == {"repos": {}}
1211
- session.close.assert_called_once()
1212
-
1213
- async def test_session_closed_on_exception(self) -> None:
1214
- """session.close() called even when query raises."""
1215
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
1216
-
1217
- session = MagicMock()
1218
- session.query.side_effect = RuntimeError("db down")
1219
-
1220
- with patch(
1221
- "vds_scheduler_orchestrator.workflows.ecosystem_report._make_session",
1222
- return_value=session,
1223
- ), pytest.raises(RuntimeError, match="db down"):
1224
- await _unwrap(mod._load_previous_run)(report_date=date(2026, 4, 27))
1225
-
1226
- session.close.assert_called_once()
1227
-
1228
-
1229
- # ── Tests: _compute_deltas (TSK-3.6) ─────────────────────────────────────────
1230
-
1231
-
1232
- class TestComputeDeltas:
1233
- """_compute_deltas() computes day-over-day deltas with bucketing."""
1234
-
1235
- def test_returns_none_when_no_previous(self) -> None:
1236
- """previous=None → returns None."""
1237
- from vds_scheduler_orchestrator.workflows.ecosystem_report import _compute_deltas
1238
-
1239
- result = _compute_deltas({"error_24h": 5, "success_24h": 90, "pending_depth": 2, "enqueued_depth": 1}, None)
1240
- assert result is None
1241
-
1242
- def test_computes_positive_deltas(self) -> None:
1243
- """error goes 2→5 → delta=3, arrow='↑'."""
1244
- from vds_scheduler_orchestrator.workflows.ecosystem_report import _compute_deltas
1245
-
1246
- current = {"error_24h": 5, "success_24h": 90, "pending_depth": 2, "enqueued_depth": 1}
1247
- previous = {"error_24h": 2, "success_24h": 85, "pending_depth": 2, "enqueued_depth": 1}
1248
- result = _compute_deltas(current, previous)
1249
-
1250
- assert result is not None
1251
- assert result["error"]["delta"] == 3
1252
- assert result["error"]["arrow"] == "↑"
1253
-
1254
- def test_computes_negative_deltas(self) -> None:
1255
- """error goes 10→3 → delta=-7, arrow='↓', bucket='improvement' (lower is better)."""
1256
- from vds_scheduler_orchestrator.workflows.ecosystem_report import _compute_deltas
1257
-
1258
- current = {"error_24h": 3, "success_24h": 90, "pending_depth": 2, "enqueued_depth": 1}
1259
- previous = {"error_24h": 10, "success_24h": 90, "pending_depth": 2, "enqueued_depth": 1}
1260
- result = _compute_deltas(current, previous)
1261
-
1262
- assert result is not None
1263
- assert result["error"]["delta"] == -7
1264
- assert result["error"]["arrow"] == "↓"
1265
- assert result["error"]["bucket"] == "improvement"
1266
-
1267
- def test_zero_delta_is_noise(self) -> None:
1268
- """Same values → arrow='→', bucket='noise'."""
1269
- from vds_scheduler_orchestrator.workflows.ecosystem_report import _compute_deltas
1270
-
1271
- current = {"error_24h": 5, "success_24h": 90, "pending_depth": 2, "enqueued_depth": 1}
1272
- previous = {"error_24h": 5, "success_24h": 90, "pending_depth": 2, "enqueued_depth": 1}
1273
- result = _compute_deltas(current, previous)
1274
-
1275
- assert result is not None
1276
- assert result["error"]["arrow"] == "→"
1277
- assert result["error"]["bucket"] == "noise"
1278
- assert result["success"]["arrow"] == "→"
1279
- assert result["success"]["bucket"] == "noise"
1280
-
1281
- def test_critical_bucket_at_minus_15(self) -> None:
1282
- """success delta of -15 (higher is better) → bucket='critical'."""
1283
- from vds_scheduler_orchestrator.workflows.ecosystem_report import _compute_deltas
1284
-
1285
- current = {"error_24h": 0, "success_24h": 75, "pending_depth": 2, "enqueued_depth": 1}
1286
- previous = {"error_24h": 0, "success_24h": 90, "pending_depth": 2, "enqueued_depth": 1}
1287
- result = _compute_deltas(current, previous)
1288
-
1289
- assert result is not None
1290
- assert result["success"]["delta"] == -15
1291
- assert result["success"]["bucket"] == "critical"
1292
-
1293
- def test_lower_is_better_polarity(self) -> None:
1294
- """error goes 20→2 (delta=-18): lower is better → bucket='major' (big improvement)."""
1295
- from vds_scheduler_orchestrator.workflows.ecosystem_report import _compute_deltas
1296
-
1297
- current = {"error_24h": 2, "success_24h": 90, "pending_depth": 2, "enqueued_depth": 1}
1298
- previous = {"error_24h": 20, "success_24h": 90, "pending_depth": 2, "enqueued_depth": 1}
1299
- result = _compute_deltas(current, previous)
1300
-
1301
- assert result is not None
1302
- assert result["error"]["delta"] == -18
1303
- assert result["error"]["bucket"] == "major"
1304
-
1305
- def test_higher_is_better_polarity(self) -> None:
1306
- """success goes 100→120 (delta=+20): higher is better → bucket='major'."""
1307
- from vds_scheduler_orchestrator.workflows.ecosystem_report import _compute_deltas
1308
-
1309
- current = {"error_24h": 0, "success_24h": 120, "pending_depth": 2, "enqueued_depth": 1}
1310
- previous = {"error_24h": 0, "success_24h": 100, "pending_depth": 2, "enqueued_depth": 1}
1311
- result = _compute_deltas(current, previous)
1312
-
1313
- assert result is not None
1314
- assert result["success"]["delta"] == 20
1315
- assert result["success"]["bucket"] == "major"
1316
-
1317
-
1318
- # ── Tests: _generate_and_write_report with deltas (TSK-3.6) ──────────────────
1319
-
1320
-
1321
- class TestReportWithDeltas:
1322
- """_generate_and_write_report renders Day-over-Day Delta section conditionally."""
1323
-
1324
- def _sample_data(self) -> tuple[dict, dict, dict, dict]:
1325
- git_data: dict[str, Any] = {
1326
- "repos": {
1327
- "WHO-project/vds-scripts": {
1328
- "commits": 5,
1329
- "merge_commits": 1,
1330
- "authors": ["alice"],
1331
- "branches_changed": ["main"],
1332
- }
1333
- }
1334
- }
1335
- scheduler_data: dict[str, Any] = {
1336
- "schedules": {"total": 10, "paused": 2, "active": 8, "by_orchestrator": {"scheduler_orchestrator": 10}},
1337
- "aliases": {"total": 5, "by_orchestrator": {"scheduler_orchestrator": 5}},
1338
- "chains": {"total": 2},
1339
- }
1340
- event_data: dict[str, Any] = {
1341
- "outbox_24h": 42,
1342
- "subscriptions": {"total": 7, "by_topic": {"audit.*": 4, "schedule.*": 3}},
1343
- "latest_event_at": "2026-04-27T06:00:00+00:00",
1344
- }
1345
- queue_data: dict[str, Any] = {
1346
- "error_24h": 5,
1347
- "success_24h": 90,
1348
- "pending_depth": 3,
1349
- "enqueued_depth": 1,
1350
- "workflows_by_status": {"SUCCESS": 90, "ERROR": 5, "PENDING": 3, "ENQUEUED": 1},
1351
- }
1352
- return git_data, scheduler_data, event_data, queue_data
1353
-
1354
- async def test_report_includes_delta_section_when_deltas_present(self, tmp_path: Path) -> None:
1355
- """When deltas are provided, 'Day-over-Day Delta' appears in the report."""
1356
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
1357
-
1358
- git_data, scheduler_data, event_data, queue_data = self._sample_data()
1359
- deltas = {
1360
- "error": {"delta": 3, "arrow": "↑", "bucket": "noise"},
1361
- "success": {"delta": 5, "arrow": "↑", "bucket": "improvement"},
1362
- "pending": {"delta": -1, "arrow": "↓", "bucket": "noise"},
1363
- "enqueued": {"delta": 0, "arrow": "→", "bucket": "noise"},
1364
- }
1365
-
1366
- cfg = _make_test_config(tmp_path=tmp_path)
1367
- with patch(
1368
- "vds_scheduler_orchestrator.workflows.ecosystem_report.get_ecosystem_config",
1369
- return_value=cfg,
1370
- ):
1371
- result = await _unwrap(mod._generate_and_write_report)(
1372
- git_data,
1373
- scheduler_data,
1374
- event_data,
1375
- queue_data,
1376
- deltas=deltas,
1377
- )
1378
-
1379
- report_content = Path(result["report_path"]).read_text()
1380
- assert "Day-over-Day Delta" in report_content
1381
-
1382
- async def test_report_omits_delta_section_when_no_deltas(self, tmp_path: Path) -> None:
1383
- """When deltas=None, 'Day-over-Day Delta' does NOT appear in the report."""
1384
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
1385
-
1386
- git_data, scheduler_data, event_data, queue_data = self._sample_data()
1387
-
1388
- cfg = _make_test_config(tmp_path=tmp_path)
1389
- with patch(
1390
- "vds_scheduler_orchestrator.workflows.ecosystem_report.get_ecosystem_config",
1391
- return_value=cfg,
1392
- ):
1393
- result = await _unwrap(mod._generate_and_write_report)(
1394
- git_data,
1395
- scheduler_data,
1396
- event_data,
1397
- queue_data,
1398
- deltas=None,
1399
- )
1400
-
1401
- report_content = Path(result["report_path"]).read_text()
1402
- assert "Day-over-Day Delta" not in report_content
1403
-
1404
-
1405
- # ── Tests: _publish_failure_event (TSK-3.7) ──────────────────────────────────
1406
-
1407
-
1408
- class TestPublishFailureEvent:
1409
- """_publish_failure_event() publishes ecosystem.daily.failed to the event bus."""
1410
-
1411
- async def test_publishes_failure_topic(self) -> None:
1412
- """bus.publish is called with topic='ecosystem.daily.failed'."""
1413
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
1414
-
1415
- mock_publish = AsyncMock()
1416
-
1417
- with patch("vds_scheduler_orchestrator.events.bus.publish", mock_publish):
1418
- await _unwrap(mod._publish_failure_event)(error_msg="something broke", report_date=date(2026, 4, 27))
1419
-
1420
- mock_publish.assert_called_once()
1421
- assert mock_publish.call_args.kwargs.get("topic") == "ecosystem.daily.failed"
1422
-
1423
- async def test_includes_error_in_payload(self) -> None:
1424
- """Payload contains the error message string."""
1425
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
1426
-
1427
- mock_publish = AsyncMock()
1428
-
1429
- with patch("vds_scheduler_orchestrator.events.bus.publish", mock_publish):
1430
- await _unwrap(mod._publish_failure_event)(error_msg="db timeout", report_date=date(2026, 4, 27))
1431
-
1432
- payload = mock_publish.call_args.kwargs["payload"]
1433
- assert payload["error"] == "db timeout"
1434
- assert payload["report_date"] == "2026-04-27"
1435
-
1436
-
1437
- # ── Tests: check_missed_run (TSK-3.7) ────────────────────────────────────────
1438
-
1439
-
1440
- class TestCheckMissedRun:
1441
- """check_missed_run() detects whether today's report is overdue."""
1442
-
1443
- def test_not_missed_before_grace_period(self) -> None:
1444
- """Before expected_hour + grace → missed=False, no DB query."""
1445
- from vds_scheduler_orchestrator.workflows.ecosystem_report import check_missed_run
1446
-
1447
- early_morning = datetime(2026, 4, 27, 5, 0, 0, tzinfo=UTC)
1448
-
1449
- with patch("vds_scheduler_orchestrator.workflows.ecosystem_report.datetime") as mock_dt:
1450
- mock_dt.now.return_value = early_morning
1451
- mock_dt.side_effect = lambda *a, **kw: datetime(*a, **kw)
1452
- result = check_missed_run(expected_hour=6, grace_minutes=30)
1453
-
1454
- assert result["missed"] is False
1455
-
1456
- def test_missed_after_grace_period_with_no_row(self) -> None:
1457
- """After grace period with no DB row → missed=True."""
1458
- from vds_scheduler_orchestrator.workflows.ecosystem_report import check_missed_run
1459
-
1460
- test_date = date(2026, 4, 27)
1461
- late_morning = datetime(2026, 4, 27, 7, 0, 0, tzinfo=UTC)
1462
-
1463
- session = MagicMock()
1464
- query_chain = MagicMock()
1465
- session.query.return_value = query_chain
1466
- query_chain.filter_by.return_value = query_chain
1467
- query_chain.first.return_value = None
1468
-
1469
- with (
1470
- patch("vds_scheduler_orchestrator.workflows.ecosystem_report.datetime") as mock_dt,
1471
- patch("vds_scheduler_orchestrator.workflows.ecosystem_report.date") as mock_date,
1472
- patch(
1473
- "vds_scheduler_orchestrator.workflows.ecosystem_report._make_session",
1474
- return_value=session,
1475
- ),
1476
- ):
1477
- mock_dt.now.return_value = late_morning
1478
- mock_dt.side_effect = lambda *a, **kw: datetime(*a, **kw)
1479
- mock_date.today.return_value = test_date
1480
- result = check_missed_run(expected_hour=6, grace_minutes=30)
1481
-
1482
- assert result["missed"] is True
1483
- session.close.assert_called_once()
1484
-
1485
-
1486
- # ── Tests: Progressive Disclosure formatters (TSK-3.7) ────────────────────────
1487
-
1488
-
1489
- class TestProgressiveDisclosure:
1490
- """format_exec_summary and format_summary respect line-count contracts."""
1491
-
1492
- def _sample_args(self) -> dict[str, Any]:
1493
- return {
1494
- "report_date": date(2026, 4, 27),
1495
- "queue_data": {"error_24h": 5, "success_24h": 90, "pending_depth": 3, "enqueued_depth": 1},
1496
- "scheduler_data": {"schedules": {"active": 8, "paused": 2, "total": 10, "by_orchestrator": {}}},
1497
- "event_data": {"outbox_24h": 42, "subscriptions": {"total": 7, "by_topic": {}}, "latest_event_at": None},
1498
- "anomalies": ["High error count: 5 workflows failed in last 24h", "Queue backlog: 50 PENDING workflows"],
1499
- }
1500
-
1501
- def test_exec_summary_within_20_lines(self) -> None:
1502
- """format_exec_summary output is ≤ 20 lines."""
1503
- from vds_scheduler_orchestrator.workflows.report_formatter import format_exec_summary
1504
-
1505
- args = self._sample_args()
1506
- output = format_exec_summary(**args)
1507
- line_count = len(output.strip().split("\n"))
1508
- assert line_count <= 20, f"exec summary has {line_count} lines, expected ≤ 20"
1509
-
1510
- def test_summary_within_80_lines(self) -> None:
1511
- """format_summary output is ≤ 80 lines."""
1512
- from vds_scheduler_orchestrator.workflows.report_formatter import format_summary
1513
-
1514
- args = self._sample_args()
1515
- args["git_data"] = {
1516
- "repos": {
1517
- "WHO-project/vds-scripts": {
1518
- "commits": 5,
1519
- "authors": ["alice", "bob"],
1520
- "merge_commits": 1,
1521
- "branches_changed": ["main"],
1522
- }
1523
- }
1524
- }
1525
- output = format_summary(**args)
1526
- line_count = len(output.strip().split("\n"))
1527
- assert line_count <= 80, f"summary has {line_count} lines, expected ≤ 80"
1528
-
1529
- def test_exec_summary_shows_anomalies(self) -> None:
1530
- """Anomaly text appears in exec summary output."""
1531
- from vds_scheduler_orchestrator.workflows.report_formatter import format_exec_summary
1532
-
1533
- args = self._sample_args()
1534
- output = format_exec_summary(**args)
1535
- assert "anomalies" in output.lower()
1536
- assert "High error count" in output
1537
-
1538
-
1539
- # ── Tests: Wave 8 F1 — _aggregate_anomalies + persist alignment ──────────────
1540
- #
1541
- # Bug evidence (Lane Aleph audit, 2026-05-01 02:52 UTC live run):
1542
- # - sched.ecosystem_report_runs.anomalies JSONB == [] (length 0)
1543
- # - 2026-05-01-ecosystem-report-v2.md showed "⚠️ Anomalies (7)" with 7 lines
1544
- #
1545
- # Root cause: _persist_report_run was passed report_meta["anomalies"] which
1546
- # is the legacy threshold-based list from _generate_and_write_report (only
1547
- # inspects queue/event/git thresholds — does NOT walk CollectorResult.anomalies).
1548
- # The v2 markdown formatter sources from results via _collect_anomalies(results),
1549
- # so the persisted JSONB and the rendered markdown diverged.
1550
- #
1551
- # Fix: _aggregate_anomalies() in ecosystem_report.py walks results AND legacy
1552
- # threshold list, sanitizes, and is plumbed into _persist_report_run.
1553
-
1554
-
1555
- class TestAggregateAnomalies:
1556
- """_aggregate_anomalies() merges per-collector anomalies + threshold heuristics
1557
- so the persisted JSONB column matches what the v2 markdown shows."""
1558
-
1559
- def _make_result(self, section: str, anomalies: list[str]) -> Any:
1560
- """Build a CollectorResult stub with the given anomaly list."""
1561
- from vds_scheduler_orchestrator.workflows.collectors.protocol import (
1562
- CollectorResult,
1563
- )
1564
-
1565
- return CollectorResult(section=section, anomalies=anomalies)
1566
-
1567
- def test_synthesizes_anomalies_from_three_collectors(self) -> None:
1568
- """Three collectors each emit anomalies → aggregated list contains all of them."""
1569
- from vds_scheduler_orchestrator.workflows.ecosystem_report import (
1570
- _aggregate_anomalies,
1571
- )
1572
-
1573
- results = [
1574
- self._make_result("Infrastructure Health", ["docker collector failed"]),
1575
- self._make_result("Memory Health", ["redis collector failed"]),
1576
- self._make_result("Trend Forecast", ["Trend bootstrap incomplete"]),
1577
- ]
1578
-
1579
- agg = _aggregate_anomalies(results, threshold_anomalies=[])
1580
-
1581
- assert len(agg) == 3
1582
- assert "docker collector failed" in agg
1583
- assert "redis collector failed" in agg
1584
- assert "Trend bootstrap incomplete" in agg
1585
-
1586
- def test_no_anomalies_returns_empty_list(self) -> None:
1587
- """All collectors clean + no threshold anomalies → JSONB serializable []."""
1588
- from vds_scheduler_orchestrator.workflows.ecosystem_report import (
1589
- _aggregate_anomalies,
1590
- )
1591
-
1592
- results = [
1593
- self._make_result("Git Activity", []),
1594
- self._make_result("Queue Metrics", []),
1595
- ]
1596
- agg = _aggregate_anomalies(results, threshold_anomalies=[])
1597
-
1598
- assert agg == []
1599
- # JSONB serializability — round-trip through json.
1600
- import json
1601
-
1602
- assert json.loads(json.dumps(agg)) == []
1603
-
1604
- def test_anomaly_with_newlines_is_sanitized(self) -> None:
1605
- """Newlines in anomaly strings are flattened to '; ' before persistence
1606
- so the JSONB row stays single-line per entry (matches markdown rendering)."""
1607
- from vds_scheduler_orchestrator.workflows.ecosystem_report import (
1608
- _aggregate_anomalies,
1609
- )
1610
-
1611
- results = [
1612
- self._make_result("Test Suite", ["first line\nsecond line\nthird line"]),
1613
- ]
1614
- agg = _aggregate_anomalies(results, threshold_anomalies=[])
1615
-
1616
- assert len(agg) == 1
1617
- assert "\n" not in agg[0]
1618
- # sanitize_anomaly() replaces \n with "; ".
1619
- assert "first line" in agg[0]
1620
- assert "second line" in agg[0]
1621
- assert "third line" in agg[0]
1622
-
1623
- def test_anomaly_ordering_preserved(self) -> None:
1624
- """Aggregation order: collector order, then within-collector emission order,
1625
- then legacy threshold anomalies — so operators can scan JSONB top-down
1626
- and see the same sequence the v2 markdown renders."""
1627
- from vds_scheduler_orchestrator.workflows.ecosystem_report import (
1628
- _aggregate_anomalies,
1629
- )
1630
-
1631
- results = [
1632
- self._make_result("A", ["a1", "a2"]),
1633
- self._make_result("B", ["b1"]),
1634
- self._make_result("C", ["c1", "c2", "c3"]),
1635
- ]
1636
- threshold = ["threshold-1", "threshold-2"]
1637
-
1638
- agg = _aggregate_anomalies(results, threshold_anomalies=threshold)
1639
-
1640
- assert agg == ["a1", "a2", "b1", "c1", "c2", "c3", "threshold-1", "threshold-2"]
1641
-
1642
- def test_truncates_with_sentinel_when_exceeds_cap(self) -> None:
1643
- """When the combined list exceeds _MAX_PERSISTED_ANOMALIES, the persisted
1644
- list ends with a sentinel marker so operators see the truncation
1645
- without cross-referencing the markdown."""
1646
- from vds_scheduler_orchestrator.workflows.ecosystem_report import (
1647
- _MAX_PERSISTED_ANOMALIES,
1648
- _TRUNCATION_SENTINEL_PREFIX,
1649
- _aggregate_anomalies,
1650
- )
1651
-
1652
- # 73 anomalies — comfortably above the 50-cap default.
1653
- flood = [f"anomaly-{i}" for i in range(73)]
1654
- results = [self._make_result("Flood", flood)]
1655
- agg = _aggregate_anomalies(results, threshold_anomalies=[])
1656
-
1657
- # One slot is consumed by the sentinel, so we still keep at most
1658
- # _MAX_PERSISTED_ANOMALIES + 1 entries total.
1659
- assert len(agg) == _MAX_PERSISTED_ANOMALIES + 1
1660
- assert agg[_MAX_PERSISTED_ANOMALIES].startswith(_TRUNCATION_SENTINEL_PREFIX)
1661
- # Sentinel records both the kept count and the original total.
1662
- assert "73" in agg[_MAX_PERSISTED_ANOMALIES]
1663
-
1664
- def test_threshold_anomalies_appended_after_collector_anomalies(self) -> None:
1665
- """Legacy threshold heuristics from _generate_and_write_report are
1666
- preserved as a strict superset — collector anomalies first, threshold
1667
- last — so persisted JSONB never loses the legacy detections."""
1668
- from vds_scheduler_orchestrator.workflows.ecosystem_report import (
1669
- _aggregate_anomalies,
1670
- )
1671
-
1672
- results = [self._make_result("X", ["collector anomaly"])]
1673
- threshold = ["High error count: 99 workflows failed in last 24h"]
1674
-
1675
- agg = _aggregate_anomalies(results, threshold_anomalies=threshold)
1676
-
1677
- assert agg[0] == "collector anomaly"
1678
- assert "High error count" in agg[1]
1679
-
1680
- def test_empty_strings_dropped(self) -> None:
1681
- """sanitize_anomaly('') returns '' — those entries must NOT appear in
1682
- the persisted list (they would render as empty bullets in markdown
1683
- and as null-ish entries in JSONB)."""
1684
- from vds_scheduler_orchestrator.workflows.ecosystem_report import (
1685
- _aggregate_anomalies,
1686
- )
1687
-
1688
- results = [self._make_result("X", ["", "real anomaly", ""])]
1689
- agg = _aggregate_anomalies(results, threshold_anomalies=["", "kept"])
1690
-
1691
- assert agg == ["real anomaly", "kept"]
1692
-
1693
-
1694
- class TestPersistAggregatedAnomaliesEnd2End:
1695
- """End-to-end: workflow body computes aggregated anomalies → passes them
1696
- to _persist_report_run → stored on the row → readback matches.
1697
-
1698
- This is the regression guard for the original bug: the JSONB column
1699
- was getting [] while the markdown showed N anomalies."""
1700
-
1701
- async def test_persist_writes_aggregated_list_to_row(self) -> None:
1702
- """_persist_report_run with the aggregated list assigns it to row.anomalies."""
1703
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
1704
-
1705
- existing = MagicMock()
1706
- existing.id = "run-aggregated-789"
1707
-
1708
- session = MagicMock()
1709
- query_chain = MagicMock()
1710
- session.query.return_value = query_chain
1711
- query_chain.filter_by.return_value = query_chain
1712
- query_chain.first.return_value = existing
1713
-
1714
- # Caller (workflow body) precomputed the aggregated list — this is
1715
- # the contract the fix establishes.
1716
- aggregated = [
1717
- "docker collector failed",
1718
- "redis collector failed",
1719
- "DORA bootstrap incomplete",
1720
- "Trend bootstrap incomplete",
1721
- "LLM bootstrap incomplete",
1722
- "High error count: 12 workflows failed in last 24h",
1723
- "Queue backlog: 60 PENDING workflows",
1724
- ]
1725
-
1726
- kwargs = _persist_call_kwargs()
1727
- kwargs["anomalies"] = aggregated
1728
-
1729
- with patch(
1730
- "vds_scheduler_orchestrator.workflows.ecosystem_report._make_session",
1731
- return_value=session,
1732
- ):
1733
- run_id = await _unwrap(mod._persist_report_run)(**kwargs)
1734
-
1735
- # Row carries the full aggregated list (length 7), NOT [].
1736
- assert existing.anomalies == aggregated
1737
- assert len(existing.anomalies) == 7
1738
- assert run_id == "run-aggregated-789"
1739
-
1740
- async def test_persist_with_empty_aggregated_list(self) -> None:
1741
- """Backward-compat: empty aggregated list still persists as [] (not None)."""
1742
- from vds_scheduler_orchestrator.workflows import ecosystem_report as mod
1743
-
1744
- existing = MagicMock()
1745
- existing.id = "run-empty-aggregated"
1746
-
1747
- session = MagicMock()
1748
- query_chain = MagicMock()
1749
- session.query.return_value = query_chain
1750
- query_chain.filter_by.return_value = query_chain
1751
- query_chain.first.return_value = existing
1752
-
1753
- kwargs = _persist_call_kwargs()
1754
- kwargs["anomalies"] = []
1755
-
1756
- with patch(
1757
- "vds_scheduler_orchestrator.workflows.ecosystem_report._make_session",
1758
- return_value=session,
1759
- ):
1760
- await _unwrap(mod._persist_report_run)(**kwargs)
1761
-
1762
- assert existing.anomalies == []
1763
-
1764
-
1765
- # ── Tests: Wave 8 Lane Upsilon Fix 2 — single-file output ────────────────────
1766
- #
1767
- # Bug evidence (Lane Aleph audit): each workflow run wrote TWO contradictory
1768
- # markdown files into ``reports/ecosystem/``:
1769
- # - ``<date>-ecosystem-report.md`` → legacy 50-line short summary
1770
- # ("✅ No anomalies detected")
1771
- # - ``<date>-ecosystem-report-v2.md`` → 124-line collector-aware full
1772
- # report ("⚠️ Anomalies (7)")
1773
- #
1774
- # Fix: the workflow body now writes ONLY the collector-aware full report and
1775
- # uses the canonical ``<date>-ecosystem-report.md`` filename (no -v2 suffix).
1776
- # The legacy threshold heuristics still feed persistence + the completion
1777
- # event count via ``_compute_legacy_threshold_anomalies`` (extracted helper).
1778
-
1779
-
1780
- class TestSingleFileOutputContract:
1781
- """Workflow body emits a single canonical markdown per run (FR-1.x cleanup).
1782
-
1783
- These are structural / source-level checks on the workflow body. The
1784
- ``@DBOS.workflow`` body itself is not exercised end-to-end in unit tests
1785
- (see the module docstring: it requires a live DBOS runtime), so we
1786
- instead assert the contract by inspecting the source text and exercising
1787
- the helper surfaces it now relies on.
1788
- """
1789
-
1790
- def test_workflow_body_no_longer_writes_v2_suffix(self) -> None:
1791
- """Workflow body must NOT reference the legacy ``-v2.md`` suffix."""
1792
- import inspect
1793
-
1794
- from vds_scheduler_orchestrator.workflows import ecosystem_report
1795
-
1796
- src = inspect.getsource(ecosystem_report.ecosystem_daily_report_workflow)
1797
- assert "-ecosystem-report-v2.md" not in src, (
1798
- "Workflow body still writes the duplicate v2-suffixed file"
1799
- )
1800
- assert "v2_path" not in src, (
1801
- "Workflow body still constructs a v2_path variable"
1802
- )
1803
-
1804
- def test_workflow_body_writes_canonical_filename(self) -> None:
1805
- """Workflow body emits ``<date>-ecosystem-report.md`` (no v2 suffix)."""
1806
- import inspect
1807
-
1808
- from vds_scheduler_orchestrator.workflows import ecosystem_report
1809
-
1810
- src = inspect.getsource(ecosystem_report.ecosystem_daily_report_workflow)
1811
- # The canonical filename pattern must still be assembled by the body.
1812
- assert "-ecosystem-report.md" in src
1813
- # And the body must invoke the full-report formatter (the surviving
1814
- # writer) rather than fan out to the legacy short-report step.
1815
- assert "format_adaptive_report" in src
1816
-
1817
- def test_workflow_body_no_longer_calls_legacy_writer_step(self) -> None:
1818
- """``_generate_and_write_report`` is no longer invoked from the body.
1819
-
1820
- It is preserved as a module-level function for back-compat with the
1821
- TSK-2.x test suite, but the workflow now computes its threshold
1822
- anomalies through the extracted ``_compute_legacy_threshold_anomalies``
1823
- helper instead of fan-out to the legacy step.
1824
- """
1825
- import inspect
1826
-
1827
- from vds_scheduler_orchestrator.workflows import ecosystem_report
1828
-
1829
- src = inspect.getsource(ecosystem_report.ecosystem_daily_report_workflow)
1830
- assert "_generate_and_write_report(" not in src, (
1831
- "Workflow body still invokes the legacy short-report writer; "
1832
- "Fix 2 contract requires it be replaced with the inline "
1833
- "_compute_legacy_threshold_anomalies helper."
1834
- )
1835
- assert "_compute_legacy_threshold_anomalies(" in src
1836
-
1837
- def test_full_report_writer_produces_one_file_with_canonical_name(self, tmp_path) -> None:
1838
- """Direct exercise of the ``format_adaptive_report`` writer used by
1839
- the workflow body: render once, write once, name matches the
1840
- canonical ``<YYYY-MM-DD>-ecosystem-report.md`` pattern with no
1841
- ``-v2`` suffix."""
1842
- from datetime import date as _date
1843
-
1844
- from vds_scheduler_orchestrator.workflows.report_formatter import (
1845
- format_adaptive_report,
1846
- )
1847
-
1848
- today = _date(2026, 5, 1)
1849
- report_text = format_adaptive_report([], 100, "full", today, deltas=None)
1850
-
1851
- # Mirror the exact path-construction the workflow body uses.
1852
- report_path = tmp_path / f"{today.isoformat()}-ecosystem-report.md"
1853
- report_path.write_text(report_text, encoding="utf-8")
1854
-
1855
- files = list(tmp_path.iterdir())
1856
- # Exactly ONE markdown file per run (regression guard for the
1857
- # legacy-vs-v2 duplicate).
1858
- assert len(files) == 1, f"expected one report file, got {[f.name for f in files]}"
1859
-
1860
- # Filename matches ``<YYYY-MM-DD>-ecosystem-report.md`` with no
1861
- # ``-v2`` (or any other) suffix.
1862
- name = files[0].name
1863
- assert name == "2026-05-01-ecosystem-report.md"
1864
- assert not name.endswith("-v2.md")
1865
- assert "-v2" not in name
1866
-
1867
- def test_compute_legacy_threshold_anomalies_helper_is_pure(self) -> None:
1868
- """The extracted helper computes the legacy threshold anomalies
1869
- without any I/O — it is the surface the workflow body now uses
1870
- instead of the legacy step."""
1871
- from vds_scheduler_orchestrator.workflows.ecosystem_report import (
1872
- _compute_legacy_threshold_anomalies,
1873
- )
1874
-
1875
- cfg = _make_test_config()
1876
- git_data, sched_data, evt_data, q_data = _baseline_data()
1877
- # Force every threshold to fire.
1878
- q_data["error_24h"] = 999
1879
- q_data["pending_depth"] = 999
1880
- evt_data["outbox_24h"] = 0 # combined with sched.total > 0 → trips
1881
- git_data["repos"]["WHO-project/vds-scripts"]["commits"] = 999
1882
-
1883
- anomalies = _compute_legacy_threshold_anomalies(
1884
- git_data, sched_data, evt_data, q_data, cfg
1885
- )
1886
-
1887
- # All four legacy heuristics fire — no I/O, no file write.
1888
- assert any("High error count" in a for a in anomalies)
1889
- assert any("Queue backlog" in a for a in anomalies)
1890
- assert any("Zero events" in a for a in anomalies)
1891
- assert any("High commit volume" in a for a in anomalies)