@didim365/agent-cli-core 0.1.0 → 0.1.2

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 (1076) hide show
  1. package/package.json +6 -2
  2. package/dist/docs/00_project/ai_adapter/01-overview.md +0 -172
  3. package/dist/docs/00_project/ai_adapter/02-architecture.md +0 -448
  4. package/dist/docs/00_project/ai_adapter/03-technical-design.md +0 -1470
  5. package/dist/docs/00_project/ai_adapter/04-integration-design.md +0 -1934
  6. package/dist/docs/00_project/ai_adapter/05-implementation-plan.md +0 -336
  7. package/dist/docs/00_project/ai_adapter/06-didiaistudio-plan.md +0 -559
  8. package/dist/docs/00_project/ai_adapter/README.md +0 -145
  9. package/dist/docs/00_project/ai_adapter/agent_service_openapi.json +0 -1
  10. package/dist/docs/00_project/ai_adapter/didimStudi-AISTUDIO /341/204/213/341/205/254/341/204/207/341/205/256 /341/204/211/341/205/245/341/204/207/341/205/265/341/204/211/341/205/263 /341/204/221/341/205/263/341/206/257/341/204/205/341/205/251/341/204/213/341/205/256 /341/204/213/341/205/247/341/206/253/341/204/200/341/205/247/341/206/257 /341/204/207/341/205/241/341/206/274/341/204/211/341/205/265/341/206/250-100226-093925.pdf +0 -0
  11. package/dist/docs/00_project/ai_adapter/event-mapping-matrix.md +0 -148
  12. package/dist/docs/00_project/ai_adapter/migration-plan.md +0 -205
  13. package/dist/docs/00_project/ai_adapter/template/00_vibecoding_workflow.md +0 -627
  14. package/dist/docs/00_project/ai_adapter/template/01_todolist_performance_template.md +0 -436
  15. package/dist/docs/00_project/ai_adapter/template/02_code_review_template.md +0 -248
  16. package/dist/docs/00_project/ai_adapter/template/03_work_result_report_template.md +0 -133
  17. package/dist/docs/00_project/ai_adapter/template/100_Python_Performance_Guide.md +0 -472
  18. package/dist/docs/00_project/ai_adapter/template/99_TDD_plan.md +0 -123
  19. package/dist/docs/00_project/ai_adapter/todolist/00_master_implementation_plan.md +0 -433
  20. package/dist/docs/00_project/ai_adapter/todolist/phase1_foundation_todolist.md +0 -726
  21. package/dist/docs/00_project/ai_adapter/todolist/phase2_core_refactoring_todolist.md +0 -974
  22. package/dist/docs/00_project/ai_adapter/todolist/phase3_handoff.md +0 -203
  23. package/dist/docs/00_project/ai_adapter/todolist/phase3_provider_extension_todolist.md +0 -1382
  24. package/dist/docs/00_project/ai_adapter/utility-migration.md +0 -237
  25. package/dist/docs/00_project/ai_adapter/working_history/.gitkeep +0 -0
  26. package/dist/docs/00_project/ai_adapter/working_history/Phase1_M1.0_/354/275/224/353/223/234/354/235/270/353/262/244/355/206/240/353/246/254_20260201.md +0 -197
  27. package/dist/docs/00_project/ai_adapter/working_history/Phase1_M1.1_/355/203/200/354/236/205/354/204/244/352/263/204_20260201.md +0 -185
  28. package/dist/docs/00_project/ai_adapter/working_history/Phase1_M1.2_Adapter/354/235/270/355/224/204/353/235/274_20260203.md +0 -378
  29. package/dist/docs/00_project/ai_adapter/working_history/Phase1_M1.3_Provider/354/204/240/355/203/235_20260206.md +0 -269
  30. package/dist/docs/00_project/ai_adapter/working_history/Phase1_M1.4_/354/234/240/355/213/270/353/246/254/355/213/260/353/247/210/354/235/264/352/267/270/353/240/210/354/235/264/354/205/230_20260206.md +0 -86
  31. package/dist/docs/00_project/ai_adapter/working_history/Phase2_ETC_/354/227/260/352/270/260/354/236/221/354/227/205/354/240/225/353/246/254_20260208.md +0 -157
  32. package/dist/docs/00_project/ai_adapter/working_history/Phase2_M2.0_/353/224/224/353/240/211/355/206/240/353/246/254/354/236/254/352/265/254/354/204/261_20260207.md +0 -107
  33. package/dist/docs/00_project/ai_adapter/working_history/Phase2_M2.1_ContentGenerator/354/235/270/355/204/260/355/216/230/354/235/264/354/212/244/354/236/254/354/240/225/354/235/230_20260207.md +0 -630
  34. package/dist/docs/00_project/ai_adapter/working_history/Phase2_M2.2_EventMapper/352/265/254/355/230/204_20260207.md +0 -372
  35. package/dist/docs/00_project/ai_adapter/working_history/Phase2_M2.3_GeminiAdapter/352/265/254/355/230/204_20260208.md +0 -205
  36. package/dist/docs/00_project/ai_adapter/working_history/Phase2_M2.4_ModelConfigService/355/230/270/355/231/230/353/240/210/354/235/264/354/226/264_20260208.md +0 -275
  37. package/dist/docs/00_project/ai_adapter/working_history/Phase2_M2.5_/354/234/240/355/213/270/353/246/254/355/213/260/353/240/210/354/235/264/354/226/264/353/246/254/355/214/251/355/206/240/353/247/201_20260208.md +0 -239
  38. package/dist/docs/00_project/ai_adapter/working_history/Phase2_M2.6_/353/235/274/354/232/260/355/214/205/353/240/210/354/235/264/354/226/264/355/203/200/354/236/205/353/217/205/353/246/275/355/231/224_20260208.md +0 -228
  39. package/dist/docs/00_project/ai_adapter/working_history/Phase3_ETC_/352/270/260/353/263/270/354/273/250/355/205/215/354/212/244/355/212/270/355/214/214/354/235/274/353/252/205AGENTS/354/240/204/355/231/230_20260211.md +0 -470
  40. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.0.1_Gemini/354/240/204/354/232/251/355/214/214/354/235/274/353/254/274/353/246/254/354/240/201/354/235/264/353/217/231_20260209.md +0 -271
  41. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.0.2_messageInspectors/353/247/210/354/235/264/352/267/270/353/240/210/354/235/264/354/205/230_20260209.md +0 -330
  42. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.0.3_/355/205/224/353/240/210/353/251/224/355/212/270/353/246/254Agent/353/217/205/353/246/275/355/231/224_20260209.md +0 -251
  43. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.0.4_/353/263/200/355/231/230/353/270/214/353/246/277/354/247/200/354/240/225/353/246/254_20260209.md +0 -136
  44. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.0.5_/353/237/260/355/203/200/354/236/204/354/213/244/355/226/211/352/262/275/353/241/234/354/227/260/352/262/260_20260209.md +0 -232
  45. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.1.0_Claude/354/202/254/354/240/204/354/244/200/353/271/204_20260209.md +0 -191
  46. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.1.1_ClaudeAdapter/352/265/254/355/230/204_20260209.md +0 -225
  47. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.1.2_ClaudeConverter/352/263/240/353/217/204/355/231/224_20260209.md +0 -171
  48. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.1.3_ClaudeStreamError/352/263/240/353/217/204/355/231/224_20260209.md +0 -198
  49. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.1.4_ClaudeErrorMapping_20260209.md +0 -98
  50. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.2.A_OpenAIAdapterCore_20260210.md +0 -264
  51. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.2.B_OpenAIStreamConverter_20260210.md +0 -204
  52. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.3.2_/353/252/250/353/215/270/355/205/234/355/224/214/353/246/277/355/233/205/353/263/264/354/231/204_20260211.md +0 -106
  53. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.3_OpenAICompatibleAdapter_20260211.md +0 -251
  54. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.4.2_E2E/355/205/214/354/212/244/355/212/270/354/213/234/353/202/230/353/246/254/354/230/244_20260210.md +0 -264
  55. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.4.3_/354/204/261/353/212/245/355/232/214/352/267/200/355/205/214/354/212/244/355/212/270_20260211.md +0 -176
  56. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.4.5_/354/225/210/354/240/225/355/231/224/354/236/221/354/227/205_20260211.md +0 -204
  57. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.4.A_CLI/355/206/265/355/225/251_3Provider/355/206/265/355/225/251/355/205/214/354/212/244/355/212/270_20260210.md +0 -316
  58. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.4.A_UI/354/203/201/355/203/234/353/260/224/354/210/230/354/240/225_20260210.md +0 -262
  59. package/dist/docs/00_project/ai_adapter/working_history/phase2_tradeoff_EventType/354/240/204/355/231/230_20260208.md +0 -286
  60. package/dist/docs/00_project/white_labeling/template/00_vibecoding_workflow.md +0 -627
  61. package/dist/docs/00_project/white_labeling/template/01_todolist_performance_template.md +0 -400
  62. package/dist/docs/00_project/white_labeling/template/02_code_review_template.md +0 -248
  63. package/dist/docs/00_project/white_labeling/template/03_work_result_report_template.md +0 -133
  64. package/dist/docs/00_project/white_labeling/template/100_Python_Performance_Guide.md +0 -472
  65. package/dist/docs/00_project/white_labeling/template/99_TDD_plan.md +0 -123
  66. package/dist/docs/00_project/white_labeling/todolist/Phase_CLI/355/214/250/355/202/244/354/247/200/353/252/205/353/263/200/352/262/275_todolist.md +0 -431
  67. package/dist/docs/00_project/white_labeling/working_history/Phase_CLI/355/214/250/355/202/244/354/247/200/353/252/205/353/263/200/352/262/275_20260214.md +0 -238
  68. package/dist/docs/00_project/white_labeling//354/225/261/352/265/254/354/241/260.md +0 -310
  69. package/dist/docs/CONTRIBUTING.md +0 -554
  70. package/dist/docs/ai_adapter/01-overview.md +0 -155
  71. package/dist/docs/ai_adapter/02-architecture.md +0 -452
  72. package/dist/docs/ai_adapter/03-technical-design.md +0 -1470
  73. package/dist/docs/ai_adapter/04-integration-design.md +0 -1904
  74. package/dist/docs/ai_adapter/05-implementation-plan.md +0 -312
  75. package/dist/docs/ai_adapter/06-didiaistudio-plan.md +0 -559
  76. package/dist/docs/ai_adapter/README.md +0 -118
  77. package/dist/docs/ai_adapter/agent_service_openapi.json +0 -1
  78. package/dist/docs/ai_adapter/didimStudi-AISTUDIO /341/204/213/341/205/254/341/204/207/341/205/256 /341/204/211/341/205/245/341/204/207/341/205/265/341/204/211/341/205/263 /341/204/221/341/205/263/341/206/257/341/204/205/341/205/251/341/204/213/341/205/256 /341/204/213/341/205/247/341/206/253/341/204/200/341/205/247/341/206/257 /341/204/207/341/205/241/341/206/274/341/204/211/341/205/265/341/206/250-100226-093925.pdf +0 -0
  79. package/dist/docs/ai_adapter/event-mapping-matrix.md +0 -140
  80. package/dist/docs/ai_adapter/migration-plan.md +0 -205
  81. package/dist/docs/ai_adapter/template/00_vibecoding_workflow.md +0 -636
  82. package/dist/docs/ai_adapter/template/01_todolist_performance_template.md +0 -372
  83. package/dist/docs/ai_adapter/template/02_code_review_template.md +0 -220
  84. package/dist/docs/ai_adapter/template/03_work_result_report_template.md +0 -120
  85. package/dist/docs/ai_adapter/template/100_Python_Performance_Guide.md +0 -453
  86. package/dist/docs/ai_adapter/template/99_TDD_plan.md +0 -111
  87. package/dist/docs/ai_adapter/todolist/00_master_implementation_plan.md +0 -433
  88. package/dist/docs/ai_adapter/todolist/phase1_foundation_todolist.md +0 -726
  89. package/dist/docs/ai_adapter/todolist/phase2_core_refactoring_todolist.md +0 -974
  90. package/dist/docs/ai_adapter/todolist/phase3_handoff.md +0 -203
  91. package/dist/docs/ai_adapter/todolist/phase3_provider_extension_todolist.md +0 -1382
  92. package/dist/docs/ai_adapter/utility-migration.md +0 -237
  93. package/dist/docs/ai_adapter/working_history/.gitkeep +0 -0
  94. package/dist/docs/ai_adapter/working_history/Phase1_M1.0_/354/275/224/353/223/234/354/235/270/353/262/244/355/206/240/353/246/254_20260201.md +0 -185
  95. package/dist/docs/ai_adapter/working_history/Phase1_M1.1_/355/203/200/354/236/205/354/204/244/352/263/204_20260201.md +0 -185
  96. package/dist/docs/ai_adapter/working_history/Phase1_M1.2_Adapter/354/235/270/355/224/204/353/235/274_20260203.md +0 -378
  97. package/dist/docs/ai_adapter/working_history/Phase1_M1.3_Provider/354/204/240/355/203/235_20260206.md +0 -269
  98. package/dist/docs/ai_adapter/working_history/Phase1_M1.4_/354/234/240/355/213/270/353/246/254/355/213/260/353/247/210/354/235/264/352/267/270/353/240/210/354/235/264/354/205/230_20260206.md +0 -86
  99. package/dist/docs/ai_adapter/working_history/Phase2_ETC_/354/227/260/352/270/260/354/236/221/354/227/205/354/240/225/353/246/254_20260208.md +0 -157
  100. package/dist/docs/ai_adapter/working_history/Phase2_M2.0_/353/224/224/353/240/211/355/206/240/353/246/254/354/236/254/352/265/254/354/204/261_20260207.md +0 -107
  101. package/dist/docs/ai_adapter/working_history/Phase2_M2.1_ContentGenerator/354/235/270/355/204/260/355/216/230/354/235/264/354/212/244/354/236/254/354/240/225/354/235/230_20260207.md +0 -630
  102. package/dist/docs/ai_adapter/working_history/Phase2_M2.2_EventMapper/352/265/254/355/230/204_20260207.md +0 -372
  103. package/dist/docs/ai_adapter/working_history/Phase2_M2.3_GeminiAdapter/352/265/254/355/230/204_20260208.md +0 -205
  104. package/dist/docs/ai_adapter/working_history/Phase2_M2.4_ModelConfigService/355/230/270/355/231/230/353/240/210/354/235/264/354/226/264_20260208.md +0 -275
  105. package/dist/docs/ai_adapter/working_history/Phase2_M2.5_/354/234/240/355/213/270/353/246/254/355/213/260/353/240/210/354/235/264/354/226/264/353/246/254/355/214/251/355/206/240/353/247/201_20260208.md +0 -239
  106. package/dist/docs/ai_adapter/working_history/Phase2_M2.6_/353/235/274/354/232/260/355/214/205/353/240/210/354/235/264/354/226/264/355/203/200/354/236/205/353/217/205/353/246/275/355/231/224_20260208.md +0 -228
  107. package/dist/docs/ai_adapter/working_history/Phase3_ETC_/352/270/260/353/263/270/354/273/250/355/205/215/354/212/244/355/212/270/355/214/214/354/235/274/353/252/205AGENTS/354/240/204/355/231/230_20260211.md +0 -367
  108. package/dist/docs/ai_adapter/working_history/Phase3_M3.0.1_Gemini/354/240/204/354/232/251/355/214/214/354/235/274/353/254/274/353/246/254/354/240/201/354/235/264/353/217/231_20260209.md +0 -271
  109. package/dist/docs/ai_adapter/working_history/Phase3_M3.0.2_messageInspectors/353/247/210/354/235/264/352/267/270/353/240/210/354/235/264/354/205/230_20260209.md +0 -330
  110. package/dist/docs/ai_adapter/working_history/Phase3_M3.0.3_/355/205/224/353/240/210/353/251/224/355/212/270/353/246/254Agent/353/217/205/353/246/275/355/231/224_20260209.md +0 -251
  111. package/dist/docs/ai_adapter/working_history/Phase3_M3.0.4_/353/263/200/355/231/230/353/270/214/353/246/277/354/247/200/354/240/225/353/246/254_20260209.md +0 -136
  112. package/dist/docs/ai_adapter/working_history/Phase3_M3.0.5_/353/237/260/355/203/200/354/236/204/354/213/244/355/226/211/352/262/275/353/241/234/354/227/260/352/262/260_20260209.md +0 -232
  113. package/dist/docs/ai_adapter/working_history/Phase3_M3.1.0_Claude/354/202/254/354/240/204/354/244/200/353/271/204_20260209.md +0 -191
  114. package/dist/docs/ai_adapter/working_history/Phase3_M3.1.1_ClaudeAdapter/352/265/254/355/230/204_20260209.md +0 -225
  115. package/dist/docs/ai_adapter/working_history/Phase3_M3.1.2_ClaudeConverter/352/263/240/353/217/204/355/231/224_20260209.md +0 -171
  116. package/dist/docs/ai_adapter/working_history/Phase3_M3.1.3_ClaudeStreamError/352/263/240/353/217/204/355/231/224_20260209.md +0 -198
  117. package/dist/docs/ai_adapter/working_history/Phase3_M3.1.4_ClaudeErrorMapping_20260209.md +0 -98
  118. package/dist/docs/ai_adapter/working_history/Phase3_M3.2.A_OpenAIAdapterCore_20260210.md +0 -264
  119. package/dist/docs/ai_adapter/working_history/Phase3_M3.2.B_OpenAIStreamConverter_20260210.md +0 -204
  120. package/dist/docs/ai_adapter/working_history/Phase3_M3.3.2_/353/252/250/353/215/270/355/205/234/355/224/214/353/246/277/355/233/205/353/263/264/354/231/204_20260211.md +0 -106
  121. package/dist/docs/ai_adapter/working_history/Phase3_M3.3_OpenAICompatibleAdapter_20260211.md +0 -251
  122. package/dist/docs/ai_adapter/working_history/Phase3_M3.4.2_E2E/355/205/214/354/212/244/355/212/270/354/213/234/353/202/230/353/246/254/354/230/244_20260210.md +0 -264
  123. package/dist/docs/ai_adapter/working_history/Phase3_M3.4.3_/354/204/261/353/212/245/355/232/214/352/267/200/355/205/214/354/212/244/355/212/270_20260211.md +0 -176
  124. package/dist/docs/ai_adapter/working_history/Phase3_M3.4.5_/354/225/210/354/240/225/355/231/224/354/236/221/354/227/205_20260211.md +0 -204
  125. package/dist/docs/ai_adapter/working_history/Phase3_M3.4.A_CLI/355/206/265/355/225/251_3Provider/355/206/265/355/225/251/355/205/214/354/212/244/355/212/270_20260210.md +0 -316
  126. package/dist/docs/ai_adapter/working_history/Phase3_M3.4.A_UI/354/203/201/355/203/234/353/260/224/354/210/230/354/240/225_20260210.md +0 -262
  127. package/dist/docs/ai_adapter/working_history/phase2_tradeoff_EventType/354/240/204/355/231/230_20260208.md +0 -286
  128. package/dist/docs/api/index.md +0 -5
  129. package/dist/docs/api/providers.md +0 -56
  130. package/dist/docs/architecture.md +0 -80
  131. package/dist/docs/assets/connected_devtools.png +0 -0
  132. package/dist/docs/assets/gemini-screenshot.png +0 -0
  133. package/dist/docs/assets/monitoring-dashboard-logs.png +0 -0
  134. package/dist/docs/assets/monitoring-dashboard-metrics.png +0 -0
  135. package/dist/docs/assets/monitoring-dashboard-overview.png +0 -0
  136. package/dist/docs/assets/release_patch.png +0 -0
  137. package/dist/docs/assets/theme-ansi-light.png +0 -0
  138. package/dist/docs/assets/theme-ansi.png +0 -0
  139. package/dist/docs/assets/theme-atom-one.png +0 -0
  140. package/dist/docs/assets/theme-ayu-light.png +0 -0
  141. package/dist/docs/assets/theme-ayu.png +0 -0
  142. package/dist/docs/assets/theme-custom.png +0 -0
  143. package/dist/docs/assets/theme-default-light.png +0 -0
  144. package/dist/docs/assets/theme-default.png +0 -0
  145. package/dist/docs/assets/theme-dracula.png +0 -0
  146. package/dist/docs/assets/theme-github-light.png +0 -0
  147. package/dist/docs/assets/theme-github.png +0 -0
  148. package/dist/docs/assets/theme-google-light.png +0 -0
  149. package/dist/docs/assets/theme-xcode-light.png +0 -0
  150. package/dist/docs/change_model/model_command_multi_provider_plan.md +0 -221
  151. package/dist/docs/change_model/model_command_multi_provider_todolist.md +0 -206
  152. package/dist/docs/changelogs/index.md +0 -726
  153. package/dist/docs/changelogs/latest.md +0 -370
  154. package/dist/docs/changelogs/preview.md +0 -332
  155. package/dist/docs/cli/authentication.md +0 -3
  156. package/dist/docs/cli/checkpointing.md +0 -94
  157. package/dist/docs/cli/commands.md +0 -375
  158. package/dist/docs/cli/custom-commands.md +0 -315
  159. package/dist/docs/cli/enterprise.md +0 -565
  160. package/dist/docs/cli/gemini-ignore.md +0 -71
  161. package/dist/docs/cli/gemini-md.md +0 -108
  162. package/dist/docs/cli/generation-settings.md +0 -210
  163. package/dist/docs/cli/headless.md +0 -388
  164. package/dist/docs/cli/index.md +0 -65
  165. package/dist/docs/cli/keyboard-shortcuts.md +0 -129
  166. package/dist/docs/cli/model-routing.md +0 -42
  167. package/dist/docs/cli/model.md +0 -62
  168. package/dist/docs/cli/sandbox.md +0 -171
  169. package/dist/docs/cli/session-management.md +0 -158
  170. package/dist/docs/cli/settings.md +0 -130
  171. package/dist/docs/cli/skills.md +0 -188
  172. package/dist/docs/cli/system-prompt.md +0 -125
  173. package/dist/docs/cli/telemetry.md +0 -826
  174. package/dist/docs/cli/themes.md +0 -235
  175. package/dist/docs/cli/token-caching.md +0 -20
  176. package/dist/docs/cli/trusted-folders.md +0 -95
  177. package/dist/docs/cli/tutorials/skills-getting-started.md +0 -124
  178. package/dist/docs/cli/tutorials.md +0 -87
  179. package/dist/docs/cli/uninstall.md +0 -65
  180. package/dist/docs/configuration.md +0 -108
  181. package/dist/docs/core/index.md +0 -105
  182. package/dist/docs/core/long-term-memory-design.md +0 -254
  183. package/dist/docs/core/long-term-memory-proposal.md +0 -112
  184. package/dist/docs/core/memport.md +0 -246
  185. package/dist/docs/core/policy-engine.md +0 -300
  186. package/dist/docs/core/tools-api.md +0 -131
  187. package/dist/docs/examples/proxy-script.md +0 -83
  188. package/dist/docs/extensions/best-practices.md +0 -139
  189. package/dist/docs/extensions/index.md +0 -44
  190. package/dist/docs/extensions/reference.md +0 -312
  191. package/dist/docs/extensions/releasing.md +0 -183
  192. package/dist/docs/extensions/writing-extensions.md +0 -283
  193. package/dist/docs/faq.md +0 -154
  194. package/dist/docs/get-started/authentication.md +0 -321
  195. package/dist/docs/get-started/configuration-v1.md +0 -888
  196. package/dist/docs/get-started/configuration.md +0 -1567
  197. package/dist/docs/get-started/examples.md +0 -219
  198. package/dist/docs/get-started/gemini-3.md +0 -101
  199. package/dist/docs/get-started/index.md +0 -71
  200. package/dist/docs/get-started/installation.md +0 -141
  201. package/dist/docs/hooks/best-practices.md +0 -677
  202. package/dist/docs/hooks/index.md +0 -178
  203. package/dist/docs/hooks/reference.md +0 -322
  204. package/dist/docs/hooks/writing-hooks.md +0 -450
  205. package/dist/docs/ide-integration/ide-companion-spec.md +0 -267
  206. package/dist/docs/ide-integration/index.md +0 -202
  207. package/dist/docs/index.md +0 -153
  208. package/dist/docs/integration-tests.md +0 -211
  209. package/dist/docs/issue-and-pr-automation.md +0 -134
  210. package/dist/docs/local-development.md +0 -128
  211. package/dist/docs/mermaid/context.mmd +0 -103
  212. package/dist/docs/mermaid/render-path.mmd +0 -64
  213. package/dist/docs/migration.md +0 -78
  214. package/dist/docs/npm.md +0 -62
  215. package/dist/docs/providers.md +0 -136
  216. package/dist/docs/quota-and-pricing.md +0 -158
  217. package/dist/docs/release-confidence.md +0 -164
  218. package/dist/docs/releases.md +0 -539
  219. package/dist/docs/sidebar.json +0 -140
  220. package/dist/docs/tools/file-system.md +0 -217
  221. package/dist/docs/tools/index.md +0 -98
  222. package/dist/docs/tools/mcp-server.md +0 -1068
  223. package/dist/docs/tools/memory.md +0 -54
  224. package/dist/docs/tools/shell.md +0 -260
  225. package/dist/docs/tools/todos.md +0 -57
  226. package/dist/docs/tools/web-fetch.md +0 -59
  227. package/dist/docs/tools/web-search.md +0 -42
  228. package/dist/docs/tos-privacy.md +0 -96
  229. package/dist/docs/troubleshooting.md +0 -173
  230. package/dist/src/agents/a2a-client-manager.test.d.ts +0 -6
  231. package/dist/src/agents/a2a-client-manager.test.js +0 -220
  232. package/dist/src/agents/a2a-client-manager.test.js.map +0 -1
  233. package/dist/src/agents/a2aUtils.test.d.ts +0 -6
  234. package/dist/src/agents/a2aUtils.test.js +0 -147
  235. package/dist/src/agents/a2aUtils.test.js.map +0 -1
  236. package/dist/src/agents/acknowledgedAgents.test.d.ts +0 -6
  237. package/dist/src/agents/acknowledgedAgents.test.js +0 -70
  238. package/dist/src/agents/acknowledgedAgents.test.js.map +0 -1
  239. package/dist/src/agents/agent-scheduler.test.d.ts +0 -6
  240. package/dist/src/agents/agent-scheduler.test.js +0 -56
  241. package/dist/src/agents/agent-scheduler.test.js.map +0 -1
  242. package/dist/src/agents/agentLoader.test.d.ts +0 -6
  243. package/dist/src/agents/agentLoader.test.js +0 -304
  244. package/dist/src/agents/agentLoader.test.js.map +0 -1
  245. package/dist/src/agents/cli-help-agent.test.d.ts +0 -6
  246. package/dist/src/agents/cli-help-agent.test.js +0 -67
  247. package/dist/src/agents/cli-help-agent.test.js.map +0 -1
  248. package/dist/src/agents/codebase-investigator.test.d.ts +0 -6
  249. package/dist/src/agents/codebase-investigator.test.js +0 -42
  250. package/dist/src/agents/codebase-investigator.test.js.map +0 -1
  251. package/dist/src/agents/generalist-agent.test.d.ts +0 -6
  252. package/dist/src/agents/generalist-agent.test.js +0 -31
  253. package/dist/src/agents/generalist-agent.test.js.map +0 -1
  254. package/dist/src/agents/local-executor.test.d.ts +0 -6
  255. package/dist/src/agents/local-executor.test.js +0 -1577
  256. package/dist/src/agents/local-executor.test.js.map +0 -1
  257. package/dist/src/agents/local-invocation.test.d.ts +0 -6
  258. package/dist/src/agents/local-invocation.test.js +0 -228
  259. package/dist/src/agents/local-invocation.test.js.map +0 -1
  260. package/dist/src/agents/registry.test.d.ts +0 -6
  261. package/dist/src/agents/registry.test.js +0 -773
  262. package/dist/src/agents/registry.test.js.map +0 -1
  263. package/dist/src/agents/registry_acknowledgement.test.d.ts +0 -6
  264. package/dist/src/agents/registry_acknowledgement.test.js +0 -130
  265. package/dist/src/agents/registry_acknowledgement.test.js.map +0 -1
  266. package/dist/src/agents/remote-invocation.test.d.ts +0 -6
  267. package/dist/src/agents/remote-invocation.test.js +0 -213
  268. package/dist/src/agents/remote-invocation.test.js.map +0 -1
  269. package/dist/src/agents/subagent-tool-wrapper.test.d.ts +0 -6
  270. package/dist/src/agents/subagent-tool-wrapper.test.js +0 -109
  271. package/dist/src/agents/subagent-tool-wrapper.test.js.map +0 -1
  272. package/dist/src/agents/utils.test.d.ts +0 -6
  273. package/dist/src/agents/utils.test.js +0 -87
  274. package/dist/src/agents/utils.test.js.map +0 -1
  275. package/dist/src/availability/fallbackIntegration.test.d.ts +0 -6
  276. package/dist/src/availability/fallbackIntegration.test.js +0 -58
  277. package/dist/src/availability/fallbackIntegration.test.js.map +0 -1
  278. package/dist/src/availability/modelAvailabilityService.test.d.ts +0 -6
  279. package/dist/src/availability/modelAvailabilityService.test.js +0 -140
  280. package/dist/src/availability/modelAvailabilityService.test.js.map +0 -1
  281. package/dist/src/availability/policyCatalog.test.d.ts +0 -6
  282. package/dist/src/availability/policyCatalog.test.js +0 -70
  283. package/dist/src/availability/policyCatalog.test.js.map +0 -1
  284. package/dist/src/availability/policyHelpers.test.d.ts +0 -6
  285. package/dist/src/availability/policyHelpers.test.js +0 -220
  286. package/dist/src/availability/policyHelpers.test.js.map +0 -1
  287. package/dist/src/code_assist/admin/admin_controls.test.d.ts +0 -6
  288. package/dist/src/code_assist/admin/admin_controls.test.js +0 -200
  289. package/dist/src/code_assist/admin/admin_controls.test.js.map +0 -1
  290. package/dist/src/code_assist/codeAssist.test.d.ts +0 -6
  291. package/dist/src/code_assist/codeAssist.test.js +0 -102
  292. package/dist/src/code_assist/codeAssist.test.js.map +0 -1
  293. package/dist/src/code_assist/converter.test.d.ts +0 -6
  294. package/dist/src/code_assist/converter.test.js +0 -391
  295. package/dist/src/code_assist/converter.test.js.map +0 -1
  296. package/dist/src/code_assist/experiments/client_metadata.test.d.ts +0 -6
  297. package/dist/src/code_assist/experiments/client_metadata.test.js +0 -96
  298. package/dist/src/code_assist/experiments/client_metadata.test.js.map +0 -1
  299. package/dist/src/code_assist/experiments/experiments.test.d.ts +0 -6
  300. package/dist/src/code_assist/experiments/experiments.test.js +0 -93
  301. package/dist/src/code_assist/experiments/experiments.test.js.map +0 -1
  302. package/dist/src/code_assist/experiments/experiments_local.test.d.ts +0 -6
  303. package/dist/src/code_assist/experiments/experiments_local.test.js +0 -115
  304. package/dist/src/code_assist/experiments/experiments_local.test.js.map +0 -1
  305. package/dist/src/code_assist/oauth-credential-storage.test.d.ts +0 -6
  306. package/dist/src/code_assist/oauth-credential-storage.test.js +0 -198
  307. package/dist/src/code_assist/oauth-credential-storage.test.js.map +0 -1
  308. package/dist/src/code_assist/oauth2.test.d.ts +0 -6
  309. package/dist/src/code_assist/oauth2.test.js +0 -1065
  310. package/dist/src/code_assist/oauth2.test.js.map +0 -1
  311. package/dist/src/code_assist/server.test.d.ts +0 -6
  312. package/dist/src/code_assist/server.test.js +0 -453
  313. package/dist/src/code_assist/server.test.js.map +0 -1
  314. package/dist/src/code_assist/setup.test.d.ts +0 -6
  315. package/dist/src/code_assist/setup.test.js +0 -517
  316. package/dist/src/code_assist/setup.test.js.map +0 -1
  317. package/dist/src/code_assist/telemetry.test.d.ts +0 -6
  318. package/dist/src/code_assist/telemetry.test.js +0 -301
  319. package/dist/src/code_assist/telemetry.test.js.map +0 -1
  320. package/dist/src/commands/extensions.test.d.ts +0 -6
  321. package/dist/src/commands/extensions.test.js +0 -19
  322. package/dist/src/commands/extensions.test.js.map +0 -1
  323. package/dist/src/commands/init.test.d.ts +0 -6
  324. package/dist/src/commands/init.test.js +0 -25
  325. package/dist/src/commands/init.test.js.map +0 -1
  326. package/dist/src/commands/memory.test.d.ts +0 -6
  327. package/dist/src/commands/memory.test.js +0 -182
  328. package/dist/src/commands/memory.test.js.map +0 -1
  329. package/dist/src/commands/restore.test.d.ts +0 -6
  330. package/dist/src/commands/restore.test.js +0 -137
  331. package/dist/src/commands/restore.test.js.map +0 -1
  332. package/dist/src/config/config.test.d.ts +0 -6
  333. package/dist/src/config/config.test.js +0 -1811
  334. package/dist/src/config/config.test.js.map +0 -1
  335. package/dist/src/config/flashFallback.test.d.ts +0 -6
  336. package/dist/src/config/flashFallback.test.js +0 -63
  337. package/dist/src/config/flashFallback.test.js.map +0 -1
  338. package/dist/src/config/models.test.d.ts +0 -6
  339. package/dist/src/config/models.test.js +0 -146
  340. package/dist/src/config/models.test.js.map +0 -1
  341. package/dist/src/config/storage.test.d.ts +0 -6
  342. package/dist/src/config/storage.test.js +0 -115
  343. package/dist/src/config/storage.test.js.map +0 -1
  344. package/dist/src/confirmation-bus/message-bus.test.d.ts +0 -6
  345. package/dist/src/confirmation-bus/message-bus.test.js +0 -170
  346. package/dist/src/confirmation-bus/message-bus.test.js.map +0 -1
  347. package/dist/src/core/apiKeyCredentialStorage.test.d.ts +0 -6
  348. package/dist/src/core/apiKeyCredentialStorage.test.js +0 -71
  349. package/dist/src/core/apiKeyCredentialStorage.test.js.map +0 -1
  350. package/dist/src/core/baseLlmClient.test.d.ts +0 -6
  351. package/dist/src/core/baseLlmClient.test.js +0 -569
  352. package/dist/src/core/baseLlmClient.test.js.map +0 -1
  353. package/dist/src/core/baseLlmClient_new_types.test.d.ts +0 -1
  354. package/dist/src/core/baseLlmClient_new_types.test.js +0 -387
  355. package/dist/src/core/baseLlmClient_new_types.test.js.map +0 -1
  356. package/dist/src/core/client.test.d.ts +0 -6
  357. package/dist/src/core/client.test.js +0 -2654
  358. package/dist/src/core/client.test.js.map +0 -1
  359. package/dist/src/core/contentGenerator.multiProvider.test.d.ts +0 -6
  360. package/dist/src/core/contentGenerator.multiProvider.test.js +0 -314
  361. package/dist/src/core/contentGenerator.multiProvider.test.js.map +0 -1
  362. package/dist/src/core/contentGenerator.test.d.ts +0 -6
  363. package/dist/src/core/contentGenerator.test.js +0 -299
  364. package/dist/src/core/contentGenerator.test.js.map +0 -1
  365. package/dist/src/core/contentGenerator_new_types.test.d.ts +0 -6
  366. package/dist/src/core/contentGenerator_new_types.test.js +0 -292
  367. package/dist/src/core/contentGenerator_new_types.test.js.map +0 -1
  368. package/dist/src/core/coreToolHookTriggers.test.d.ts +0 -6
  369. package/dist/src/core/coreToolHookTriggers.test.js +0 -159
  370. package/dist/src/core/coreToolHookTriggers.test.js.map +0 -1
  371. package/dist/src/core/coreToolScheduler.test.d.ts +0 -6
  372. package/dist/src/core/coreToolScheduler.test.js +0 -1684
  373. package/dist/src/core/coreToolScheduler.test.js.map +0 -1
  374. package/dist/src/core/fakeContentGenerator.test.d.ts +0 -6
  375. package/dist/src/core/fakeContentGenerator.test.js +0 -127
  376. package/dist/src/core/fakeContentGenerator.test.js.map +0 -1
  377. package/dist/src/core/geminiChat.test.d.ts +0 -6
  378. package/dist/src/core/geminiChat.test.js +0 -1773
  379. package/dist/src/core/geminiChat.test.js.map +0 -1
  380. package/dist/src/core/geminiChat_network_retry.test.d.ts +0 -6
  381. package/dist/src/core/geminiChat_network_retry.test.js +0 -201
  382. package/dist/src/core/geminiChat_network_retry.test.js.map +0 -1
  383. package/dist/src/core/logger.test.d.ts +0 -6
  384. package/dist/src/core/logger.test.js +0 -550
  385. package/dist/src/core/logger.test.js.map +0 -1
  386. package/dist/src/core/loggingContentGenerator.test.d.ts +0 -6
  387. package/dist/src/core/loggingContentGenerator.test.js +0 -221
  388. package/dist/src/core/loggingContentGenerator.test.js.map +0 -1
  389. package/dist/src/core/prompts-substitution.test.d.ts +0 -6
  390. package/dist/src/core/prompts-substitution.test.js +0 -101
  391. package/dist/src/core/prompts-substitution.test.js.map +0 -1
  392. package/dist/src/core/prompts.test.d.ts +0 -6
  393. package/dist/src/core/prompts.test.js +0 -391
  394. package/dist/src/core/prompts.test.js.map +0 -1
  395. package/dist/src/core/recordingContentGenerator.test.d.ts +0 -6
  396. package/dist/src/core/recordingContentGenerator.test.js +0 -101
  397. package/dist/src/core/recordingContentGenerator.test.js.map +0 -1
  398. package/dist/src/core/tokenLimits.test.d.ts +0 -6
  399. package/dist/src/core/tokenLimits.test.js +0 -30
  400. package/dist/src/core/tokenLimits.test.js.map +0 -1
  401. package/dist/src/core/turn.test.d.ts +0 -6
  402. package/dist/src/core/turn.test.js +0 -739
  403. package/dist/src/core/turn.test.js.map +0 -1
  404. package/dist/src/fallback/handler.test.d.ts +0 -6
  405. package/dist/src/fallback/handler.test.js +0 -242
  406. package/dist/src/fallback/handler.test.js.map +0 -1
  407. package/dist/src/hooks/hookAggregator.test.d.ts +0 -6
  408. package/dist/src/hooks/hookAggregator.test.js +0 -387
  409. package/dist/src/hooks/hookAggregator.test.js.map +0 -1
  410. package/dist/src/hooks/hookEventHandler.test.d.ts +0 -6
  411. package/dist/src/hooks/hookEventHandler.test.js +0 -603
  412. package/dist/src/hooks/hookEventHandler.test.js.map +0 -1
  413. package/dist/src/hooks/hookPlanner.test.d.ts +0 -6
  414. package/dist/src/hooks/hookPlanner.test.js +0 -315
  415. package/dist/src/hooks/hookPlanner.test.js.map +0 -1
  416. package/dist/src/hooks/hookRegistry.test.d.ts +0 -6
  417. package/dist/src/hooks/hookRegistry.test.js +0 -529
  418. package/dist/src/hooks/hookRegistry.test.js.map +0 -1
  419. package/dist/src/hooks/hookRunner.test.d.ts +0 -6
  420. package/dist/src/hooks/hookRunner.test.js +0 -606
  421. package/dist/src/hooks/hookRunner.test.js.map +0 -1
  422. package/dist/src/hooks/hookSystem.test.d.ts +0 -6
  423. package/dist/src/hooks/hookSystem.test.js +0 -330
  424. package/dist/src/hooks/hookSystem.test.js.map +0 -1
  425. package/dist/src/hooks/hookSystem_new_types.test.d.ts +0 -6
  426. package/dist/src/hooks/hookSystem_new_types.test.js +0 -243
  427. package/dist/src/hooks/hookSystem_new_types.test.js.map +0 -1
  428. package/dist/src/hooks/hookTranslator.test.d.ts +0 -6
  429. package/dist/src/hooks/hookTranslator.test.js +0 -192
  430. package/dist/src/hooks/hookTranslator.test.js.map +0 -1
  431. package/dist/src/hooks/trustedHooks.test.d.ts +0 -6
  432. package/dist/src/hooks/trustedHooks.test.js +0 -154
  433. package/dist/src/hooks/trustedHooks.test.js.map +0 -1
  434. package/dist/src/hooks/types.test.d.ts +0 -6
  435. package/dist/src/hooks/types.test.js +0 -278
  436. package/dist/src/hooks/types.test.js.map +0 -1
  437. package/dist/src/ide/detect-ide.test.d.ts +0 -6
  438. package/dist/src/ide/detect-ide.test.js +0 -195
  439. package/dist/src/ide/detect-ide.test.js.map +0 -1
  440. package/dist/src/ide/ide-client.test.d.ts +0 -6
  441. package/dist/src/ide/ide-client.test.js +0 -753
  442. package/dist/src/ide/ide-client.test.js.map +0 -1
  443. package/dist/src/ide/ide-installer.test.d.ts +0 -6
  444. package/dist/src/ide/ide-installer.test.js +0 -193
  445. package/dist/src/ide/ide-installer.test.js.map +0 -1
  446. package/dist/src/ide/ideContext.test.d.ts +0 -6
  447. package/dist/src/ide/ideContext.test.js +0 -393
  448. package/dist/src/ide/ideContext.test.js.map +0 -1
  449. package/dist/src/ide/process-utils.test.d.ts +0 -6
  450. package/dist/src/ide/process-utils.test.js +0 -151
  451. package/dist/src/ide/process-utils.test.js.map +0 -1
  452. package/dist/src/index.test.d.ts +0 -6
  453. package/dist/src/index.test.js +0 -53
  454. package/dist/src/index.test.js.map +0 -1
  455. package/dist/src/mcp/google-auth-provider.test.d.ts +0 -6
  456. package/dist/src/mcp/google-auth-provider.test.js +0 -167
  457. package/dist/src/mcp/google-auth-provider.test.js.map +0 -1
  458. package/dist/src/mcp/oauth-provider.test.d.ts +0 -6
  459. package/dist/src/mcp/oauth-provider.test.js +0 -1355
  460. package/dist/src/mcp/oauth-provider.test.js.map +0 -1
  461. package/dist/src/mcp/oauth-token-storage.test.d.ts +0 -6
  462. package/dist/src/mcp/oauth-token-storage.test.js +0 -305
  463. package/dist/src/mcp/oauth-token-storage.test.js.map +0 -1
  464. package/dist/src/mcp/oauth-utils.test.d.ts +0 -6
  465. package/dist/src/mcp/oauth-utils.test.js +0 -289
  466. package/dist/src/mcp/oauth-utils.test.js.map +0 -1
  467. package/dist/src/mcp/sa-impersonation-provider.test.d.ts +0 -6
  468. package/dist/src/mcp/sa-impersonation-provider.test.js +0 -117
  469. package/dist/src/mcp/sa-impersonation-provider.test.js.map +0 -1
  470. package/dist/src/mcp/token-storage/base-token-storage.test.d.ts +0 -6
  471. package/dist/src/mcp/token-storage/base-token-storage.test.js +0 -151
  472. package/dist/src/mcp/token-storage/base-token-storage.test.js.map +0 -1
  473. package/dist/src/mcp/token-storage/file-token-storage.test.d.ts +0 -6
  474. package/dist/src/mcp/token-storage/file-token-storage.test.js +0 -238
  475. package/dist/src/mcp/token-storage/file-token-storage.test.js.map +0 -1
  476. package/dist/src/mcp/token-storage/hybrid-token-storage.test.d.ts +0 -6
  477. package/dist/src/mcp/token-storage/hybrid-token-storage.test.js +0 -193
  478. package/dist/src/mcp/token-storage/hybrid-token-storage.test.js.map +0 -1
  479. package/dist/src/mcp/token-storage/keychain-token-storage.test.d.ts +0 -6
  480. package/dist/src/mcp/token-storage/keychain-token-storage.test.js +0 -305
  481. package/dist/src/mcp/token-storage/keychain-token-storage.test.js.map +0 -1
  482. package/dist/src/output/json-formatter.test.d.ts +0 -6
  483. package/dist/src/output/json-formatter.test.js +0 -294
  484. package/dist/src/output/json-formatter.test.js.map +0 -1
  485. package/dist/src/output/stream-json-formatter.test.d.ts +0 -6
  486. package/dist/src/output/stream-json-formatter.test.js +0 -477
  487. package/dist/src/output/stream-json-formatter.test.js.map +0 -1
  488. package/dist/src/policy/config.test.d.ts +0 -6
  489. package/dist/src/policy/config.test.js +0 -598
  490. package/dist/src/policy/config.test.js.map +0 -1
  491. package/dist/src/policy/persistence.test.d.ts +0 -6
  492. package/dist/src/policy/persistence.test.js +0 -154
  493. package/dist/src/policy/persistence.test.js.map +0 -1
  494. package/dist/src/policy/policy-engine.test.d.ts +0 -6
  495. package/dist/src/policy/policy-engine.test.js +0 -1299
  496. package/dist/src/policy/policy-engine.test.js.map +0 -1
  497. package/dist/src/policy/policy-updater.test.d.ts +0 -6
  498. package/dist/src/policy/policy-updater.test.js +0 -116
  499. package/dist/src/policy/policy-updater.test.js.map +0 -1
  500. package/dist/src/policy/shell-safety.test.d.ts +0 -6
  501. package/dist/src/policy/shell-safety.test.js +0 -438
  502. package/dist/src/policy/shell-safety.test.js.map +0 -1
  503. package/dist/src/policy/toml-loader.test.d.ts +0 -6
  504. package/dist/src/policy/toml-loader.test.js +0 -409
  505. package/dist/src/policy/toml-loader.test.js.map +0 -1
  506. package/dist/src/policy/utils.test.d.ts +0 -6
  507. package/dist/src/policy/utils.test.js +0 -92
  508. package/dist/src/policy/utils.test.js.map +0 -1
  509. package/dist/src/prompts/mcp-prompts.test.d.ts +0 -6
  510. package/dist/src/prompts/mcp-prompts.test.js +0 -39
  511. package/dist/src/prompts/mcp-prompts.test.js.map +0 -1
  512. package/dist/src/prompts/prompt-registry.test.d.ts +0 -6
  513. package/dist/src/prompts/prompt-registry.test.js +0 -96
  514. package/dist/src/prompts/prompt-registry.test.js.map +0 -1
  515. package/dist/src/providers/__tests__/bundleSize.test.d.ts +0 -6
  516. package/dist/src/providers/__tests__/bundleSize.test.js +0 -75
  517. package/dist/src/providers/__tests__/bundleSize.test.js.map +0 -1
  518. package/dist/src/providers/__tests__/errorHandling.integration.test.d.ts +0 -6
  519. package/dist/src/providers/__tests__/errorHandling.integration.test.js +0 -339
  520. package/dist/src/providers/__tests__/errorHandling.integration.test.js.map +0 -1
  521. package/dist/src/providers/__tests__/multiProvider.integration.test.d.ts +0 -6
  522. package/dist/src/providers/__tests__/multiProvider.integration.test.js +0 -419
  523. package/dist/src/providers/__tests__/multiProvider.integration.test.js.map +0 -1
  524. package/dist/src/providers/__tests__/performance.test.d.ts +0 -6
  525. package/dist/src/providers/__tests__/performance.test.js +0 -270
  526. package/dist/src/providers/__tests__/performance.test.js.map +0 -1
  527. package/dist/src/providers/__tests__/providerConfigIntegration.test.d.ts +0 -6
  528. package/dist/src/providers/__tests__/providerConfigIntegration.test.js +0 -245
  529. package/dist/src/providers/__tests__/providerConfigIntegration.test.js.map +0 -1
  530. package/dist/src/providers/baseAdapter.test.d.ts +0 -1
  531. package/dist/src/providers/baseAdapter.test.js +0 -142
  532. package/dist/src/providers/baseAdapter.test.js.map +0 -1
  533. package/dist/src/providers/claude/adapter.test.d.ts +0 -6
  534. package/dist/src/providers/claude/adapter.test.js +0 -628
  535. package/dist/src/providers/claude/adapter.test.js.map +0 -1
  536. package/dist/src/providers/claude/bootstrap.test.d.ts +0 -6
  537. package/dist/src/providers/claude/bootstrap.test.js +0 -74
  538. package/dist/src/providers/claude/bootstrap.test.js.map +0 -1
  539. package/dist/src/providers/claude/converter.test.d.ts +0 -6
  540. package/dist/src/providers/claude/converter.test.js +0 -1002
  541. package/dist/src/providers/claude/converter.test.js.map +0 -1
  542. package/dist/src/providers/claude/exports.test.d.ts +0 -6
  543. package/dist/src/providers/claude/exports.test.js +0 -40
  544. package/dist/src/providers/claude/exports.test.js.map +0 -1
  545. package/dist/src/providers/configAdapter.test.d.ts +0 -1
  546. package/dist/src/providers/configAdapter.test.js +0 -150
  547. package/dist/src/providers/configAdapter.test.js.map +0 -1
  548. package/dist/src/providers/contentResolver.test.d.ts +0 -1
  549. package/dist/src/providers/contentResolver.test.js +0 -89
  550. package/dist/src/providers/contentResolver.test.js.map +0 -1
  551. package/dist/src/providers/factory.test.d.ts +0 -1
  552. package/dist/src/providers/factory.test.js +0 -151
  553. package/dist/src/providers/factory.test.js.map +0 -1
  554. package/dist/src/providers/gemini/adapterBridge.test.d.ts +0 -6
  555. package/dist/src/providers/gemini/adapterBridge.test.js +0 -164
  556. package/dist/src/providers/gemini/adapterBridge.test.js.map +0 -1
  557. package/dist/src/providers/gemini/bootstrap.test.d.ts +0 -6
  558. package/dist/src/providers/gemini/bootstrap.test.js +0 -72
  559. package/dist/src/providers/gemini/bootstrap.test.js.map +0 -1
  560. package/dist/src/providers/gemini/configConverter.test.d.ts +0 -6
  561. package/dist/src/providers/gemini/configConverter.test.js +0 -218
  562. package/dist/src/providers/gemini/configConverter.test.js.map +0 -1
  563. package/dist/src/providers/gemini/errorClassifier.test.d.ts +0 -6
  564. package/dist/src/providers/gemini/errorClassifier.test.js +0 -83
  565. package/dist/src/providers/gemini/errorClassifier.test.js.map +0 -1
  566. package/dist/src/providers/gemini/eventMapper.test.d.ts +0 -6
  567. package/dist/src/providers/gemini/eventMapper.test.js +0 -502
  568. package/dist/src/providers/gemini/eventMapper.test.js.map +0 -1
  569. package/dist/src/providers/gemini/exports.test.d.ts +0 -6
  570. package/dist/src/providers/gemini/exports.test.js +0 -90
  571. package/dist/src/providers/gemini/exports.test.js.map +0 -1
  572. package/dist/src/providers/gemini/featureFlag.test.d.ts +0 -6
  573. package/dist/src/providers/gemini/featureFlag.test.js +0 -139
  574. package/dist/src/providers/gemini/featureFlag.test.js.map +0 -1
  575. package/dist/src/providers/gemini/geminiAdapter.test.d.ts +0 -6
  576. package/dist/src/providers/gemini/geminiAdapter.test.js +0 -279
  577. package/dist/src/providers/gemini/geminiAdapter.test.js.map +0 -1
  578. package/dist/src/providers/gemini/geminiConverter.test.d.ts +0 -6
  579. package/dist/src/providers/gemini/geminiConverter.test.js +0 -474
  580. package/dist/src/providers/gemini/geminiConverter.test.js.map +0 -1
  581. package/dist/src/providers/gemini/geminiParity.test.d.ts +0 -6
  582. package/dist/src/providers/gemini/geminiParity.test.js +0 -754
  583. package/dist/src/providers/gemini/geminiParity.test.js.map +0 -1
  584. package/dist/src/providers/gemini/geminiStream.test.d.ts +0 -6
  585. package/dist/src/providers/gemini/geminiStream.test.js +0 -391
  586. package/dist/src/providers/gemini/geminiStream.test.js.map +0 -1
  587. package/dist/src/providers/gemini/historyBuilder.test.d.ts +0 -6
  588. package/dist/src/providers/gemini/historyBuilder.test.js +0 -207
  589. package/dist/src/providers/gemini/historyBuilder.test.js.map +0 -1
  590. package/dist/src/providers/gemini/requestBuilder.test.d.ts +0 -6
  591. package/dist/src/providers/gemini/requestBuilder.test.js +0 -358
  592. package/dist/src/providers/gemini/requestBuilder.test.js.map +0 -1
  593. package/dist/src/providers/gemini/streamConverter.test.d.ts +0 -6
  594. package/dist/src/providers/gemini/streamConverter.test.js +0 -131
  595. package/dist/src/providers/gemini/streamConverter.test.js.map +0 -1
  596. package/dist/src/providers/modelSpec.test.d.ts +0 -1
  597. package/dist/src/providers/modelSpec.test.js +0 -119
  598. package/dist/src/providers/modelSpec.test.js.map +0 -1
  599. package/dist/src/providers/openai/adapter.test.d.ts +0 -6
  600. package/dist/src/providers/openai/adapter.test.js +0 -274
  601. package/dist/src/providers/openai/adapter.test.js.map +0 -1
  602. package/dist/src/providers/openai/bootstrap.test.d.ts +0 -6
  603. package/dist/src/providers/openai/bootstrap.test.js +0 -76
  604. package/dist/src/providers/openai/bootstrap.test.js.map +0 -1
  605. package/dist/src/providers/openai/converter.test.d.ts +0 -6
  606. package/dist/src/providers/openai/converter.test.js +0 -1133
  607. package/dist/src/providers/openai/converter.test.js.map +0 -1
  608. package/dist/src/providers/openai-compatible/__tests__/compatibility.test.d.ts +0 -6
  609. package/dist/src/providers/openai-compatible/__tests__/compatibility.test.js +0 -356
  610. package/dist/src/providers/openai-compatible/__tests__/compatibility.test.js.map +0 -1
  611. package/dist/src/providers/openai-compatible/adapter.test.d.ts +0 -6
  612. package/dist/src/providers/openai-compatible/adapter.test.js +0 -240
  613. package/dist/src/providers/openai-compatible/adapter.test.js.map +0 -1
  614. package/dist/src/providers/openai-compatible/bootstrap.test.d.ts +0 -6
  615. package/dist/src/providers/openai-compatible/bootstrap.test.js +0 -145
  616. package/dist/src/providers/openai-compatible/bootstrap.test.js.map +0 -1
  617. package/dist/src/providers/openai-compatible/promptBuilder.test.d.ts +0 -6
  618. package/dist/src/providers/openai-compatible/promptBuilder.test.js +0 -154
  619. package/dist/src/providers/openai-compatible/promptBuilder.test.js.map +0 -1
  620. package/dist/src/providers/providerConfig.test.d.ts +0 -1
  621. package/dist/src/providers/providerConfig.test.js +0 -145
  622. package/dist/src/providers/providerConfig.test.js.map +0 -1
  623. package/dist/src/providers/providerConfigIntegration.test.d.ts +0 -6
  624. package/dist/src/providers/providerConfigIntegration.test.js +0 -187
  625. package/dist/src/providers/providerConfigIntegration.test.js.map +0 -1
  626. package/dist/src/providers/providerSelector.test.d.ts +0 -1
  627. package/dist/src/providers/providerSelector.test.js +0 -199
  628. package/dist/src/providers/providerSelector.test.js.map +0 -1
  629. package/dist/src/providers/providerTypes.test.d.ts +0 -1
  630. package/dist/src/providers/providerTypes.test.js +0 -95
  631. package/dist/src/providers/providerTypes.test.js.map +0 -1
  632. package/dist/src/providers/registry.test.d.ts +0 -1
  633. package/dist/src/providers/registry.test.js +0 -207
  634. package/dist/src/providers/registry.test.js.map +0 -1
  635. package/dist/src/providers/streamAssembler.test.d.ts +0 -1
  636. package/dist/src/providers/streamAssembler.test.js +0 -247
  637. package/dist/src/providers/streamAssembler.test.js.map +0 -1
  638. package/dist/src/providers/telemetryBridge.test.d.ts +0 -6
  639. package/dist/src/providers/telemetryBridge.test.js +0 -235
  640. package/dist/src/providers/telemetryBridge.test.js.map +0 -1
  641. package/dist/src/providers/types.test.d.ts +0 -6
  642. package/dist/src/providers/types.test.js +0 -253
  643. package/dist/src/providers/types.test.js.map +0 -1
  644. package/dist/src/resources/resource-registry.test.d.ts +0 -6
  645. package/dist/src/resources/resource-registry.test.js +0 -54
  646. package/dist/src/resources/resource-registry.test.js.map +0 -1
  647. package/dist/src/routing/modelRouterService.test.d.ts +0 -6
  648. package/dist/src/routing/modelRouterService.test.js +0 -106
  649. package/dist/src/routing/modelRouterService.test.js.map +0 -1
  650. package/dist/src/routing/strategies/classifierStrategy.test.d.ts +0 -6
  651. package/dist/src/routing/strategies/classifierStrategy.test.js +0 -249
  652. package/dist/src/routing/strategies/classifierStrategy.test.js.map +0 -1
  653. package/dist/src/routing/strategies/compositeStrategy.test.d.ts +0 -6
  654. package/dist/src/routing/strategies/compositeStrategy.test.js +0 -124
  655. package/dist/src/routing/strategies/compositeStrategy.test.js.map +0 -1
  656. package/dist/src/routing/strategies/defaultStrategy.test.d.ts +0 -6
  657. package/dist/src/routing/strategies/defaultStrategy.test.js +0 -102
  658. package/dist/src/routing/strategies/defaultStrategy.test.js.map +0 -1
  659. package/dist/src/routing/strategies/fallbackStrategy.test.d.ts +0 -6
  660. package/dist/src/routing/strategies/fallbackStrategy.test.js +0 -96
  661. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +0 -1
  662. package/dist/src/routing/strategies/numericalClassifierStrategy.test.d.ts +0 -6
  663. package/dist/src/routing/strategies/numericalClassifierStrategy.test.js +0 -367
  664. package/dist/src/routing/strategies/numericalClassifierStrategy.test.js.map +0 -1
  665. package/dist/src/routing/strategies/overrideStrategy.test.d.ts +0 -6
  666. package/dist/src/routing/strategies/overrideStrategy.test.js +0 -59
  667. package/dist/src/routing/strategies/overrideStrategy.test.js.map +0 -1
  668. package/dist/src/safety/built-in.test.d.ts +0 -6
  669. package/dist/src/safety/built-in.test.js +0 -199
  670. package/dist/src/safety/built-in.test.js.map +0 -1
  671. package/dist/src/safety/checker-runner.test.d.ts +0 -6
  672. package/dist/src/safety/checker-runner.test.js +0 -238
  673. package/dist/src/safety/checker-runner.test.js.map +0 -1
  674. package/dist/src/safety/context-builder.test.d.ts +0 -6
  675. package/dist/src/safety/context-builder.test.js +0 -49
  676. package/dist/src/safety/context-builder.test.js.map +0 -1
  677. package/dist/src/safety/registry.test.d.ts +0 -6
  678. package/dist/src/safety/registry.test.js +0 -31
  679. package/dist/src/safety/registry.test.js.map +0 -1
  680. package/dist/src/scheduler/confirmation.test.d.ts +0 -6
  681. package/dist/src/scheduler/confirmation.test.js +0 -325
  682. package/dist/src/scheduler/confirmation.test.js.map +0 -1
  683. package/dist/src/scheduler/policy.test.d.ts +0 -6
  684. package/dist/src/scheduler/policy.test.js +0 -299
  685. package/dist/src/scheduler/policy.test.js.map +0 -1
  686. package/dist/src/scheduler/scheduler.test.d.ts +0 -6
  687. package/dist/src/scheduler/scheduler.test.js +0 -822
  688. package/dist/src/scheduler/scheduler.test.js.map +0 -1
  689. package/dist/src/scheduler/state-manager.test.d.ts +0 -6
  690. package/dist/src/scheduler/state-manager.test.js +0 -429
  691. package/dist/src/scheduler/state-manager.test.js.map +0 -1
  692. package/dist/src/scheduler/tool-executor.test.d.ts +0 -6
  693. package/dist/src/scheduler/tool-executor.test.js +0 -232
  694. package/dist/src/scheduler/tool-executor.test.js.map +0 -1
  695. package/dist/src/scheduler/tool-modifier.test.d.ts +0 -6
  696. package/dist/src/scheduler/tool-modifier.test.js +0 -159
  697. package/dist/src/scheduler/tool-modifier.test.js.map +0 -1
  698. package/dist/src/services/chatCompressionService.test.d.ts +0 -6
  699. package/dist/src/services/chatCompressionService.test.js +0 -573
  700. package/dist/src/services/chatCompressionService.test.js.map +0 -1
  701. package/dist/src/services/chatRecordingService.test.d.ts +0 -6
  702. package/dist/src/services/chatRecordingService.test.js +0 -486
  703. package/dist/src/services/chatRecordingService.test.js.map +0 -1
  704. package/dist/src/services/contextManager.test.d.ts +0 -6
  705. package/dist/src/services/contextManager.test.js +0 -104
  706. package/dist/src/services/contextManager.test.js.map +0 -1
  707. package/dist/src/services/environmentSanitization.test.d.ts +0 -6
  708. package/dist/src/services/environmentSanitization.test.js +0 -284
  709. package/dist/src/services/environmentSanitization.test.js.map +0 -1
  710. package/dist/src/services/fileDiscoveryService.test.d.ts +0 -6
  711. package/dist/src/services/fileDiscoveryService.test.js +0 -223
  712. package/dist/src/services/fileDiscoveryService.test.js.map +0 -1
  713. package/dist/src/services/fileSystemService.test.d.ts +0 -6
  714. package/dist/src/services/fileSystemService.test.js +0 -41
  715. package/dist/src/services/fileSystemService.test.js.map +0 -1
  716. package/dist/src/services/gitService.test.d.ts +0 -6
  717. package/dist/src/services/gitService.test.js +0 -264
  718. package/dist/src/services/gitService.test.js.map +0 -1
  719. package/dist/src/services/loopDetectionService.test.d.ts +0 -6
  720. package/dist/src/services/loopDetectionService.test.js +0 -881
  721. package/dist/src/services/loopDetectionService.test.js.map +0 -1
  722. package/dist/src/services/modelConfig.golden.test.d.ts +0 -6
  723. package/dist/src/services/modelConfig.golden.test.js +0 -74
  724. package/dist/src/services/modelConfig.golden.test.js.map +0 -1
  725. package/dist/src/services/modelConfig.integration.test.d.ts +0 -6
  726. package/dist/src/services/modelConfig.integration.test.js +0 -247
  727. package/dist/src/services/modelConfig.integration.test.js.map +0 -1
  728. package/dist/src/services/modelConfigBridge.test.d.ts +0 -6
  729. package/dist/src/services/modelConfigBridge.test.js +0 -410
  730. package/dist/src/services/modelConfigBridge.test.js.map +0 -1
  731. package/dist/src/services/modelConfigService.test.d.ts +0 -6
  732. package/dist/src/services/modelConfigService.test.js +0 -868
  733. package/dist/src/services/modelConfigService.test.js.map +0 -1
  734. package/dist/src/services/sessionSummaryService.test.d.ts +0 -6
  735. package/dist/src/services/sessionSummaryService.test.js +0 -785
  736. package/dist/src/services/sessionSummaryService.test.js.map +0 -1
  737. package/dist/src/services/sessionSummaryUtils.test.d.ts +0 -6
  738. package/dist/src/services/sessionSummaryUtils.test.js +0 -160
  739. package/dist/src/services/sessionSummaryUtils.test.js.map +0 -1
  740. package/dist/src/services/shellExecutionService.test.d.ts +0 -6
  741. package/dist/src/services/shellExecutionService.test.js +0 -1080
  742. package/dist/src/services/shellExecutionService.test.js.map +0 -1
  743. package/dist/src/skills/skillLoader.test.d.ts +0 -6
  744. package/dist/src/skills/skillLoader.test.js +0 -185
  745. package/dist/src/skills/skillLoader.test.js.map +0 -1
  746. package/dist/src/skills/skillManager.test.d.ts +0 -6
  747. package/dist/src/skills/skillManager.test.js +0 -297
  748. package/dist/src/skills/skillManager.test.js.map +0 -1
  749. package/dist/src/telemetry/activity-detector.test.d.ts +0 -6
  750. package/dist/src/telemetry/activity-detector.test.js +0 -136
  751. package/dist/src/telemetry/activity-detector.test.js.map +0 -1
  752. package/dist/src/telemetry/activity-monitor.test.d.ts +0 -6
  753. package/dist/src/telemetry/activity-monitor.test.js +0 -251
  754. package/dist/src/telemetry/activity-monitor.test.js.map +0 -1
  755. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +0 -19
  756. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +0 -964
  757. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +0 -1
  758. package/dist/src/telemetry/config.test.d.ts +0 -6
  759. package/dist/src/telemetry/config.test.js +0 -149
  760. package/dist/src/telemetry/config.test.js.map +0 -1
  761. package/dist/src/telemetry/gcp-exporters.test.d.ts +0 -6
  762. package/dist/src/telemetry/gcp-exporters.test.js +0 -318
  763. package/dist/src/telemetry/gcp-exporters.test.js.map +0 -1
  764. package/dist/src/telemetry/high-water-mark-tracker.test.d.ts +0 -6
  765. package/dist/src/telemetry/high-water-mark-tracker.test.js +0 -152
  766. package/dist/src/telemetry/high-water-mark-tracker.test.js.map +0 -1
  767. package/dist/src/telemetry/integration.test.circular.d.ts +0 -6
  768. package/dist/src/telemetry/integration.test.circular.js +0 -54
  769. package/dist/src/telemetry/integration.test.circular.js.map +0 -1
  770. package/dist/src/telemetry/loggers.test.circular.d.ts +0 -6
  771. package/dist/src/telemetry/loggers.test.circular.js +0 -107
  772. package/dist/src/telemetry/loggers.test.circular.js.map +0 -1
  773. package/dist/src/telemetry/loggers.test.d.ts +0 -6
  774. package/dist/src/telemetry/loggers.test.js +0 -1618
  775. package/dist/src/telemetry/loggers.test.js.map +0 -1
  776. package/dist/src/telemetry/memory-monitor.test.d.ts +0 -6
  777. package/dist/src/telemetry/memory-monitor.test.js +0 -472
  778. package/dist/src/telemetry/memory-monitor.test.js.map +0 -1
  779. package/dist/src/telemetry/metrics.test.d.ts +0 -6
  780. package/dist/src/telemetry/metrics.test.js +0 -1176
  781. package/dist/src/telemetry/metrics.test.js.map +0 -1
  782. package/dist/src/telemetry/rate-limiter.test.d.ts +0 -6
  783. package/dist/src/telemetry/rate-limiter.test.js +0 -207
  784. package/dist/src/telemetry/rate-limiter.test.js.map +0 -1
  785. package/dist/src/telemetry/sanitize.test.d.ts +0 -6
  786. package/dist/src/telemetry/sanitize.test.js +0 -279
  787. package/dist/src/telemetry/sanitize.test.js.map +0 -1
  788. package/dist/src/telemetry/sdk.test.d.ts +0 -6
  789. package/dist/src/telemetry/sdk.test.js +0 -360
  790. package/dist/src/telemetry/sdk.test.js.map +0 -1
  791. package/dist/src/telemetry/semantic.test.d.ts +0 -6
  792. package/dist/src/telemetry/semantic.test.js +0 -387
  793. package/dist/src/telemetry/semantic.test.js.map +0 -1
  794. package/dist/src/telemetry/semantic.truncation.test.d.ts +0 -1
  795. package/dist/src/telemetry/semantic.truncation.test.js +0 -92
  796. package/dist/src/telemetry/semantic.truncation.test.js.map +0 -1
  797. package/dist/src/telemetry/startupProfiler.test.d.ts +0 -6
  798. package/dist/src/telemetry/startupProfiler.test.js +0 -285
  799. package/dist/src/telemetry/startupProfiler.test.js.map +0 -1
  800. package/dist/src/telemetry/telemetry-utils.test.d.ts +0 -6
  801. package/dist/src/telemetry/telemetry-utils.test.js +0 -41
  802. package/dist/src/telemetry/telemetry-utils.test.js.map +0 -1
  803. package/dist/src/telemetry/telemetry.test.d.ts +0 -6
  804. package/dist/src/telemetry/telemetry.test.js +0 -57
  805. package/dist/src/telemetry/telemetry.test.js.map +0 -1
  806. package/dist/src/telemetry/uiTelemetry.test.d.ts +0 -6
  807. package/dist/src/telemetry/uiTelemetry.test.js +0 -584
  808. package/dist/src/telemetry/uiTelemetry.test.js.map +0 -1
  809. package/dist/src/tools/activate-skill.test.d.ts +0 -6
  810. package/dist/src/tools/activate-skill.test.js +0 -113
  811. package/dist/src/tools/activate-skill.test.js.map +0 -1
  812. package/dist/src/tools/ask-user.test.d.ts +0 -6
  813. package/dist/src/tools/ask-user.test.js +0 -187
  814. package/dist/src/tools/ask-user.test.js.map +0 -1
  815. package/dist/src/tools/base-tool-invocation.test.d.ts +0 -6
  816. package/dist/src/tools/base-tool-invocation.test.js +0 -85
  817. package/dist/src/tools/base-tool-invocation.test.js.map +0 -1
  818. package/dist/src/tools/confirmation-policy.test.d.ts +0 -6
  819. package/dist/src/tools/confirmation-policy.test.js +0 -143
  820. package/dist/src/tools/confirmation-policy.test.js.map +0 -1
  821. package/dist/src/tools/diffOptions.test.d.ts +0 -6
  822. package/dist/src/tools/diffOptions.test.js +0 -172
  823. package/dist/src/tools/diffOptions.test.js.map +0 -1
  824. package/dist/src/tools/edit.test.d.ts +0 -6
  825. package/dist/src/tools/edit.test.js +0 -729
  826. package/dist/src/tools/edit.test.js.map +0 -1
  827. package/dist/src/tools/get-internal-docs.test.d.ts +0 -6
  828. package/dist/src/tools/get-internal-docs.test.js +0 -57
  829. package/dist/src/tools/get-internal-docs.test.js.map +0 -1
  830. package/dist/src/tools/glob.test.d.ts +0 -6
  831. package/dist/src/tools/glob.test.js +0 -433
  832. package/dist/src/tools/glob.test.js.map +0 -1
  833. package/dist/src/tools/grep.test.d.ts +0 -6
  834. package/dist/src/tools/grep.test.js +0 -328
  835. package/dist/src/tools/grep.test.js.map +0 -1
  836. package/dist/src/tools/ls.test.d.ts +0 -6
  837. package/dist/src/tools/ls.test.js +0 -242
  838. package/dist/src/tools/ls.test.js.map +0 -1
  839. package/dist/src/tools/mcp-client-manager.test.d.ts +0 -6
  840. package/dist/src/tools/mcp-client-manager.test.js +0 -251
  841. package/dist/src/tools/mcp-client-manager.test.js.map +0 -1
  842. package/dist/src/tools/mcp-client.test.d.ts +0 -6
  843. package/dist/src/tools/mcp-client.test.js +0 -1346
  844. package/dist/src/tools/mcp-client.test.js.map +0 -1
  845. package/dist/src/tools/mcp-tool.test.d.ts +0 -6
  846. package/dist/src/tools/mcp-tool.test.js +0 -657
  847. package/dist/src/tools/mcp-tool.test.js.map +0 -1
  848. package/dist/src/tools/memoryTool.test.d.ts +0 -6
  849. package/dist/src/tools/memoryTool.test.js +0 -302
  850. package/dist/src/tools/memoryTool.test.js.map +0 -1
  851. package/dist/src/tools/message-bus-integration.test.d.ts +0 -6
  852. package/dist/src/tools/message-bus-integration.test.js +0 -169
  853. package/dist/src/tools/message-bus-integration.test.js.map +0 -1
  854. package/dist/src/tools/modifiable-tool.test.d.ts +0 -6
  855. package/dist/src/tools/modifiable-tool.test.js +0 -237
  856. package/dist/src/tools/modifiable-tool.test.js.map +0 -1
  857. package/dist/src/tools/read-file.test.d.ts +0 -6
  858. package/dist/src/tools/read-file.test.js +0 -376
  859. package/dist/src/tools/read-file.test.js.map +0 -1
  860. package/dist/src/tools/read-many-files.test.d.ts +0 -6
  861. package/dist/src/tools/read-many-files.test.js +0 -567
  862. package/dist/src/tools/read-many-files.test.js.map +0 -1
  863. package/dist/src/tools/ripGrep.test.d.ts +0 -6
  864. package/dist/src/tools/ripGrep.test.js +0 -1139
  865. package/dist/src/tools/ripGrep.test.js.map +0 -1
  866. package/dist/src/tools/shell.test.d.ts +0 -6
  867. package/dist/src/tools/shell.test.js +0 -526
  868. package/dist/src/tools/shell.test.js.map +0 -1
  869. package/dist/src/tools/tool-names.test.d.ts +0 -6
  870. package/dist/src/tools/tool-names.test.js +0 -43
  871. package/dist/src/tools/tool-names.test.js.map +0 -1
  872. package/dist/src/tools/tool-registry.test.d.ts +0 -6
  873. package/dist/src/tools/tool-registry.test.js +0 -461
  874. package/dist/src/tools/tool-registry.test.js.map +0 -1
  875. package/dist/src/tools/tools.test.d.ts +0 -6
  876. package/dist/src/tools/tools.test.js +0 -207
  877. package/dist/src/tools/tools.test.js.map +0 -1
  878. package/dist/src/tools/web-fetch.test.d.ts +0 -6
  879. package/dist/src/tools/web-fetch.test.js +0 -442
  880. package/dist/src/tools/web-fetch.test.js.map +0 -1
  881. package/dist/src/tools/web-search.test.d.ts +0 -6
  882. package/dist/src/tools/web-search.test.js +0 -214
  883. package/dist/src/tools/web-search.test.js.map +0 -1
  884. package/dist/src/tools/write-file.test.d.ts +0 -6
  885. package/dist/src/tools/write-file.test.js +0 -681
  886. package/dist/src/tools/write-file.test.js.map +0 -1
  887. package/dist/src/tools/write-todos.test.d.ts +0 -6
  888. package/dist/src/tools/write-todos.test.js +0 -90
  889. package/dist/src/tools/write-todos.test.js.map +0 -1
  890. package/dist/src/utils/apiConversionUtils.test.d.ts +0 -6
  891. package/dist/src/utils/apiConversionUtils.test.js +0 -150
  892. package/dist/src/utils/apiConversionUtils.test.js.map +0 -1
  893. package/dist/src/utils/bfsFileSearch.test.d.ts +0 -6
  894. package/dist/src/utils/bfsFileSearch.test.js +0 -227
  895. package/dist/src/utils/bfsFileSearch.test.js.map +0 -1
  896. package/dist/src/utils/channel.test.d.ts +0 -6
  897. package/dist/src/utils/channel.test.js +0 -170
  898. package/dist/src/utils/channel.test.js.map +0 -1
  899. package/dist/src/utils/checkpointUtils.test.d.ts +0 -6
  900. package/dist/src/utils/checkpointUtils.test.js +0 -229
  901. package/dist/src/utils/checkpointUtils.test.js.map +0 -1
  902. package/dist/src/utils/customHeaderUtils.test.d.ts +0 -6
  903. package/dist/src/utils/customHeaderUtils.test.js +0 -77
  904. package/dist/src/utils/customHeaderUtils.test.js.map +0 -1
  905. package/dist/src/utils/debugLogger.test.d.ts +0 -6
  906. package/dist/src/utils/debugLogger.test.js +0 -69
  907. package/dist/src/utils/debugLogger.test.js.map +0 -1
  908. package/dist/src/utils/delay.test.d.ts +0 -6
  909. package/dist/src/utils/delay.test.js +0 -88
  910. package/dist/src/utils/delay.test.js.map +0 -1
  911. package/dist/src/utils/editCorrector.test.d.ts +0 -6
  912. package/dist/src/utils/editCorrector.test.js +0 -533
  913. package/dist/src/utils/editCorrector.test.js.map +0 -1
  914. package/dist/src/utils/editor.test.d.ts +0 -6
  915. package/dist/src/utils/editor.test.js +0 -429
  916. package/dist/src/utils/editor.test.js.map +0 -1
  917. package/dist/src/utils/environmentContext.test.d.ts +0 -6
  918. package/dist/src/utils/environmentContext.test.js +0 -114
  919. package/dist/src/utils/environmentContext.test.js.map +0 -1
  920. package/dist/src/utils/errorParsing.test.d.ts +0 -6
  921. package/dist/src/utils/errorParsing.test.js +0 -84
  922. package/dist/src/utils/errorParsing.test.js.map +0 -1
  923. package/dist/src/utils/errorReporting.test.d.ts +0 -6
  924. package/dist/src/utils/errorReporting.test.js +0 -133
  925. package/dist/src/utils/errorReporting.test.js.map +0 -1
  926. package/dist/src/utils/errors.test.d.ts +0 -6
  927. package/dist/src/utils/errors.test.js +0 -155
  928. package/dist/src/utils/errors.test.js.map +0 -1
  929. package/dist/src/utils/events.test.d.ts +0 -6
  930. package/dist/src/utils/events.test.js +0 -237
  931. package/dist/src/utils/events.test.js.map +0 -1
  932. package/dist/src/utils/extensionLoader.test.d.ts +0 -6
  933. package/dist/src/utils/extensionLoader.test.js +0 -176
  934. package/dist/src/utils/extensionLoader.test.js.map +0 -1
  935. package/dist/src/utils/fileDiffUtils.test.d.ts +0 -6
  936. package/dist/src/utils/fileDiffUtils.test.js +0 -84
  937. package/dist/src/utils/fileDiffUtils.test.js.map +0 -1
  938. package/dist/src/utils/fileUtils.test.d.ts +0 -6
  939. package/dist/src/utils/fileUtils.test.js +0 -780
  940. package/dist/src/utils/fileUtils.test.js.map +0 -1
  941. package/dist/src/utils/filesearch/crawlCache.test.d.ts +0 -6
  942. package/dist/src/utils/filesearch/crawlCache.test.js +0 -103
  943. package/dist/src/utils/filesearch/crawlCache.test.js.map +0 -1
  944. package/dist/src/utils/filesearch/crawler.test.d.ts +0 -6
  945. package/dist/src/utils/filesearch/crawler.test.js +0 -495
  946. package/dist/src/utils/filesearch/crawler.test.js.map +0 -1
  947. package/dist/src/utils/filesearch/fileSearch.test.d.ts +0 -6
  948. package/dist/src/utils/filesearch/fileSearch.test.js +0 -663
  949. package/dist/src/utils/filesearch/fileSearch.test.js.map +0 -1
  950. package/dist/src/utils/filesearch/ignore.test.d.ts +0 -6
  951. package/dist/src/utils/filesearch/ignore.test.js +0 -144
  952. package/dist/src/utils/filesearch/ignore.test.js.map +0 -1
  953. package/dist/src/utils/filesearch/result-cache.test.d.ts +0 -6
  954. package/dist/src/utils/filesearch/result-cache.test.js +0 -46
  955. package/dist/src/utils/filesearch/result-cache.test.js.map +0 -1
  956. package/dist/src/utils/flashFallback.test.d.ts +0 -6
  957. package/dist/src/utils/flashFallback.test.js +0 -103
  958. package/dist/src/utils/flashFallback.test.js.map +0 -1
  959. package/dist/src/utils/formatters.test.d.ts +0 -6
  960. package/dist/src/utils/formatters.test.js +0 -26
  961. package/dist/src/utils/formatters.test.js.map +0 -1
  962. package/dist/src/utils/geminiIgnoreParser.test.d.ts +0 -6
  963. package/dist/src/utils/geminiIgnoreParser.test.js +0 -98
  964. package/dist/src/utils/geminiIgnoreParser.test.js.map +0 -1
  965. package/dist/src/utils/geminiTypeConversion.test.d.ts +0 -6
  966. package/dist/src/utils/geminiTypeConversion.test.js +0 -310
  967. package/dist/src/utils/geminiTypeConversion.test.js.map +0 -1
  968. package/dist/src/utils/generateContentResponseUtilities.test.d.ts +0 -6
  969. package/dist/src/utils/generateContentResponseUtilities.test.js +0 -512
  970. package/dist/src/utils/generateContentResponseUtilities.test.js.map +0 -1
  971. package/dist/src/utils/getFolderStructure.test.d.ts +0 -6
  972. package/dist/src/utils/getFolderStructure.test.js +0 -283
  973. package/dist/src/utils/getFolderStructure.test.js.map +0 -1
  974. package/dist/src/utils/gitIgnoreParser.test.d.ts +0 -6
  975. package/dist/src/utils/gitIgnoreParser.test.js +0 -243
  976. package/dist/src/utils/gitIgnoreParser.test.js.map +0 -1
  977. package/dist/src/utils/googleErrors.test.d.ts +0 -6
  978. package/dist/src/utils/googleErrors.test.js +0 -309
  979. package/dist/src/utils/googleErrors.test.js.map +0 -1
  980. package/dist/src/utils/googleQuotaErrors.test.d.ts +0 -6
  981. package/dist/src/utils/googleQuotaErrors.test.js +0 -548
  982. package/dist/src/utils/googleQuotaErrors.test.js.map +0 -1
  983. package/dist/src/utils/ignorePatterns.test.d.ts +0 -6
  984. package/dist/src/utils/ignorePatterns.test.js +0 -246
  985. package/dist/src/utils/ignorePatterns.test.js.map +0 -1
  986. package/dist/src/utils/installationManager.test.d.ts +0 -6
  987. package/dist/src/utils/installationManager.test.js +0 -93
  988. package/dist/src/utils/installationManager.test.js.map +0 -1
  989. package/dist/src/utils/llm-edit-fixer.test.d.ts +0 -6
  990. package/dist/src/utils/llm-edit-fixer.test.js +0 -223
  991. package/dist/src/utils/llm-edit-fixer.test.js.map +0 -1
  992. package/dist/src/utils/llmUtils.test.d.ts +0 -6
  993. package/dist/src/utils/llmUtils.test.js +0 -196
  994. package/dist/src/utils/llmUtils.test.js.map +0 -1
  995. package/dist/src/utils/memoryDiscovery.test.d.ts +0 -6
  996. package/dist/src/utils/memoryDiscovery.test.js +0 -542
  997. package/dist/src/utils/memoryDiscovery.test.js.map +0 -1
  998. package/dist/src/utils/memoryImportProcessor.test.d.ts +0 -6
  999. package/dist/src/utils/memoryImportProcessor.test.js +0 -581
  1000. package/dist/src/utils/memoryImportProcessor.test.js.map +0 -1
  1001. package/dist/src/utils/nextSpeakerChecker.test.d.ts +0 -6
  1002. package/dist/src/utils/nextSpeakerChecker.test.js +0 -191
  1003. package/dist/src/utils/nextSpeakerChecker.test.js.map +0 -1
  1004. package/dist/src/utils/partUtils.test.d.ts +0 -6
  1005. package/dist/src/utils/partUtils.test.js +0 -397
  1006. package/dist/src/utils/partUtils.test.js.map +0 -1
  1007. package/dist/src/utils/pathCorrector.test.d.ts +0 -6
  1008. package/dist/src/utils/pathCorrector.test.js +0 -87
  1009. package/dist/src/utils/pathCorrector.test.js.map +0 -1
  1010. package/dist/src/utils/pathReader.test.d.ts +0 -6
  1011. package/dist/src/utils/pathReader.test.js +0 -406
  1012. package/dist/src/utils/pathReader.test.js.map +0 -1
  1013. package/dist/src/utils/paths.test.d.ts +0 -6
  1014. package/dist/src/utils/paths.test.js +0 -402
  1015. package/dist/src/utils/paths.test.js.map +0 -1
  1016. package/dist/src/utils/retry.test.d.ts +0 -6
  1017. package/dist/src/utils/retry.test.js +0 -548
  1018. package/dist/src/utils/retry.test.js.map +0 -1
  1019. package/dist/src/utils/retry_llm_error.test.d.ts +0 -6
  1020. package/dist/src/utils/retry_llm_error.test.js +0 -280
  1021. package/dist/src/utils/retry_llm_error.test.js.map +0 -1
  1022. package/dist/src/utils/safeJsonStringify.test.d.ts +0 -6
  1023. package/dist/src/utils/safeJsonStringify.test.js +0 -61
  1024. package/dist/src/utils/safeJsonStringify.test.js.map +0 -1
  1025. package/dist/src/utils/schemaValidator.test.d.ts +0 -6
  1026. package/dist/src/utils/schemaValidator.test.js +0 -113
  1027. package/dist/src/utils/schemaValidator.test.js.map +0 -1
  1028. package/dist/src/utils/secure-browser-launcher.test.d.ts +0 -6
  1029. package/dist/src/utils/secure-browser-launcher.test.js +0 -149
  1030. package/dist/src/utils/secure-browser-launcher.test.js.map +0 -1
  1031. package/dist/src/utils/security.test.d.ts +0 -1
  1032. package/dist/src/utils/security.test.js +0 -121
  1033. package/dist/src/utils/security.test.js.map +0 -1
  1034. package/dist/src/utils/shell-utils.integration.test.d.ts +0 -1
  1035. package/dist/src/utils/shell-utils.integration.test.js +0 -58
  1036. package/dist/src/utils/shell-utils.integration.test.js.map +0 -1
  1037. package/dist/src/utils/shell-utils.test.d.ts +0 -6
  1038. package/dist/src/utils/shell-utils.test.js +0 -437
  1039. package/dist/src/utils/shell-utils.test.js.map +0 -1
  1040. package/dist/src/utils/stdio.test.d.ts +0 -6
  1041. package/dist/src/utils/stdio.test.js +0 -47
  1042. package/dist/src/utils/stdio.test.js.map +0 -1
  1043. package/dist/src/utils/summarizer.test.d.ts +0 -6
  1044. package/dist/src/utils/summarizer.test.js +0 -152
  1045. package/dist/src/utils/summarizer.test.js.map +0 -1
  1046. package/dist/src/utils/systemEncoding.test.d.ts +0 -6
  1047. package/dist/src/utils/systemEncoding.test.js +0 -369
  1048. package/dist/src/utils/systemEncoding.test.js.map +0 -1
  1049. package/dist/src/utils/terminalSerializer.test.d.ts +0 -6
  1050. package/dist/src/utils/terminalSerializer.test.js +0 -193
  1051. package/dist/src/utils/terminalSerializer.test.js.map +0 -1
  1052. package/dist/src/utils/textUtils.test.d.ts +0 -6
  1053. package/dist/src/utils/textUtils.test.js +0 -76
  1054. package/dist/src/utils/textUtils.test.js.map +0 -1
  1055. package/dist/src/utils/thoughtUtils.test.d.ts +0 -6
  1056. package/dist/src/utils/thoughtUtils.test.js +0 -78
  1057. package/dist/src/utils/thoughtUtils.test.js.map +0 -1
  1058. package/dist/src/utils/tokenCalculation.test.d.ts +0 -6
  1059. package/dist/src/utils/tokenCalculation.test.js +0 -184
  1060. package/dist/src/utils/tokenCalculation.test.js.map +0 -1
  1061. package/dist/src/utils/tool-utils.test.d.ts +0 -6
  1062. package/dist/src/utils/tool-utils.test.js +0 -84
  1063. package/dist/src/utils/tool-utils.test.js.map +0 -1
  1064. package/dist/src/utils/toolCallContext.test.d.ts +0 -6
  1065. package/dist/src/utils/toolCallContext.test.js +0 -68
  1066. package/dist/src/utils/toolCallContext.test.js.map +0 -1
  1067. package/dist/src/utils/userAccountManager.test.d.ts +0 -6
  1068. package/dist/src/utils/userAccountManager.test.js +0 -225
  1069. package/dist/src/utils/userAccountManager.test.js.map +0 -1
  1070. package/dist/src/utils/version.test.d.ts +0 -6
  1071. package/dist/src/utils/version.test.js +0 -39
  1072. package/dist/src/utils/version.test.js.map +0 -1
  1073. package/dist/src/utils/workspaceContext.test.d.ts +0 -6
  1074. package/dist/src/utils/workspaceContext.test.js +0 -374
  1075. package/dist/src/utils/workspaceContext.test.js.map +0 -1
  1076. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,974 +0,0 @@
1
- # Phase 2: 코어 리팩토링 및 Gemini 분리
2
-
3
- > 기간: 3-4주 | 상태: ✅ 완료 | 의존성: Phase 1 완료 **v0.3** - 2차 리뷰 반영
4
- > (라우팅 레이어, 래퍼 클래스, 테스트 파일 정정)
5
-
6
- ## System Prompt
7
-
8
- Always follow TDD principles. For each task: write a failing test first,
9
- implement minimum code to pass, then refactor. Separate structural changes
10
- (renaming, extracting) from behavioral changes (new functionality). Run all
11
- tests after each change.
12
-
13
- ---
14
-
15
- # PHASE OVERVIEW
16
-
17
- ## 설계서 참조 (Design Document References)
18
-
19
- | 설계서 | 관련 섹션 | 참조 목적 |
20
- | --------------------------------------------------------- | --------------------------------------------------------------- | ---------------------------------------------------- |
21
- | [02-architecture.md](../02-architecture.md) | §2.2.3 새 디렉토리 구조, §2.4 프로바이더 선택 흐름 | 목표 아키텍처, 디렉토리 구조 |
22
- | [03-technical-design.md](../03-technical-design.md) | §3.2 ContentGenerator 재정의, §3.3.2-3.3.3 Gemini 어댑터/변환기 | ContentGenerator 인터페이스, Gemini 어댑터 구현 상세 |
23
- | [04-integration-design.md](../04-integration-design.md) | §4.3 공통 타입 시스템 | DidimAIStudio 연동 시 타입 호환성 |
24
- | [05-implementation-plan.md](../05-implementation-plan.md) | §5.3 Phase 2 상세 | 마일스톤별 상세 계획 |
25
-
26
- ## 목표
27
-
28
- - 🆕 디렉토리 재구성 (Tidy First 원칙)
29
- - 핵심 경로에서 `@google/genai` 타입 분리
30
- - 스트리밍 로직의 Gemini 결합 해소 (18개 이벤트 매핑)
31
- - 기존 Gemini 경로를 어댑터로 캡슐화
32
- - 🆕 ModelConfigService 호환 레이어 구현
33
- - 🆕 유틸리티 레이어 리팩토링
34
-
35
- ## 전제 조건
36
-
37
- - [ ] Phase 1 모든 Milestone 완료
38
- - [ ] 신규 타입 시스템 (`types.ts`, `events.ts`, `errors.ts`) 준비
39
- - [ ] 어댑터 인프라 (`baseAdapter.ts`, `registry.ts` 등) 준비
40
- - [ ] 🆕 이벤트 매핑 전략 확정
41
- - [ ] 🆕 유틸리티 마이그레이션 계획 승인
42
-
43
- ## 산출물
44
-
45
- ```
46
- packages/core/src/
47
- ├── core/
48
- │ ├── contentGenerator.ts [수정]
49
- │ ├── baseLlmClient.ts [수정]
50
- │ ├── loggingContentGenerator.ts [수정 - 래퍼 타입 전환]
51
- │ ├── recordingContentGenerator.ts [수정 - 래퍼 타입 전환]
52
- │ ├── fakeContentGenerator.ts [수정 - 래퍼 타입 전환]
53
- │ ├── turn.ts [수정 - re-export 추가]
54
- │ └── client.ts [수정 - 변환 브릿지 적용]
55
-
56
- ├── providers/
57
- │ ├── streamAssembler.ts [신규 - 스트림 합성기]
58
- │ ├── telemetryBridge.ts [신규 - 텔레메트리 브릿지]
59
- │ └── gemini/
60
- │ ├── types.ts [신규 - GeminiEventType 18개]
61
- │ ├── index.ts [신규 - 모듈 인덱스]
62
- │ ├── adapter.ts [신규 - GeminiAdapter]
63
- │ ├── converter.ts [신규 - 타입 변환기]
64
- │ ├── eventMapper.ts [신규 - 18개 이벤트 매핑]
65
- │ ├── adapterBridge.ts [신규 - 기존 경로 브릿지]
66
- │ ├── configConverter.ts [신규 - 설정 변환]
67
- │ ├── errorClassifier.ts [신규 - 에러 분류]
68
- │ ├── featureFlag.ts [신규 - 기능 플래그]
69
- │ ├── geminiStream.ts [신규 - 스트림 파이프라인]
70
- │ ├── streamConverter.ts [신규 - 스트림 변환]
71
- │ ├── chat.ts [이동 - geminiChat.ts] → Phase 3
72
- │ └── turn.ts [이동 - Gemini 특화] → Phase 3
73
-
74
- ├── services/
75
- │ └── modelConfigBridge.ts [신규 - 설정 호환 레이어]
76
-
77
- ├── routing/
78
- │ ├── routingStrategy.ts [수정 - 타입 독립화]
79
- │ └── strategies/*.ts [수정 - 6개 전략 타입 전환]
80
-
81
- └── utils/
82
- ├── retry.ts [수정 - LlmError 재시도]
83
- ├── tokenCalculation.ts [수정 - LlmContent 추정]
84
- ├── partUtils.ts [수정 - LlmMessage 유틸]
85
- ├── llmUtils.ts [신규 - 타입 가드/인스펙터]
86
- └── geminiTypeConversion.ts [신규 - 변환 브릿지]
87
- ```
88
-
89
- ## Phase 2 작업 결과서 링크 (추적용)
90
-
91
- 아래 링크를 통해 각 마일스톤의 실제 작업 결과(코드 변경/테스트/이슈 대응)를 바로
92
- 확인할 수 있습니다.
93
-
94
- | 마일스톤 | 작업 결과서 | 핵심 작업 내용 |
95
- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
96
- | M2.0 | [Phase2*M2.0*디렉토리재구성\_20260207.md](../working_history/Phase2_M2.0_디렉토리재구성_20260207.md) | `providers/gemini` 구조 분리, `turn.ts` re-export 기반 하위 호환 |
97
- | M2.1 | [Phase2_M2.1_ContentGenerator인터페이스재정의\_20260207.md](../working_history/Phase2_M2.1_ContentGenerator인터페이스재정의_20260207.md) | ContentGenerator/Retry/Hook/BaseLlmClient 타입 전환, 래퍼 클래스 마이그레이션 |
98
- | M2.2 | [Phase2_M2.2_EventMapper구현\_20260207.md](../working_history/Phase2_M2.2_EventMapper구현_20260207.md) | EventMapper(18개), StreamAssembler, Gemini 에러/Telemetry 매핑 |
99
- | M2.3 | [Phase2_M2.3_GeminiAdapter구현\_20260208.md](../working_history/Phase2_M2.3_GeminiAdapter구현_20260208.md) | GeminiAdapter/AdapterBridge 구현, 기능 플래그 통합 |
100
- | M2.4 | [Phase2_M2.4_ModelConfigService호환레이어\_20260208.md](../working_history/Phase2_M2.4_ModelConfigService호환레이어_20260208.md) | ConfigConverter + ModelConfigBridge 기반 호환 레이어 |
101
- | M2.5 | [Phase2*M2.5*유틸리티레이어리팩토링\_20260208.md](../working_history/Phase2_M2.5_유틸리티레이어리팩토링_20260208.md) | `llmUtils`, `partUtils`, `tokenCalculation` provider-independent 유틸 추가 |
102
- | M2.6 | [Phase2*M2.6*라우팅레이어타입독립화\_20260208.md](../working_history/Phase2_M2.6_라우팅레이어타입독립화_20260208.md) | RoutingContext 타입 독립화, 변환 브릿지, 라우팅 전략 전환 |
103
- | ETC | [Phase2*ETC*연기작업정리\_20260208.md](../working_history/Phase2_ETC_연기작업정리_20260208.md) | 연기 항목 정리(A/B 분류), Phase 3 핸드오프 정리 |
104
-
105
- ---
106
-
107
- # 3-STAGE WORK PROCESS (사전작업/본작업/사후작업)
108
-
109
- 각 Milestone 작업은 다음 3단계로 진행:
110
-
111
- ## 1️⃣ 사전작업 (Pre-work)
112
-
113
- - [ ] 작업 개요 파악: 현재 Milestone 목표 및 세부 작업 확인
114
- - [ ] 이전 작업 리뷰: Phase 1 완료 확인 및 작업 결과서 확인 (`working_history/`
115
- 디렉토리)
116
- - [ ] 이슈 파악: 이전 작업에서 전달된 이슈 및 Open Questions 확인
117
- - [ ] 설계서 참조: 관련 설계 문서 검토 (03-technical-design.md 등)
118
-
119
- ## 2️⃣ 본작업 (Main work) - TDD 사이클
120
-
121
- - [ ] **Red**: 실패하는 테스트 작성
122
- - [ ] **Green**: 최소한의 코드로 테스트 통과
123
- - [ ] **Refactor**: 코드 개선 (테스트 통과 유지)
124
- - [ ] 체크리스트 업데이트: 작업 완료 시 ✅ 표시
125
-
126
- ## 3️⃣ 사후작업 (Post-work)
127
-
128
- - [ ] 체크리스트 최종 확인: 해당 Milestone 모든 항목 완료 확인
129
- - [ ] 작업 결과서 작성: `working_history/Phase2_{Milestone}_{작업일자}.md`
130
- - [ ] 커밋: 변경사항 커밋 및 커밋 ID 기록
131
- - [ ] 이슈 전달: 다음 작업에 전달할 이슈 문서화
132
-
133
- ### 작업 결과서 템플릿
134
-
135
- - 경로: `docs/ai_adapter/template/03_work_result_report_template.md`
136
-
137
- ---
138
-
139
- # M2.0: 🆕 디렉토리 재구성 (Tidy First) (2-3일)
140
-
141
- > 📚 **설계서 참조**:
142
- > [02-architecture.md §2.2.3 새 디렉토리 구조](../02-architecture.md#223-새-디렉토리-구조)
143
-
144
- ## 목표
145
-
146
- Tidy First 원칙에 따라 구조적 변경 먼저 수행
147
-
148
- ## 작업 항목
149
-
150
- ### 2.0.1 Gemini 전용 파일 분리
151
-
152
- | ID | 작업 | 상태 | 테스트 |
153
- | ------- | -------------------------------------------------------------- | ---- | ---------------- |
154
- | 2.0.1.1 | `providers/gemini/` 디렉토리 생성 | ✅ | N/A |
155
- | 2.0.1.2 | `providers/gemini/types.ts` 생성 (GeminiEventType/이벤트 타입) | ✅ | exports.test.ts |
156
- | 2.0.1.3 | `providers/gemini/index.ts` 모듈 인덱스 생성 | ✅ | exports.test.ts |
157
- | 2.0.1.4 | `core/turn.ts` re-export 추가 | ✅ | 기존 테스트 통과 |
158
- | 2.0.1.5 | `providers/index.ts`에 Gemini namespace export 추가 | ✅ | exports.test.ts |
159
-
160
- **Tidy First 체크리스트**:
161
-
162
- - [x] 모든 변경이 순수 구조적 (동작 변경 없음)
163
- - [x] 각 이동마다 테스트 실행하여 회귀 확인
164
- - [x] 커밋 메시지에 `[STRUCTURAL]` 태그
165
-
166
- ### 2.0.2 공통 인터페이스 분리 (보류 → M2.2에서 처리)
167
-
168
- | ID | 작업 | 상태 | 비고 |
169
- | ------- | ---------------------------------------------------- | ---- | ----------------------------------- |
170
- | 2.0.2.1 | `core/turn.ts`에서 공통 인터페이스 추출 | ✅ | re-export 패턴으로 대체 완료 (M2.0) |
171
- | 2.0.2.2 | `ServerGeminiStreamEvent` → Gemini 전용으로 이동 | ✅ | providers/gemini/types.ts |
172
- | 2.0.2.3 | `GeminiEventType` → `providers/gemini/types.ts` 이동 | ✅ | 완료 |
173
- | 2.0.2.4 | Re-export로 하위 호환성 유지 | ✅ | core/turn.ts에서 re-export |
174
-
175
- **검증 기준**:
176
-
177
- - [x] 모든 기존 테스트 100% 통과 (76개)
178
- - [x] import 경로 변경 외 동작 변경 없음
179
- - [x] 하위 호환성 유지 (re-export)
180
-
181
- ---
182
-
183
- # M2.1: ContentGenerator/StreamEvent/Retry/Hook 타입 전환 (5-7일) - 확대
184
-
185
- > 📚 **설계서 참조**:
186
- > [03-technical-design.md §3.2 ContentGenerator 인터페이스 재정의](../03-technical-design.md#32-contentgenerator-인터페이스-재정의),
187
- > [§3.1.2 요청/응답 타입](../03-technical-design.md#312-요청응답-타입),
188
- > [05-implementation-plan.md §M2.1](../05-implementation-plan.md#m21-contentgeneratorstreameventretryhook-타입-전환-5-7일)
189
-
190
- ## 목표
191
-
192
- 핵심 경로에서 `@google/genai` 타입 분리
193
-
194
- ## 작업 항목
195
-
196
- ### 2.1.1 ContentGenerator 인터페이스 재정의 ✅
197
-
198
- | ID | 작업 | 상태 | 테스트 파일 |
199
- | ------- | ------------------------------------------------------ | ---- | ------------------------ |
200
- | 2.1.1.1 | 현재 `ContentGenerator` 시그니처 분석 | ✅ | N/A |
201
- | 2.1.1.2 | `providers/types.ts`에 ContentGenerator 이미 정의 확인 | ✅ | N/A |
202
- | 2.1.1.3 | `GeminiContentGenerator`로 rename (레거시 호환) | ✅ | contentGenerator.test.ts |
203
- | 2.1.1.4 | `ContentGenerator` 레거시 별칭 유지 | ✅ | contentGenerator.test.ts |
204
- | 2.1.1.5 | `createContentGenerator` 반환 타입 업데이트 | ✅ | contentGenerator.test.ts |
205
- | 2.1.1.6 | 전체 테스트 통과 확인 | ✅ | 4474개 통과 |
206
-
207
- **TDD 시나리오**:
208
-
209
- ```typescript
210
- describe('LlmContentGenerator', () => {
211
- it('should accept provider-agnostic LlmGenerateRequest', async () => {
212
- const generator = new LlmContentGenerator(mockAdapter);
213
- const request: LlmGenerateRequest = {
214
- messages: [
215
- { role: LlmRole.User, content: [{ type: 'text', text: 'Hi' }] },
216
- ],
217
- userPromptId: 'test-123',
218
- };
219
-
220
- const response = await generator.generate(request);
221
- expect(response.message).toBeDefined();
222
- });
223
-
224
- it('should maintain backward compatibility with existing ContentGenerator', () => {
225
- const legacyGenerator: ContentGenerator = createContentGenerator(config);
226
- // 기존 시그니처 그대로 동작해야 함
227
- expect(legacyGenerator.generateContent).toBeDefined();
228
- });
229
- });
230
- ```
231
-
232
- ### 2.1.2 createContentGenerator 팩토리 이관 (부분 완료)
233
-
234
- | ID | 작업 | 상태 | 비고 |
235
- | ------- | ----------------------- | ---- | ----------------------------------------- |
236
- | 2.1.2.1 | 현재 팩토리 로직 분석 | ✅ | Gemini 전용 |
237
- | 2.1.2.2 | ProviderFactory 분석 | ✅ | BaseAdapter 반환 |
238
- | 2.1.2.3 | `ProviderFactory` 연동 | ✅ | M2.3 adapterBridge 패턴으로 해결 |
239
- | 2.1.2.4 | 기존 호출부 호환성 유지 | ✅ | ContentGenerator 별칭 |
240
- | 2.1.2.5 | 기능 플래그 분기 추가 | ✅ | M2.3 featureFlag.ts 통합 완료 (a5a81c60e) |
241
-
242
- ### 2.1.3 BaseLlmClient 타입 전환 ✅
243
-
244
- | ID | 작업 | 상태 | 테스트 파일 |
245
- | ------- | ------------------------------------------- | ---- | --------------------------------- |
246
- | 2.1.3.1 | 현재 `baseLlmClient.ts` 분석 | ✅ | N/A (분석) |
247
- | 2.1.3.2 | `LlmGenerateJsonOptions` 인터페이스 정의 | ✅ | `baseLlmClient_new_types.test.ts` |
248
- | 2.1.3.3 | `LlmGenerateContentOptions` 인터페이스 정의 | ✅ | `baseLlmClient_new_types.test.ts` |
249
- | 2.1.3.4 | 레거시 별칭 `@deprecated` 표시 | ✅ | `baseLlmClient_new_types.test.ts` |
250
- | 2.1.3.5 | 메서드 로직에 신규 타입 연결 | ✅ | `baseLlmClient_new_types.test.ts` |
251
- | 2.1.3.6 | `convertLlmMessagesToContents` 구현 | ✅ | `baseLlmClient_new_types.test.ts` |
252
- | 2.1.3.7 | system role 필터링 추가 | ✅ | `baseLlmClient_new_types.test.ts` |
253
- | 2.1.3.8 | tool_call/tool_result/thought 변환 테스트 | ✅ | `baseLlmClient_new_types.test.ts` |
254
-
255
- **리뷰 결과 (2026-02-07)**:
256
-
257
- - ✅ TypeScript 유니온 타입 에러 해결 (테스트 파일 타입 단언 추가)
258
- - ✅ system role 처리 수정 (필터링 추가 - Gemini는 user/model만 허용)
259
- - ✅ 테스트 케이스 보강 (9개 테스트: text, image, tool_call, tool_result,
260
- thought, system)
261
-
262
- ### 2.1.4 Retry 로직 리팩토링
263
-
264
- | ID | 작업 | 상태 | 테스트 파일 |
265
- | ------- | -------------------------------- | ---- | ------------------------- |
266
- | 2.1.4.1 | 현재 `retry.ts` 에러 처리 분석 | ✅ | N/A (분석) |
267
- | 2.1.4.2 | `LlmError` 기반 재시도 조건 정의 | ✅ | `retry_llm_error.test.ts` |
268
- | 2.1.4.3 | `LlmRateLimitError` 재시도 전략 | ✅ | `retry_llm_error.test.ts` |
269
- | 2.1.4.4 | 프로바이더별 재시도 헤더 파싱 | ✅ | `retry_llm_error.test.ts` |
270
- | 2.1.4.5 | 재시도 통계/로깅 추가 | ✅ | `retry_llm_error.test.ts` |
271
-
272
- ### 2.1.5 Hook 시스템 타입 전환
273
-
274
- | ID | 작업 | 상태 | 테스트 파일 |
275
- | ------- | ------------------------------------- | ---- | ------------------------------------ |
276
- | 2.1.5.1 | 현재 `hooks/types.ts` 분석 | ✅ | N/A (분석) |
277
- | 2.1.5.2 | Hook 이벤트 타입 프로바이더 독립 전환 | ✅ | `hooks/hookSystem_new_types.test.ts` |
278
- | 2.1.5.3 | Hook 컨텍스트 타입 전환 | ✅ | `hooks/hookSystem_new_types.test.ts` |
279
- | 2.1.5.4 | 기존 Hook 호환성 테스트 | ✅ | `hooks/*.test.ts` (10개 파일) |
280
-
281
- **Hook 테스트 파일 목록** (실제 존재):
282
-
283
- - `hookAggregator.test.ts`, `hookEventHandler.test.ts`, `hookPlanner.test.ts`
284
- - `hookRegistry.test.ts`, `hookRunner.test.ts`, `hookSystem.test.ts`
285
- - `hookTranslator.test.ts`, `trustedHooks.test.ts`, `types.test.ts`
286
-
287
- ### 2.1.6 🆕 ContentGenerator 래퍼/파생 클래스 마이그레이션
288
-
289
- | ID | 작업 | 상태 | 테스트 파일 |
290
- | ------- | ------------------------------------------------------ | ---- | ------------------------------------ |
291
- | 2.1.6.1 | `LoggingContentGenerator` 타입 전환 | ✅ | `contentGenerator_new_types.test.ts` |
292
- | 2.1.6.2 | `RecordingContentGenerator` 타입 전환 | ✅ | `contentGenerator_new_types.test.ts` |
293
- | 2.1.6.3 | `FakeContentGenerator` 타입 전환 | ✅ | `contentGenerator_new_types.test.ts` |
294
- | 2.1.6.4 | `code_assist/codeAssist.ts` ContentGenerator 사용 분석 | ✅ | N/A (분석: 변경 불필요) |
295
- | 2.1.6.5 | `code_assist/server.ts` ContentGenerator 사용 분석 | ✅ | N/A (분석: 변경 불필요, M2.3+) |
296
- | 2.1.6.6 | CodeAssist ContentGenerator 호환 레이어 | ✅ | N/A (optional 메서드로 자동 호환) |
297
-
298
- **래퍼 클래스 의존성 분석**:
299
-
300
- ```
301
- contentGenerator.ts (기반)
302
- ├── loggingContentGenerator.ts ← ContentGenerator 래핑
303
- ├── recordingContentGenerator.ts ← ContentGenerator 래핑
304
- ├── fakeContentGenerator.ts ← ContentGenerator 구현
305
- └── code_assist/
306
- ├── codeAssist.ts ← ContentGenerator 사용
307
- └── server.ts ← ContentGenerator 사용
308
- ```
309
-
310
- **검증 기준**:
311
-
312
- - [x] `ContentGenerator` 호출 경로가 신규 타입으로 동작
313
- - [x] 🆕 모든 래퍼/파생 클래스 타입 전환 완료
314
- - [x] Retry/Hook이 프로바이더 독립 에러로 동작
315
- - [x] 기존 테스트 100% 통과
316
-
317
- ---
318
-
319
- # M2.2: GeminiChat 스트리밍 분해 및 합성기 적용 (5-7일) - 이벤트 매핑
320
-
321
- > 📚 **설계서 참조**:
322
- > [03-technical-design.md §3.3.3 Gemini 타입 변환기](../03-technical-design.md#333-gemini-타입-변환기),
323
- > [05-implementation-plan.md §M2.2](../05-implementation-plan.md#m22-geminichat-스트리밍-분해-및-합성기-적용-5-7일)
324
-
325
- ## 목표
326
-
327
- 스트리밍 로직의 Gemini 결합 해소 (18개 이벤트 매핑)
328
-
329
- ## 작업 항목
330
-
331
- ### 2.2.1 🆕 EventMapper 구현 (`providers/gemini/eventMapper.ts`) ✅
332
-
333
- | ID | 작업 | 상태 | 테스트 파일 |
334
- | -------- | ------------------------------------------ | ---- | --------------------- |
335
- | 2.2.1.1 | `GeminiEventMapper` 클래스 생성 | ✅ | `eventMapper.test.ts` |
336
- | 2.2.1.2 | `Content` → `TextDelta` 매핑 | ✅ | `eventMapper.test.ts` |
337
- | 2.2.1.3 | `ToolCallRequest` 매핑 | ✅ | `eventMapper.test.ts` |
338
- | 2.2.1.4 | `ToolCallResponse` 매핑 | ✅ | `eventMapper.test.ts` |
339
- | 2.2.1.5 | `ToolCallConfirmation` 매핑 | ✅ | `eventMapper.test.ts` |
340
- | 2.2.1.6 | `Thought` → `ThoughtDelta` 매핑 | ✅ | `eventMapper.test.ts` |
341
- | 2.2.1.7 | `Error` 매핑 | ✅ | `eventMapper.test.ts` |
342
- | 2.2.1.8 | `Finished` 매핑 | ✅ | `eventMapper.test.ts` |
343
- | 2.2.1.9 | `Retry` 매핑 | ✅ | `eventMapper.test.ts` |
344
- | 2.2.1.10 | `Citation` 매핑 | ✅ | `eventMapper.test.ts` |
345
- | 2.2.1.11 | 나머지 8개 이벤트 매핑 | ✅ | `eventMapper.test.ts` |
346
- | 2.2.1.12 | 역방향 매핑 (LlmStreamEvent → GeminiEvent) | ✅ | `eventMapper.test.ts` |
347
-
348
- **18개 이벤트 매핑 테이블**:
349
-
350
- ```typescript
351
- const EVENT_MAP = {
352
- [GeminiEventType.Content]: LlmStreamEventType.TextDelta,
353
- [GeminiEventType.ToolCallRequest]: LlmStreamEventType.ToolCallRequest,
354
- [GeminiEventType.ToolCallResponse]: LlmStreamEventType.ToolCallResponse,
355
- [GeminiEventType.ToolCallConfirmation]:
356
- LlmStreamEventType.ToolCallConfirmation,
357
- [GeminiEventType.UserCancelled]: LlmStreamEventType.UserCancelled,
358
- [GeminiEventType.Error]: LlmStreamEventType.Error,
359
- [GeminiEventType.ChatCompressed]: LlmStreamEventType.ChatCompressed,
360
- [GeminiEventType.Thought]: LlmStreamEventType.ThoughtDelta,
361
- [GeminiEventType.MaxSessionTurns]: LlmStreamEventType.MaxSessionTurns,
362
- [GeminiEventType.Finished]: LlmStreamEventType.Finished,
363
- [GeminiEventType.LoopDetected]: LlmStreamEventType.LoopDetected,
364
- [GeminiEventType.Citation]: LlmStreamEventType.Citation,
365
- [GeminiEventType.Retry]: LlmStreamEventType.Retry,
366
- [GeminiEventType.ContextWindowWillOverflow]:
367
- LlmStreamEventType.ContextWindowOverflow,
368
- [GeminiEventType.InvalidStream]: LlmStreamEventType.InvalidStream,
369
- [GeminiEventType.ModelInfo]: LlmStreamEventType.ModelInfo,
370
- [GeminiEventType.AgentExecutionStopped]: LlmStreamEventType.AgentStopped,
371
- [GeminiEventType.AgentExecutionBlocked]: LlmStreamEventType.AgentBlocked,
372
- };
373
- ```
374
-
375
- **TDD 시나리오**:
376
-
377
- ```typescript
378
- describe('GeminiEventMapper', () => {
379
- it('should map all 18 GeminiEventType to LlmStreamEventType', () => {
380
- const mapper = new GeminiEventMapper();
381
-
382
- // Content → TextDelta
383
- const geminiEvent: ServerGeminiContentEvent = {
384
- type: GeminiEventType.Content,
385
- value: 'Hello',
386
- traceId: 'trace-1',
387
- };
388
-
389
- const llmEvent = mapper.toLlmEvent(geminiEvent);
390
-
391
- expect(llmEvent.type).toBe(LlmStreamEventType.TextDelta);
392
- expect(llmEvent.text).toBe('Hello');
393
- expect(llmEvent.traceId).toBe('trace-1');
394
- });
395
-
396
- it('should handle tool call request with all fields', () => {
397
- const geminiEvent: ServerGeminiToolCallRequestEvent = {
398
- type: GeminiEventType.ToolCallRequest,
399
- value: {
400
- callId: 'call-1',
401
- name: 'read_file',
402
- args: { path: '/tmp/test.txt' },
403
- isClientInitiated: false,
404
- prompt_id: 'prompt-1',
405
- traceId: 'trace-1',
406
- },
407
- };
408
-
409
- const llmEvent = mapper.toLlmEvent(geminiEvent);
410
-
411
- expect(llmEvent.type).toBe(LlmStreamEventType.ToolCallRequest);
412
- expect(llmEvent.name).toBe('read_file');
413
- expect(llmEvent.args.path).toBe('/tmp/test.txt');
414
- });
415
-
416
- it('should reverse map LlmStreamEvent to GeminiEventType', () => {
417
- const mapper = new GeminiEventMapper();
418
-
419
- const llmEvent: LlmStreamEvent = {
420
- type: LlmStreamEventType.TextDelta,
421
- text: 'Hello',
422
- };
423
-
424
- const geminiEvent = mapper.toGeminiEvent(llmEvent);
425
-
426
- expect(geminiEvent.type).toBe(GeminiEventType.Content);
427
- });
428
- });
429
- ```
430
-
431
- ### 2.2.2 StreamEvent → LlmStreamEvent 전환
432
-
433
- | ID | 작업 | 상태 | 테스트 파일 |
434
- | ------- | ------------------------------------------------------- | ---- | ------------------------------ |
435
- | 2.2.2.1 | 현재 `StreamEvent` 사용처 전체 스캔 | ✅ | N/A (분석) |
436
- | 2.2.2.2 | 스트림 변환 유틸리티 (`streamConverter.ts`) | ✅ | `streamConverter.test.ts` |
437
- | 2.2.2.3 | `loopDetectionService.addAndCheckLlm()` 추가 | ✅ | `loopDetectionService.test.ts` |
438
- | 2.2.2.4 | 비핵심 경로 점진적 전환 (client.ts 마이그레이션 코멘트) | ✅ | N/A (코멘트) |
439
- | 2.2.2.5 | 레거시 `StreamEvent` / `addAndCheck` deprecate 표시 | ✅ | N/A (문서) |
440
-
441
- ### 2.2.2a 🆕 geminiChat.ts StreamEventType 매핑 (리뷰 반영)
442
-
443
- | ID | 작업 | 상태 | 테스트 파일 |
444
- | -------- | -------------------------------------------------------------------- | ---- | ------------------------- |
445
- | 2.2.2a.1 | `geminiChat.ts` 내부 `StreamEventType` enum 분석 | ✅ | N/A (분석) |
446
- | 2.2.2a.2 | `StreamEventType.CHUNK` → 1:N 분해로 직접 매핑 불가 확인 | ✅ | N/A (설계 결정) |
447
- | 2.2.2a.3 | `StreamEventType.RETRY` → Turn 경유 GeminiEventType.Retry → LlmEvent | ✅ | N/A (기존 경로) |
448
- | 2.2.2a.4 | `StreamEventType.AGENT_EXECUTION_STOPPED` → 기존 경로 확인 | ✅ | N/A (기존 경로) |
449
- | 2.2.2a.5 | `StreamEventType.AGENT_EXECUTION_BLOCKED` → 기존 경로 확인 | ✅ | N/A (기존 경로) |
450
- | 2.2.2a.6 | StreamEventType @deprecated + 변환 경계 Turn 출력 레벨로 결정 | ✅ | `streamConverter.test.ts` |
451
-
452
- **geminiChat.ts 내부 StreamEventType (4개)**:
453
-
454
- ```typescript
455
- // packages/core/src/core/geminiChat.ts:55-65
456
- export enum StreamEventType {
457
- CHUNK = 'chunk', // GenerateContentResponse 청크
458
- RETRY = 'retry', // 재시도 시그널
459
- AGENT_EXECUTION_STOPPED = 'agent_stopped', // 에이전트 중지
460
- AGENT_EXECUTION_BLOCKED = 'agent_blocked', // 에이전트 차단
461
- }
462
- ```
463
-
464
- **이벤트 계층 관계**:
465
-
466
- ```
467
- geminiChat.ts
468
- ├── StreamEventType (4개) ← 내부 스트리밍 제어
469
- │ ├── CHUNK → GenerateContentResponse
470
- │ ├── RETRY → 재시도 신호
471
- │ ├── AGENT_EXECUTION_STOPPED
472
- │ └── AGENT_EXECUTION_BLOCKED
473
-
474
- └── Turn.ts (소비)
475
- └── GeminiEventType (18개) ← UI/비즈니스 이벤트
476
-
477
- ⚠️ 두 체계가 분리되어 있어 통합 전략 필요
478
- ```
479
-
480
- ### 2.2.3 StreamAssembler 적용 ✅
481
-
482
- | ID | 작업 | 상태 | 테스트 파일 |
483
- | ------- | -------------------------------- | ---- | ---------------------- |
484
- | 2.2.3.1 | GeminiChat 스트림 처리 로직 분석 | ✅ | N/A (분석) |
485
- | 2.2.3.2 | Gemini 스트림 → 공통 이벤트 변환 | ✅ | `geminiStream.test.ts` |
486
- | 2.2.3.3 | `StreamAssembler` 통합 | ✅ | `geminiStream.test.ts` |
487
- | 2.2.3.4 | 텍스트 델타 합성 검증 | ✅ | `geminiStream.test.ts` |
488
- | 2.2.3.5 | 툴 콜 델타 합성 검증 | ✅ | `geminiStream.test.ts` |
489
- | 2.2.3.6 | Usage 정보 누적 검증 | ✅ | `geminiStream.test.ts` |
490
-
491
- ### 2.2.4 Gemini 에러 매핑 ✅
492
-
493
- | ID | 작업 | 상태 | 테스트 파일 |
494
- | ------- | -------------------------------------------- | ---- | ------------------------- |
495
- | 2.2.4.1 | Gemini SDK 에러 타입 분석 | ✅ | N/A (분석) |
496
- | 2.2.4.2 | `InvalidStreamError` → `LlmStreamError` 매핑 | ✅ | `eventMapper.test.ts` |
497
- | 2.2.4.3 | Rate limit 에러 매핑 | ✅ | `errorClassifier.test.ts` |
498
- | 2.2.4.4 | Auth 에러 매핑 | ✅ | `errorClassifier.test.ts` |
499
- | 2.2.4.5 | 에러 변환 유틸 함수 구현 | ✅ | `errorClassifier.test.ts` |
500
-
501
- ### 2.2.5 Telemetry 포맷 변경 ✅
502
-
503
- | ID | 작업 | 상태 | 테스트 파일 |
504
- | ------- | ----------------------------------------- | ---- | ------------------------- |
505
- | 2.2.5.1 | 현재 Telemetry semantic 분석 | ✅ | N/A (분석) |
506
- | 2.2.5.2 | provider-agnostic 스키마 정의 | ✅ | `telemetryBridge.test.ts` |
507
- | 2.2.5.3 | 공통 필드 정의 (provider, model, latency) | ✅ | `telemetryBridge.test.ts` |
508
- | 2.2.5.4 | 기존 Telemetry 호환성 유지 | ✅ | `telemetryBridge.test.ts` |
509
-
510
- **검증 기준**:
511
-
512
- - [ ] GeminiChat이 신규 StreamEvent로 동작 — → Phase 3 (GeminiChat 내부 리팩토링
513
- 필요)
514
- - [x] 🆕 18개 이벤트 전수 매핑 완료
515
- - [x] Telemetry가 provider 공통 스키마로 기록
516
- - [ ] 기존 스트리밍 기능 100% 동작 — → Phase 3 (E2E 런타임 검증 필요)
517
-
518
- ---
519
-
520
- # M2.3: GeminiAdapter 구현 및 동등성 검증 (4-5일) - 확대
521
-
522
- > 📚 **설계서 참조**:
523
- > [03-technical-design.md §3.3.2 Gemini 어댑터](../03-technical-design.md#332-gemini-어댑터),
524
- > [§3.3.3 Gemini 타입 변환기](../03-technical-design.md#333-gemini-타입-변환기),
525
- > [05-implementation-plan.md §M2.3](../05-implementation-plan.md#m23-geminiadapter-구현-및-동등성-검증-3-5일)
526
-
527
- ## 목표
528
-
529
- 기존 Gemini 경로를 어댑터로 캡슐화
530
-
531
- ## 작업 항목
532
-
533
- ### 2.3.1 GeminiAdapter 구현
534
-
535
- | ID | 작업 | 상태 | 테스트 파일 |
536
- | ------- | ------------------------------- | ---- | ----------------------------------------------------------------------- |
537
- | 2.3.1.1 | `GeminiAdapter` 클래스 생성 | ✅ | `geminiAdapter.test.ts` |
538
- | 2.3.1.2 | `BaseAdapter` 상속 구현 | ✅ | `geminiAdapter.test.ts` |
539
- | 2.3.1.3 | `generate()` 메서드 구현 | ✅ | `geminiAdapter.test.ts` |
540
- | 2.3.1.4 | `generateStream()` 메서드 구현 | ✅ | `geminiAdapter.test.ts` |
541
- | 2.3.1.5 | `getCapabilities()` 구현 | ✅ | `geminiAdapter.test.ts` |
542
- | 2.3.1.6 | 설정 검증 로직 구현 | ✅ | `geminiAdapter.test.ts` |
543
- | 2.3.1.7 | 🆕 `mapToProviderConfig()` 구현 | ✅ | `geminiAdapter.test.ts` |
544
- | 2.3.1.8 | 🆕 AuthType 처리 통합 | ⏸️ | `geminiAdapter.test.ts` — → Phase 3 (비-Gemini 프로바이더 추가 시 필요) |
545
-
546
- ### 2.3.2 Gemini 타입 변환기 구현
547
-
548
- | ID | 작업 | 상태 | 테스트 파일 |
549
- | ------- | ----------------------------------- | ---- | ------------------------- |
550
- | 2.3.2.1 | `toGeminiContent()` 변환 함수 | ✅ | `geminiConverter.test.ts` |
551
- | 2.3.2.2 | `toGeminiMessage()` 변환 함수 | ✅ | `geminiConverter.test.ts` |
552
- | 2.3.2.3 | `toGeminiTool()` 변환 함수 | ✅ | `geminiConverter.test.ts` |
553
- | 2.3.2.4 | `fromGeminiResponse()` 변환 함수 | ✅ | `geminiConverter.test.ts` |
554
- | 2.3.2.5 | `fromGeminiStreamEvent()` 변환 함수 | ✅ | `geminiConverter.test.ts` |
555
- | 2.3.2.6 | 이미지 콘텐츠 변환 | ✅ | `geminiConverter.test.ts` |
556
- | 2.3.2.7 | 🆕 `toGenerateContentConfig()` 변환 | ✅ | `geminiConverter.test.ts` |
557
-
558
- ### 2.3.3 동등성 검증 테스트
559
-
560
- | ID | 작업 | 상태 | 테스트 파일 |
561
- | ------- | ----------------------------------- | ---- | ---------------------- |
562
- | 2.3.3.1 | 기본 대화 동등성 테스트 | ✅ | `geminiParity.test.ts` |
563
- | 2.3.3.2 | 스트리밍 대화 동등성 테스트 | ✅ | `geminiParity.test.ts` |
564
- | 2.3.3.3 | 도구 호출 동등성 테스트 | ✅ | `geminiParity.test.ts` |
565
- | 2.3.3.4 | 이미지 입력 동등성 테스트 | ✅ | `geminiParity.test.ts` |
566
- | 2.3.3.5 | 에러 처리 동등성 테스트 | ✅ | `geminiParity.test.ts` |
567
- | 2.3.3.6 | Rate limit 동등성 테스트 | ✅ | `geminiParity.test.ts` |
568
- | 2.3.3.7 | 🆕 18개 스트림 이벤트 동등성 테스트 | ✅ | `geminiParity.test.ts` |
569
-
570
- ### 2.3.4 기능 플래그 통합
571
-
572
- | ID | 작업 | 상태 | 테스트 파일 |
573
- | ------- | ----------------------------------- | ---- | --------------------- |
574
- | 2.3.4.1 | `ENABLE_MULTI_PROVIDER` 플래그 구현 | ✅ | `featureFlag.test.ts` |
575
- | 2.3.4.2 | 플래그 기반 경로 분기 | ✅ | `featureFlag.test.ts` |
576
- | 2.3.4.3 | 런타임 전환 테스트 | ✅ | `featureFlag.test.ts` |
577
- | 2.3.4.4 | 폴백 로직 구현 | ✅ | `featureFlag.test.ts` |
578
-
579
- **검증 기준**:
580
-
581
- - [x] 기존 Gemini 기능 100% 동작
582
- - [x] 기능 플래그로 신규 경로 전환 가능
583
- - [ ] 성능 저하 < 50ms — → Phase 3 (런타임 벤치마크 필요)
584
- - [x] 🆕 18개 이벤트 동등성 검증 완료
585
-
586
- ---
587
-
588
- # M2.4: 🆕 ModelConfigService 호환 레이어 (2-3일)
589
-
590
- > 📚 **설계서 참조**:
591
- > [02-architecture.md §2.5 설정 구조](../02-architecture.md#25-설정-구조),
592
- > [03-technical-design.md §3.1.2 요청/응답 타입](../03-technical-design.md#312-요청응답-타입)
593
- > (LlmGenerateConfig 참조)
594
-
595
- ## 목표
596
-
597
- ModelConfigService의 GenerateContentConfig 의존성 해결
598
-
599
- ## 작업 항목
600
-
601
- ### 2.4.1 호환 레이어 구현
602
-
603
- | ID | 작업 | 상태 | 테스트 파일 |
604
- | ------- | --------------------------------- | ---- | ------------------------------------------------------ |
605
- | 2.4.1.1 | `LlmModelConfig` 인터페이스 정의 | ✅ | `modelConfigBridge.test.ts` |
606
- | 2.4.1.2 | `GenerateContentConfig` 래퍼 구현 | ✅ | `configConverter.test.ts` |
607
- | 2.4.1.3 | 설정 머지 로직 확장 | ✅ | `modelConfigBridge.test.ts` |
608
- | 2.4.1.4 | 프로바이더별 설정 분기 | ✅ | `modelConfigBridge.test.ts`, `configConverter.test.ts` |
609
-
610
- **TDD 시나리오**:
611
-
612
- ```typescript
613
- describe('ModelConfigService Compatibility', () => {
614
- it('should resolve config for Gemini provider', () => {
615
- const modelConfigService = new ModelConfigService(config);
616
-
617
- const resolved = modelConfigService.getResolvedConfig({
618
- model: 'gemini-2.0-flash',
619
- provider: ProviderType.Gemini,
620
- });
621
-
622
- // GenerateContentConfig 형태로 반환
623
- expect(resolved.generateContentConfig.temperature).toBeDefined();
624
- });
625
-
626
- it('should resolve config for Claude provider', () => {
627
- const modelConfigService = new ModelConfigService(config);
628
-
629
- const resolved = modelConfigService.getResolvedConfig({
630
- model: 'claude-sonnet-4-20250514',
631
- provider: ProviderType.Claude,
632
- });
633
-
634
- // LlmGenerateConfig 형태로 반환
635
- expect(resolved.llmConfig.temperature).toBeDefined();
636
- });
637
- });
638
- ```
639
-
640
- ### 2.4.2 ModelRouterService 연동
641
-
642
- | ID | 작업 | 상태 | 테스트 파일 | 비고 |
643
- | ------- | ----------------------- | ---- | ---------------- | ------------------------------ |
644
- | 2.4.2.1 | 라우팅 컨텍스트 확장 | ✅ | `router.test.ts` | M2.6 타입 독립화로 완료 |
645
- | 2.4.2.2 | 프로바이더 인식 라우팅 | ✅ | `router.test.ts` | M2.6 LlmMessage 기반 전환 완료 |
646
- | 2.4.2.3 | 기존 라우팅 전략 호환성 | ✅ | `router.test.ts` | M2.6 라우팅 테스트 52개 통과 |
647
-
648
- **검증 기준**:
649
-
650
- - [x] 기존 ModelConfigService 동작 유지
651
- - [x] 신규 프로바이더 설정 지원
652
- - [x] 라우팅 결정이 프로바이더 인식 — M2.6 타입 독립화 완료 (런타임 검증은
653
- Phase 3)
654
-
655
- ---
656
-
657
- # M2.5: 🆕 유틸리티 레이어 리팩토링 (2-3일)
658
-
659
- > 📚 **설계서 참조**:
660
- > [03-technical-design.md §3.1.1 핵심 타입 정의](../03-technical-design.md#311-핵심-타입-정의)
661
- > (LlmContent, LlmPart 참조),
662
- > [01-overview.md §1.3.4 의존성 현황](../01-overview.md#134-의존성-현황)
663
-
664
- ## 목표
665
-
666
- 유틸리티 함수들의 프로바이더 독립화
667
-
668
- ## 작업 항목
669
-
670
- ### 2.5.1 tokenCalculation.ts 리팩토링 ✅
671
-
672
- | ID | 작업 | 상태 | 테스트 파일 |
673
- | ------- | ------------------------------------------------------------------- | ---- | -------------------------- |
674
- | 2.5.1.1 | `estimateLlmTokenCount(LlmContent[])` 추가 | ✅ | `tokenCalculation.test.ts` |
675
- | 2.5.1.2 | `estimateTextTokens(text)` 내부 헬퍼 추출 | ✅ | `tokenCalculation.test.ts` |
676
- | 2.5.1.3 | `estimateTokenCountSync` → `estimateTextTokens` 위임 | ✅ | `tokenCalculation.test.ts` |
677
- | 2.5.1.4 | `estimateTokenCountSync` + `calculateRequestTokenCount` @deprecated | ✅ | `tokenCalculation.test.ts` |
678
-
679
- **TDD 시나리오**:
680
-
681
- ```typescript
682
- describe('tokenCalculation', () => {
683
- it('should estimate tokens for LlmContent', () => {
684
- const content: LlmContent = { type: 'text', text: 'Hello world' };
685
- const tokens = estimateTokenCountSync([content]);
686
- expect(tokens).toBeGreaterThan(0);
687
- });
688
-
689
- it('should maintain backward compatibility with Part', () => {
690
- const part: Part = { text: 'Hello world' };
691
- // 레거시 래퍼 사용
692
- const tokens = estimateTokenCountSyncLegacy([part]);
693
- expect(tokens).toBeGreaterThan(0);
694
- });
695
- });
696
- ```
697
-
698
- ### 2.5.2 partUtils.ts 리팩토링 ✅
699
-
700
- | ID | 작업 | 상태 | 테스트 파일 |
701
- | ------- | ----------------------------------------------- | ---- | ------------------- |
702
- | 2.5.2.1 | `contentToString(LlmContent)` 추가 | ✅ | `partUtils.test.ts` |
703
- | 2.5.2.2 | `getMessageText(LlmMessage)` 추가 | ✅ | `partUtils.test.ts` |
704
- | 2.5.2.3 | `flatMapLlmTextContents(LlmContent[])` 추가 | ✅ | `partUtils.test.ts` |
705
- | 2.5.2.4 | `appendToLastLlmTextContent(LlmContent[])` 추가 | ✅ | `partUtils.test.ts` |
706
- | 2.5.2.5 | 기존 4개 함수 `@deprecated` 추가 | ✅ | `partUtils.test.ts` |
707
-
708
- ### 2.5.3 llmUtils.ts 생성 ✅
709
-
710
- | ID | 작업 | 상태 | 테스트 파일 |
711
- | ------- | ---------------------------------- | ---- | ------------------ |
712
- | 2.5.3.1 | Type guards 5개 (isTextContent 등) | ✅ | `llmUtils.test.ts` |
713
- | 2.5.3.2 | `extractText(LlmContent[])` 헬퍼 | ✅ | `llmUtils.test.ts` |
714
- | 2.5.3.3 | `createTextContent(text)` 팩토리 | ✅ | `llmUtils.test.ts` |
715
-
716
- **검증 기준**:
717
-
718
- - [x] 모든 유틸리티 프로바이더 독립
719
- - [x] 레거시 호환성 유지 (기존 함수 무변경 + @deprecated)
720
- - [x] 기존 테스트 100% 통과 (4803/4803)
721
-
722
- ---
723
-
724
- # M2.6: 🆕 라우팅 레이어 타입 독립화 (2-3일) [Critical - 리뷰 반영]
725
-
726
- > 📚 **설계서 참조**:
727
- > [02-architecture.md §2.4 프로바이더 선택 흐름](../02-architecture.md#24-프로바이더-선택-흐름),
728
- > [03-technical-design.md §3.1.1 핵심 타입 정의](../03-technical-design.md#311-핵심-타입-정의)
729
- > (LlmMessage, LlmContent 참조)
730
-
731
- ## 목표
732
-
733
- `packages/core/src/routing/routingStrategy.ts`의 `@google/genai` 의존성 제거
734
-
735
- ## 배경 (Critical 이슈)
736
-
737
- `routingStrategy.ts`가 `Content`, `PartListUnion`을 직접 import하고 있어, 이
738
- 경로를 다루지 않으면 타입 독립화가 완료되지 않음.
739
-
740
- ## 현재 의존성 분석
741
-
742
- ```typescript
743
- // packages/core/src/routing/routingStrategy.ts:7
744
- import type { Content, PartListUnion } from '@google/genai';
745
-
746
- export interface RoutingContext {
747
- history: Content[]; // ← @google/genai 직접 의존
748
- request: PartListUnion; // ← @google/genai 직접 의존
749
- signal: AbortSignal;
750
- requestedModel?: string;
751
- }
752
- ```
753
-
754
- ## 작업 항목
755
-
756
- ### 2.6.1 RoutingContext 타입 전환 ✅
757
-
758
- | ID | 작업 | 상태 | 테스트 파일 | 비고 |
759
- | ------- | ------------------------------------------------------- | ---- | ----------------------- | ------------------------------------------------------ |
760
- | 2.6.1.1 | `RoutingContext` 인터페이스 분석 | ✅ | N/A (분석) | |
761
- | 2.6.1.2 | `RoutingContext` 인라인 타입 전환 | ✅ | 기존 라우팅 테스트 52개 | 인라인 전환 채택 (LlmRoutingContext 불필요) |
762
- | 2.6.1.3 | `history: Content[]` → `history: LlmMessage[]` 전환 | ✅ | 기존 라우팅 테스트 52개 | |
763
- | 2.6.1.4 | `request: PartListUnion` → `request: LlmContent[]` 전환 | ✅ | 기존 라우팅 테스트 52개 | |
764
- | 2.6.1.5 | 레거시 RoutingContext 호환 레이어 | ✅ | N/A | 인라인 전환으로 불필요, 호출 지점에서 변환 브릿지 적용 |
765
-
766
- **TDD 시나리오**:
767
-
768
- ```typescript
769
- describe('RoutingContext Type Independence', () => {
770
- it('should accept LlmMessage array for history', () => {
771
- const context: LlmRoutingContext = {
772
- history: [
773
- { role: LlmRole.User, content: [{ type: 'text', text: 'Hi' }] },
774
- ],
775
- request: [{ type: 'text', text: 'Hello' }],
776
- signal: new AbortController().signal,
777
- };
778
-
779
- expect(context.history[0].role).toBe(LlmRole.User);
780
- });
781
-
782
- it('should maintain backward compatibility with Content', () => {
783
- const geminiContent: Content = { role: 'user', parts: [{ text: 'Hi' }] };
784
- const legacyContext: RoutingContext = {
785
- history: [geminiContent],
786
- request: [{ text: 'Hello' }],
787
- signal: new AbortController().signal,
788
- };
789
-
790
- // 레거시 래퍼로 변환
791
- const llmContext = toLlmRoutingContext(legacyContext);
792
- expect(llmContext.history[0].role).toBe(LlmRole.User);
793
- });
794
- });
795
- ```
796
-
797
- ### 2.6.2 라우팅 전략 구현체 마이그레이션 ✅
798
-
799
- | ID | 작업 | 상태 | 테스트 파일 | 비고 |
800
- | ------- | ------------------------------------------ | ---- | ------------------------------------- | ------------------------------------------- |
801
- | 2.6.2.1 | `compositeStrategy.ts` 타입 전환 | ✅ | `compositeStrategy.test.ts` | 코드 변경 불필요 (RoutingContext 자동 전파) |
802
- | 2.6.2.2 | `classifierStrategy.ts` 타입 전환 | ✅ | `classifierStrategy.test.ts` | @google/genai 제거, messages 형식 전환 |
803
- | 2.6.2.3 | `defaultStrategy.ts` 타입 전환 | ✅ | `defaultStrategy.test.ts` | 코드 변경 불필요 (RoutingContext 자동 전파) |
804
- | 2.6.2.4 | `fallbackStrategy.ts` 타입 전환 | ✅ | `fallbackStrategy.test.ts` | 코드 변경 불필요 (RoutingContext 자동 전파) |
805
- | 2.6.2.5 | `overrideStrategy.ts` 타입 전환 | ✅ | `overrideStrategy.test.ts` | 코드 변경 불필요 (RoutingContext 자동 전파) |
806
- | 2.6.2.6 | `numericalClassifierStrategy.ts` 타입 전환 | ✅ | `numericalClassifierStrategy.test.ts` | @google/genai 제거, extractText 활용 |
807
-
808
- ### 2.6.3 호출 지점 마이그레이션 ✅
809
-
810
- | ID | 작업 | 상태 | 테스트 파일 | 비고 |
811
- | ------- | --------------------------------- | ---- | ---------------------------- | ---------------------------------------------------------------------------- |
812
- | 2.6.3.1 | `modelRouterService.ts` 타입 전환 | ✅ | `modelRouterService.test.ts` | RoutingContext 자동 전파, mock 데이터만 업데이트 |
813
- | 2.6.3.2 | 라우팅 호출부 타입 전환 | ✅ | `modelRouterService.test.ts` | client.ts, local-executor.ts에 변환 브릿지 적용 |
814
- | 2.6.3.3 | 기존 라우팅 동작 동등성 검증 | ✅ | 기존 라우팅 테스트 52개 | 별도 parity 테스트 불필요 — 인라인 전환이므로 기존 테스트가 동등성 검증 역할 |
815
-
816
- **영향 받는 파일 목록**:
817
-
818
- ```
819
- packages/core/src/routing/
820
- ├── routingStrategy.ts ← Content, PartListUnion import
821
- ├── modelRouterService.ts ← RoutingContext 사용
822
- └── strategies/
823
- ├── compositeStrategy.ts
824
- ├── classifierStrategy.ts
825
- ├── defaultStrategy.ts
826
- ├── fallbackStrategy.ts
827
- ├── overrideStrategy.ts
828
- └── numericalClassifierStrategy.ts
829
- ```
830
-
831
- **검증 기준**:
832
-
833
- - [x] `routingStrategy.ts`에서 `@google/genai` import 제거
834
- - [x] 모든 라우팅 전략 구현체 타입 전환 완료
835
- - [x] 기존 라우팅 테스트 100% 통과 (52개)
836
- - [x] 라우팅 동등성 검증 완료 (인라인 전환 — 기존 테스트가 동등성 보장)
837
-
838
- ---
839
-
840
- # PHASE 2 COMPLETION CHECKLIST
841
-
842
- ## Quality Gates
843
-
844
- - [x] 모든 단위 테스트 통과 (core: 4829개)
845
- - [x] 동등성 테스트 100% 통과
846
- - [x] TypeScript 컴파일 에러 없음
847
- - [x] ESLint 경고 없음
848
- - [ ] 기존 E2E 테스트 통과 — → Phase 3 (통합 단계에서 검증)
849
-
850
- ## 성능 검증
851
-
852
- - [ ] 응답 지연 증가 < 50ms — → Phase 3 (런타임 벤치마크 필요)
853
- - [ ] 메모리 사용량 증가 < 10% — → Phase 3 (런타임 프로파일링 필요)
854
- - [ ] 스트리밍 첫 토큰 지연 < 100ms — → Phase 3 (런타임 측정 필요)
855
-
856
- ## 산출물 확인
857
-
858
- ### providers/gemini/ (신규 11개, 미완 2개)
859
-
860
- - [x] `providers/gemini/types.ts` 생성 (M2.0 — GeminiEventType 18개)
861
- - [x] `providers/gemini/index.ts` 생성 (M2.0 — 모듈 인덱스)
862
- - [x] `providers/gemini/adapter.ts` 생성 (M2.3 — GeminiAdapter)
863
- - [x] `providers/gemini/converter.ts` 생성 (M2.3 — 타입 변환기)
864
- - [x] `providers/gemini/eventMapper.ts` 생성 (M2.2 — 18개 이벤트 매핑)
865
- - [x] `providers/gemini/adapterBridge.ts` 생성 (M2.3 — 기존 경로 브릿지)
866
- - [x] `providers/gemini/configConverter.ts` 생성 (M2.4 — 설정 변환)
867
- - [x] `providers/gemini/errorClassifier.ts` 생성 (M2.2 — 에러 분류)
868
- - [x] `providers/gemini/featureFlag.ts` 생성 (M2.3 — 기능 플래그)
869
- - [x] `providers/gemini/geminiStream.ts` 생성 (M2.2 — 스트림 파이프라인)
870
- - [x] `providers/gemini/streamConverter.ts` 생성 (M2.2 — 스트림 변환)
871
- - [ ] `providers/gemini/chat.ts` 이동 — → Phase 3 (병행 경로 전략)
872
- - [ ] `providers/gemini/turn.ts` 이동 — → Phase 3 (병행 경로 전략)
873
-
874
- ### providers/ (신규 2개)
875
-
876
- - [x] `providers/streamAssembler.ts` 생성 (M2.2 — 스트림 합성기)
877
- - [x] `providers/telemetryBridge.ts` 생성 (M2.2 — 텔레메트리 브릿지)
878
-
879
- ### services/ (신규 1개)
880
-
881
- - [x] `services/modelConfigBridge.ts` 생성 (M2.4 — 설정 호환 레이어)
882
-
883
- ### core/ (수정 5개)
884
-
885
- - [x] `core/contentGenerator.ts` 수정 (M2.1 — GeminiContentGenerator rename)
886
- - [x] `core/baseLlmClient.ts` 수정 (M2.1 — LlmGenerate\*Options)
887
- - [x] `core/loggingContentGenerator.ts` 수정 (M2.1 — llm\* 메서드 추가)
888
- - [x] `core/recordingContentGenerator.ts` 수정 (M2.1 — llm\* 메서드 추가)
889
- - [x] `core/fakeContentGenerator.ts` 수정 (M2.1 — llm\* 메서드 추가)
890
-
891
- ### utils/ (수정 3개, 신규 2개)
892
-
893
- - [x] `utils/retry.ts` 수정 (M2.1 — LlmError 재시도)
894
- - [x] `utils/tokenCalculation.ts` 수정 (M2.5 — estimateLlmTokenCount)
895
- - [x] `utils/partUtils.ts` 수정 (M2.5 — LlmMessage 유틸)
896
- - [x] `utils/llmUtils.ts` 생성 (M2.5 — 타입 가드 5개 + 인스펙터 2개)
897
- - [x] `utils/geminiTypeConversion.ts` 생성 (M2.6 — 변환 브릿지)
898
-
899
- ### routing/ (수정 7개)
900
-
901
- - [x] `routing/routingStrategy.ts` 수정 (M2.6 — @google/genai 제거) [Critical]
902
- - [x] `routing/strategies/*.ts` 수정 (M2.6 — 6개 전략 타입 전환)
903
-
904
- ## 다음 Phase 진행 조건
905
-
906
- - [x] Phase 2 모든 Milestone 완료 (M2.0~M2.6 + ETC)
907
- - [x] 동등성 검증 완료
908
- - [x] 🆕 18개 이벤트 매핑 검증 완료
909
- - [x] 기능 플래그 동작 확인
910
- - [ ] 코드 리뷰 완료 — → Phase 3 진입 전 최종 리뷰
911
-
912
- ---
913
-
914
- # ROLLBACK PLAN
915
-
916
- ## 긴급 롤백 시나리오
917
-
918
- 1. `ENABLE_MULTI_PROVIDER=false` 설정
919
- 2. 기존 Gemini 전용 경로로 폴백
920
- 3. 이슈 분석 및 수정
921
-
922
- ## 점진적 롤백
923
-
924
- 1. 문제 발생 컴포넌트 식별
925
- 2. 해당 컴포넌트만 레거시 모드 전환
926
- 3. 나머지 컴포넌트는 신규 경로 유지
927
-
928
- ---
929
-
930
- # NOTES
931
-
932
- ## 주의사항
933
-
934
- - GeminiChat (988라인) 리팩토링 시 점진적 접근
935
- - 스트리밍 로직 변경 시 충분한 테스트 필요
936
- - 기존 테스트 회귀 주의
937
- - 🆕 18개 이벤트 매핑 누락 방지
938
- - 🆕 라우팅 레이어 타입 전환 필수 (routingStrategy.ts) [Critical]
939
-
940
- ## 리뷰 2 제언사항 반영 [v0.3]
941
-
942
- 1. **Turn 클래스 rawResponse 설계**: 어댑터 도입 시 원본 응답 유지 방안 구현
943
- 단계에서 결정
944
- - `Turn.debugResponses`에 원본 응답 저장 중
945
- - `LlmGenerateResponse.rawResponse` 필드 활용 권장
946
- 2. **단계적 적용 순서 권장**:
947
- - 1단계: 타입 정의 (`Llm*`) 및 Alias 적용 (기존 코드 변경 없이)
948
- - 2단계: Utility 리팩토링 (`tokenCalculation`, `partUtils`)
949
- - 3단계: Adapter 구현 (실제 로직 분리)
950
- 3. **테스트 Mock 교체 비용**: `geminiChat.test.ts` 등의 Mock 객체를
951
- `ContentGenerator` 인터페이스 기반으로 교체 필요 → M3.5에서 처리
952
-
953
- ## TDD 원칙
954
-
955
- 1. 각 변환 함수마다 테스트 먼저 작성
956
- 2. 에지 케이스 (빈 응답, 에러 등) 테스트 포함
957
- 3. 동등성 테스트로 기존 동작 보장
958
- 4. 🆕 이벤트 매핑 테스트 전수 작성
959
-
960
- ## 참고 문서
961
-
962
- - [03-technical-design.md](../03-technical-design.md)
963
- - [05-implementation-plan.md](../05-implementation-plan.md)
964
- - 🆕 [event-mapping-matrix.md](../event-mapping-matrix.md)
965
-
966
- ---
967
-
968
- # CHANGE LOG
969
-
970
- | 날짜 | 버전 | 변경 내용 |
971
- | ---------- | ---- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
972
- | 2026-02-01 | 0.1 | 초안 작성 |
973
- | 2026-02-01 | 0.2 | 리뷰 반영: M2.0 디렉토리 재구성 신규, M2.2 EventMapper 상세화(18개 이벤트), M2.4 ModelConfigService 호환 레이어 신규, M2.5 유틸리티 레이어 리팩토링 신규 |
974
- | 2026-02-01 | 0.3 | 2차 리뷰 반영: M2.6 라우팅 레이어 리팩토링 신규 [Critical], 2.1.3 baseLlmClient 파일명 수정, 2.1.5 hooks 테스트 파일 목록 정정, 2.1.6 ContentGenerator 래퍼 마이그레이션 신규, 2.2.2a StreamEventType 매핑 신규 |