@didim365/agent-cli-core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2061) hide show
  1. package/dist/.last_build +0 -0
  2. package/dist/docs/00_project/ai_adapter/01-overview.md +172 -0
  3. package/dist/docs/00_project/ai_adapter/02-architecture.md +448 -0
  4. package/dist/docs/00_project/ai_adapter/03-technical-design.md +1470 -0
  5. package/dist/docs/00_project/ai_adapter/04-integration-design.md +1934 -0
  6. package/dist/docs/00_project/ai_adapter/05-implementation-plan.md +336 -0
  7. package/dist/docs/00_project/ai_adapter/06-didiaistudio-plan.md +559 -0
  8. package/dist/docs/00_project/ai_adapter/README.md +145 -0
  9. package/dist/docs/00_project/ai_adapter/agent_service_openapi.json +1 -0
  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 +148 -0
  12. package/dist/docs/00_project/ai_adapter/migration-plan.md +205 -0
  13. package/dist/docs/00_project/ai_adapter/template/00_vibecoding_workflow.md +627 -0
  14. package/dist/docs/00_project/ai_adapter/template/01_todolist_performance_template.md +436 -0
  15. package/dist/docs/00_project/ai_adapter/template/02_code_review_template.md +248 -0
  16. package/dist/docs/00_project/ai_adapter/template/03_work_result_report_template.md +133 -0
  17. package/dist/docs/00_project/ai_adapter/template/100_Python_Performance_Guide.md +472 -0
  18. package/dist/docs/00_project/ai_adapter/template/99_TDD_plan.md +123 -0
  19. package/dist/docs/00_project/ai_adapter/todolist/00_master_implementation_plan.md +433 -0
  20. package/dist/docs/00_project/ai_adapter/todolist/phase1_foundation_todolist.md +726 -0
  21. package/dist/docs/00_project/ai_adapter/todolist/phase2_core_refactoring_todolist.md +974 -0
  22. package/dist/docs/00_project/ai_adapter/todolist/phase3_handoff.md +203 -0
  23. package/dist/docs/00_project/ai_adapter/todolist/phase3_provider_extension_todolist.md +1382 -0
  24. package/dist/docs/00_project/ai_adapter/utility-migration.md +237 -0
  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 +197 -0
  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 +185 -0
  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 +378 -0
  29. package/dist/docs/00_project/ai_adapter/working_history/Phase1_M1.3_Provider/354/204/240/355/203/235_20260206.md +269 -0
  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 +86 -0
  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 +157 -0
  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 +107 -0
  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 +630 -0
  34. package/dist/docs/00_project/ai_adapter/working_history/Phase2_M2.2_EventMapper/352/265/254/355/230/204_20260207.md +372 -0
  35. package/dist/docs/00_project/ai_adapter/working_history/Phase2_M2.3_GeminiAdapter/352/265/254/355/230/204_20260208.md +205 -0
  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 +275 -0
  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 +239 -0
  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 +228 -0
  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 +470 -0
  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 +271 -0
  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 +330 -0
  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 +251 -0
  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 +136 -0
  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 +232 -0
  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 +191 -0
  46. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.1.1_ClaudeAdapter/352/265/254/355/230/204_20260209.md +225 -0
  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 +171 -0
  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 +198 -0
  49. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.1.4_ClaudeErrorMapping_20260209.md +98 -0
  50. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.2.A_OpenAIAdapterCore_20260210.md +264 -0
  51. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.2.B_OpenAIStreamConverter_20260210.md +204 -0
  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 +106 -0
  53. package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.3_OpenAICompatibleAdapter_20260211.md +251 -0
  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 +264 -0
  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 +176 -0
  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 +204 -0
  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 +316 -0
  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 +262 -0
  59. package/dist/docs/00_project/ai_adapter/working_history/phase2_tradeoff_EventType/354/240/204/355/231/230_20260208.md +286 -0
  60. package/dist/docs/00_project/white_labeling/template/00_vibecoding_workflow.md +627 -0
  61. package/dist/docs/00_project/white_labeling/template/01_todolist_performance_template.md +400 -0
  62. package/dist/docs/00_project/white_labeling/template/02_code_review_template.md +248 -0
  63. package/dist/docs/00_project/white_labeling/template/03_work_result_report_template.md +133 -0
  64. package/dist/docs/00_project/white_labeling/template/100_Python_Performance_Guide.md +472 -0
  65. package/dist/docs/00_project/white_labeling/template/99_TDD_plan.md +123 -0
  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 +431 -0
  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 +238 -0
  68. package/dist/docs/00_project/white_labeling//354/225/261/352/265/254/354/241/260.md +310 -0
  69. package/dist/docs/CONTRIBUTING.md +554 -0
  70. package/dist/docs/ai_adapter/01-overview.md +155 -0
  71. package/dist/docs/ai_adapter/02-architecture.md +452 -0
  72. package/dist/docs/ai_adapter/03-technical-design.md +1470 -0
  73. package/dist/docs/ai_adapter/04-integration-design.md +1904 -0
  74. package/dist/docs/ai_adapter/05-implementation-plan.md +312 -0
  75. package/dist/docs/ai_adapter/06-didiaistudio-plan.md +559 -0
  76. package/dist/docs/ai_adapter/README.md +118 -0
  77. package/dist/docs/ai_adapter/agent_service_openapi.json +1 -0
  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 +140 -0
  80. package/dist/docs/ai_adapter/migration-plan.md +205 -0
  81. package/dist/docs/ai_adapter/template/00_vibecoding_workflow.md +636 -0
  82. package/dist/docs/ai_adapter/template/01_todolist_performance_template.md +372 -0
  83. package/dist/docs/ai_adapter/template/02_code_review_template.md +220 -0
  84. package/dist/docs/ai_adapter/template/03_work_result_report_template.md +120 -0
  85. package/dist/docs/ai_adapter/template/100_Python_Performance_Guide.md +453 -0
  86. package/dist/docs/ai_adapter/template/99_TDD_plan.md +111 -0
  87. package/dist/docs/ai_adapter/todolist/00_master_implementation_plan.md +433 -0
  88. package/dist/docs/ai_adapter/todolist/phase1_foundation_todolist.md +726 -0
  89. package/dist/docs/ai_adapter/todolist/phase2_core_refactoring_todolist.md +974 -0
  90. package/dist/docs/ai_adapter/todolist/phase3_handoff.md +203 -0
  91. package/dist/docs/ai_adapter/todolist/phase3_provider_extension_todolist.md +1382 -0
  92. package/dist/docs/ai_adapter/utility-migration.md +237 -0
  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 +185 -0
  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 +185 -0
  96. package/dist/docs/ai_adapter/working_history/Phase1_M1.2_Adapter/354/235/270/355/224/204/353/235/274_20260203.md +378 -0
  97. package/dist/docs/ai_adapter/working_history/Phase1_M1.3_Provider/354/204/240/355/203/235_20260206.md +269 -0
  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 +86 -0
  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 +157 -0
  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 +107 -0
  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 +630 -0
  102. package/dist/docs/ai_adapter/working_history/Phase2_M2.2_EventMapper/352/265/254/355/230/204_20260207.md +372 -0
  103. package/dist/docs/ai_adapter/working_history/Phase2_M2.3_GeminiAdapter/352/265/254/355/230/204_20260208.md +205 -0
  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 +275 -0
  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 +239 -0
  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 +228 -0
  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 +367 -0
  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 +271 -0
  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 +330 -0
  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 +251 -0
  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 +136 -0
  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 +232 -0
  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 +191 -0
  114. package/dist/docs/ai_adapter/working_history/Phase3_M3.1.1_ClaudeAdapter/352/265/254/355/230/204_20260209.md +225 -0
  115. package/dist/docs/ai_adapter/working_history/Phase3_M3.1.2_ClaudeConverter/352/263/240/353/217/204/355/231/224_20260209.md +171 -0
  116. package/dist/docs/ai_adapter/working_history/Phase3_M3.1.3_ClaudeStreamError/352/263/240/353/217/204/355/231/224_20260209.md +198 -0
  117. package/dist/docs/ai_adapter/working_history/Phase3_M3.1.4_ClaudeErrorMapping_20260209.md +98 -0
  118. package/dist/docs/ai_adapter/working_history/Phase3_M3.2.A_OpenAIAdapterCore_20260210.md +264 -0
  119. package/dist/docs/ai_adapter/working_history/Phase3_M3.2.B_OpenAIStreamConverter_20260210.md +204 -0
  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 +106 -0
  121. package/dist/docs/ai_adapter/working_history/Phase3_M3.3_OpenAICompatibleAdapter_20260211.md +251 -0
  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 +264 -0
  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 +176 -0
  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 +204 -0
  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 +316 -0
  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 +262 -0
  127. package/dist/docs/ai_adapter/working_history/phase2_tradeoff_EventType/354/240/204/355/231/230_20260208.md +286 -0
  128. package/dist/docs/api/index.md +5 -0
  129. package/dist/docs/api/providers.md +56 -0
  130. package/dist/docs/architecture.md +80 -0
  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 +221 -0
  151. package/dist/docs/change_model/model_command_multi_provider_todolist.md +206 -0
  152. package/dist/docs/changelogs/index.md +726 -0
  153. package/dist/docs/changelogs/latest.md +370 -0
  154. package/dist/docs/changelogs/preview.md +332 -0
  155. package/dist/docs/cli/authentication.md +3 -0
  156. package/dist/docs/cli/checkpointing.md +94 -0
  157. package/dist/docs/cli/commands.md +375 -0
  158. package/dist/docs/cli/custom-commands.md +315 -0
  159. package/dist/docs/cli/enterprise.md +565 -0
  160. package/dist/docs/cli/gemini-ignore.md +71 -0
  161. package/dist/docs/cli/gemini-md.md +108 -0
  162. package/dist/docs/cli/generation-settings.md +210 -0
  163. package/dist/docs/cli/headless.md +388 -0
  164. package/dist/docs/cli/index.md +65 -0
  165. package/dist/docs/cli/keyboard-shortcuts.md +129 -0
  166. package/dist/docs/cli/model-routing.md +42 -0
  167. package/dist/docs/cli/model.md +62 -0
  168. package/dist/docs/cli/sandbox.md +171 -0
  169. package/dist/docs/cli/session-management.md +158 -0
  170. package/dist/docs/cli/settings.md +130 -0
  171. package/dist/docs/cli/skills.md +188 -0
  172. package/dist/docs/cli/system-prompt.md +125 -0
  173. package/dist/docs/cli/telemetry.md +826 -0
  174. package/dist/docs/cli/themes.md +235 -0
  175. package/dist/docs/cli/token-caching.md +20 -0
  176. package/dist/docs/cli/trusted-folders.md +95 -0
  177. package/dist/docs/cli/tutorials/skills-getting-started.md +124 -0
  178. package/dist/docs/cli/tutorials.md +87 -0
  179. package/dist/docs/cli/uninstall.md +65 -0
  180. package/dist/docs/configuration.md +108 -0
  181. package/dist/docs/core/index.md +105 -0
  182. package/dist/docs/core/long-term-memory-design.md +254 -0
  183. package/dist/docs/core/long-term-memory-proposal.md +112 -0
  184. package/dist/docs/core/memport.md +246 -0
  185. package/dist/docs/core/policy-engine.md +300 -0
  186. package/dist/docs/core/tools-api.md +131 -0
  187. package/dist/docs/examples/proxy-script.md +83 -0
  188. package/dist/docs/extensions/best-practices.md +139 -0
  189. package/dist/docs/extensions/index.md +44 -0
  190. package/dist/docs/extensions/reference.md +312 -0
  191. package/dist/docs/extensions/releasing.md +183 -0
  192. package/dist/docs/extensions/writing-extensions.md +283 -0
  193. package/dist/docs/faq.md +154 -0
  194. package/dist/docs/get-started/authentication.md +321 -0
  195. package/dist/docs/get-started/configuration-v1.md +888 -0
  196. package/dist/docs/get-started/configuration.md +1567 -0
  197. package/dist/docs/get-started/examples.md +219 -0
  198. package/dist/docs/get-started/gemini-3.md +101 -0
  199. package/dist/docs/get-started/index.md +71 -0
  200. package/dist/docs/get-started/installation.md +141 -0
  201. package/dist/docs/hooks/best-practices.md +677 -0
  202. package/dist/docs/hooks/index.md +178 -0
  203. package/dist/docs/hooks/reference.md +322 -0
  204. package/dist/docs/hooks/writing-hooks.md +450 -0
  205. package/dist/docs/ide-integration/ide-companion-spec.md +267 -0
  206. package/dist/docs/ide-integration/index.md +202 -0
  207. package/dist/docs/index.md +153 -0
  208. package/dist/docs/integration-tests.md +211 -0
  209. package/dist/docs/issue-and-pr-automation.md +134 -0
  210. package/dist/docs/local-development.md +128 -0
  211. package/dist/docs/mermaid/context.mmd +103 -0
  212. package/dist/docs/mermaid/render-path.mmd +64 -0
  213. package/dist/docs/migration.md +78 -0
  214. package/dist/docs/npm.md +62 -0
  215. package/dist/docs/providers.md +136 -0
  216. package/dist/docs/quota-and-pricing.md +158 -0
  217. package/dist/docs/release-confidence.md +164 -0
  218. package/dist/docs/releases.md +539 -0
  219. package/dist/docs/sidebar.json +140 -0
  220. package/dist/docs/tools/file-system.md +217 -0
  221. package/dist/docs/tools/index.md +98 -0
  222. package/dist/docs/tools/mcp-server.md +1068 -0
  223. package/dist/docs/tools/memory.md +54 -0
  224. package/dist/docs/tools/shell.md +260 -0
  225. package/dist/docs/tools/todos.md +57 -0
  226. package/dist/docs/tools/web-fetch.md +59 -0
  227. package/dist/docs/tools/web-search.md +42 -0
  228. package/dist/docs/tos-privacy.md +96 -0
  229. package/dist/docs/troubleshooting.md +173 -0
  230. package/dist/index.d.ts +24 -0
  231. package/dist/index.js +24 -0
  232. package/dist/index.js.map +1 -0
  233. package/dist/src/__mocks__/fs/promises.d.ts +11 -0
  234. package/dist/src/__mocks__/fs/promises.js +17 -0
  235. package/dist/src/__mocks__/fs/promises.js.map +1 -0
  236. package/dist/src/agents/a2a-client-manager.d.ts +77 -0
  237. package/dist/src/agents/a2a-client-manager.js +173 -0
  238. package/dist/src/agents/a2a-client-manager.js.map +1 -0
  239. package/dist/src/agents/a2a-client-manager.test.d.ts +6 -0
  240. package/dist/src/agents/a2a-client-manager.test.js +220 -0
  241. package/dist/src/agents/a2a-client-manager.test.js.map +1 -0
  242. package/dist/src/agents/a2aUtils.d.ts +29 -0
  243. package/dist/src/agents/a2aUtils.js +113 -0
  244. package/dist/src/agents/a2aUtils.js.map +1 -0
  245. package/dist/src/agents/a2aUtils.test.d.ts +6 -0
  246. package/dist/src/agents/a2aUtils.test.js +147 -0
  247. package/dist/src/agents/a2aUtils.test.js.map +1 -0
  248. package/dist/src/agents/acknowledgedAgents.d.ts +18 -0
  249. package/dist/src/agents/acknowledgedAgents.js +58 -0
  250. package/dist/src/agents/acknowledgedAgents.js.map +1 -0
  251. package/dist/src/agents/acknowledgedAgents.test.d.ts +6 -0
  252. package/dist/src/agents/acknowledgedAgents.test.js +70 -0
  253. package/dist/src/agents/acknowledgedAgents.test.js.map +1 -0
  254. package/dist/src/agents/agent-scheduler.d.ts +33 -0
  255. package/dist/src/agents/agent-scheduler.js +29 -0
  256. package/dist/src/agents/agent-scheduler.js.map +1 -0
  257. package/dist/src/agents/agent-scheduler.test.d.ts +6 -0
  258. package/dist/src/agents/agent-scheduler.test.js +56 -0
  259. package/dist/src/agents/agent-scheduler.test.js.map +1 -0
  260. package/dist/src/agents/agentLoader.d.ts +73 -0
  261. package/dist/src/agents/agentLoader.js +268 -0
  262. package/dist/src/agents/agentLoader.js.map +1 -0
  263. package/dist/src/agents/agentLoader.test.d.ts +6 -0
  264. package/dist/src/agents/agentLoader.test.js +304 -0
  265. package/dist/src/agents/agentLoader.test.js.map +1 -0
  266. package/dist/src/agents/cli-help-agent.d.ts +24 -0
  267. package/dist/src/agents/cli-help-agent.js +88 -0
  268. package/dist/src/agents/cli-help-agent.js.map +1 -0
  269. package/dist/src/agents/cli-help-agent.test.d.ts +6 -0
  270. package/dist/src/agents/cli-help-agent.test.js +67 -0
  271. package/dist/src/agents/cli-help-agent.test.js.map +1 -0
  272. package/dist/src/agents/codebase-investigator.d.ts +47 -0
  273. package/dist/src/agents/codebase-investigator.js +159 -0
  274. package/dist/src/agents/codebase-investigator.js.map +1 -0
  275. package/dist/src/agents/codebase-investigator.test.d.ts +6 -0
  276. package/dist/src/agents/codebase-investigator.test.js +42 -0
  277. package/dist/src/agents/codebase-investigator.test.js.map +1 -0
  278. package/dist/src/agents/generalist-agent.d.ts +21 -0
  279. package/dist/src/agents/generalist-agent.js +60 -0
  280. package/dist/src/agents/generalist-agent.js.map +1 -0
  281. package/dist/src/agents/generalist-agent.test.d.ts +6 -0
  282. package/dist/src/agents/generalist-agent.test.js +31 -0
  283. package/dist/src/agents/generalist-agent.test.js.map +1 -0
  284. package/dist/src/agents/local-executor.d.ts +111 -0
  285. package/dist/src/agents/local-executor.js +884 -0
  286. package/dist/src/agents/local-executor.js.map +1 -0
  287. package/dist/src/agents/local-executor.test.d.ts +6 -0
  288. package/dist/src/agents/local-executor.test.js +1577 -0
  289. package/dist/src/agents/local-executor.test.js.map +1 -0
  290. package/dist/src/agents/local-invocation.d.ts +45 -0
  291. package/dist/src/agents/local-invocation.js +101 -0
  292. package/dist/src/agents/local-invocation.js.map +1 -0
  293. package/dist/src/agents/local-invocation.test.d.ts +6 -0
  294. package/dist/src/agents/local-invocation.test.js +228 -0
  295. package/dist/src/agents/local-invocation.test.js.map +1 -0
  296. package/dist/src/agents/registry.d.ts +84 -0
  297. package/dist/src/agents/registry.js +346 -0
  298. package/dist/src/agents/registry.js.map +1 -0
  299. package/dist/src/agents/registry.test.d.ts +6 -0
  300. package/dist/src/agents/registry.test.js +773 -0
  301. package/dist/src/agents/registry.test.js.map +1 -0
  302. package/dist/src/agents/registry_acknowledgement.test.d.ts +6 -0
  303. package/dist/src/agents/registry_acknowledgement.test.js +130 -0
  304. package/dist/src/agents/registry_acknowledgement.test.js.map +1 -0
  305. package/dist/src/agents/remote-invocation.d.ts +35 -0
  306. package/dist/src/agents/remote-invocation.js +127 -0
  307. package/dist/src/agents/remote-invocation.js.map +1 -0
  308. package/dist/src/agents/remote-invocation.test.d.ts +6 -0
  309. package/dist/src/agents/remote-invocation.test.js +213 -0
  310. package/dist/src/agents/remote-invocation.test.js.map +1 -0
  311. package/dist/src/agents/subagent-tool-wrapper.d.ts +38 -0
  312. package/dist/src/agents/subagent-tool-wrapper.js +51 -0
  313. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -0
  314. package/dist/src/agents/subagent-tool-wrapper.test.d.ts +6 -0
  315. package/dist/src/agents/subagent-tool-wrapper.test.js +109 -0
  316. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -0
  317. package/dist/src/agents/subagent-tool.d.ts +15 -0
  318. package/dist/src/agents/subagent-tool.js +61 -0
  319. package/dist/src/agents/subagent-tool.js.map +1 -0
  320. package/dist/src/agents/types.d.ts +171 -0
  321. package/dist/src/agents/types.js +23 -0
  322. package/dist/src/agents/types.js.map +1 -0
  323. package/dist/src/agents/utils.d.ts +15 -0
  324. package/dist/src/agents/utils.js +29 -0
  325. package/dist/src/agents/utils.js.map +1 -0
  326. package/dist/src/agents/utils.test.d.ts +6 -0
  327. package/dist/src/agents/utils.test.js +87 -0
  328. package/dist/src/agents/utils.test.js.map +1 -0
  329. package/dist/src/availability/errorClassification.d.ts +7 -0
  330. package/dist/src/availability/errorClassification.js +20 -0
  331. package/dist/src/availability/errorClassification.js.map +1 -0
  332. package/dist/src/availability/fallbackIntegration.test.d.ts +6 -0
  333. package/dist/src/availability/fallbackIntegration.test.js +58 -0
  334. package/dist/src/availability/fallbackIntegration.test.js.map +1 -0
  335. package/dist/src/availability/modelAvailabilityService.d.ts +36 -0
  336. package/dist/src/availability/modelAvailabilityService.js +87 -0
  337. package/dist/src/availability/modelAvailabilityService.js.map +1 -0
  338. package/dist/src/availability/modelAvailabilityService.test.d.ts +6 -0
  339. package/dist/src/availability/modelAvailabilityService.test.js +140 -0
  340. package/dist/src/availability/modelAvailabilityService.test.js.map +1 -0
  341. package/dist/src/availability/modelPolicy.d.ts +49 -0
  342. package/dist/src/availability/modelPolicy.js +7 -0
  343. package/dist/src/availability/modelPolicy.js.map +1 -0
  344. package/dist/src/availability/policyCatalog.d.ts +24 -0
  345. package/dist/src/availability/policyCatalog.js +106 -0
  346. package/dist/src/availability/policyCatalog.js.map +1 -0
  347. package/dist/src/availability/policyCatalog.test.d.ts +6 -0
  348. package/dist/src/availability/policyCatalog.test.js +70 -0
  349. package/dist/src/availability/policyCatalog.test.js.map +1 -0
  350. package/dist/src/availability/policyHelpers.d.ts +52 -0
  351. package/dist/src/availability/policyHelpers.js +143 -0
  352. package/dist/src/availability/policyHelpers.js.map +1 -0
  353. package/dist/src/availability/policyHelpers.test.d.ts +6 -0
  354. package/dist/src/availability/policyHelpers.test.js +220 -0
  355. package/dist/src/availability/policyHelpers.test.js.map +1 -0
  356. package/dist/src/availability/testUtils.d.ts +10 -0
  357. package/dist/src/availability/testUtils.js +22 -0
  358. package/dist/src/availability/testUtils.js.map +1 -0
  359. package/dist/src/code_assist/admin/admin_controls.d.ts +23 -0
  360. package/dist/src/code_assist/admin/admin_controls.js +88 -0
  361. package/dist/src/code_assist/admin/admin_controls.js.map +1 -0
  362. package/dist/src/code_assist/admin/admin_controls.test.d.ts +6 -0
  363. package/dist/src/code_assist/admin/admin_controls.test.js +200 -0
  364. package/dist/src/code_assist/admin/admin_controls.test.js.map +1 -0
  365. package/dist/src/code_assist/codeAssist.d.ts +12 -0
  366. package/dist/src/code_assist/codeAssist.js +31 -0
  367. package/dist/src/code_assist/codeAssist.js.map +1 -0
  368. package/dist/src/code_assist/codeAssist.test.d.ts +6 -0
  369. package/dist/src/code_assist/codeAssist.test.js +102 -0
  370. package/dist/src/code_assist/codeAssist.test.js.map +1 -0
  371. package/dist/src/code_assist/converter.d.ts +75 -0
  372. package/dist/src/code_assist/converter.js +161 -0
  373. package/dist/src/code_assist/converter.js.map +1 -0
  374. package/dist/src/code_assist/converter.test.d.ts +6 -0
  375. package/dist/src/code_assist/converter.test.js +391 -0
  376. package/dist/src/code_assist/converter.test.js.map +1 -0
  377. package/dist/src/code_assist/experiments/client_metadata.d.ts +12 -0
  378. package/dist/src/code_assist/experiments/client_metadata.js +51 -0
  379. package/dist/src/code_assist/experiments/client_metadata.js.map +1 -0
  380. package/dist/src/code_assist/experiments/client_metadata.test.d.ts +6 -0
  381. package/dist/src/code_assist/experiments/client_metadata.test.js +96 -0
  382. package/dist/src/code_assist/experiments/client_metadata.test.js.map +1 -0
  383. package/dist/src/code_assist/experiments/experiments.d.ts +17 -0
  384. package/dist/src/code_assist/experiments/experiments.js +57 -0
  385. package/dist/src/code_assist/experiments/experiments.js.map +1 -0
  386. package/dist/src/code_assist/experiments/experiments.test.d.ts +6 -0
  387. package/dist/src/code_assist/experiments/experiments.test.js +93 -0
  388. package/dist/src/code_assist/experiments/experiments.test.js.map +1 -0
  389. package/dist/src/code_assist/experiments/experiments_local.test.d.ts +6 -0
  390. package/dist/src/code_assist/experiments/experiments_local.test.js +115 -0
  391. package/dist/src/code_assist/experiments/experiments_local.test.js.map +1 -0
  392. package/dist/src/code_assist/experiments/flagNames.d.ts +16 -0
  393. package/dist/src/code_assist/experiments/flagNames.js +16 -0
  394. package/dist/src/code_assist/experiments/flagNames.js.map +1 -0
  395. package/dist/src/code_assist/experiments/types.d.ts +35 -0
  396. package/dist/src/code_assist/experiments/types.js +7 -0
  397. package/dist/src/code_assist/experiments/types.js.map +1 -0
  398. package/dist/src/code_assist/oauth-credential-storage.d.ts +25 -0
  399. package/dist/src/code_assist/oauth-credential-storage.js +109 -0
  400. package/dist/src/code_assist/oauth-credential-storage.js.map +1 -0
  401. package/dist/src/code_assist/oauth-credential-storage.test.d.ts +6 -0
  402. package/dist/src/code_assist/oauth-credential-storage.test.js +198 -0
  403. package/dist/src/code_assist/oauth-credential-storage.test.js.map +1 -0
  404. package/dist/src/code_assist/oauth2.d.ts +24 -0
  405. package/dist/src/code_assist/oauth2.js +538 -0
  406. package/dist/src/code_assist/oauth2.js.map +1 -0
  407. package/dist/src/code_assist/oauth2.test.d.ts +6 -0
  408. package/dist/src/code_assist/oauth2.test.js +1065 -0
  409. package/dist/src/code_assist/oauth2.test.js.map +1 -0
  410. package/dist/src/code_assist/server.d.ts +50 -0
  411. package/dist/src/code_assist/server.js +227 -0
  412. package/dist/src/code_assist/server.js.map +1 -0
  413. package/dist/src/code_assist/server.test.d.ts +6 -0
  414. package/dist/src/code_assist/server.test.js +453 -0
  415. package/dist/src/code_assist/server.test.js.map +1 -0
  416. package/dist/src/code_assist/setup.d.ts +46 -0
  417. package/dist/src/code_assist/setup.js +179 -0
  418. package/dist/src/code_assist/setup.js.map +1 -0
  419. package/dist/src/code_assist/setup.test.d.ts +6 -0
  420. package/dist/src/code_assist/setup.test.js +517 -0
  421. package/dist/src/code_assist/setup.test.js.map +1 -0
  422. package/dist/src/code_assist/telemetry.d.ts +14 -0
  423. package/dist/src/code_assist/telemetry.js +157 -0
  424. package/dist/src/code_assist/telemetry.js.map +1 -0
  425. package/dist/src/code_assist/telemetry.test.d.ts +6 -0
  426. package/dist/src/code_assist/telemetry.test.js +301 -0
  427. package/dist/src/code_assist/telemetry.test.js.map +1 -0
  428. package/dist/src/code_assist/types.d.ts +303 -0
  429. package/dist/src/code_assist/types.js +92 -0
  430. package/dist/src/code_assist/types.js.map +1 -0
  431. package/dist/src/commands/extensions.d.ts +7 -0
  432. package/dist/src/commands/extensions.js +9 -0
  433. package/dist/src/commands/extensions.js.map +1 -0
  434. package/dist/src/commands/extensions.test.d.ts +6 -0
  435. package/dist/src/commands/extensions.test.js +19 -0
  436. package/dist/src/commands/extensions.test.js.map +1 -0
  437. package/dist/src/commands/init.d.ts +7 -0
  438. package/dist/src/commands/init.js +54 -0
  439. package/dist/src/commands/init.js.map +1 -0
  440. package/dist/src/commands/init.test.d.ts +6 -0
  441. package/dist/src/commands/init.test.js +25 -0
  442. package/dist/src/commands/init.test.js.map +1 -0
  443. package/dist/src/commands/memory.d.ts +11 -0
  444. package/dist/src/commands/memory.js +89 -0
  445. package/dist/src/commands/memory.js.map +1 -0
  446. package/dist/src/commands/memory.test.d.ts +6 -0
  447. package/dist/src/commands/memory.test.js +182 -0
  448. package/dist/src/commands/memory.test.js.map +1 -0
  449. package/dist/src/commands/restore.d.ts +9 -0
  450. package/dist/src/commands/restore.js +46 -0
  451. package/dist/src/commands/restore.js.map +1 -0
  452. package/dist/src/commands/restore.test.d.ts +6 -0
  453. package/dist/src/commands/restore.test.js +137 -0
  454. package/dist/src/commands/restore.test.js.map +1 -0
  455. package/dist/src/commands/types.d.ts +41 -0
  456. package/dist/src/commands/types.js +7 -0
  457. package/dist/src/commands/types.js.map +1 -0
  458. package/dist/src/config/config.d.ts +696 -0
  459. package/dist/src/config/config.js +1567 -0
  460. package/dist/src/config/config.js.map +1 -0
  461. package/dist/src/config/config.test.d.ts +6 -0
  462. package/dist/src/config/config.test.js +1811 -0
  463. package/dist/src/config/config.test.js.map +1 -0
  464. package/dist/src/config/constants.d.ts +13 -0
  465. package/dist/src/config/constants.js +20 -0
  466. package/dist/src/config/constants.js.map +1 -0
  467. package/dist/src/config/defaultModelConfigs.d.ts +7 -0
  468. package/dist/src/config/defaultModelConfigs.js +231 -0
  469. package/dist/src/config/defaultModelConfigs.js.map +1 -0
  470. package/dist/src/config/flashFallback.test.d.ts +6 -0
  471. package/dist/src/config/flashFallback.test.js +63 -0
  472. package/dist/src/config/flashFallback.test.js.map +1 -0
  473. package/dist/src/config/models.d.ts +67 -0
  474. package/dist/src/config/models.js +144 -0
  475. package/dist/src/config/models.js.map +1 -0
  476. package/dist/src/config/models.test.d.ts +6 -0
  477. package/dist/src/config/models.test.js +146 -0
  478. package/dist/src/config/models.test.js.map +1 -0
  479. package/dist/src/config/storage.d.ts +44 -0
  480. package/dist/src/config/storage.js +139 -0
  481. package/dist/src/config/storage.js.map +1 -0
  482. package/dist/src/config/storage.test.d.ts +6 -0
  483. package/dist/src/config/storage.test.js +115 -0
  484. package/dist/src/config/storage.test.js.map +1 -0
  485. package/dist/src/confirmation-bus/index.d.ts +7 -0
  486. package/dist/src/confirmation-bus/index.js +8 -0
  487. package/dist/src/confirmation-bus/index.js.map +1 -0
  488. package/dist/src/confirmation-bus/message-bus.d.ts +24 -0
  489. package/dist/src/confirmation-bus/message-bus.js +120 -0
  490. package/dist/src/confirmation-bus/message-bus.js.map +1 -0
  491. package/dist/src/confirmation-bus/message-bus.test.d.ts +6 -0
  492. package/dist/src/confirmation-bus/message-bus.test.js +170 -0
  493. package/dist/src/confirmation-bus/message-bus.test.js.map +1 -0
  494. package/dist/src/confirmation-bus/types.d.ts +141 -0
  495. package/dist/src/confirmation-bus/types.js +25 -0
  496. package/dist/src/confirmation-bus/types.js.map +1 -0
  497. package/dist/src/core/apiKeyCredentialStorage.d.ts +17 -0
  498. package/dist/src/core/apiKeyCredentialStorage.js +64 -0
  499. package/dist/src/core/apiKeyCredentialStorage.js.map +1 -0
  500. package/dist/src/core/apiKeyCredentialStorage.test.d.ts +6 -0
  501. package/dist/src/core/apiKeyCredentialStorage.test.js +71 -0
  502. package/dist/src/core/apiKeyCredentialStorage.test.js.map +1 -0
  503. package/dist/src/core/baseLlmClient.d.ts +131 -0
  504. package/dist/src/core/baseLlmClient.js +282 -0
  505. package/dist/src/core/baseLlmClient.js.map +1 -0
  506. package/dist/src/core/baseLlmClient.test.d.ts +6 -0
  507. package/dist/src/core/baseLlmClient.test.js +569 -0
  508. package/dist/src/core/baseLlmClient.test.js.map +1 -0
  509. package/dist/src/core/baseLlmClient_new_types.test.d.ts +1 -0
  510. package/dist/src/core/baseLlmClient_new_types.test.js +387 -0
  511. package/dist/src/core/baseLlmClient_new_types.test.js.map +1 -0
  512. package/dist/src/core/client.d.ts +71 -0
  513. package/dist/src/core/client.js +882 -0
  514. package/dist/src/core/client.js.map +1 -0
  515. package/dist/src/core/client.test.d.ts +6 -0
  516. package/dist/src/core/client.test.js +2654 -0
  517. package/dist/src/core/client.test.js.map +1 -0
  518. package/dist/src/core/contentGenerator.d.ts +55 -0
  519. package/dist/src/core/contentGenerator.js +201 -0
  520. package/dist/src/core/contentGenerator.js.map +1 -0
  521. package/dist/src/core/contentGenerator.multiProvider.test.d.ts +6 -0
  522. package/dist/src/core/contentGenerator.multiProvider.test.js +314 -0
  523. package/dist/src/core/contentGenerator.multiProvider.test.js.map +1 -0
  524. package/dist/src/core/contentGenerator.test.d.ts +6 -0
  525. package/dist/src/core/contentGenerator.test.js +299 -0
  526. package/dist/src/core/contentGenerator.test.js.map +1 -0
  527. package/dist/src/core/contentGenerator_new_types.test.d.ts +6 -0
  528. package/dist/src/core/contentGenerator_new_types.test.js +292 -0
  529. package/dist/src/core/contentGenerator_new_types.test.js.map +1 -0
  530. package/dist/src/core/coreToolHookTriggers.d.ts +23 -0
  531. package/dist/src/core/coreToolHookTriggers.js +195 -0
  532. package/dist/src/core/coreToolHookTriggers.js.map +1 -0
  533. package/dist/src/core/coreToolHookTriggers.test.d.ts +6 -0
  534. package/dist/src/core/coreToolHookTriggers.test.js +159 -0
  535. package/dist/src/core/coreToolHookTriggers.test.js.map +1 -0
  536. package/dist/src/core/coreToolScheduler.d.ts +50 -0
  537. package/dist/src/core/coreToolScheduler.js +703 -0
  538. package/dist/src/core/coreToolScheduler.js.map +1 -0
  539. package/dist/src/core/coreToolScheduler.test.d.ts +6 -0
  540. package/dist/src/core/coreToolScheduler.test.js +1684 -0
  541. package/dist/src/core/coreToolScheduler.test.js.map +1 -0
  542. package/dist/src/core/fakeContentGenerator.d.ts +49 -0
  543. package/dist/src/core/fakeContentGenerator.js +76 -0
  544. package/dist/src/core/fakeContentGenerator.js.map +1 -0
  545. package/dist/src/core/fakeContentGenerator.test.d.ts +6 -0
  546. package/dist/src/core/fakeContentGenerator.test.js +127 -0
  547. package/dist/src/core/fakeContentGenerator.test.js.map +1 -0
  548. package/dist/src/core/geminiChat.d.ts +11 -0
  549. package/dist/src/core/geminiChat.js +12 -0
  550. package/dist/src/core/geminiChat.js.map +1 -0
  551. package/dist/src/core/geminiChat.test.d.ts +6 -0
  552. package/dist/src/core/geminiChat.test.js +1773 -0
  553. package/dist/src/core/geminiChat.test.js.map +1 -0
  554. package/dist/src/core/geminiChat_network_retry.test.d.ts +6 -0
  555. package/dist/src/core/geminiChat_network_retry.test.js +201 -0
  556. package/dist/src/core/geminiChat_network_retry.test.js.map +1 -0
  557. package/dist/src/core/geminiRequest.d.ts +13 -0
  558. package/dist/src/core/geminiRequest.js +11 -0
  559. package/dist/src/core/geminiRequest.js.map +1 -0
  560. package/dist/src/core/logger.d.ts +65 -0
  561. package/dist/src/core/logger.js +368 -0
  562. package/dist/src/core/logger.js.map +1 -0
  563. package/dist/src/core/logger.test.d.ts +6 -0
  564. package/dist/src/core/logger.test.js +550 -0
  565. package/dist/src/core/logger.test.js.map +1 -0
  566. package/dist/src/core/loggingContentGenerator.d.ts +35 -0
  567. package/dist/src/core/loggingContentGenerator.js +254 -0
  568. package/dist/src/core/loggingContentGenerator.js.map +1 -0
  569. package/dist/src/core/loggingContentGenerator.test.d.ts +6 -0
  570. package/dist/src/core/loggingContentGenerator.test.js +221 -0
  571. package/dist/src/core/loggingContentGenerator.test.js.map +1 -0
  572. package/dist/src/core/prompts-substitution.test.d.ts +6 -0
  573. package/dist/src/core/prompts-substitution.test.js +101 -0
  574. package/dist/src/core/prompts-substitution.test.js.map +1 -0
  575. package/dist/src/core/prompts.d.ts +18 -0
  576. package/dist/src/core/prompts.js +522 -0
  577. package/dist/src/core/prompts.js.map +1 -0
  578. package/dist/src/core/prompts.test.d.ts +6 -0
  579. package/dist/src/core/prompts.test.js +391 -0
  580. package/dist/src/core/prompts.test.js.map +1 -0
  581. package/dist/src/core/recordingContentGenerator.d.ts +25 -0
  582. package/dist/src/core/recordingContentGenerator.js +138 -0
  583. package/dist/src/core/recordingContentGenerator.js.map +1 -0
  584. package/dist/src/core/recordingContentGenerator.test.d.ts +6 -0
  585. package/dist/src/core/recordingContentGenerator.test.js +101 -0
  586. package/dist/src/core/recordingContentGenerator.test.js.map +1 -0
  587. package/dist/src/core/tokenLimits.d.ts +10 -0
  588. package/dist/src/core/tokenLimits.js +22 -0
  589. package/dist/src/core/tokenLimits.js.map +1 -0
  590. package/dist/src/core/tokenLimits.test.d.ts +6 -0
  591. package/dist/src/core/tokenLimits.test.js +30 -0
  592. package/dist/src/core/tokenLimits.test.js.map +1 -0
  593. package/dist/src/core/turn.d.ts +11 -0
  594. package/dist/src/core/turn.js +18 -0
  595. package/dist/src/core/turn.js.map +1 -0
  596. package/dist/src/core/turn.test.d.ts +6 -0
  597. package/dist/src/core/turn.test.js +739 -0
  598. package/dist/src/core/turn.test.js.map +1 -0
  599. package/dist/src/fallback/handler.d.ts +7 -0
  600. package/dist/src/fallback/handler.js +110 -0
  601. package/dist/src/fallback/handler.js.map +1 -0
  602. package/dist/src/fallback/handler.test.d.ts +6 -0
  603. package/dist/src/fallback/handler.test.js +242 -0
  604. package/dist/src/fallback/handler.test.js.map +1 -0
  605. package/dist/src/fallback/types.d.ts +31 -0
  606. package/dist/src/fallback/types.js +7 -0
  607. package/dist/src/fallback/types.js.map +1 -0
  608. package/dist/src/generated/git-commit.d.ts +7 -0
  609. package/dist/src/generated/git-commit.js +10 -0
  610. package/dist/src/generated/git-commit.js.map +1 -0
  611. package/dist/src/hooks/hookAggregator.d.ts +68 -0
  612. package/dist/src/hooks/hookAggregator.js +279 -0
  613. package/dist/src/hooks/hookAggregator.js.map +1 -0
  614. package/dist/src/hooks/hookAggregator.test.d.ts +6 -0
  615. package/dist/src/hooks/hookAggregator.test.js +387 -0
  616. package/dist/src/hooks/hookAggregator.test.js.map +1 -0
  617. package/dist/src/hooks/hookEventHandler.d.ts +120 -0
  618. package/dist/src/hooks/hookEventHandler.js +339 -0
  619. package/dist/src/hooks/hookEventHandler.js.map +1 -0
  620. package/dist/src/hooks/hookEventHandler.test.d.ts +6 -0
  621. package/dist/src/hooks/hookEventHandler.test.js +603 -0
  622. package/dist/src/hooks/hookEventHandler.test.js.map +1 -0
  623. package/dist/src/hooks/hookPlanner.d.ts +42 -0
  624. package/dist/src/hooks/hookPlanner.js +103 -0
  625. package/dist/src/hooks/hookPlanner.js.map +1 -0
  626. package/dist/src/hooks/hookPlanner.test.d.ts +6 -0
  627. package/dist/src/hooks/hookPlanner.test.js +315 -0
  628. package/dist/src/hooks/hookPlanner.test.js.map +1 -0
  629. package/dist/src/hooks/hookRegistry.d.ts +75 -0
  630. package/dist/src/hooks/hookRegistry.js +215 -0
  631. package/dist/src/hooks/hookRegistry.js.map +1 -0
  632. package/dist/src/hooks/hookRegistry.test.d.ts +6 -0
  633. package/dist/src/hooks/hookRegistry.test.js +529 -0
  634. package/dist/src/hooks/hookRegistry.test.js.map +1 -0
  635. package/dist/src/hooks/hookRunner.d.ts +44 -0
  636. package/dist/src/hooks/hookRunner.js +328 -0
  637. package/dist/src/hooks/hookRunner.js.map +1 -0
  638. package/dist/src/hooks/hookRunner.test.d.ts +6 -0
  639. package/dist/src/hooks/hookRunner.test.js +606 -0
  640. package/dist/src/hooks/hookRunner.test.js.map +1 -0
  641. package/dist/src/hooks/hookSystem.d.ts +110 -0
  642. package/dist/src/hooks/hookSystem.js +311 -0
  643. package/dist/src/hooks/hookSystem.js.map +1 -0
  644. package/dist/src/hooks/hookSystem.test.d.ts +6 -0
  645. package/dist/src/hooks/hookSystem.test.js +330 -0
  646. package/dist/src/hooks/hookSystem.test.js.map +1 -0
  647. package/dist/src/hooks/hookSystem_new_types.test.d.ts +6 -0
  648. package/dist/src/hooks/hookSystem_new_types.test.js +243 -0
  649. package/dist/src/hooks/hookSystem_new_types.test.js.map +1 -0
  650. package/dist/src/hooks/hookTranslator.d.ts +113 -0
  651. package/dist/src/hooks/hookTranslator.js +233 -0
  652. package/dist/src/hooks/hookTranslator.js.map +1 -0
  653. package/dist/src/hooks/hookTranslator.test.d.ts +6 -0
  654. package/dist/src/hooks/hookTranslator.test.js +192 -0
  655. package/dist/src/hooks/hookTranslator.test.js.map +1 -0
  656. package/dist/src/hooks/index.d.ts +16 -0
  657. package/dist/src/hooks/index.js +16 -0
  658. package/dist/src/hooks/index.js.map +1 -0
  659. package/dist/src/hooks/trustedHooks.d.ts +28 -0
  660. package/dist/src/hooks/trustedHooks.js +90 -0
  661. package/dist/src/hooks/trustedHooks.js.map +1 -0
  662. package/dist/src/hooks/trustedHooks.test.d.ts +6 -0
  663. package/dist/src/hooks/trustedHooks.test.js +154 -0
  664. package/dist/src/hooks/trustedHooks.test.js.map +1 -0
  665. package/dist/src/hooks/types.d.ts +462 -0
  666. package/dist/src/hooks/types.js +363 -0
  667. package/dist/src/hooks/types.js.map +1 -0
  668. package/dist/src/hooks/types.test.d.ts +6 -0
  669. package/dist/src/hooks/types.test.js +278 -0
  670. package/dist/src/hooks/types.test.js.map +1 -0
  671. package/dist/src/ide/constants.d.ts +9 -0
  672. package/dist/src/ide/constants.js +10 -0
  673. package/dist/src/ide/constants.js.map +1 -0
  674. package/dist/src/ide/detect-ide.d.ts +105 -0
  675. package/dist/src/ide/detect-ide.js +121 -0
  676. package/dist/src/ide/detect-ide.js.map +1 -0
  677. package/dist/src/ide/detect-ide.test.d.ts +6 -0
  678. package/dist/src/ide/detect-ide.test.js +195 -0
  679. package/dist/src/ide/detect-ide.test.js.map +1 -0
  680. package/dist/src/ide/ide-client.d.ts +113 -0
  681. package/dist/src/ide/ide-client.js +669 -0
  682. package/dist/src/ide/ide-client.js.map +1 -0
  683. package/dist/src/ide/ide-client.test.d.ts +6 -0
  684. package/dist/src/ide/ide-client.test.js +753 -0
  685. package/dist/src/ide/ide-client.test.js.map +1 -0
  686. package/dist/src/ide/ide-installer.d.ts +14 -0
  687. package/dist/src/ide/ide-installer.js +156 -0
  688. package/dist/src/ide/ide-installer.js.map +1 -0
  689. package/dist/src/ide/ide-installer.test.d.ts +6 -0
  690. package/dist/src/ide/ide-installer.test.js +193 -0
  691. package/dist/src/ide/ide-installer.test.js.map +1 -0
  692. package/dist/src/ide/ideContext.d.ts +44 -0
  693. package/dist/src/ide/ideContext.js +101 -0
  694. package/dist/src/ide/ideContext.js.map +1 -0
  695. package/dist/src/ide/ideContext.test.d.ts +6 -0
  696. package/dist/src/ide/ideContext.test.js +393 -0
  697. package/dist/src/ide/ideContext.test.js.map +1 -0
  698. package/dist/src/ide/process-utils.d.ts +21 -0
  699. package/dist/src/ide/process-utils.js +181 -0
  700. package/dist/src/ide/process-utils.js.map +1 -0
  701. package/dist/src/ide/process-utils.test.d.ts +6 -0
  702. package/dist/src/ide/process-utils.test.js +151 -0
  703. package/dist/src/ide/process-utils.test.js.map +1 -0
  704. package/dist/src/ide/types.d.ts +486 -0
  705. package/dist/src/ide/types.js +138 -0
  706. package/dist/src/ide/types.js.map +1 -0
  707. package/dist/src/index.d.ts +142 -0
  708. package/dist/src/index.js +157 -0
  709. package/dist/src/index.js.map +1 -0
  710. package/dist/src/index.test.d.ts +6 -0
  711. package/dist/src/index.test.js +53 -0
  712. package/dist/src/index.test.js.map +1 -0
  713. package/dist/src/mcp/auth-provider.d.ts +16 -0
  714. package/dist/src/mcp/auth-provider.js +7 -0
  715. package/dist/src/mcp/auth-provider.js.map +1 -0
  716. package/dist/src/mcp/google-auth-provider.d.ts +33 -0
  717. package/dist/src/mcp/google-auth-provider.js +118 -0
  718. package/dist/src/mcp/google-auth-provider.js.map +1 -0
  719. package/dist/src/mcp/google-auth-provider.test.d.ts +6 -0
  720. package/dist/src/mcp/google-auth-provider.test.js +167 -0
  721. package/dist/src/mcp/google-auth-provider.test.js.map +1 -0
  722. package/dist/src/mcp/oauth-provider.d.ts +160 -0
  723. package/dist/src/mcp/oauth-provider.js +729 -0
  724. package/dist/src/mcp/oauth-provider.js.map +1 -0
  725. package/dist/src/mcp/oauth-provider.test.d.ts +6 -0
  726. package/dist/src/mcp/oauth-provider.test.js +1355 -0
  727. package/dist/src/mcp/oauth-provider.test.js.map +1 -0
  728. package/dist/src/mcp/oauth-token-storage.d.ts +65 -0
  729. package/dist/src/mcp/oauth-token-storage.js +181 -0
  730. package/dist/src/mcp/oauth-token-storage.js.map +1 -0
  731. package/dist/src/mcp/oauth-token-storage.test.d.ts +6 -0
  732. package/dist/src/mcp/oauth-token-storage.test.js +305 -0
  733. package/dist/src/mcp/oauth-token-storage.test.js.map +1 -0
  734. package/dist/src/mcp/oauth-utils.d.ts +142 -0
  735. package/dist/src/mcp/oauth-utils.js +289 -0
  736. package/dist/src/mcp/oauth-utils.js.map +1 -0
  737. package/dist/src/mcp/oauth-utils.test.d.ts +6 -0
  738. package/dist/src/mcp/oauth-utils.test.js +289 -0
  739. package/dist/src/mcp/oauth-utils.test.js.map +1 -0
  740. package/dist/src/mcp/sa-impersonation-provider.d.ts +27 -0
  741. package/dist/src/mcp/sa-impersonation-provider.js +113 -0
  742. package/dist/src/mcp/sa-impersonation-provider.js.map +1 -0
  743. package/dist/src/mcp/sa-impersonation-provider.test.d.ts +6 -0
  744. package/dist/src/mcp/sa-impersonation-provider.test.js +117 -0
  745. package/dist/src/mcp/sa-impersonation-provider.test.js.map +1 -0
  746. package/dist/src/mcp/token-storage/base-token-storage.d.ts +19 -0
  747. package/dist/src/mcp/token-storage/base-token-storage.js +36 -0
  748. package/dist/src/mcp/token-storage/base-token-storage.js.map +1 -0
  749. package/dist/src/mcp/token-storage/base-token-storage.test.d.ts +6 -0
  750. package/dist/src/mcp/token-storage/base-token-storage.test.js +151 -0
  751. package/dist/src/mcp/token-storage/base-token-storage.test.js.map +1 -0
  752. package/dist/src/mcp/token-storage/file-token-storage.d.ts +24 -0
  753. package/dist/src/mcp/token-storage/file-token-storage.js +145 -0
  754. package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -0
  755. package/dist/src/mcp/token-storage/file-token-storage.test.d.ts +6 -0
  756. package/dist/src/mcp/token-storage/file-token-storage.test.js +238 -0
  757. package/dist/src/mcp/token-storage/file-token-storage.test.js.map +1 -0
  758. package/dist/src/mcp/token-storage/hybrid-token-storage.d.ts +23 -0
  759. package/dist/src/mcp/token-storage/hybrid-token-storage.js +78 -0
  760. package/dist/src/mcp/token-storage/hybrid-token-storage.js.map +1 -0
  761. package/dist/src/mcp/token-storage/hybrid-token-storage.test.d.ts +6 -0
  762. package/dist/src/mcp/token-storage/hybrid-token-storage.test.js +193 -0
  763. package/dist/src/mcp/token-storage/hybrid-token-storage.test.js.map +1 -0
  764. package/dist/src/mcp/token-storage/index.d.ts +11 -0
  765. package/dist/src/mcp/token-storage/index.js +12 -0
  766. package/dist/src/mcp/token-storage/index.js.map +1 -0
  767. package/dist/src/mcp/token-storage/keychain-token-storage.d.ts +35 -0
  768. package/dist/src/mcp/token-storage/keychain-token-storage.js +246 -0
  769. package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -0
  770. package/dist/src/mcp/token-storage/keychain-token-storage.test.d.ts +6 -0
  771. package/dist/src/mcp/token-storage/keychain-token-storage.test.js +305 -0
  772. package/dist/src/mcp/token-storage/keychain-token-storage.test.js.map +1 -0
  773. package/dist/src/mcp/token-storage/types.d.ts +44 -0
  774. package/dist/src/mcp/token-storage/types.js +11 -0
  775. package/dist/src/mcp/token-storage/types.js.map +1 -0
  776. package/dist/src/mocks/msw.d.ts +6 -0
  777. package/dist/src/mocks/msw.js +8 -0
  778. package/dist/src/mocks/msw.js.map +1 -0
  779. package/dist/src/output/json-formatter.d.ts +11 -0
  780. package/dist/src/output/json-formatter.js +33 -0
  781. package/dist/src/output/json-formatter.js.map +1 -0
  782. package/dist/src/output/json-formatter.test.d.ts +6 -0
  783. package/dist/src/output/json-formatter.test.js +294 -0
  784. package/dist/src/output/json-formatter.test.js.map +1 -0
  785. package/dist/src/output/stream-json-formatter.d.ts +32 -0
  786. package/dist/src/output/stream-json-formatter.js +58 -0
  787. package/dist/src/output/stream-json-formatter.js.map +1 -0
  788. package/dist/src/output/stream-json-formatter.test.d.ts +6 -0
  789. package/dist/src/output/stream-json-formatter.test.js +477 -0
  790. package/dist/src/output/stream-json-formatter.test.js.map +1 -0
  791. package/dist/src/output/types.d.ts +85 -0
  792. package/dist/src/output/types.js +22 -0
  793. package/dist/src/output/types.js.map +1 -0
  794. package/dist/src/policy/config.d.ts +31 -0
  795. package/dist/src/policy/config.js +355 -0
  796. package/dist/src/policy/config.js.map +1 -0
  797. package/dist/src/policy/config.test.d.ts +6 -0
  798. package/dist/src/policy/config.test.js +598 -0
  799. package/dist/src/policy/config.test.js.map +1 -0
  800. package/dist/src/policy/index.d.ts +9 -0
  801. package/dist/src/policy/index.js +10 -0
  802. package/dist/src/policy/index.js.map +1 -0
  803. package/dist/src/policy/persistence.test.d.ts +6 -0
  804. package/dist/src/policy/persistence.test.js +154 -0
  805. package/dist/src/policy/persistence.test.js.map +1 -0
  806. package/dist/src/policy/policies/agent.toml +31 -0
  807. package/dist/src/policy/policies/discovered.toml +8 -0
  808. package/dist/src/policy/policies/plan.toml +73 -0
  809. package/dist/src/policy/policies/read-only.toml +56 -0
  810. package/dist/src/policy/policies/write.toml +78 -0
  811. package/dist/src/policy/policies/yolo.toml +32 -0
  812. package/dist/src/policy/policy-engine.d.ts +59 -0
  813. package/dist/src/policy/policy-engine.js +336 -0
  814. package/dist/src/policy/policy-engine.js.map +1 -0
  815. package/dist/src/policy/policy-engine.test.d.ts +6 -0
  816. package/dist/src/policy/policy-engine.test.js +1299 -0
  817. package/dist/src/policy/policy-engine.test.js.map +1 -0
  818. package/dist/src/policy/policy-updater.test.d.ts +6 -0
  819. package/dist/src/policy/policy-updater.test.js +116 -0
  820. package/dist/src/policy/policy-updater.test.js.map +1 -0
  821. package/dist/src/policy/shell-safety.test.d.ts +6 -0
  822. package/dist/src/policy/shell-safety.test.js +438 -0
  823. package/dist/src/policy/shell-safety.test.js.map +1 -0
  824. package/dist/src/policy/stable-stringify.d.ts +58 -0
  825. package/dist/src/policy/stable-stringify.js +122 -0
  826. package/dist/src/policy/stable-stringify.js.map +1 -0
  827. package/dist/src/policy/toml-loader.d.ts +45 -0
  828. package/dist/src/policy/toml-loader.js +364 -0
  829. package/dist/src/policy/toml-loader.js.map +1 -0
  830. package/dist/src/policy/toml-loader.test.d.ts +6 -0
  831. package/dist/src/policy/toml-loader.test.js +409 -0
  832. package/dist/src/policy/toml-loader.test.js.map +1 -0
  833. package/dist/src/policy/types.d.ts +215 -0
  834. package/dist/src/policy/types.js +44 -0
  835. package/dist/src/policy/types.js.map +1 -0
  836. package/dist/src/policy/utils.d.ts +21 -0
  837. package/dist/src/policy/utils.js +45 -0
  838. package/dist/src/policy/utils.js.map +1 -0
  839. package/dist/src/policy/utils.test.d.ts +6 -0
  840. package/dist/src/policy/utils.test.js +92 -0
  841. package/dist/src/policy/utils.test.js.map +1 -0
  842. package/dist/src/prompts/mcp-prompts.d.ts +8 -0
  843. package/dist/src/prompts/mcp-prompts.js +13 -0
  844. package/dist/src/prompts/mcp-prompts.js.map +1 -0
  845. package/dist/src/prompts/mcp-prompts.test.d.ts +6 -0
  846. package/dist/src/prompts/mcp-prompts.test.js +39 -0
  847. package/dist/src/prompts/mcp-prompts.test.js.map +1 -0
  848. package/dist/src/prompts/prompt-registry.d.ts +34 -0
  849. package/dist/src/prompts/prompt-registry.js +64 -0
  850. package/dist/src/prompts/prompt-registry.js.map +1 -0
  851. package/dist/src/prompts/prompt-registry.test.d.ts +6 -0
  852. package/dist/src/prompts/prompt-registry.test.js +96 -0
  853. package/dist/src/prompts/prompt-registry.test.js.map +1 -0
  854. package/dist/src/providers/__tests__/bundleSize.test.d.ts +6 -0
  855. package/dist/src/providers/__tests__/bundleSize.test.js +75 -0
  856. package/dist/src/providers/__tests__/bundleSize.test.js.map +1 -0
  857. package/dist/src/providers/__tests__/errorHandling.integration.test.d.ts +6 -0
  858. package/dist/src/providers/__tests__/errorHandling.integration.test.js +339 -0
  859. package/dist/src/providers/__tests__/errorHandling.integration.test.js.map +1 -0
  860. package/dist/src/providers/__tests__/multiProvider.integration.test.d.ts +6 -0
  861. package/dist/src/providers/__tests__/multiProvider.integration.test.js +419 -0
  862. package/dist/src/providers/__tests__/multiProvider.integration.test.js.map +1 -0
  863. package/dist/src/providers/__tests__/performance.test.d.ts +6 -0
  864. package/dist/src/providers/__tests__/performance.test.js +270 -0
  865. package/dist/src/providers/__tests__/performance.test.js.map +1 -0
  866. package/dist/src/providers/__tests__/providerConfigIntegration.test.d.ts +6 -0
  867. package/dist/src/providers/__tests__/providerConfigIntegration.test.js +245 -0
  868. package/dist/src/providers/__tests__/providerConfigIntegration.test.js.map +1 -0
  869. package/dist/src/providers/baseAdapter.d.ts +61 -0
  870. package/dist/src/providers/baseAdapter.js +77 -0
  871. package/dist/src/providers/baseAdapter.js.map +1 -0
  872. package/dist/src/providers/baseAdapter.test.d.ts +1 -0
  873. package/dist/src/providers/baseAdapter.test.js +142 -0
  874. package/dist/src/providers/baseAdapter.test.js.map +1 -0
  875. package/dist/src/providers/claude/adapter.d.ts +58 -0
  876. package/dist/src/providers/claude/adapter.js +184 -0
  877. package/dist/src/providers/claude/adapter.js.map +1 -0
  878. package/dist/src/providers/claude/adapter.test.d.ts +6 -0
  879. package/dist/src/providers/claude/adapter.test.js +628 -0
  880. package/dist/src/providers/claude/adapter.test.js.map +1 -0
  881. package/dist/src/providers/claude/bootstrap.d.ts +15 -0
  882. package/dist/src/providers/claude/bootstrap.js +38 -0
  883. package/dist/src/providers/claude/bootstrap.js.map +1 -0
  884. package/dist/src/providers/claude/bootstrap.test.d.ts +6 -0
  885. package/dist/src/providers/claude/bootstrap.test.js +74 -0
  886. package/dist/src/providers/claude/bootstrap.test.js.map +1 -0
  887. package/dist/src/providers/claude/converter.d.ts +92 -0
  888. package/dist/src/providers/claude/converter.js +427 -0
  889. package/dist/src/providers/claude/converter.js.map +1 -0
  890. package/dist/src/providers/claude/converter.test.d.ts +6 -0
  891. package/dist/src/providers/claude/converter.test.js +1002 -0
  892. package/dist/src/providers/claude/converter.test.js.map +1 -0
  893. package/dist/src/providers/claude/exports.test.d.ts +6 -0
  894. package/dist/src/providers/claude/exports.test.js +40 -0
  895. package/dist/src/providers/claude/exports.test.js.map +1 -0
  896. package/dist/src/providers/claude/index.d.ts +13 -0
  897. package/dist/src/providers/claude/index.js +14 -0
  898. package/dist/src/providers/claude/index.js.map +1 -0
  899. package/dist/src/providers/configAdapter.d.ts +106 -0
  900. package/dist/src/providers/configAdapter.js +139 -0
  901. package/dist/src/providers/configAdapter.js.map +1 -0
  902. package/dist/src/providers/configAdapter.test.d.ts +1 -0
  903. package/dist/src/providers/configAdapter.test.js +150 -0
  904. package/dist/src/providers/configAdapter.test.js.map +1 -0
  905. package/dist/src/providers/contentResolver.d.ts +93 -0
  906. package/dist/src/providers/contentResolver.js +152 -0
  907. package/dist/src/providers/contentResolver.js.map +1 -0
  908. package/dist/src/providers/contentResolver.test.d.ts +1 -0
  909. package/dist/src/providers/contentResolver.test.js +89 -0
  910. package/dist/src/providers/contentResolver.test.js.map +1 -0
  911. package/dist/src/providers/errors.d.ts +145 -0
  912. package/dist/src/providers/errors.js +255 -0
  913. package/dist/src/providers/errors.js.map +1 -0
  914. package/dist/src/providers/events.d.ts +294 -0
  915. package/dist/src/providers/events.js +128 -0
  916. package/dist/src/providers/events.js.map +1 -0
  917. package/dist/src/providers/factory.d.ts +103 -0
  918. package/dist/src/providers/factory.js +123 -0
  919. package/dist/src/providers/factory.js.map +1 -0
  920. package/dist/src/providers/factory.test.d.ts +1 -0
  921. package/dist/src/providers/factory.test.js +151 -0
  922. package/dist/src/providers/factory.test.js.map +1 -0
  923. package/dist/src/providers/gemini/adapter.d.ts +59 -0
  924. package/dist/src/providers/gemini/adapter.js +135 -0
  925. package/dist/src/providers/gemini/adapter.js.map +1 -0
  926. package/dist/src/providers/gemini/adapterBridge.d.ts +31 -0
  927. package/dist/src/providers/gemini/adapterBridge.js +40 -0
  928. package/dist/src/providers/gemini/adapterBridge.js.map +1 -0
  929. package/dist/src/providers/gemini/adapterBridge.test.d.ts +6 -0
  930. package/dist/src/providers/gemini/adapterBridge.test.js +164 -0
  931. package/dist/src/providers/gemini/adapterBridge.test.js.map +1 -0
  932. package/dist/src/providers/gemini/bootstrap.d.ts +15 -0
  933. package/dist/src/providers/gemini/bootstrap.js +39 -0
  934. package/dist/src/providers/gemini/bootstrap.js.map +1 -0
  935. package/dist/src/providers/gemini/bootstrap.test.d.ts +6 -0
  936. package/dist/src/providers/gemini/bootstrap.test.js +72 -0
  937. package/dist/src/providers/gemini/bootstrap.test.js.map +1 -0
  938. package/dist/src/providers/gemini/chat.d.ts +173 -0
  939. package/dist/src/providers/gemini/chat.js +747 -0
  940. package/dist/src/providers/gemini/chat.js.map +1 -0
  941. package/dist/src/providers/gemini/configConverter.d.ts +38 -0
  942. package/dist/src/providers/gemini/configConverter.js +166 -0
  943. package/dist/src/providers/gemini/configConverter.js.map +1 -0
  944. package/dist/src/providers/gemini/configConverter.test.d.ts +6 -0
  945. package/dist/src/providers/gemini/configConverter.test.js +218 -0
  946. package/dist/src/providers/gemini/configConverter.test.js.map +1 -0
  947. package/dist/src/providers/gemini/converter.d.ts +66 -0
  948. package/dist/src/providers/gemini/converter.js +270 -0
  949. package/dist/src/providers/gemini/converter.js.map +1 -0
  950. package/dist/src/providers/gemini/errorClassifier.d.ts +38 -0
  951. package/dist/src/providers/gemini/errorClassifier.js +51 -0
  952. package/dist/src/providers/gemini/errorClassifier.js.map +1 -0
  953. package/dist/src/providers/gemini/errorClassifier.test.d.ts +6 -0
  954. package/dist/src/providers/gemini/errorClassifier.test.js +83 -0
  955. package/dist/src/providers/gemini/errorClassifier.test.js.map +1 -0
  956. package/dist/src/providers/gemini/eventMapper.d.ts +56 -0
  957. package/dist/src/providers/gemini/eventMapper.js +337 -0
  958. package/dist/src/providers/gemini/eventMapper.js.map +1 -0
  959. package/dist/src/providers/gemini/eventMapper.test.d.ts +6 -0
  960. package/dist/src/providers/gemini/eventMapper.test.js +502 -0
  961. package/dist/src/providers/gemini/eventMapper.test.js.map +1 -0
  962. package/dist/src/providers/gemini/exports.test.d.ts +6 -0
  963. package/dist/src/providers/gemini/exports.test.js +90 -0
  964. package/dist/src/providers/gemini/exports.test.js.map +1 -0
  965. package/dist/src/providers/gemini/featureFlag.d.ts +31 -0
  966. package/dist/src/providers/gemini/featureFlag.js +68 -0
  967. package/dist/src/providers/gemini/featureFlag.js.map +1 -0
  968. package/dist/src/providers/gemini/featureFlag.test.d.ts +6 -0
  969. package/dist/src/providers/gemini/featureFlag.test.js +139 -0
  970. package/dist/src/providers/gemini/featureFlag.test.js.map +1 -0
  971. package/dist/src/providers/gemini/geminiAdapter.test.d.ts +6 -0
  972. package/dist/src/providers/gemini/geminiAdapter.test.js +279 -0
  973. package/dist/src/providers/gemini/geminiAdapter.test.js.map +1 -0
  974. package/dist/src/providers/gemini/geminiConverter.test.d.ts +6 -0
  975. package/dist/src/providers/gemini/geminiConverter.test.js +474 -0
  976. package/dist/src/providers/gemini/geminiConverter.test.js.map +1 -0
  977. package/dist/src/providers/gemini/geminiParity.test.d.ts +6 -0
  978. package/dist/src/providers/gemini/geminiParity.test.js +754 -0
  979. package/dist/src/providers/gemini/geminiParity.test.js.map +1 -0
  980. package/dist/src/providers/gemini/geminiStream.d.ts +60 -0
  981. package/dist/src/providers/gemini/geminiStream.js +50 -0
  982. package/dist/src/providers/gemini/geminiStream.js.map +1 -0
  983. package/dist/src/providers/gemini/geminiStream.test.d.ts +6 -0
  984. package/dist/src/providers/gemini/geminiStream.test.js +391 -0
  985. package/dist/src/providers/gemini/geminiStream.test.js.map +1 -0
  986. package/dist/src/providers/gemini/historyBuilder.d.ts +64 -0
  987. package/dist/src/providers/gemini/historyBuilder.js +116 -0
  988. package/dist/src/providers/gemini/historyBuilder.js.map +1 -0
  989. package/dist/src/providers/gemini/historyBuilder.test.d.ts +6 -0
  990. package/dist/src/providers/gemini/historyBuilder.test.js +207 -0
  991. package/dist/src/providers/gemini/historyBuilder.test.js.map +1 -0
  992. package/dist/src/providers/gemini/index.d.ts +21 -0
  993. package/dist/src/providers/gemini/index.js +22 -0
  994. package/dist/src/providers/gemini/index.js.map +1 -0
  995. package/dist/src/providers/gemini/requestBuilder.d.ts +55 -0
  996. package/dist/src/providers/gemini/requestBuilder.js +141 -0
  997. package/dist/src/providers/gemini/requestBuilder.js.map +1 -0
  998. package/dist/src/providers/gemini/requestBuilder.test.d.ts +6 -0
  999. package/dist/src/providers/gemini/requestBuilder.test.js +358 -0
  1000. package/dist/src/providers/gemini/requestBuilder.test.js.map +1 -0
  1001. package/dist/src/providers/gemini/streamConverter.d.ts +40 -0
  1002. package/dist/src/providers/gemini/streamConverter.js +50 -0
  1003. package/dist/src/providers/gemini/streamConverter.js.map +1 -0
  1004. package/dist/src/providers/gemini/streamConverter.test.d.ts +6 -0
  1005. package/dist/src/providers/gemini/streamConverter.test.js +131 -0
  1006. package/dist/src/providers/gemini/streamConverter.test.js.map +1 -0
  1007. package/dist/src/providers/gemini/turn.d.ts +29 -0
  1008. package/dist/src/providers/gemini/turn.js +230 -0
  1009. package/dist/src/providers/gemini/turn.js.map +1 -0
  1010. package/dist/src/providers/gemini/typeConversion.d.ts +51 -0
  1011. package/dist/src/providers/gemini/typeConversion.js +165 -0
  1012. package/dist/src/providers/gemini/typeConversion.js.map +1 -0
  1013. package/dist/src/providers/gemini/types.d.ts +158 -0
  1014. package/dist/src/providers/gemini/types.js +47 -0
  1015. package/dist/src/providers/gemini/types.js.map +1 -0
  1016. package/dist/src/providers/index.d.ts +37 -0
  1017. package/dist/src/providers/index.js +68 -0
  1018. package/dist/src/providers/index.js.map +1 -0
  1019. package/dist/src/providers/legacyAliases.d.ts +97 -0
  1020. package/dist/src/providers/legacyAliases.js +26 -0
  1021. package/dist/src/providers/legacyAliases.js.map +1 -0
  1022. package/dist/src/providers/modelSpec.d.ts +104 -0
  1023. package/dist/src/providers/modelSpec.js +107 -0
  1024. package/dist/src/providers/modelSpec.js.map +1 -0
  1025. package/dist/src/providers/modelSpec.test.d.ts +1 -0
  1026. package/dist/src/providers/modelSpec.test.js +119 -0
  1027. package/dist/src/providers/modelSpec.test.js.map +1 -0
  1028. package/dist/src/providers/openai/adapter.d.ts +55 -0
  1029. package/dist/src/providers/openai/adapter.js +165 -0
  1030. package/dist/src/providers/openai/adapter.js.map +1 -0
  1031. package/dist/src/providers/openai/adapter.test.d.ts +6 -0
  1032. package/dist/src/providers/openai/adapter.test.js +274 -0
  1033. package/dist/src/providers/openai/adapter.test.js.map +1 -0
  1034. package/dist/src/providers/openai/bootstrap.d.ts +15 -0
  1035. package/dist/src/providers/openai/bootstrap.js +38 -0
  1036. package/dist/src/providers/openai/bootstrap.js.map +1 -0
  1037. package/dist/src/providers/openai/bootstrap.test.d.ts +6 -0
  1038. package/dist/src/providers/openai/bootstrap.test.js +76 -0
  1039. package/dist/src/providers/openai/bootstrap.test.js.map +1 -0
  1040. package/dist/src/providers/openai/converter.d.ts +122 -0
  1041. package/dist/src/providers/openai/converter.js +473 -0
  1042. package/dist/src/providers/openai/converter.js.map +1 -0
  1043. package/dist/src/providers/openai/converter.test.d.ts +6 -0
  1044. package/dist/src/providers/openai/converter.test.js +1133 -0
  1045. package/dist/src/providers/openai/converter.test.js.map +1 -0
  1046. package/dist/src/providers/openai/index.d.ts +13 -0
  1047. package/dist/src/providers/openai/index.js +14 -0
  1048. package/dist/src/providers/openai/index.js.map +1 -0
  1049. package/dist/src/providers/openai-compatible/__tests__/compatibility.test.d.ts +6 -0
  1050. package/dist/src/providers/openai-compatible/__tests__/compatibility.test.js +356 -0
  1051. package/dist/src/providers/openai-compatible/__tests__/compatibility.test.js.map +1 -0
  1052. package/dist/src/providers/openai-compatible/adapter.d.ts +40 -0
  1053. package/dist/src/providers/openai-compatible/adapter.js +85 -0
  1054. package/dist/src/providers/openai-compatible/adapter.js.map +1 -0
  1055. package/dist/src/providers/openai-compatible/adapter.test.d.ts +6 -0
  1056. package/dist/src/providers/openai-compatible/adapter.test.js +240 -0
  1057. package/dist/src/providers/openai-compatible/adapter.test.js.map +1 -0
  1058. package/dist/src/providers/openai-compatible/bootstrap.d.ts +16 -0
  1059. package/dist/src/providers/openai-compatible/bootstrap.js +76 -0
  1060. package/dist/src/providers/openai-compatible/bootstrap.js.map +1 -0
  1061. package/dist/src/providers/openai-compatible/bootstrap.test.d.ts +6 -0
  1062. package/dist/src/providers/openai-compatible/bootstrap.test.js +145 -0
  1063. package/dist/src/providers/openai-compatible/bootstrap.test.js.map +1 -0
  1064. package/dist/src/providers/openai-compatible/index.d.ts +14 -0
  1065. package/dist/src/providers/openai-compatible/index.js +14 -0
  1066. package/dist/src/providers/openai-compatible/index.js.map +1 -0
  1067. package/dist/src/providers/openai-compatible/promptBuilder.d.ts +89 -0
  1068. package/dist/src/providers/openai-compatible/promptBuilder.js +123 -0
  1069. package/dist/src/providers/openai-compatible/promptBuilder.js.map +1 -0
  1070. package/dist/src/providers/openai-compatible/promptBuilder.test.d.ts +6 -0
  1071. package/dist/src/providers/openai-compatible/promptBuilder.test.js +154 -0
  1072. package/dist/src/providers/openai-compatible/promptBuilder.test.js.map +1 -0
  1073. package/dist/src/providers/providerConfig.d.ts +143 -0
  1074. package/dist/src/providers/providerConfig.js +92 -0
  1075. package/dist/src/providers/providerConfig.js.map +1 -0
  1076. package/dist/src/providers/providerConfig.test.d.ts +1 -0
  1077. package/dist/src/providers/providerConfig.test.js +145 -0
  1078. package/dist/src/providers/providerConfig.test.js.map +1 -0
  1079. package/dist/src/providers/providerConfigIntegration.d.ts +95 -0
  1080. package/dist/src/providers/providerConfigIntegration.js +180 -0
  1081. package/dist/src/providers/providerConfigIntegration.js.map +1 -0
  1082. package/dist/src/providers/providerConfigIntegration.test.d.ts +6 -0
  1083. package/dist/src/providers/providerConfigIntegration.test.js +187 -0
  1084. package/dist/src/providers/providerConfigIntegration.test.js.map +1 -0
  1085. package/dist/src/providers/providerSelector.d.ts +91 -0
  1086. package/dist/src/providers/providerSelector.js +221 -0
  1087. package/dist/src/providers/providerSelector.js.map +1 -0
  1088. package/dist/src/providers/providerSelector.test.d.ts +1 -0
  1089. package/dist/src/providers/providerSelector.test.js +199 -0
  1090. package/dist/src/providers/providerSelector.test.js.map +1 -0
  1091. package/dist/src/providers/providerTypes.d.ts +94 -0
  1092. package/dist/src/providers/providerTypes.js +119 -0
  1093. package/dist/src/providers/providerTypes.js.map +1 -0
  1094. package/dist/src/providers/providerTypes.test.d.ts +1 -0
  1095. package/dist/src/providers/providerTypes.test.js +95 -0
  1096. package/dist/src/providers/providerTypes.test.js.map +1 -0
  1097. package/dist/src/providers/registry.d.ts +109 -0
  1098. package/dist/src/providers/registry.js +131 -0
  1099. package/dist/src/providers/registry.js.map +1 -0
  1100. package/dist/src/providers/registry.test.d.ts +1 -0
  1101. package/dist/src/providers/registry.test.js +207 -0
  1102. package/dist/src/providers/registry.test.js.map +1 -0
  1103. package/dist/src/providers/streamAssembler.d.ts +113 -0
  1104. package/dist/src/providers/streamAssembler.js +180 -0
  1105. package/dist/src/providers/streamAssembler.js.map +1 -0
  1106. package/dist/src/providers/streamAssembler.test.d.ts +1 -0
  1107. package/dist/src/providers/streamAssembler.test.js +247 -0
  1108. package/dist/src/providers/streamAssembler.test.js.map +1 -0
  1109. package/dist/src/providers/telemetryBridge.d.ts +89 -0
  1110. package/dist/src/providers/telemetryBridge.js +108 -0
  1111. package/dist/src/providers/telemetryBridge.js.map +1 -0
  1112. package/dist/src/providers/telemetryBridge.test.d.ts +6 -0
  1113. package/dist/src/providers/telemetryBridge.test.js +235 -0
  1114. package/dist/src/providers/telemetryBridge.test.js.map +1 -0
  1115. package/dist/src/providers/types.d.ts +318 -0
  1116. package/dist/src/providers/types.js +16 -0
  1117. package/dist/src/providers/types.js.map +1 -0
  1118. package/dist/src/providers/types.test.d.ts +6 -0
  1119. package/dist/src/providers/types.test.js +253 -0
  1120. package/dist/src/providers/types.test.js.map +1 -0
  1121. package/dist/src/resources/resource-registry.d.ts +30 -0
  1122. package/dist/src/resources/resource-registry.js +57 -0
  1123. package/dist/src/resources/resource-registry.js.map +1 -0
  1124. package/dist/src/resources/resource-registry.test.d.ts +6 -0
  1125. package/dist/src/resources/resource-registry.test.js +54 -0
  1126. package/dist/src/resources/resource-registry.test.js.map +1 -0
  1127. package/dist/src/routing/modelRouterService.d.ts +23 -0
  1128. package/dist/src/routing/modelRouterService.js +80 -0
  1129. package/dist/src/routing/modelRouterService.js.map +1 -0
  1130. package/dist/src/routing/modelRouterService.test.d.ts +6 -0
  1131. package/dist/src/routing/modelRouterService.test.js +106 -0
  1132. package/dist/src/routing/modelRouterService.test.js.map +1 -0
  1133. package/dist/src/routing/routingStrategy.d.ts +65 -0
  1134. package/dist/src/routing/routingStrategy.js +7 -0
  1135. package/dist/src/routing/routingStrategy.js.map +1 -0
  1136. package/dist/src/routing/strategies/classifierStrategy.d.ts +12 -0
  1137. package/dist/src/routing/strategies/classifierStrategy.js +156 -0
  1138. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -0
  1139. package/dist/src/routing/strategies/classifierStrategy.test.d.ts +6 -0
  1140. package/dist/src/routing/strategies/classifierStrategy.test.js +249 -0
  1141. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -0
  1142. package/dist/src/routing/strategies/compositeStrategy.d.ts +26 -0
  1143. package/dist/src/routing/strategies/compositeStrategy.js +70 -0
  1144. package/dist/src/routing/strategies/compositeStrategy.js.map +1 -0
  1145. package/dist/src/routing/strategies/compositeStrategy.test.d.ts +6 -0
  1146. package/dist/src/routing/strategies/compositeStrategy.test.js +124 -0
  1147. package/dist/src/routing/strategies/compositeStrategy.test.js.map +1 -0
  1148. package/dist/src/routing/strategies/defaultStrategy.d.ts +12 -0
  1149. package/dist/src/routing/strategies/defaultStrategy.js +21 -0
  1150. package/dist/src/routing/strategies/defaultStrategy.js.map +1 -0
  1151. package/dist/src/routing/strategies/defaultStrategy.test.d.ts +6 -0
  1152. package/dist/src/routing/strategies/defaultStrategy.test.js +102 -0
  1153. package/dist/src/routing/strategies/defaultStrategy.test.js.map +1 -0
  1154. package/dist/src/routing/strategies/fallbackStrategy.d.ts +12 -0
  1155. package/dist/src/routing/strategies/fallbackStrategy.js +33 -0
  1156. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -0
  1157. package/dist/src/routing/strategies/fallbackStrategy.test.d.ts +6 -0
  1158. package/dist/src/routing/strategies/fallbackStrategy.test.js +96 -0
  1159. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -0
  1160. package/dist/src/routing/strategies/numericalClassifierStrategy.d.ts +13 -0
  1161. package/dist/src/routing/strategies/numericalClassifierStrategy.js +171 -0
  1162. package/dist/src/routing/strategies/numericalClassifierStrategy.js.map +1 -0
  1163. package/dist/src/routing/strategies/numericalClassifierStrategy.test.d.ts +6 -0
  1164. package/dist/src/routing/strategies/numericalClassifierStrategy.test.js +367 -0
  1165. package/dist/src/routing/strategies/numericalClassifierStrategy.test.js.map +1 -0
  1166. package/dist/src/routing/strategies/overrideStrategy.d.ts +15 -0
  1167. package/dist/src/routing/strategies/overrideStrategy.js +29 -0
  1168. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -0
  1169. package/dist/src/routing/strategies/overrideStrategy.test.d.ts +6 -0
  1170. package/dist/src/routing/strategies/overrideStrategy.test.js +59 -0
  1171. package/dist/src/routing/strategies/overrideStrategy.test.js.map +1 -0
  1172. package/dist/src/safety/built-in.d.ts +21 -0
  1173. package/dist/src/safety/built-in.js +106 -0
  1174. package/dist/src/safety/built-in.js.map +1 -0
  1175. package/dist/src/safety/built-in.test.d.ts +6 -0
  1176. package/dist/src/safety/built-in.test.js +199 -0
  1177. package/dist/src/safety/built-in.test.js.map +1 -0
  1178. package/dist/src/safety/checker-runner.d.ts +48 -0
  1179. package/dist/src/safety/checker-runner.js +219 -0
  1180. package/dist/src/safety/checker-runner.js.map +1 -0
  1181. package/dist/src/safety/checker-runner.test.d.ts +6 -0
  1182. package/dist/src/safety/checker-runner.test.js +238 -0
  1183. package/dist/src/safety/checker-runner.test.js.map +1 -0
  1184. package/dist/src/safety/context-builder.d.ts +23 -0
  1185. package/dist/src/safety/context-builder.js +47 -0
  1186. package/dist/src/safety/context-builder.js.map +1 -0
  1187. package/dist/src/safety/context-builder.test.d.ts +6 -0
  1188. package/dist/src/safety/context-builder.test.js +49 -0
  1189. package/dist/src/safety/context-builder.test.js.map +1 -0
  1190. package/dist/src/safety/protocol.d.ts +88 -0
  1191. package/dist/src/safety/protocol.js +15 -0
  1192. package/dist/src/safety/protocol.js.map +1 -0
  1193. package/dist/src/safety/registry.d.ts +26 -0
  1194. package/dist/src/safety/registry.js +65 -0
  1195. package/dist/src/safety/registry.js.map +1 -0
  1196. package/dist/src/safety/registry.test.d.ts +6 -0
  1197. package/dist/src/safety/registry.test.js +31 -0
  1198. package/dist/src/safety/registry.test.js.map +1 -0
  1199. package/dist/src/scheduler/confirmation.d.ts +49 -0
  1200. package/dist/src/scheduler/confirmation.js +180 -0
  1201. package/dist/src/scheduler/confirmation.js.map +1 -0
  1202. package/dist/src/scheduler/confirmation.test.d.ts +6 -0
  1203. package/dist/src/scheduler/confirmation.test.js +325 -0
  1204. package/dist/src/scheduler/confirmation.test.js.map +1 -0
  1205. package/dist/src/scheduler/policy.d.ts +25 -0
  1206. package/dist/src/scheduler/policy.js +103 -0
  1207. package/dist/src/scheduler/policy.js.map +1 -0
  1208. package/dist/src/scheduler/policy.test.d.ts +6 -0
  1209. package/dist/src/scheduler/policy.test.js +299 -0
  1210. package/dist/src/scheduler/policy.test.js.map +1 -0
  1211. package/dist/src/scheduler/scheduler.d.ts +61 -0
  1212. package/dist/src/scheduler/scheduler.js +355 -0
  1213. package/dist/src/scheduler/scheduler.js.map +1 -0
  1214. package/dist/src/scheduler/scheduler.test.d.ts +6 -0
  1215. package/dist/src/scheduler/scheduler.test.js +822 -0
  1216. package/dist/src/scheduler/scheduler.test.js.map +1 -0
  1217. package/dist/src/scheduler/state-manager.d.ts +73 -0
  1218. package/dist/src/scheduler/state-manager.js +356 -0
  1219. package/dist/src/scheduler/state-manager.js.map +1 -0
  1220. package/dist/src/scheduler/state-manager.test.d.ts +6 -0
  1221. package/dist/src/scheduler/state-manager.test.js +429 -0
  1222. package/dist/src/scheduler/state-manager.test.js.map +1 -0
  1223. package/dist/src/scheduler/tool-executor.d.ts +22 -0
  1224. package/dist/src/scheduler/tool-executor.js +196 -0
  1225. package/dist/src/scheduler/tool-executor.js.map +1 -0
  1226. package/dist/src/scheduler/tool-executor.test.d.ts +6 -0
  1227. package/dist/src/scheduler/tool-executor.test.js +232 -0
  1228. package/dist/src/scheduler/tool-executor.test.js.map +1 -0
  1229. package/dist/src/scheduler/tool-modifier.d.ts +23 -0
  1230. package/dist/src/scheduler/tool-modifier.js +50 -0
  1231. package/dist/src/scheduler/tool-modifier.js.map +1 -0
  1232. package/dist/src/scheduler/tool-modifier.test.d.ts +6 -0
  1233. package/dist/src/scheduler/tool-modifier.test.js +159 -0
  1234. package/dist/src/scheduler/tool-modifier.test.js.map +1 -0
  1235. package/dist/src/scheduler/types.d.ts +114 -0
  1236. package/dist/src/scheduler/types.js +7 -0
  1237. package/dist/src/scheduler/types.js.map +1 -0
  1238. package/dist/src/services/chatCompressionService.d.ts +41 -0
  1239. package/dist/src/services/chatCompressionService.js +339 -0
  1240. package/dist/src/services/chatCompressionService.js.map +1 -0
  1241. package/dist/src/services/chatCompressionService.test.d.ts +6 -0
  1242. package/dist/src/services/chatCompressionService.test.js +573 -0
  1243. package/dist/src/services/chatCompressionService.test.js.map +1 -0
  1244. package/dist/src/services/chatRecordingService.d.ts +165 -0
  1245. package/dist/src/services/chatRecordingService.js +409 -0
  1246. package/dist/src/services/chatRecordingService.js.map +1 -0
  1247. package/dist/src/services/chatRecordingService.test.d.ts +6 -0
  1248. package/dist/src/services/chatRecordingService.test.js +486 -0
  1249. package/dist/src/services/chatRecordingService.test.js.map +1 -0
  1250. package/dist/src/services/contextManager.d.ts +29 -0
  1251. package/dist/src/services/contextManager.js +71 -0
  1252. package/dist/src/services/contextManager.js.map +1 -0
  1253. package/dist/src/services/contextManager.test.d.ts +6 -0
  1254. package/dist/src/services/contextManager.test.js +104 -0
  1255. package/dist/src/services/contextManager.test.js.map +1 -0
  1256. package/dist/src/services/environmentSanitization.d.ts +15 -0
  1257. package/dist/src/services/environmentSanitization.js +142 -0
  1258. package/dist/src/services/environmentSanitization.js.map +1 -0
  1259. package/dist/src/services/environmentSanitization.test.d.ts +6 -0
  1260. package/dist/src/services/environmentSanitization.test.js +284 -0
  1261. package/dist/src/services/environmentSanitization.test.js.map +1 -0
  1262. package/dist/src/services/fileDiscoveryService.d.ts +33 -0
  1263. package/dist/src/services/fileDiscoveryService.js +69 -0
  1264. package/dist/src/services/fileDiscoveryService.js.map +1 -0
  1265. package/dist/src/services/fileDiscoveryService.test.d.ts +6 -0
  1266. package/dist/src/services/fileDiscoveryService.test.js +223 -0
  1267. package/dist/src/services/fileDiscoveryService.test.js.map +1 -0
  1268. package/dist/src/services/fileSystemService.d.ts +31 -0
  1269. package/dist/src/services/fileSystemService.js +18 -0
  1270. package/dist/src/services/fileSystemService.js.map +1 -0
  1271. package/dist/src/services/fileSystemService.test.d.ts +6 -0
  1272. package/dist/src/services/fileSystemService.test.js +41 -0
  1273. package/dist/src/services/fileSystemService.test.js.map +1 -0
  1274. package/dist/src/services/gitService.d.ts +23 -0
  1275. package/dist/src/services/gitService.js +123 -0
  1276. package/dist/src/services/gitService.js.map +1 -0
  1277. package/dist/src/services/gitService.test.d.ts +6 -0
  1278. package/dist/src/services/gitService.test.js +264 -0
  1279. package/dist/src/services/gitService.test.js.map +1 -0
  1280. package/dist/src/services/loopDetectionService.d.ts +107 -0
  1281. package/dist/src/services/loopDetectionService.js +436 -0
  1282. package/dist/src/services/loopDetectionService.js.map +1 -0
  1283. package/dist/src/services/loopDetectionService.test.d.ts +6 -0
  1284. package/dist/src/services/loopDetectionService.test.js +881 -0
  1285. package/dist/src/services/loopDetectionService.test.js.map +1 -0
  1286. package/dist/src/services/modelConfig.golden.test.d.ts +6 -0
  1287. package/dist/src/services/modelConfig.golden.test.js +74 -0
  1288. package/dist/src/services/modelConfig.golden.test.js.map +1 -0
  1289. package/dist/src/services/modelConfig.integration.test.d.ts +6 -0
  1290. package/dist/src/services/modelConfig.integration.test.js +247 -0
  1291. package/dist/src/services/modelConfig.integration.test.js.map +1 -0
  1292. package/dist/src/services/modelConfigBridge.d.ts +75 -0
  1293. package/dist/src/services/modelConfigBridge.js +116 -0
  1294. package/dist/src/services/modelConfigBridge.js.map +1 -0
  1295. package/dist/src/services/modelConfigBridge.test.d.ts +6 -0
  1296. package/dist/src/services/modelConfigBridge.test.js +410 -0
  1297. package/dist/src/services/modelConfigBridge.test.js.map +1 -0
  1298. package/dist/src/services/modelConfigService.d.ts +86 -0
  1299. package/dist/src/services/modelConfigService.js +215 -0
  1300. package/dist/src/services/modelConfigService.js.map +1 -0
  1301. package/dist/src/services/modelConfigService.test.d.ts +6 -0
  1302. package/dist/src/services/modelConfigService.test.js +868 -0
  1303. package/dist/src/services/modelConfigService.test.js.map +1 -0
  1304. package/dist/src/services/modelConfigServiceTestUtils.d.ts +10 -0
  1305. package/dist/src/services/modelConfigServiceTestUtils.js +17 -0
  1306. package/dist/src/services/modelConfigServiceTestUtils.js.map +1 -0
  1307. package/dist/src/services/sessionSummaryService.d.ts +28 -0
  1308. package/dist/src/services/sessionSummaryService.js +131 -0
  1309. package/dist/src/services/sessionSummaryService.js.map +1 -0
  1310. package/dist/src/services/sessionSummaryService.test.d.ts +6 -0
  1311. package/dist/src/services/sessionSummaryService.test.js +785 -0
  1312. package/dist/src/services/sessionSummaryService.test.js.map +1 -0
  1313. package/dist/src/services/sessionSummaryUtils.d.ts +16 -0
  1314. package/dist/src/services/sessionSummaryUtils.js +137 -0
  1315. package/dist/src/services/sessionSummaryUtils.js.map +1 -0
  1316. package/dist/src/services/sessionSummaryUtils.test.d.ts +6 -0
  1317. package/dist/src/services/sessionSummaryUtils.test.js +160 -0
  1318. package/dist/src/services/sessionSummaryUtils.test.js.map +1 -0
  1319. package/dist/src/services/shellExecutionService.d.ts +107 -0
  1320. package/dist/src/services/shellExecutionService.js +654 -0
  1321. package/dist/src/services/shellExecutionService.js.map +1 -0
  1322. package/dist/src/services/shellExecutionService.test.d.ts +6 -0
  1323. package/dist/src/services/shellExecutionService.test.js +1080 -0
  1324. package/dist/src/services/shellExecutionService.test.js.map +1 -0
  1325. package/dist/src/services/test-data/resolved-aliases-retry.golden.json +238 -0
  1326. package/dist/src/services/test-data/resolved-aliases.golden.json +238 -0
  1327. package/dist/src/skills/builtin/skill-creator/SKILL.md +382 -0
  1328. package/dist/src/skills/builtin/skill-creator/scripts/init_skill.cjs +235 -0
  1329. package/dist/src/skills/builtin/skill-creator/scripts/package_skill.cjs +102 -0
  1330. package/dist/src/skills/builtin/skill-creator/scripts/validate_skill.cjs +127 -0
  1331. package/dist/src/skills/skillLoader.d.ts +31 -0
  1332. package/dist/src/skills/skillLoader.js +133 -0
  1333. package/dist/src/skills/skillLoader.js.map +1 -0
  1334. package/dist/src/skills/skillLoader.test.d.ts +6 -0
  1335. package/dist/src/skills/skillLoader.test.js +185 -0
  1336. package/dist/src/skills/skillLoader.test.js.map +1 -0
  1337. package/dist/src/skills/skillManager.d.ts +69 -0
  1338. package/dist/src/skills/skillManager.js +138 -0
  1339. package/dist/src/skills/skillManager.js.map +1 -0
  1340. package/dist/src/skills/skillManager.test.d.ts +6 -0
  1341. package/dist/src/skills/skillManager.test.js +297 -0
  1342. package/dist/src/skills/skillManager.test.js.map +1 -0
  1343. package/dist/src/telemetry/activity-detector.d.ts +41 -0
  1344. package/dist/src/telemetry/activity-detector.js +61 -0
  1345. package/dist/src/telemetry/activity-detector.js.map +1 -0
  1346. package/dist/src/telemetry/activity-detector.test.d.ts +6 -0
  1347. package/dist/src/telemetry/activity-detector.test.js +136 -0
  1348. package/dist/src/telemetry/activity-detector.test.js.map +1 -0
  1349. package/dist/src/telemetry/activity-monitor.d.ts +116 -0
  1350. package/dist/src/telemetry/activity-monitor.js +209 -0
  1351. package/dist/src/telemetry/activity-monitor.js.map +1 -0
  1352. package/dist/src/telemetry/activity-monitor.test.d.ts +6 -0
  1353. package/dist/src/telemetry/activity-monitor.test.js +251 -0
  1354. package/dist/src/telemetry/activity-monitor.test.js.map +1 -0
  1355. package/dist/src/telemetry/activity-types.d.ts +19 -0
  1356. package/dist/src/telemetry/activity-types.js +21 -0
  1357. package/dist/src/telemetry/activity-types.js.map +1 -0
  1358. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +172 -0
  1359. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +1316 -0
  1360. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -0
  1361. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +19 -0
  1362. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +964 -0
  1363. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -0
  1364. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +150 -0
  1365. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +377 -0
  1366. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -0
  1367. package/dist/src/telemetry/config.d.ts +31 -0
  1368. package/dist/src/telemetry/config.js +78 -0
  1369. package/dist/src/telemetry/config.js.map +1 -0
  1370. package/dist/src/telemetry/config.test.d.ts +6 -0
  1371. package/dist/src/telemetry/config.test.js +149 -0
  1372. package/dist/src/telemetry/config.test.js.map +1 -0
  1373. package/dist/src/telemetry/constants.d.ts +6 -0
  1374. package/dist/src/telemetry/constants.js +7 -0
  1375. package/dist/src/telemetry/constants.js.map +1 -0
  1376. package/dist/src/telemetry/file-exporters.d.ts +29 -0
  1377. package/dist/src/telemetry/file-exporters.js +62 -0
  1378. package/dist/src/telemetry/file-exporters.js.map +1 -0
  1379. package/dist/src/telemetry/gcp-exporters.d.ts +35 -0
  1380. package/dist/src/telemetry/gcp-exporters.js +120 -0
  1381. package/dist/src/telemetry/gcp-exporters.js.map +1 -0
  1382. package/dist/src/telemetry/gcp-exporters.test.d.ts +6 -0
  1383. package/dist/src/telemetry/gcp-exporters.test.js +318 -0
  1384. package/dist/src/telemetry/gcp-exporters.test.js.map +1 -0
  1385. package/dist/src/telemetry/high-water-mark-tracker.d.ts +43 -0
  1386. package/dist/src/telemetry/high-water-mark-tracker.js +88 -0
  1387. package/dist/src/telemetry/high-water-mark-tracker.js.map +1 -0
  1388. package/dist/src/telemetry/high-water-mark-tracker.test.d.ts +6 -0
  1389. package/dist/src/telemetry/high-water-mark-tracker.test.js +152 -0
  1390. package/dist/src/telemetry/high-water-mark-tracker.test.js.map +1 -0
  1391. package/dist/src/telemetry/index.d.ts +33 -0
  1392. package/dist/src/telemetry/index.js +44 -0
  1393. package/dist/src/telemetry/index.js.map +1 -0
  1394. package/dist/src/telemetry/integration.test.circular.d.ts +6 -0
  1395. package/dist/src/telemetry/integration.test.circular.js +54 -0
  1396. package/dist/src/telemetry/integration.test.circular.js.map +1 -0
  1397. package/dist/src/telemetry/loggers.d.ts +46 -0
  1398. package/dist/src/telemetry/loggers.js +517 -0
  1399. package/dist/src/telemetry/loggers.js.map +1 -0
  1400. package/dist/src/telemetry/loggers.test.circular.d.ts +6 -0
  1401. package/dist/src/telemetry/loggers.test.circular.js +107 -0
  1402. package/dist/src/telemetry/loggers.test.circular.js.map +1 -0
  1403. package/dist/src/telemetry/loggers.test.d.ts +6 -0
  1404. package/dist/src/telemetry/loggers.test.js +1618 -0
  1405. package/dist/src/telemetry/loggers.test.js.map +1 -0
  1406. package/dist/src/telemetry/memory-monitor.d.ts +149 -0
  1407. package/dist/src/telemetry/memory-monitor.js +335 -0
  1408. package/dist/src/telemetry/memory-monitor.js.map +1 -0
  1409. package/dist/src/telemetry/memory-monitor.test.d.ts +6 -0
  1410. package/dist/src/telemetry/memory-monitor.test.js +472 -0
  1411. package/dist/src/telemetry/memory-monitor.test.js.map +1 -0
  1412. package/dist/src/telemetry/metrics.d.ts +533 -0
  1413. package/dist/src/telemetry/metrics.js +852 -0
  1414. package/dist/src/telemetry/metrics.js.map +1 -0
  1415. package/dist/src/telemetry/metrics.test.d.ts +6 -0
  1416. package/dist/src/telemetry/metrics.test.js +1176 -0
  1417. package/dist/src/telemetry/metrics.test.js.map +1 -0
  1418. package/dist/src/telemetry/rate-limiter.d.ts +48 -0
  1419. package/dist/src/telemetry/rate-limiter.js +100 -0
  1420. package/dist/src/telemetry/rate-limiter.js.map +1 -0
  1421. package/dist/src/telemetry/rate-limiter.test.d.ts +6 -0
  1422. package/dist/src/telemetry/rate-limiter.test.js +207 -0
  1423. package/dist/src/telemetry/rate-limiter.test.js.map +1 -0
  1424. package/dist/src/telemetry/sanitize.d.ts +25 -0
  1425. package/dist/src/telemetry/sanitize.js +48 -0
  1426. package/dist/src/telemetry/sanitize.js.map +1 -0
  1427. package/dist/src/telemetry/sanitize.test.d.ts +6 -0
  1428. package/dist/src/telemetry/sanitize.test.js +279 -0
  1429. package/dist/src/telemetry/sanitize.test.js.map +1 -0
  1430. package/dist/src/telemetry/sdk.d.ts +16 -0
  1431. package/dist/src/telemetry/sdk.js +324 -0
  1432. package/dist/src/telemetry/sdk.js.map +1 -0
  1433. package/dist/src/telemetry/sdk.test.d.ts +6 -0
  1434. package/dist/src/telemetry/sdk.test.js +360 -0
  1435. package/dist/src/telemetry/sdk.test.js.map +1 -0
  1436. package/dist/src/telemetry/semantic.d.ts +110 -0
  1437. package/dist/src/telemetry/semantic.js +375 -0
  1438. package/dist/src/telemetry/semantic.js.map +1 -0
  1439. package/dist/src/telemetry/semantic.test.d.ts +6 -0
  1440. package/dist/src/telemetry/semantic.test.js +387 -0
  1441. package/dist/src/telemetry/semantic.test.js.map +1 -0
  1442. package/dist/src/telemetry/semantic.truncation.test.d.ts +1 -0
  1443. package/dist/src/telemetry/semantic.truncation.test.js +92 -0
  1444. package/dist/src/telemetry/semantic.truncation.test.js.map +1 -0
  1445. package/dist/src/telemetry/startupProfiler.d.ts +51 -0
  1446. package/dist/src/telemetry/startupProfiler.js +170 -0
  1447. package/dist/src/telemetry/startupProfiler.js.map +1 -0
  1448. package/dist/src/telemetry/startupProfiler.test.d.ts +6 -0
  1449. package/dist/src/telemetry/startupProfiler.test.js +285 -0
  1450. package/dist/src/telemetry/startupProfiler.test.js.map +1 -0
  1451. package/dist/src/telemetry/telemetry-utils.d.ts +6 -0
  1452. package/dist/src/telemetry/telemetry-utils.js +14 -0
  1453. package/dist/src/telemetry/telemetry-utils.js.map +1 -0
  1454. package/dist/src/telemetry/telemetry-utils.test.d.ts +6 -0
  1455. package/dist/src/telemetry/telemetry-utils.test.js +41 -0
  1456. package/dist/src/telemetry/telemetry-utils.test.js.map +1 -0
  1457. package/dist/src/telemetry/telemetry.test.d.ts +6 -0
  1458. package/dist/src/telemetry/telemetry.test.js +57 -0
  1459. package/dist/src/telemetry/telemetry.test.js.map +1 -0
  1460. package/dist/src/telemetry/telemetryAttributes.d.ts +8 -0
  1461. package/dist/src/telemetry/telemetryAttributes.js +19 -0
  1462. package/dist/src/telemetry/telemetryAttributes.js.map +1 -0
  1463. package/dist/src/telemetry/tool-call-decision.d.ts +13 -0
  1464. package/dist/src/telemetry/tool-call-decision.js +29 -0
  1465. package/dist/src/telemetry/tool-call-decision.js.map +1 -0
  1466. package/dist/src/telemetry/trace.d.ts +46 -0
  1467. package/dist/src/telemetry/trace.js +121 -0
  1468. package/dist/src/telemetry/trace.js.map +1 -0
  1469. package/dist/src/telemetry/types.d.ts +597 -0
  1470. package/dist/src/telemetry/types.js +1495 -0
  1471. package/dist/src/telemetry/types.js.map +1 -0
  1472. package/dist/src/telemetry/uiTelemetry.d.ts +76 -0
  1473. package/dist/src/telemetry/uiTelemetry.js +154 -0
  1474. package/dist/src/telemetry/uiTelemetry.js.map +1 -0
  1475. package/dist/src/telemetry/uiTelemetry.test.d.ts +6 -0
  1476. package/dist/src/telemetry/uiTelemetry.test.js +584 -0
  1477. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -0
  1478. package/dist/src/test-utils/config.d.ts +17 -0
  1479. package/dist/src/test-utils/config.js +32 -0
  1480. package/dist/src/test-utils/config.js.map +1 -0
  1481. package/dist/src/test-utils/index.d.ts +6 -0
  1482. package/dist/src/test-utils/index.js +7 -0
  1483. package/dist/src/test-utils/index.js.map +1 -0
  1484. package/dist/src/test-utils/mock-message-bus.d.ts +43 -0
  1485. package/dist/src/test-utils/mock-message-bus.js +96 -0
  1486. package/dist/src/test-utils/mock-message-bus.js.map +1 -0
  1487. package/dist/src/test-utils/mock-tool.d.ts +69 -0
  1488. package/dist/src/test-utils/mock-tool.js +123 -0
  1489. package/dist/src/test-utils/mock-tool.js.map +1 -0
  1490. package/dist/src/test-utils/mockWorkspaceContext.d.ts +13 -0
  1491. package/dist/src/test-utils/mockWorkspaceContext.js +24 -0
  1492. package/dist/src/test-utils/mockWorkspaceContext.js.map +1 -0
  1493. package/dist/src/tools/activate-skill.d.ts +27 -0
  1494. package/dist/src/tools/activate-skill.js +133 -0
  1495. package/dist/src/tools/activate-skill.js.map +1 -0
  1496. package/dist/src/tools/activate-skill.test.d.ts +6 -0
  1497. package/dist/src/tools/activate-skill.test.js +113 -0
  1498. package/dist/src/tools/activate-skill.test.js.map +1 -0
  1499. package/dist/src/tools/ask-user.d.ts +20 -0
  1500. package/dist/src/tools/ask-user.js +142 -0
  1501. package/dist/src/tools/ask-user.js.map +1 -0
  1502. package/dist/src/tools/ask-user.test.d.ts +6 -0
  1503. package/dist/src/tools/ask-user.test.js +187 -0
  1504. package/dist/src/tools/ask-user.test.js.map +1 -0
  1505. package/dist/src/tools/base-tool-invocation.test.d.ts +6 -0
  1506. package/dist/src/tools/base-tool-invocation.test.js +85 -0
  1507. package/dist/src/tools/base-tool-invocation.test.js.map +1 -0
  1508. package/dist/src/tools/confirmation-policy.test.d.ts +6 -0
  1509. package/dist/src/tools/confirmation-policy.test.js +143 -0
  1510. package/dist/src/tools/confirmation-policy.test.js.map +1 -0
  1511. package/dist/src/tools/constants.d.ts +7 -0
  1512. package/dist/src/tools/constants.js +8 -0
  1513. package/dist/src/tools/constants.js.map +1 -0
  1514. package/dist/src/tools/diffOptions.d.ts +9 -0
  1515. package/dist/src/tools/diffOptions.js +50 -0
  1516. package/dist/src/tools/diffOptions.js.map +1 -0
  1517. package/dist/src/tools/diffOptions.test.d.ts +6 -0
  1518. package/dist/src/tools/diffOptions.test.js +172 -0
  1519. package/dist/src/tools/diffOptions.test.js.map +1 -0
  1520. package/dist/src/tools/edit.d.ts +79 -0
  1521. package/dist/src/tools/edit.js +747 -0
  1522. package/dist/src/tools/edit.js.map +1 -0
  1523. package/dist/src/tools/edit.test.d.ts +6 -0
  1524. package/dist/src/tools/edit.test.js +729 -0
  1525. package/dist/src/tools/edit.test.js.map +1 -0
  1526. package/dist/src/tools/get-internal-docs.d.ts +27 -0
  1527. package/dist/src/tools/get-internal-docs.js +122 -0
  1528. package/dist/src/tools/get-internal-docs.js.map +1 -0
  1529. package/dist/src/tools/get-internal-docs.test.d.ts +6 -0
  1530. package/dist/src/tools/get-internal-docs.test.js +57 -0
  1531. package/dist/src/tools/get-internal-docs.test.js.map +1 -0
  1532. package/dist/src/tools/glob.d.ts +57 -0
  1533. package/dist/src/tools/glob.js +241 -0
  1534. package/dist/src/tools/glob.js.map +1 -0
  1535. package/dist/src/tools/glob.test.d.ts +6 -0
  1536. package/dist/src/tools/glob.test.js +433 -0
  1537. package/dist/src/tools/glob.test.js.map +1 -0
  1538. package/dist/src/tools/grep.d.ts +48 -0
  1539. package/dist/src/tools/grep.js +509 -0
  1540. package/dist/src/tools/grep.js.map +1 -0
  1541. package/dist/src/tools/grep.test.d.ts +6 -0
  1542. package/dist/src/tools/grep.test.js +328 -0
  1543. package/dist/src/tools/grep.test.js.map +1 -0
  1544. package/dist/src/tools/ls.d.ts +69 -0
  1545. package/dist/src/tools/ls.js +208 -0
  1546. package/dist/src/tools/ls.js.map +1 -0
  1547. package/dist/src/tools/ls.test.d.ts +6 -0
  1548. package/dist/src/tools/ls.test.js +242 -0
  1549. package/dist/src/tools/ls.test.js.map +1 -0
  1550. package/dist/src/tools/mcp-client-manager.d.ts +93 -0
  1551. package/dist/src/tools/mcp-client-manager.js +338 -0
  1552. package/dist/src/tools/mcp-client-manager.js.map +1 -0
  1553. package/dist/src/tools/mcp-client-manager.test.d.ts +6 -0
  1554. package/dist/src/tools/mcp-client-manager.test.js +251 -0
  1555. package/dist/src/tools/mcp-client-manager.test.js.map +1 -0
  1556. package/dist/src/tools/mcp-client.d.ts +243 -0
  1557. package/dist/src/tools/mcp-client.js +1334 -0
  1558. package/dist/src/tools/mcp-client.js.map +1 -0
  1559. package/dist/src/tools/mcp-client.test.d.ts +6 -0
  1560. package/dist/src/tools/mcp-client.test.js +1346 -0
  1561. package/dist/src/tools/mcp-client.test.js.map +1 -0
  1562. package/dist/src/tools/mcp-tool.d.ts +49 -0
  1563. package/dist/src/tools/mcp-tool.js +300 -0
  1564. package/dist/src/tools/mcp-tool.js.map +1 -0
  1565. package/dist/src/tools/mcp-tool.test.d.ts +6 -0
  1566. package/dist/src/tools/mcp-tool.test.js +657 -0
  1567. package/dist/src/tools/mcp-tool.test.js.map +1 -0
  1568. package/dist/src/tools/memoryTool.d.ts +42 -0
  1569. package/dist/src/tools/memoryTool.js +269 -0
  1570. package/dist/src/tools/memoryTool.js.map +1 -0
  1571. package/dist/src/tools/memoryTool.test.d.ts +6 -0
  1572. package/dist/src/tools/memoryTool.test.js +302 -0
  1573. package/dist/src/tools/memoryTool.test.js.map +1 -0
  1574. package/dist/src/tools/message-bus-integration.test.d.ts +6 -0
  1575. package/dist/src/tools/message-bus-integration.test.js +169 -0
  1576. package/dist/src/tools/message-bus-integration.test.js.map +1 -0
  1577. package/dist/src/tools/modifiable-tool.d.ts +36 -0
  1578. package/dist/src/tools/modifiable-tool.js +110 -0
  1579. package/dist/src/tools/modifiable-tool.js.map +1 -0
  1580. package/dist/src/tools/modifiable-tool.test.d.ts +6 -0
  1581. package/dist/src/tools/modifiable-tool.test.js +237 -0
  1582. package/dist/src/tools/modifiable-tool.test.js.map +1 -0
  1583. package/dist/src/tools/read-file.d.ts +36 -0
  1584. package/dist/src/tools/read-file.js +133 -0
  1585. package/dist/src/tools/read-file.js.map +1 -0
  1586. package/dist/src/tools/read-file.test.d.ts +6 -0
  1587. package/dist/src/tools/read-file.test.js +376 -0
  1588. package/dist/src/tools/read-file.test.js.map +1 -0
  1589. package/dist/src/tools/read-many-files.d.ts +54 -0
  1590. package/dist/src/tools/read-many-files.js +355 -0
  1591. package/dist/src/tools/read-many-files.js.map +1 -0
  1592. package/dist/src/tools/read-many-files.test.d.ts +6 -0
  1593. package/dist/src/tools/read-many-files.test.js +567 -0
  1594. package/dist/src/tools/read-many-files.test.js.map +1 -0
  1595. package/dist/src/tools/ripGrep.d.ts +74 -0
  1596. package/dist/src/tools/ripGrep.js +398 -0
  1597. package/dist/src/tools/ripGrep.js.map +1 -0
  1598. package/dist/src/tools/ripGrep.test.d.ts +6 -0
  1599. package/dist/src/tools/ripGrep.test.js +1139 -0
  1600. package/dist/src/tools/ripGrep.test.js.map +1 -0
  1601. package/dist/src/tools/shell.d.ts +32 -0
  1602. package/dist/src/tools/shell.js +381 -0
  1603. package/dist/src/tools/shell.js.map +1 -0
  1604. package/dist/src/tools/shell.test.d.ts +6 -0
  1605. package/dist/src/tools/shell.test.js +526 -0
  1606. package/dist/src/tools/shell.test.js.map +1 -0
  1607. package/dist/src/tools/tool-error.d.ts +70 -0
  1608. package/dist/src/tools/tool-error.js +92 -0
  1609. package/dist/src/tools/tool-error.js.map +1 -0
  1610. package/dist/src/tools/tool-names.d.ts +40 -0
  1611. package/dist/src/tools/tool-names.js +92 -0
  1612. package/dist/src/tools/tool-names.js.map +1 -0
  1613. package/dist/src/tools/tool-names.test.d.ts +6 -0
  1614. package/dist/src/tools/tool-names.test.js +43 -0
  1615. package/dist/src/tools/tool-names.test.js.map +1 -0
  1616. package/dist/src/tools/tool-registry.d.ts +103 -0
  1617. package/dist/src/tools/tool-registry.js +429 -0
  1618. package/dist/src/tools/tool-registry.js.map +1 -0
  1619. package/dist/src/tools/tool-registry.test.d.ts +6 -0
  1620. package/dist/src/tools/tool-registry.test.js +461 -0
  1621. package/dist/src/tools/tool-registry.test.js.map +1 -0
  1622. package/dist/src/tools/tools.d.ts +330 -0
  1623. package/dist/src/tools/tools.js +405 -0
  1624. package/dist/src/tools/tools.js.map +1 -0
  1625. package/dist/src/tools/tools.test.d.ts +6 -0
  1626. package/dist/src/tools/tools.test.js +207 -0
  1627. package/dist/src/tools/tools.test.js.map +1 -0
  1628. package/dist/src/tools/web-fetch.d.ts +35 -0
  1629. package/dist/src/tools/web-fetch.js +299 -0
  1630. package/dist/src/tools/web-fetch.js.map +1 -0
  1631. package/dist/src/tools/web-fetch.test.d.ts +6 -0
  1632. package/dist/src/tools/web-fetch.test.js +442 -0
  1633. package/dist/src/tools/web-fetch.test.js.map +1 -0
  1634. package/dist/src/tools/web-search.d.ts +50 -0
  1635. package/dist/src/tools/web-search.js +141 -0
  1636. package/dist/src/tools/web-search.js.map +1 -0
  1637. package/dist/src/tools/web-search.test.d.ts +6 -0
  1638. package/dist/src/tools/web-search.test.js +214 -0
  1639. package/dist/src/tools/web-search.test.js.map +1 -0
  1640. package/dist/src/tools/write-file.d.ts +53 -0
  1641. package/dist/src/tools/write-file.js +318 -0
  1642. package/dist/src/tools/write-file.js.map +1 -0
  1643. package/dist/src/tools/write-file.test.d.ts +6 -0
  1644. package/dist/src/tools/write-file.test.js +681 -0
  1645. package/dist/src/tools/write-file.test.js.map +1 -0
  1646. package/dist/src/tools/write-todos.d.ts +50 -0
  1647. package/dist/src/tools/write-todos.js +194 -0
  1648. package/dist/src/tools/write-todos.js.map +1 -0
  1649. package/dist/src/tools/write-todos.test.d.ts +6 -0
  1650. package/dist/src/tools/write-todos.test.js +90 -0
  1651. package/dist/src/tools/write-todos.test.js.map +1 -0
  1652. package/dist/src/utils/apiConversionUtils.d.ts +12 -0
  1653. package/dist/src/utils/apiConversionUtils.js +46 -0
  1654. package/dist/src/utils/apiConversionUtils.js.map +1 -0
  1655. package/dist/src/utils/apiConversionUtils.test.d.ts +6 -0
  1656. package/dist/src/utils/apiConversionUtils.test.js +150 -0
  1657. package/dist/src/utils/apiConversionUtils.test.js.map +1 -0
  1658. package/dist/src/utils/bfsFileSearch.d.ts +32 -0
  1659. package/dist/src/utils/bfsFileSearch.js +136 -0
  1660. package/dist/src/utils/bfsFileSearch.js.map +1 -0
  1661. package/dist/src/utils/bfsFileSearch.test.d.ts +6 -0
  1662. package/dist/src/utils/bfsFileSearch.test.js +227 -0
  1663. package/dist/src/utils/bfsFileSearch.test.js.map +1 -0
  1664. package/dist/src/utils/browser.d.ts +13 -0
  1665. package/dist/src/utils/browser.js +50 -0
  1666. package/dist/src/utils/browser.js.map +1 -0
  1667. package/dist/src/utils/channel.d.ts +19 -0
  1668. package/dist/src/utils/channel.js +49 -0
  1669. package/dist/src/utils/channel.js.map +1 -0
  1670. package/dist/src/utils/channel.test.d.ts +6 -0
  1671. package/dist/src/utils/channel.test.js +170 -0
  1672. package/dist/src/utils/channel.test.js.map +1 -0
  1673. package/dist/src/utils/checkpointUtils.d.ts +82 -0
  1674. package/dist/src/utils/checkpointUtils.js +117 -0
  1675. package/dist/src/utils/checkpointUtils.js.map +1 -0
  1676. package/dist/src/utils/checkpointUtils.test.d.ts +6 -0
  1677. package/dist/src/utils/checkpointUtils.test.js +229 -0
  1678. package/dist/src/utils/checkpointUtils.test.js.map +1 -0
  1679. package/dist/src/utils/constants.d.ts +7 -0
  1680. package/dist/src/utils/constants.js +8 -0
  1681. package/dist/src/utils/constants.js.map +1 -0
  1682. package/dist/src/utils/customHeaderUtils.d.ts +9 -0
  1683. package/dist/src/utils/customHeaderUtils.js +34 -0
  1684. package/dist/src/utils/customHeaderUtils.js.map +1 -0
  1685. package/dist/src/utils/customHeaderUtils.test.d.ts +6 -0
  1686. package/dist/src/utils/customHeaderUtils.test.js +77 -0
  1687. package/dist/src/utils/customHeaderUtils.test.js.map +1 -0
  1688. package/dist/src/utils/debugLogger.d.ts +28 -0
  1689. package/dist/src/utils/debugLogger.js +61 -0
  1690. package/dist/src/utils/debugLogger.js.map +1 -0
  1691. package/dist/src/utils/debugLogger.test.d.ts +6 -0
  1692. package/dist/src/utils/debugLogger.test.js +69 -0
  1693. package/dist/src/utils/debugLogger.test.js.map +1 -0
  1694. package/dist/src/utils/delay.d.ts +16 -0
  1695. package/dist/src/utils/delay.js +43 -0
  1696. package/dist/src/utils/delay.js.map +1 -0
  1697. package/dist/src/utils/delay.test.d.ts +6 -0
  1698. package/dist/src/utils/delay.test.js +88 -0
  1699. package/dist/src/utils/delay.test.js.map +1 -0
  1700. package/dist/src/utils/editCorrector.d.ts +54 -0
  1701. package/dist/src/utils/editCorrector.js +594 -0
  1702. package/dist/src/utils/editCorrector.js.map +1 -0
  1703. package/dist/src/utils/editCorrector.test.d.ts +6 -0
  1704. package/dist/src/utils/editCorrector.test.js +533 -0
  1705. package/dist/src/utils/editCorrector.test.js.map +1 -0
  1706. package/dist/src/utils/editor.d.ts +39 -0
  1707. package/dist/src/utils/editor.js +219 -0
  1708. package/dist/src/utils/editor.js.map +1 -0
  1709. package/dist/src/utils/editor.test.d.ts +6 -0
  1710. package/dist/src/utils/editor.test.js +429 -0
  1711. package/dist/src/utils/editor.test.js.map +1 -0
  1712. package/dist/src/utils/environmentContext.d.ts +23 -0
  1713. package/dist/src/utils/environmentContext.js +81 -0
  1714. package/dist/src/utils/environmentContext.js.map +1 -0
  1715. package/dist/src/utils/environmentContext.test.d.ts +6 -0
  1716. package/dist/src/utils/environmentContext.test.js +114 -0
  1717. package/dist/src/utils/environmentContext.test.js.map +1 -0
  1718. package/dist/src/utils/errorParsing.d.ts +8 -0
  1719. package/dist/src/utils/errorParsing.js +65 -0
  1720. package/dist/src/utils/errorParsing.js.map +1 -0
  1721. package/dist/src/utils/errorParsing.test.d.ts +6 -0
  1722. package/dist/src/utils/errorParsing.test.js +84 -0
  1723. package/dist/src/utils/errorParsing.test.js.map +1 -0
  1724. package/dist/src/utils/errorReporting.d.ts +14 -0
  1725. package/dist/src/utils/errorReporting.js +89 -0
  1726. package/dist/src/utils/errorReporting.js.map +1 -0
  1727. package/dist/src/utils/errorReporting.test.d.ts +6 -0
  1728. package/dist/src/utils/errorReporting.test.js +133 -0
  1729. package/dist/src/utils/errorReporting.test.js.map +1 -0
  1730. package/dist/src/utils/errors.d.ts +53 -0
  1731. package/dist/src/utils/errors.js +145 -0
  1732. package/dist/src/utils/errors.js.map +1 -0
  1733. package/dist/src/utils/errors.test.d.ts +6 -0
  1734. package/dist/src/utils/errors.test.js +155 -0
  1735. package/dist/src/utils/errors.test.js.map +1 -0
  1736. package/dist/src/utils/events.d.ts +198 -0
  1737. package/dist/src/utils/events.js +127 -0
  1738. package/dist/src/utils/events.js.map +1 -0
  1739. package/dist/src/utils/events.test.d.ts +6 -0
  1740. package/dist/src/utils/events.test.js +237 -0
  1741. package/dist/src/utils/events.test.js.map +1 -0
  1742. package/dist/src/utils/exitCodes.d.ts +12 -0
  1743. package/dist/src/utils/exitCodes.js +13 -0
  1744. package/dist/src/utils/exitCodes.js.map +1 -0
  1745. package/dist/src/utils/extensionLoader.d.ts +86 -0
  1746. package/dist/src/utils/extensionLoader.js +208 -0
  1747. package/dist/src/utils/extensionLoader.js.map +1 -0
  1748. package/dist/src/utils/extensionLoader.test.d.ts +6 -0
  1749. package/dist/src/utils/extensionLoader.test.js +176 -0
  1750. package/dist/src/utils/extensionLoader.test.js.map +1 -0
  1751. package/dist/src/utils/fetch.d.ts +12 -0
  1752. package/dist/src/utils/fetch.js +55 -0
  1753. package/dist/src/utils/fetch.js.map +1 -0
  1754. package/dist/src/utils/fileDiffUtils.d.ts +18 -0
  1755. package/dist/src/utils/fileDiffUtils.js +37 -0
  1756. package/dist/src/utils/fileDiffUtils.js.map +1 -0
  1757. package/dist/src/utils/fileDiffUtils.test.d.ts +6 -0
  1758. package/dist/src/utils/fileDiffUtils.test.js +84 -0
  1759. package/dist/src/utils/fileDiffUtils.test.js.map +1 -0
  1760. package/dist/src/utils/fileUtils.d.ts +85 -0
  1761. package/dist/src/utils/fileUtils.js +490 -0
  1762. package/dist/src/utils/fileUtils.js.map +1 -0
  1763. package/dist/src/utils/fileUtils.test.d.ts +6 -0
  1764. package/dist/src/utils/fileUtils.test.js +780 -0
  1765. package/dist/src/utils/fileUtils.test.js.map +1 -0
  1766. package/dist/src/utils/filesearch/crawlCache.d.ts +25 -0
  1767. package/dist/src/utils/filesearch/crawlCache.js +57 -0
  1768. package/dist/src/utils/filesearch/crawlCache.js.map +1 -0
  1769. package/dist/src/utils/filesearch/crawlCache.test.d.ts +6 -0
  1770. package/dist/src/utils/filesearch/crawlCache.test.js +103 -0
  1771. package/dist/src/utils/filesearch/crawlCache.test.js.map +1 -0
  1772. package/dist/src/utils/filesearch/crawler.d.ts +16 -0
  1773. package/dist/src/utils/filesearch/crawler.js +67 -0
  1774. package/dist/src/utils/filesearch/crawler.js.map +1 -0
  1775. package/dist/src/utils/filesearch/crawler.test.d.ts +6 -0
  1776. package/dist/src/utils/filesearch/crawler.test.js +495 -0
  1777. package/dist/src/utils/filesearch/crawler.test.js.map +1 -0
  1778. package/dist/src/utils/filesearch/fileSearch.d.ts +39 -0
  1779. package/dist/src/utils/filesearch/fileSearch.js +192 -0
  1780. package/dist/src/utils/filesearch/fileSearch.js.map +1 -0
  1781. package/dist/src/utils/filesearch/fileSearch.test.d.ts +6 -0
  1782. package/dist/src/utils/filesearch/fileSearch.test.js +663 -0
  1783. package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -0
  1784. package/dist/src/utils/filesearch/ignore.d.ts +42 -0
  1785. package/dist/src/utils/filesearch/ignore.js +106 -0
  1786. package/dist/src/utils/filesearch/ignore.js.map +1 -0
  1787. package/dist/src/utils/filesearch/ignore.test.d.ts +6 -0
  1788. package/dist/src/utils/filesearch/ignore.test.js +144 -0
  1789. package/dist/src/utils/filesearch/ignore.test.js.map +1 -0
  1790. package/dist/src/utils/filesearch/result-cache.d.ts +33 -0
  1791. package/dist/src/utils/filesearch/result-cache.js +59 -0
  1792. package/dist/src/utils/filesearch/result-cache.js.map +1 -0
  1793. package/dist/src/utils/filesearch/result-cache.test.d.ts +6 -0
  1794. package/dist/src/utils/filesearch/result-cache.test.js +46 -0
  1795. package/dist/src/utils/filesearch/result-cache.test.js.map +1 -0
  1796. package/dist/src/utils/flashFallback.test.d.ts +6 -0
  1797. package/dist/src/utils/flashFallback.test.js +103 -0
  1798. package/dist/src/utils/flashFallback.test.js.map +1 -0
  1799. package/dist/src/utils/formatters.d.ts +7 -0
  1800. package/dist/src/utils/formatters.js +17 -0
  1801. package/dist/src/utils/formatters.js.map +1 -0
  1802. package/dist/src/utils/formatters.test.d.ts +6 -0
  1803. package/dist/src/utils/formatters.test.js +26 -0
  1804. package/dist/src/utils/formatters.test.js.map +1 -0
  1805. package/dist/src/utils/geminiIgnoreParser.d.ts +29 -0
  1806. package/dist/src/utils/geminiIgnoreParser.js +81 -0
  1807. package/dist/src/utils/geminiIgnoreParser.js.map +1 -0
  1808. package/dist/src/utils/geminiIgnoreParser.test.d.ts +6 -0
  1809. package/dist/src/utils/geminiIgnoreParser.test.js +98 -0
  1810. package/dist/src/utils/geminiIgnoreParser.test.js.map +1 -0
  1811. package/dist/src/utils/geminiTypeConversion.d.ts +11 -0
  1812. package/dist/src/utils/geminiTypeConversion.js +12 -0
  1813. package/dist/src/utils/geminiTypeConversion.js.map +1 -0
  1814. package/dist/src/utils/geminiTypeConversion.test.d.ts +6 -0
  1815. package/dist/src/utils/geminiTypeConversion.test.js +310 -0
  1816. package/dist/src/utils/geminiTypeConversion.test.js.map +1 -0
  1817. package/dist/src/utils/generateContentResponseUtilities.d.ts +15 -0
  1818. package/dist/src/utils/generateContentResponseUtilities.js +186 -0
  1819. package/dist/src/utils/generateContentResponseUtilities.js.map +1 -0
  1820. package/dist/src/utils/generateContentResponseUtilities.test.d.ts +6 -0
  1821. package/dist/src/utils/generateContentResponseUtilities.test.js +512 -0
  1822. package/dist/src/utils/generateContentResponseUtilities.test.js.map +1 -0
  1823. package/dist/src/utils/getFolderStructure.d.ts +31 -0
  1824. package/dist/src/utils/getFolderStructure.js +243 -0
  1825. package/dist/src/utils/getFolderStructure.js.map +1 -0
  1826. package/dist/src/utils/getFolderStructure.test.d.ts +6 -0
  1827. package/dist/src/utils/getFolderStructure.test.js +283 -0
  1828. package/dist/src/utils/getFolderStructure.test.js.map +1 -0
  1829. package/dist/src/utils/getPty.d.ts +19 -0
  1830. package/dist/src/utils/getPty.js +23 -0
  1831. package/dist/src/utils/getPty.js.map +1 -0
  1832. package/dist/src/utils/gitIgnoreParser.d.ts +19 -0
  1833. package/dist/src/utils/gitIgnoreParser.js +169 -0
  1834. package/dist/src/utils/gitIgnoreParser.js.map +1 -0
  1835. package/dist/src/utils/gitIgnoreParser.test.d.ts +6 -0
  1836. package/dist/src/utils/gitIgnoreParser.test.js +243 -0
  1837. package/dist/src/utils/gitIgnoreParser.test.js.map +1 -0
  1838. package/dist/src/utils/gitUtils.d.ts +17 -0
  1839. package/dist/src/utils/gitUtils.js +61 -0
  1840. package/dist/src/utils/gitUtils.js.map +1 -0
  1841. package/dist/src/utils/googleErrors.d.ts +104 -0
  1842. package/dist/src/utils/googleErrors.js +165 -0
  1843. package/dist/src/utils/googleErrors.js.map +1 -0
  1844. package/dist/src/utils/googleErrors.test.d.ts +6 -0
  1845. package/dist/src/utils/googleErrors.test.js +309 -0
  1846. package/dist/src/utils/googleErrors.test.js.map +1 -0
  1847. package/dist/src/utils/googleQuotaErrors.d.ts +51 -0
  1848. package/dist/src/utils/googleQuotaErrors.js +250 -0
  1849. package/dist/src/utils/googleQuotaErrors.js.map +1 -0
  1850. package/dist/src/utils/googleQuotaErrors.test.d.ts +6 -0
  1851. package/dist/src/utils/googleQuotaErrors.test.js +548 -0
  1852. package/dist/src/utils/googleQuotaErrors.test.js.map +1 -0
  1853. package/dist/src/utils/httpErrors.d.ts +18 -0
  1854. package/dist/src/utils/httpErrors.js +36 -0
  1855. package/dist/src/utils/httpErrors.js.map +1 -0
  1856. package/dist/src/utils/ignorePatterns.d.ts +103 -0
  1857. package/dist/src/utils/ignorePatterns.js +220 -0
  1858. package/dist/src/utils/ignorePatterns.js.map +1 -0
  1859. package/dist/src/utils/ignorePatterns.test.d.ts +6 -0
  1860. package/dist/src/utils/ignorePatterns.test.js +246 -0
  1861. package/dist/src/utils/ignorePatterns.test.js.map +1 -0
  1862. package/dist/src/utils/installationManager.d.ts +16 -0
  1863. package/dist/src/utils/installationManager.js +51 -0
  1864. package/dist/src/utils/installationManager.js.map +1 -0
  1865. package/dist/src/utils/installationManager.test.d.ts +6 -0
  1866. package/dist/src/utils/installationManager.test.js +93 -0
  1867. package/dist/src/utils/installationManager.test.js.map +1 -0
  1868. package/dist/src/utils/language-detection.d.ts +6 -0
  1869. package/dist/src/utils/language-detection.js +101 -0
  1870. package/dist/src/utils/language-detection.js.map +1 -0
  1871. package/dist/src/utils/llm-edit-fixer.d.ts +26 -0
  1872. package/dist/src/utils/llm-edit-fixer.js +152 -0
  1873. package/dist/src/utils/llm-edit-fixer.js.map +1 -0
  1874. package/dist/src/utils/llm-edit-fixer.test.d.ts +6 -0
  1875. package/dist/src/utils/llm-edit-fixer.test.js +223 -0
  1876. package/dist/src/utils/llm-edit-fixer.test.js.map +1 -0
  1877. package/dist/src/utils/llmUtils.d.ts +38 -0
  1878. package/dist/src/utils/llmUtils.js +64 -0
  1879. package/dist/src/utils/llmUtils.js.map +1 -0
  1880. package/dist/src/utils/llmUtils.test.d.ts +6 -0
  1881. package/dist/src/utils/llmUtils.test.js +196 -0
  1882. package/dist/src/utils/llmUtils.test.js.map +1 -0
  1883. package/dist/src/utils/memoryDiscovery.d.ts +40 -0
  1884. package/dist/src/utils/memoryDiscovery.js +421 -0
  1885. package/dist/src/utils/memoryDiscovery.js.map +1 -0
  1886. package/dist/src/utils/memoryDiscovery.test.d.ts +6 -0
  1887. package/dist/src/utils/memoryDiscovery.test.js +542 -0
  1888. package/dist/src/utils/memoryDiscovery.test.js.map +1 -0
  1889. package/dist/src/utils/memoryImportProcessor.d.ts +42 -0
  1890. package/dist/src/utils/memoryImportProcessor.js +273 -0
  1891. package/dist/src/utils/memoryImportProcessor.js.map +1 -0
  1892. package/dist/src/utils/memoryImportProcessor.test.d.ts +6 -0
  1893. package/dist/src/utils/memoryImportProcessor.test.js +581 -0
  1894. package/dist/src/utils/memoryImportProcessor.test.js.map +1 -0
  1895. package/dist/src/utils/messageInspectors.d.ts +16 -0
  1896. package/dist/src/utils/messageInspectors.js +24 -0
  1897. package/dist/src/utils/messageInspectors.js.map +1 -0
  1898. package/dist/src/utils/nextSpeakerChecker.d.ts +12 -0
  1899. package/dist/src/utils/nextSpeakerChecker.js +97 -0
  1900. package/dist/src/utils/nextSpeakerChecker.js.map +1 -0
  1901. package/dist/src/utils/nextSpeakerChecker.test.d.ts +6 -0
  1902. package/dist/src/utils/nextSpeakerChecker.test.js +191 -0
  1903. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -0
  1904. package/dist/src/utils/package.d.ts +26 -0
  1905. package/dist/src/utils/package.js +28 -0
  1906. package/dist/src/utils/package.js.map +1 -0
  1907. package/dist/src/utils/partUtils.d.ts +76 -0
  1908. package/dist/src/utils/partUtils.js +237 -0
  1909. package/dist/src/utils/partUtils.js.map +1 -0
  1910. package/dist/src/utils/partUtils.test.d.ts +6 -0
  1911. package/dist/src/utils/partUtils.test.js +397 -0
  1912. package/dist/src/utils/partUtils.test.js.map +1 -0
  1913. package/dist/src/utils/pathCorrector.d.ts +25 -0
  1914. package/dist/src/utils/pathCorrector.js +43 -0
  1915. package/dist/src/utils/pathCorrector.js.map +1 -0
  1916. package/dist/src/utils/pathCorrector.test.d.ts +6 -0
  1917. package/dist/src/utils/pathCorrector.test.js +87 -0
  1918. package/dist/src/utils/pathCorrector.test.js.map +1 -0
  1919. package/dist/src/utils/pathReader.d.ts +17 -0
  1920. package/dist/src/utils/pathReader.js +92 -0
  1921. package/dist/src/utils/pathReader.js.map +1 -0
  1922. package/dist/src/utils/pathReader.test.d.ts +6 -0
  1923. package/dist/src/utils/pathReader.test.js +406 -0
  1924. package/dist/src/utils/pathReader.test.js.map +1 -0
  1925. package/dist/src/utils/paths.d.ts +78 -0
  1926. package/dist/src/utils/paths.js +311 -0
  1927. package/dist/src/utils/paths.js.map +1 -0
  1928. package/dist/src/utils/paths.test.d.ts +6 -0
  1929. package/dist/src/utils/paths.test.js +402 -0
  1930. package/dist/src/utils/paths.test.js.map +1 -0
  1931. package/dist/src/utils/promptIdContext.d.ts +13 -0
  1932. package/dist/src/utils/promptIdContext.js +23 -0
  1933. package/dist/src/utils/promptIdContext.js.map +1 -0
  1934. package/dist/src/utils/quotaErrorDetection.d.ts +16 -0
  1935. package/dist/src/utils/quotaErrorDetection.js +19 -0
  1936. package/dist/src/utils/quotaErrorDetection.js.map +1 -0
  1937. package/dist/src/utils/retry.d.ts +43 -0
  1938. package/dist/src/utils/retry.js +337 -0
  1939. package/dist/src/utils/retry.js.map +1 -0
  1940. package/dist/src/utils/retry.test.d.ts +6 -0
  1941. package/dist/src/utils/retry.test.js +548 -0
  1942. package/dist/src/utils/retry.test.js.map +1 -0
  1943. package/dist/src/utils/retry_llm_error.test.d.ts +6 -0
  1944. package/dist/src/utils/retry_llm_error.test.js +280 -0
  1945. package/dist/src/utils/retry_llm_error.test.js.map +1 -0
  1946. package/dist/src/utils/safeJsonStringify.d.ts +13 -0
  1947. package/dist/src/utils/safeJsonStringify.js +49 -0
  1948. package/dist/src/utils/safeJsonStringify.js.map +1 -0
  1949. package/dist/src/utils/safeJsonStringify.test.d.ts +6 -0
  1950. package/dist/src/utils/safeJsonStringify.test.js +61 -0
  1951. package/dist/src/utils/safeJsonStringify.test.js.map +1 -0
  1952. package/dist/src/utils/schemaValidator.d.ts +21 -0
  1953. package/dist/src/utils/schemaValidator.js +59 -0
  1954. package/dist/src/utils/schemaValidator.js.map +1 -0
  1955. package/dist/src/utils/schemaValidator.test.d.ts +6 -0
  1956. package/dist/src/utils/schemaValidator.test.js +113 -0
  1957. package/dist/src/utils/schemaValidator.test.js.map +1 -0
  1958. package/dist/src/utils/secure-browser-launcher.d.ts +23 -0
  1959. package/dist/src/utils/secure-browser-launcher.js +165 -0
  1960. package/dist/src/utils/secure-browser-launcher.js.map +1 -0
  1961. package/dist/src/utils/secure-browser-launcher.test.d.ts +6 -0
  1962. package/dist/src/utils/secure-browser-launcher.test.js +149 -0
  1963. package/dist/src/utils/secure-browser-launcher.test.js.map +1 -0
  1964. package/dist/src/utils/security.d.ts +16 -0
  1965. package/dist/src/utils/security.js +88 -0
  1966. package/dist/src/utils/security.js.map +1 -0
  1967. package/dist/src/utils/security.test.d.ts +1 -0
  1968. package/dist/src/utils/security.test.js +121 -0
  1969. package/dist/src/utils/security.test.js.map +1 -0
  1970. package/dist/src/utils/session.d.ts +6 -0
  1971. package/dist/src/utils/session.js +8 -0
  1972. package/dist/src/utils/session.js.map +1 -0
  1973. package/dist/src/utils/shell-utils.d.ts +118 -0
  1974. package/dist/src/utils/shell-utils.integration.test.d.ts +1 -0
  1975. package/dist/src/utils/shell-utils.integration.test.js +58 -0
  1976. package/dist/src/utils/shell-utils.integration.test.js.map +1 -0
  1977. package/dist/src/utils/shell-utils.js +708 -0
  1978. package/dist/src/utils/shell-utils.js.map +1 -0
  1979. package/dist/src/utils/shell-utils.test.d.ts +6 -0
  1980. package/dist/src/utils/shell-utils.test.js +437 -0
  1981. package/dist/src/utils/shell-utils.test.js.map +1 -0
  1982. package/dist/src/utils/stdio.d.ts +32 -0
  1983. package/dist/src/utils/stdio.js +85 -0
  1984. package/dist/src/utils/stdio.js.map +1 -0
  1985. package/dist/src/utils/stdio.test.d.ts +6 -0
  1986. package/dist/src/utils/stdio.test.js +47 -0
  1987. package/dist/src/utils/stdio.test.js.map +1 -0
  1988. package/dist/src/utils/summarizer.d.ts +27 -0
  1989. package/dist/src/utils/summarizer.js +50 -0
  1990. package/dist/src/utils/summarizer.js.map +1 -0
  1991. package/dist/src/utils/summarizer.test.d.ts +6 -0
  1992. package/dist/src/utils/summarizer.test.js +152 -0
  1993. package/dist/src/utils/summarizer.test.js.map +1 -0
  1994. package/dist/src/utils/systemEncoding.d.ts +40 -0
  1995. package/dist/src/utils/systemEncoding.js +150 -0
  1996. package/dist/src/utils/systemEncoding.js.map +1 -0
  1997. package/dist/src/utils/systemEncoding.test.d.ts +6 -0
  1998. package/dist/src/utils/systemEncoding.test.js +369 -0
  1999. package/dist/src/utils/systemEncoding.test.js.map +1 -0
  2000. package/dist/src/utils/terminal.d.ts +18 -0
  2001. package/dist/src/utils/terminal.js +50 -0
  2002. package/dist/src/utils/terminal.js.map +1 -0
  2003. package/dist/src/utils/terminalSerializer.d.ts +25 -0
  2004. package/dist/src/utils/terminalSerializer.js +432 -0
  2005. package/dist/src/utils/terminalSerializer.js.map +1 -0
  2006. package/dist/src/utils/terminalSerializer.test.d.ts +6 -0
  2007. package/dist/src/utils/terminalSerializer.test.js +193 -0
  2008. package/dist/src/utils/terminalSerializer.test.js.map +1 -0
  2009. package/dist/src/utils/testUtils.d.ts +29 -0
  2010. package/dist/src/utils/testUtils.js +70 -0
  2011. package/dist/src/utils/testUtils.js.map +1 -0
  2012. package/dist/src/utils/textUtils.d.ts +26 -0
  2013. package/dist/src/utils/textUtils.js +55 -0
  2014. package/dist/src/utils/textUtils.js.map +1 -0
  2015. package/dist/src/utils/textUtils.test.d.ts +6 -0
  2016. package/dist/src/utils/textUtils.test.js +76 -0
  2017. package/dist/src/utils/textUtils.test.js.map +1 -0
  2018. package/dist/src/utils/thoughtUtils.d.ts +21 -0
  2019. package/dist/src/utils/thoughtUtils.js +39 -0
  2020. package/dist/src/utils/thoughtUtils.js.map +1 -0
  2021. package/dist/src/utils/thoughtUtils.test.d.ts +6 -0
  2022. package/dist/src/utils/thoughtUtils.test.js +78 -0
  2023. package/dist/src/utils/thoughtUtils.test.js.map +1 -0
  2024. package/dist/src/utils/tokenCalculation.d.ts +33 -0
  2025. package/dist/src/utils/tokenCalculation.js +145 -0
  2026. package/dist/src/utils/tokenCalculation.js.map +1 -0
  2027. package/dist/src/utils/tokenCalculation.test.d.ts +6 -0
  2028. package/dist/src/utils/tokenCalculation.test.js +184 -0
  2029. package/dist/src/utils/tokenCalculation.test.js.map +1 -0
  2030. package/dist/src/utils/tool-utils.d.ts +28 -0
  2031. package/dist/src/utils/tool-utils.js +96 -0
  2032. package/dist/src/utils/tool-utils.js.map +1 -0
  2033. package/dist/src/utils/tool-utils.test.d.ts +6 -0
  2034. package/dist/src/utils/tool-utils.test.js +84 -0
  2035. package/dist/src/utils/tool-utils.test.js.map +1 -0
  2036. package/dist/src/utils/toolCallContext.d.ts +35 -0
  2037. package/dist/src/utils/toolCallContext.js +29 -0
  2038. package/dist/src/utils/toolCallContext.js.map +1 -0
  2039. package/dist/src/utils/toolCallContext.test.d.ts +6 -0
  2040. package/dist/src/utils/toolCallContext.test.js +68 -0
  2041. package/dist/src/utils/toolCallContext.test.js.map +1 -0
  2042. package/dist/src/utils/userAccountManager.d.ts +20 -0
  2043. package/dist/src/utils/userAccountManager.js +115 -0
  2044. package/dist/src/utils/userAccountManager.js.map +1 -0
  2045. package/dist/src/utils/userAccountManager.test.d.ts +6 -0
  2046. package/dist/src/utils/userAccountManager.test.js +225 -0
  2047. package/dist/src/utils/userAccountManager.test.js.map +1 -0
  2048. package/dist/src/utils/version.d.ts +6 -0
  2049. package/dist/src/utils/version.js +15 -0
  2050. package/dist/src/utils/version.js.map +1 -0
  2051. package/dist/src/utils/version.test.d.ts +6 -0
  2052. package/dist/src/utils/version.test.js +39 -0
  2053. package/dist/src/utils/version.test.js.map +1 -0
  2054. package/dist/src/utils/workspaceContext.d.ts +82 -0
  2055. package/dist/src/utils/workspaceContext.js +192 -0
  2056. package/dist/src/utils/workspaceContext.js.map +1 -0
  2057. package/dist/src/utils/workspaceContext.test.d.ts +6 -0
  2058. package/dist/src/utils/workspaceContext.test.js +374 -0
  2059. package/dist/src/utils/workspaceContext.test.js.map +1 -0
  2060. package/dist/tsconfig.tsbuildinfo +1 -0
  2061. package/package.json +99 -0
@@ -0,0 +1,1382 @@
1
+ # Phase 3: 프로바이더 확장 및 통합
2
+
3
+ > 기간: 4-6주 | 상태: ⏳ 대기 | 의존성: Phase 2 완료 **v0.8** - 리뷰 3건 반영
4
+ > (중복 등록 안전성, 런타임 wiring 테스트 타깃, --provider 옵션 명확화)
5
+
6
+ ## System Prompt
7
+
8
+ Always follow TDD principles. For each provider adapter: write failing tests for
9
+ message conversion, stream handling, and error mapping first. Implement minimum
10
+ code to pass. Ensure cross-provider compatibility through integration tests.
11
+
12
+ ---
13
+
14
+ # PHASE OVERVIEW
15
+
16
+ ## 설계서 참조 (Design Document References)
17
+
18
+ | 설계서 | 관련 섹션 | 참조 목적 |
19
+ | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | ------------------------------------- |
20
+ | [03-technical-design.md](../03-technical-design.md) | §3.3.4-3.3.6 Claude 어댑터/변환기, §3.3.7-3.3.8 OpenAI 어댑터/변환기, §3.4 vLLM 확장 | 각 프로바이더별 어댑터 구현 상세 |
21
+ | [04-integration-design.md](../04-integration-design.md) | §4.2 연동 아키텍처, §4.3 공통 타입 시스템 | DidimAIStudio 연동 시 프로바이더 통합 |
22
+ | [05-implementation-plan.md](../05-implementation-plan.md) | §5.4 Phase 3 상세, §5.5 테스트 및 검증 | 마일스톤별 상세 계획, 검증 기준 |
23
+ | [phase3_handoff.md](./phase3_handoff.md) | 연기 항목 카탈로그, messageInspectors 상세, 잔여 의존성 현황 | Phase 2 → 3 연기 항목 추적 |
24
+ | [EventType 전환 결과서](../working_history/phase2_tradeoff_EventType전환_20260208.md) | 16개 파일 전환, 핸드오프 Critical #1/#2 해소 | EventType 전환 완료 근거 |
25
+
26
+ ## 목표
27
+
28
+ - 🆕 **Phase 2 연기 항목 해소**: Gemini 내부 리팩토링 (파일 이동, 텔레메트리,
29
+ Agent 결합 해소)
30
+ - Claude 어댑터/변환기 구현
31
+ - OpenAI 어댑터/변환기 구현
32
+ - OpenAI-Compatible(vLLM/sLM) 어댑터 템플릿
33
+ - 통합 테스트 및 문서화
34
+
35
+ ## ⚡ 실행 순서 변경 안내 (2026-02-10)
36
+
37
+ **원래 계획**: M3.0 → M3.1 → M3.2 → M3.3 → M3.4 → M3.5
38
+
39
+ **변경된 순서**: M3.0 ✅ → M3.1 ✅ → M3.2 ✅ → **M3.4.A (부분 선행)** → M3.3 →
40
+ M3.4.B (잔여) → M3.5
41
+
42
+ **변경 사유**:
43
+
44
+ - M3.4의 90%는 M3.3 없이 진행 가능 (Gemini/Claude/OpenAI 3개 프로바이더로 충분)
45
+ - 3-provider 통합 테스트를 조기에 수행하여 버그 조기 발견
46
+ - M3.3 작업 전에 integration contract 확보
47
+ - 성능 baseline 조기 확립하여 M3.3 영향도 측정 가능
48
+
49
+ **M3.4.A 선행 범위** (M3.3 독립):
50
+
51
+ - 3.4.1 전체 — 멀티 프로바이더 통합 테스트 (4개)
52
+ - 3.4.2 중 3개 — Gemini/Claude/OpenAI E2E 테스트 (vLLM 제외)
53
+ - 3.4.3 전체 — 성능 회귀 테스트 (3-provider baseline)
54
+ - 3.4.4 전체 — 문서 업데이트 (vLLM은 placeholder)
55
+ - 3.4.5 전체 — 안정화 작업 (6개)
56
+
57
+ **M3.4.B 잔여 범위** (M3.3 의존):
58
+
59
+ - 3.4.2.4 — vLLM E2E 테스트
60
+ - 3.4.4 — vLLM 문서 상세화 (placeholder → full docs)
61
+
62
+ ## 전제 조건
63
+
64
+ - [x] Phase 2 모든 Milestone 완료 (M2.0~M2.6 + ETC)
65
+ - [x] GeminiAdapter 동등성 검증 완료
66
+ - [x] 기능 플래그 동작 확인
67
+ - [x] 🆕 EventType 전환 완료 (M2.연기 — GeminiEventType→LlmEventType, 16개 파일)
68
+ - [ ] Phase 3 핸드오프 문서 검토 완료
69
+
70
+ ## Phase 2 연기 항목 추적 (핸드오프 기준)
71
+
72
+ | # | 핸드오프 항목 | Priority | 상태 | 해소 위치 |
73
+ | ---- | ----------------------------------------- | -------- | ----------- | ---------------------------- |
74
+ | 1 | `client.ts` GeminiEventType 참조 정리 | Critical | ✅ 해소됨 | M2.연기 (EventType 전환) |
75
+ | 2 | `turn.ts` 이벤트 생성점 전환 | Critical | ✅ 해소됨 | M2.연기 (EventType 전환) |
76
+ | 3 | `chat.ts` → `providers/gemini/chat.ts` | Critical | ✅ 해소됨 | M3.0.1 (`f56845dab`) |
77
+ | 4 | `turn.ts` → `providers/gemini/turn.ts` | Critical | ✅ 해소됨 | M3.0.1 (`f56845dab`) |
78
+ | 5 | `messageInspectors` 마이그레이션 (4파일) | High | ✅ 해소됨 | M3.0.2 |
79
+ | 6 | `loggingContentGenerator` 텔레메트리 변환 | High | ✅ 해소됨 | M3.0.3 (`6a09c831d`) |
80
+ | 7 | `telemetry/semantic.ts` Gemini 결합 해소 | High | ✅ 해소됨 | M3.0.3 (`6a09c831d`) |
81
+ | 8 | AuthType 처리 통합 (2.3.1.8) | Medium | ⬜ → M3.1+ | 신규 프로바이더 구현 시 함께 |
82
+ | 9 | 성능 검증 (응답 지연/메모리/스트리밍) | Medium | ⬜ → M3.4 | M3.4.3 |
83
+ | 10 | E2E 테스트 통과 검증 | Medium | ✅ 해소됨 | M3.4.2 (12 tests PASS) |
84
+ | 11 | `geminiTypeConversion.ts` 브릿지 정리 | Medium | ✅ 해소됨 | M3.0.4 |
85
+ | 12 | `telemetry/sdk.ts` 시그널 핸들러 누수 | Medium | ✅ 해소됨 | M3.0.3 (`6a09c831d`) |
86
+ | M2.7 | Agent/Telemetry 결합 해소 | Watch | ✅ 해소됨 | M3.0.3 (`6a09c831d`) |
87
+ | 신규 | 런타임 실행 경로 연결 (ProviderFactory) | High | ✅ 해소됨 | M3.0.5 |
88
+ | 신규 | root index.ts re-export 회귀 테스트 | Medium | ✅ 해소됨 | M3.0.1.5 (`f56845dab`) |
89
+ | 신규 | 프로바이더별 registry.register() 작업 | High | ⬜ → M3.1~3 | M3.1.0.2/M3.2.0.2/M3.3.0.1 |
90
+ | 신규 | SDK 의존성 설치 (@anthropic-ai, openai) | Low | ⬜ → M3.1~2 | M3.1.0.1/M3.2.0.1 |
91
+
92
+ ## 산출물
93
+
94
+ ```
95
+ packages/core/src/providers/
96
+ ├── gemini/
97
+ │ ├── chat.ts # 🆕 geminiChat.ts 물리적 이동 (M3.0)
98
+ │ └── turn.ts # 🆕 Gemini 특화 Turn 이동 (M3.0)
99
+
100
+ ├── claude/
101
+ │ ├── adapter.ts
102
+ │ ├── converter.ts
103
+ │ ├── eventMapper.ts
104
+ │ └── types.ts
105
+ ├── openai/
106
+ │ ├── adapter.ts
107
+ │ ├── converter.ts
108
+ │ ├── eventMapper.ts
109
+ │ └── types.ts
110
+ └── openai-compatible/
111
+ ├── adapter.ts
112
+ ├── converter.ts
113
+ └── types.ts # eventMapper 선택적 (OpenAI 호환)
114
+ ```
115
+
116
+ ---
117
+
118
+ # 3-STAGE WORK PROCESS (사전작업/본작업/사후작업)
119
+
120
+ 각 Milestone 작업은 다음 3단계로 진행:
121
+
122
+ ## 1️⃣ 사전작업 (Pre-work)
123
+
124
+ - [ ] 작업 개요 파악: 현재 Milestone 목표 및 세부 작업 확인
125
+ - [ ] 이전 작업 리뷰: Phase 2 완료 확인 및 작업 결과서 확인 (`working_history/`
126
+ 디렉토리)
127
+ - [ ] 이슈 파악: 이전 작업에서 전달된 이슈 및 Open Questions 확인
128
+ - [ ] 설계서 참조: 관련 설계 문서 검토 (03-technical-design.md,
129
+ 04-integration-design.md 등)
130
+
131
+ ## 2️⃣ 본작업 (Main work) - TDD 사이클
132
+
133
+ - [ ] **Red**: 실패하는 테스트 작성
134
+ - [ ] **Green**: 최소한의 코드로 테스트 통과
135
+ - [ ] **Refactor**: 코드 개선 (테스트 통과 유지)
136
+ - [ ] 체크리스트 업데이트: 작업 완료 시 ✅ 표시
137
+
138
+ ## 3️⃣ 사후작업 (Post-work)
139
+
140
+ - [ ] 체크리스트 최종 확인: 해당 Milestone 모든 항목 완료 확인
141
+ - [ ] 작업 결과서 작성: `working_history/Phase3_{Milestone}_{작업일자}.md`
142
+ - [ ] 커밋: 변경사항 커밋 및 커밋 ID 기록
143
+ - [ ] 이슈 전달: 다음 작업에 전달할 이슈 문서화
144
+
145
+ ### 작업 결과서 템플릿
146
+
147
+ - 경로: `docs/ai_adapter/template/03_work_result_report_template.md`
148
+
149
+ ---
150
+
151
+ # M3.0: 🆕 Phase 2 연기 항목 해소 — Gemini 내부 리팩토링 (3-5일)
152
+
153
+ > 📚 **참조**: [phase3_handoff.md](./phase3_handoff.md) (연기 항목 카탈로그),
154
+ > [Phase2 ETC 결과서](../working_history/Phase2_ETC_연기작업정리_20260208.md),
155
+ > [EventType 전환 결과서](../working_history/phase2_tradeoff_EventType전환_20260208.md)
156
+
157
+ ## 목표
158
+
159
+ Phase 2에서 연기된 Gemini 내부 리팩토링 항목을 해소하여 신규 프로바이더 추가
160
+ 기반 확보
161
+
162
+ ## 배경
163
+
164
+ Phase 2 M2.0~M2.6에서 타입 시스템 독립화를 완료했으나, 파일 물리적
165
+ 이동/텔레메트리 결합 해소/Agent 레이어 전환 등은 대규모 동작 변경을 수반하여
166
+ Phase 3으로 연기됨. M2.연기에서 EventType 전환(Critical #1, #2)은 이미 해소됨.
167
+
168
+ ## 사전 결정 필요 사항 (Open Questions)
169
+
170
+ M3.0 착수 전 다음 Open Question의 잠정 결정 권장:
171
+
172
+ | OQ | 질문 | 영향 범위 | 잠정 방안 |
173
+ | --- | ------------------------------------------ | ------------- | ---------------------------------------------------------------- |
174
+ | Q5 | LocalAgentExecutor의 신규 인터페이스 형태? | 3.0.3.3 | AgentChat 추상 인터페이스 도입 (GeminiChat을 구현체로) |
175
+ | Q6 | Telemetry usage 표준 스키마 정의? | 3.0.3.4 | LlmTokenUsage (필수 3필드) 유지, SDK 타입은 변환 |
176
+ | Q7 | CLI `--provider` 옵션 노출 여부? | 3.0.5.5, M3.4 | 잠정: 환경변수(`LLM_PROVIDER`)로 충분. CLI 옵션은 M3.4 시점 결정 |
177
+
178
+ ⚠️ 3.0.1~3.0.2, 3.0.4, 3.0.5는 Q5/Q6 무관하게 착수 가능. 3.0.3.3/3.0.3.4만 해당.
179
+ ⚠️ Q7은 M3.0.5.5 우선순위 표의 1순위(명시적 provider 인자)가 내부 API 수준임을
180
+ 전제. CLI 옵션 추가는 별도 결정.
181
+
182
+ ## 작업 항목
183
+
184
+ ### 3.0.1 Gemini 전용 파일 물리적 이동 (핸드오프 Critical #3, #4)
185
+
186
+ | ID | 작업 | 상태 | 테스트 파일 | 비고 |
187
+ | ------- | ------------------------------------------------------ | ---- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
188
+ | 3.0.1.1 | `core/geminiChat.ts` → `providers/gemini/chat.ts` 이동 | ✅ | 기존 geminiChat.test.ts | 999라인, re-export로 하위 호환. import 변경 대상 13개 파일 |
189
+ | 3.0.1.2 | `core/turn.ts` 전체 → `providers/gemini/turn.ts` 이동 | ✅ | 기존 turn.test.ts | 324라인, Turn 클래스 전체가 Gemini-specific (GeminiChat 생성자 의존). re-export로 하위 호환. import 변경 대상 10개 파일 |
190
+ | 3.0.1.3 | 기존 import 경로 re-export 하위 호환성 유지 | ✅ | 기존 테스트 100% 통과 | M2.0 re-export 패턴 재활용 |
191
+ | 3.0.1.4 | core/index.ts export 정리 | ✅ | `providers/gemini/exports.test.ts` | core/exports.test.ts는 미존재, gemini/ 내 파일 참조 |
192
+ | 3.0.1.5 | root `index.ts` re-export 회귀 테스트 추가 | ✅ | `index.test.ts` | 7개 회귀 테스트 추가 완료. GeminiChat, StreamEventType, InvalidStreamError, Turn, CompressionStatus, LlmEventType, GeminiEventType 검증 |
193
+
194
+ **Tidy First 체크리스트**:
195
+
196
+ - [x] 모든 변경이 순수 구조적 (동작 변경 없음)
197
+ - [x] 각 이동마다 테스트 실행하여 회귀 확인
198
+ - [x] 커밋 메시지에 `[STRUCTURAL]` 태그
199
+
200
+ ### 3.0.2 messageInspectors 마이그레이션 (핸드오프 High #5)
201
+
202
+ | ID | 작업 | 상태 | 테스트 파일 | 비고 |
203
+ | ------- | ----------------------------------------------------------------------------------------------- | ---- | ------------------------------ | ------------------------------------------------------------- |
204
+ | 3.0.2.1 | `loopDetectionService.ts` — `isFunctionCall/Response` → `isToolCallMessage/isToolResultMessage` | ✅ | `loopDetectionService.test.ts` | L408,416,437 convertContentToLlmMessage 브릿지 사용 |
205
+ | 3.0.2.2 | `geminiChat.ts` — `isFunctionResponse` 전환 | ✅ | `geminiChat.test.ts` | chat.ts 이동(3.0.1.1)과 연계, convertContentToLlmMessage 사용 |
206
+ | 3.0.2.3 | `utils/editCorrector.ts` — `isFunctionCall/Response` 전환 | ✅ | `editCorrector.test.ts` | convertContentToLlmMessage 브릿지 사용 |
207
+ | 3.0.2.4 | `utils/nextSpeakerChecker.ts` — `isFunctionResponse` 전환 | ✅ | `nextSpeakerChecker.test.ts` | convertContentToLlmMessage 브릿지 사용 |
208
+
209
+ **대체 함수** (M2.6에서 구현 완료):
210
+
211
+ - `isToolCallMessage(message: LlmMessage)` — `src/utils/llmUtils.ts:80`
212
+ - `isToolResultMessage(message: LlmMessage)` — `src/utils/llmUtils.ts:92`
213
+
214
+ ⚠️ **주의**: 단순 함수 교체가 아님. 기존 함수는 `Content` 타입, 대체 함수는
215
+ `LlmMessage` 타입. 각 사용처에서 `Content` → `LlmMessage` 타입 전환이 선행되어야
216
+ 함.
217
+
218
+ ### 3.0.3 텔레메트리/Agent 레이어 독립화 (핸드오프 High #6, #7 + M2.7 + Medium #12)
219
+
220
+ | ID | 작업 | 상태 | 테스트 파일 | 비고 |
221
+ | ------- | --------------------------------------------------------------------------- | ---- | -------------------------------------------------- | ----------------------------------------------------------------------------------------- |
222
+ | 3.0.3.1 | `loggingContentGenerator.ts` — @google/genai import 제거 | ✅ | `loggingContentGenerator.test.ts` | 11개 SDK 타입 import → 0. contentGenerator.ts re-export 경유 + telemetry 로컬 타입 |
223
+ | 3.0.3.2 | `telemetry/semantic.ts` — Part/Content/Candidate 타입 독립화 | ✅ | `semantic.test.ts` | 6개 로컬 타입 + GeminiFinishReason const 객체. @google/genai 완전 제거 |
224
+ | 3.0.3.3 | `LocalAgentExecutor` — GeminiChat 직접 결합 해소 (M2.7) | ✅ | `local-executor.test.ts` | Q5 잠정 방안 적용: AgentChatSession 인터페이스 + ChatSessionFactory 타입 도입 |
225
+ | 3.0.3.4 | `telemetry/types.ts` — `GenerateContentResponseUsageMetadata` 독립화 (M2.7) | ✅ | `telemetry/sdk.test.ts` (types 전용 테스트 미존재) | TelemetryUsageMetadata + TelemetryGenerateConfig 로컬 인터페이스. @google/genai 완전 제거 |
226
+ | 3.0.3.5 | `telemetry/sdk.ts` — SIGTERM/SIGINT 시그널 핸들러 누수 수정 (핸드오프 #12) | ✅ | `telemetry/sdk.test.ts` | named handler + removeListener in shutdown. 신규 테스트 2건 |
227
+
228
+ ### 3.0.4 변환 브릿지 정리 (핸드오프 Medium #11)
229
+
230
+ | ID | 작업 | 상태 | 테스트 파일 | 비고 |
231
+ | ------- | -------------------------------------------------------------------- | ---- | ------------------------------ | -------------------------------------------------------- |
232
+ | 3.0.4.1 | `geminiTypeConversion.ts` 브릿지 사용처 확인 | ✅ | N/A (분석) | 6개 사이트, 5개 함수 — 모두 Gemini SDK 타입 입력 |
233
+ | 3.0.4.2 | `providers/gemini/typeConversion.ts`로 이동 | ✅ | 관련 테스트 파일 | 6개 import 전환 + index.ts export 추가 |
234
+ | 3.0.4.3 | `utils/geminiTypeConversion.ts` @deprecated + messageInspectors 삭제 | ✅ | `geminiTypeConversion.test.ts` | re-export shim 유지, messageInspectors.ts dead code 삭제 |
235
+
236
+ ### 3.0.5 런타임 실행 경로 연결 (리뷰 #1 반영)
237
+
238
+ | ID | 작업 | 상태 | 테스트 파일 | 비고 |
239
+ | ------- | ----------------------------------------------------------------------- | ---- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------- |
240
+ | 3.0.5.1 | `contentGenerator.ts` — `createContentGenerator()` 프로바이더 분기 추가 | ✅ | `contentGenerator.multiProvider.test.ts` | 멀티 프로바이더 분기 + `wrapAdapterAsGenerator()` 추가 |
241
+ | 3.0.5.2 | `ProviderFactory` → 런타임 CLI 경로 통합 | ✅ | `contentGenerator.multiProvider.test.ts` | `ProviderFactory.create()` 호출이 contentGenerator에서 런타임 도달 확인 (시나리오 4, 5) |
242
+ | 3.0.5.3 | `ENABLE_MULTI_PROVIDER` 플래그 분기 확장 및 검증 | ✅ | `contentGenerator.multiProvider.test.ts` | off→레거시(시나리오 1,2), on+Gemini→fall-through(시나리오 3,6,7), on+비Gemini→Factory(시나리오 4,5) |
243
+ | 3.0.5.4 | `ProviderRegistry`에 Gemini 어댑터 팩토리 등록 부트스트랩 구현 | ✅ | `bootstrap.test.ts` (7개) | `has()` 가드 패턴 채택. `bootstrapGeminiProvider()` in `providers/gemini/bootstrap.ts` |
244
+ | 3.0.5.5 | 프로바이더 선택 우선순위 통합 및 회귀 테스트 | ✅ | `contentGenerator.multiProvider.test.ts` (10개) | 7개 회귀 시나리오 전수 통과 + 3개 추가 (llm 위임, 레거시 throw, 부트스트랩 멱등) |
245
+
246
+ ⚠️ **주의**: 이 작업 없이는 신규 프로바이더 어댑터(M3.1~M3.3)를 구현해도
247
+ 런타임에서 도달 불가. `createContentGenerator()` (contentGenerator.ts:167-259,
248
+ GoogleGenAI 생성: L235)가 `new GoogleGenAI()` 하드코딩.
249
+ `ProviderFactory`/`ProviderSelector`는 테스트에서만 사용되며 런타임 경로 미연결.
250
+ `ENABLE_MULTI_PROVIDER` 플래그는 현재 `adapterBridge.ts`에서만 제어
251
+ (GeminiAdapter 래핑 여부)하며, contentGenerator의 프로바이더 선택에는 관여하지
252
+ 않음.
253
+
254
+ **레지스트리 부트스트랩 설계** (3.0.5.4):
255
+
256
+ 현재 `ProviderRegistry`는 인프라만 존재하고 런타임에서 `register()` 호출이 없음.
257
+ `factory.create('gemini', config)` 호출 시 `PROVIDER_NOT_FOUND` 에러 발생.
258
+
259
+ **중복 등록 안전성**: `registry.register()` 는 동일 이름 중복 시 예외를 던짐
260
+ (registry.ts:81, `has() && !force` 가드). 부트스트랩이 여러 번 호출될 수 있는
261
+ 시나리오(HMR, 테스트 재초기화, Agent 재생성 등)에 대비해야 함.
262
+
263
+ 구현 방안 (택 1):
264
+
265
+ 1. **`has()` 가드 패턴** (권장): 부트스트랩에서 `if (!registry.has('gemini'))`
266
+ 체크 후 등록
267
+ 2. **`force: true` 패턴**: `register('gemini', factory, { force: true })` — 항상
268
+ 덮어쓰기
269
+ 3. **1회 초기화 보장**: 부트스트랩 함수에 `initialized` 플래그로 중복 호출 방지
270
+
271
+ 초기화 위치 후보:
272
+
273
+ - `createContentGenerator()` 진입부 (런타임 경로 확실, 단 호출마다 실행)
274
+ - 앱 부트스트랩 (`packages/cli` 초기화 시점, 1회 보장)
275
+ - lazy init (첫 `factory.create()` 호출 시 자동 등록)
276
+
277
+ ```
278
+ // 권장 패턴 (has() 가드)
279
+ function bootstrapProviders(registry: ProviderRegistry): void {
280
+ if (!registry.has('gemini')) {
281
+ registry.register('gemini', (config) => new GeminiAdapter(config, modelsApi));
282
+ }
283
+ }
284
+ ```
285
+
286
+ M3.1~M3.3에서도 각 프로바이더 등록 작업이 필수 (아래 각 마일스톤에 명시).
287
+ M3.1.0.2/M3.2.0.2/M3.3.0.1 모두 동일한 `has()` 가드 패턴 적용.
288
+
289
+ **프로바이더 선택 우선순위 계약** (3.0.5.5):
290
+
291
+ 현재 2개 분리된 시스템이 상충:
292
+
293
+ - `contentGenerator.ts`: authType-only 분기 (L204-248), LLM_PROVIDER 미참조
294
+ - `providerSelector.ts`: LLM_PROVIDER > authType > env key 순서
295
+ - `getProviderFromConfig()`: explicit provider > authType > LLM_PROVIDER (또
296
+ 다른 순서)
297
+
298
+ 통합 후 최종 우선순위:
299
+
300
+ | 순위 | 결정 소스 | 예시 | 비고 |
301
+ | ---- | ------------------------------- | ------------------------ | ------------------------------------------------------------- |
302
+ | 1 | 명시적 provider 인자 (내부 API) | `providerName: 'claude'` | 프로그래밍 API 수준. CLI `--provider` 옵션은 미존재 — Q7 참조 |
303
+ | 2 | `LLM_PROVIDER` 환경변수 | `LLM_PROVIDER=openai` | 환경 기반 선택 |
304
+ | 3 | `authType` (Gemini 한정) | `AuthType.USE_VERTEX_AI` | Gemini 내부 경로 분기 |
305
+ | 4 | API Key 환경변수 존재 여부 | `GEMINI_API_KEY` 존재 | 자동 감지 폴백 |
306
+ | 5 | 기본값 (Gemini) | 모든 미설정 시 | 하위 호환 |
307
+
308
+ > ⚠️ **Q7**: CLI `--provider` 옵션 추가 여부. 현재
309
+ > `packages/cli/src/config/config.ts`에 해당 옵션이 없음. 1순위는 내부
310
+ > `getProviderFromConfig()`의 프로그래밍 인자로만 존재. CLI 옵션 노출은
311
+ > M3.4(통합/문서) 시점에 결정 가능 — 환경변수(`LLM_PROVIDER`)만으로 충분할 수
312
+ > 있음.
313
+
314
+ 회귀 테스트 시나리오:
315
+
316
+ | ENABLE_MULTI_PROVIDER | LLM_PROVIDER | authType | 기대 결과 | 테스트 |
317
+ | --------------------- | ------------ | ------------- | --------- | ----------------------------- |
318
+ | false | (미설정) | USE_GEMINI | Gemini | ✅ |
319
+ | false | claude | USE_GEMINI | Gemini | ✅ (플래그 off → 레거시 경로) |
320
+ | true | (미설정) | USE_GEMINI | Gemini | ✅ |
321
+ | true | claude | (미설정) | Claude | ✅ |
322
+ | true | openai | USE_VERTEX_AI | OpenAI | ✅ (LLM_PROVIDER 우선) |
323
+ | true | (미설정) | USE_VERTEX_AI | Gemini | ✅ |
324
+ | true | (미설정) | (미설정) | Gemini | ✅ (기본값 폴백) |
325
+
326
+ **검증 기준**:
327
+
328
+ - [x] `core/geminiChat.ts` → `providers/gemini/chat.ts` 이동 완료
329
+ - [x] `core/turn.ts` Gemini 특화 분리 완료
330
+ - [x] root `index.ts` re-export 회귀 테스트 통과 (CLI import 호환성)
331
+ - [x] messageInspectors 4개 파일 마이그레이션 완료
332
+ - [x] 텔레메트리 레이어 @google/genai 독립화
333
+ - [x] LocalAgentExecutor GeminiChat 직접 결합 해소
334
+ - [x] `createContentGenerator()` → ProviderFactory 런타임 연결 완료
335
+ - [x] `ENABLE_MULTI_PROVIDER=true` 시 ProviderFactory 경로 도달 검증
336
+ - [x] `registry.register('gemini', ...)` 부트스트랩 동작 확인
337
+ - [x] 부트스트랩 중복 호출 시 예외 미발생 (has() 가드 또는 force 정책)
338
+ - [x] 프로바이더 선택 우선순위 7개 회귀 시나리오 전수 통과
339
+ - [x] 모든 기존 테스트 100% 통과
340
+ - [x] TypeScript 컴파일 에러 없음
341
+
342
+ ---
343
+
344
+ # M3.1: Claude 어댑터/변환기 구현 (4-5일)
345
+
346
+ > 📚 **설계서 참조**:
347
+ > [03-technical-design.md §3.3.4 Claude 어댑터](../03-technical-design.md#334-claude-어댑터),
348
+ > [§3.3.5 Claude 타입 변환기](../03-technical-design.md#335-claude-타입-변환기-추가),
349
+ > [§3.3.6 Claude 어댑터 구현](../03-technical-design.md#336-claude-어댑터-추가),
350
+ > [05-implementation-plan.md §M3.1](../05-implementation-plan.md#m31-claude-어댑터변환기-구현-4-5일)
351
+
352
+ ## 목표
353
+
354
+ Claude 메시지/툴/스트림 변환기 구현
355
+
356
+ ## Claude 특화 고려사항
357
+
358
+ - System 메시지 분리 필요 (별도 파라미터)
359
+ - 이미지는 base64 필수 (URL 직접 지원 안함)
360
+ - 스트리밍 tool delta 합성 필요
361
+ - `content_block_delta` 이벤트 처리
362
+
363
+ ## 작업 항목
364
+
365
+ ### 3.1.0 사전 준비
366
+
367
+ | ID | 작업 | 상태 | 테스트 파일 | 비고 |
368
+ | ------- | ------------------------------------- | ---- | ------------------- | ----------------------------------------------------------- |
369
+ | 3.1.0.1 | `@anthropic-ai/sdk` 의존성 설치 | ✅ | N/A | `^0.74.0` — packages/core/package.json에 추가 완료 (M3.1.0) |
370
+ | 3.1.0.2 | ProviderRegistry에 Claude 팩토리 등록 | ✅ | `bootstrap.test.ts` | `bootstrapClaudeProvider()` + `has()` 가드 패턴 (M3.1.0) |
371
+
372
+ ### 3.1.1 ClaudeAdapter 구현
373
+
374
+ | ID | 작업 | 상태 | 테스트 파일 | 비고 |
375
+ | ------- | ------------------------------ | ---- | ----------------- | ------------------------------------------------------- |
376
+ | 3.1.1.1 | `ClaudeAdapter` 클래스 생성 | ✅ | `adapter.test.ts` | ClaudeClient DI 인터페이스 포함 (M3.1.1) |
377
+ | 3.1.1.2 | `BaseAdapter` 상속 구현 | ✅ | `adapter.test.ts` | validateRequest 상속, mapToProviderConfig 구현 (M3.1.1) |
378
+ | 3.1.1.3 | Anthropic SDK 연동 | ✅ | `adapter.test.ts` | ClaudeClient 인터페이스 통한 DI 패턴 (M3.1.1) |
379
+ | 3.1.1.4 | `generate()` 메서드 구현 | ✅ | `adapter.test.ts` | generateContent + classifyError (M3.1.1+M3.1.3) |
380
+ | 3.1.1.5 | `generateStream()` 메서드 구현 | ✅ | `adapter.test.ts` | generateContentStream + yield 패턴 (M3.1.1+M3.1.3) |
381
+ | 3.1.1.6 | `getCapabilities()` 구현 | ✅ | `adapter.test.ts` | CLAUDE_CAPABILITIES const (M3.1.1) |
382
+ | 3.1.1.7 | 설정 검증 (API Key) | ✅ | `adapter.test.ts` | BaseAdapter.validateRequest 위임 (M3.1.1) |
383
+
384
+ **TDD 시나리오**:
385
+
386
+ ```typescript
387
+ describe('ClaudeAdapter', () => {
388
+ it('should implement BaseAdapter interface', () => {
389
+ const adapter = new ClaudeAdapter({
390
+ apiKey: 'test-key',
391
+ model: 'claude-sonnet-4-20250514',
392
+ });
393
+
394
+ expect(adapter).toBeInstanceOf(BaseAdapter);
395
+ });
396
+
397
+ it('should separate system message in API call', async () => {
398
+ const adapter = new ClaudeAdapter(config);
399
+ const request: LlmGenerateRequest = {
400
+ messages: [
401
+ {
402
+ role: LlmRole.System,
403
+ content: [{ type: 'text', text: 'Be helpful' }],
404
+ },
405
+ { role: LlmRole.User, content: [{ type: 'text', text: 'Hi' }] },
406
+ ],
407
+ };
408
+
409
+ // Mock Anthropic SDK
410
+ const mockCreate = vi.spyOn(anthropic.messages, 'create');
411
+ await adapter.generate(request);
412
+
413
+ expect(mockCreate).toHaveBeenCalledWith(
414
+ expect.objectContaining({
415
+ system: 'Be helpful',
416
+ messages: [{ role: 'user', content: [{ type: 'text', text: 'Hi' }] }],
417
+ }),
418
+ );
419
+ });
420
+ });
421
+ ```
422
+
423
+ ### 3.1.2 Claude 메시지 변환기
424
+
425
+ | ID | 작업 | 상태 | 테스트 파일 | 비고 |
426
+ | ------- | -------------------------------- | ---- | ------------------- | -------------------------------------------------- |
427
+ | 3.1.2.1 | `toClaudeMessage()` 변환 함수 | ✅ | `converter.test.ts` | toClaudeMessages + toClaudeContent (M3.1.1+M3.1.2) |
428
+ | 3.1.2.2 | System 메시지 분리 로직 | ✅ | `converter.test.ts` | system 추출 + 복수 system 병합 (M3.1.1) |
429
+ | 3.1.2.3 | 이미지 URL → base64 변환 | ✅ | `converter.test.ts` | base64 지원, URL은 경고 텍스트 (M3.1.2) |
430
+ | 3.1.2.4 | `toClaudeTool()` 변환 함수 | ✅ | `converter.test.ts` | toClaudeTools + toClaudeToolChoice (M3.1.1) |
431
+ | 3.1.2.5 | `fromClaudeResponse()` 변환 함수 | ✅ | `converter.test.ts` | thinking/redacted_thinking 포함 (M3.1.1) |
432
+
433
+ **TDD 시나리오**:
434
+
435
+ ```typescript
436
+ describe('Claude Message Converter', () => {
437
+ it('should extract system message separately', () => {
438
+ const messages: LlmMessage[] = [
439
+ {
440
+ role: LlmRole.System,
441
+ content: [{ type: 'text', text: 'System prompt' }],
442
+ },
443
+ { role: LlmRole.User, content: [{ type: 'text', text: 'User message' }] },
444
+ ];
445
+
446
+ const { systemPrompt, claudeMessages } = toClaudeMessages(messages);
447
+
448
+ expect(systemPrompt).toBe('System prompt');
449
+ expect(claudeMessages).toHaveLength(1);
450
+ expect(claudeMessages[0].role).toBe('user');
451
+ });
452
+
453
+ it('should convert image URL to base64', async () => {
454
+ const message: LlmMessage = {
455
+ role: LlmRole.User,
456
+ content: [
457
+ {
458
+ type: 'image',
459
+ source: { type: 'url', url: 'https://example.com/image.png' },
460
+ },
461
+ ],
462
+ };
463
+
464
+ const claudeMessage = await toClaudeMessage(message);
465
+
466
+ expect(claudeMessage.content[0].type).toBe('image');
467
+ expect(claudeMessage.content[0].source.type).toBe('base64');
468
+ });
469
+ });
470
+ ```
471
+
472
+ ### 3.1.3 Claude 스트림 변환기
473
+
474
+ | ID | 작업 | 상태 | 테스트 파일 | 비고 |
475
+ | ------- | ------------------------------ | ---- | ------------------- | ------------------------------------------------------------------ |
476
+ | 3.1.3.1 | `fromClaudeStreamEvent()` 변환 | ✅ | `converter.test.ts` | convertStreamEvent + createStreamState (M3.1.1) |
477
+ | 3.1.3.2 | `content_block_start` 처리 | ✅ | `converter.test.ts` | tool_use 블록 시작 + index 기반 추적 (M3.1.1) |
478
+ | 3.1.3.3 | `content_block_delta` 처리 | ✅ | `converter.test.ts` | text_delta, thinking_delta, input_json_delta (M3.1.1) |
479
+ | 3.1.3.4 | `content_block_stop` 처리 | ✅ | `converter.test.ts` | tool call JSON 파싱 + ToolCallRequest emit (M3.1.1) |
480
+ | 3.1.3.5 | Tool delta 합성 로직 | ✅ | `converter.test.ts` | parallel tool calls via index-based Map (M3.1.1) |
481
+ | 3.1.3.6 | Usage 정보 추출 | ✅ | `converter.test.ts` | message_start input + message_delta output + cache tokens (M3.1.3) |
482
+
483
+ **TDD 시나리오**:
484
+
485
+ ```typescript
486
+ describe('Claude Stream Converter', () => {
487
+ it('should convert text delta events', async () => {
488
+ const claudeEvents = [
489
+ {
490
+ type: 'content_block_start',
491
+ content_block: { type: 'text', text: '' },
492
+ },
493
+ {
494
+ type: 'content_block_delta',
495
+ delta: { type: 'text_delta', text: 'Hello' },
496
+ },
497
+ { type: 'content_block_stop' },
498
+ ];
499
+
500
+ const events: LlmStreamEvent[] = [];
501
+ for (const event of claudeEvents) {
502
+ const converted = fromClaudeStreamEvent(event);
503
+ if (converted) events.push(converted);
504
+ }
505
+
506
+ expect(events[0].type).toBe('text_delta');
507
+ expect(events[0].text).toBe('Hello');
508
+ });
509
+
510
+ it('should assemble tool call deltas', async () => {
511
+ const assembler = new StreamAssembler();
512
+ // Claude tool delta events
513
+ assembler.push(
514
+ fromClaudeStreamEvent({
515
+ type: 'content_block_start',
516
+ content_block: { type: 'tool_use', id: 'tool_1', name: 'read_file' },
517
+ }),
518
+ );
519
+ assembler.push(
520
+ fromClaudeStreamEvent({
521
+ type: 'content_block_delta',
522
+ delta: { type: 'input_json_delta', partial_json: '{"path":' },
523
+ }),
524
+ );
525
+ assembler.push(
526
+ fromClaudeStreamEvent({
527
+ type: 'content_block_delta',
528
+ delta: { type: 'input_json_delta', partial_json: '"/tmp"}' },
529
+ }),
530
+ );
531
+
532
+ const result = assembler.getMessage();
533
+ expect(result.content[0].type).toBe('tool_call');
534
+ expect(result.content[0].arguments).toEqual({ path: '/tmp' });
535
+ });
536
+ });
537
+ ```
538
+
539
+ ### 3.1.4 Claude 에러 매핑
540
+
541
+ | ID | 작업 | 상태 | 테스트 파일 | 비고 |
542
+ | ------- | ----------------------- | ---- | ----------------- | ------------------------------------------------------------- |
543
+ | 3.1.4.1 | Anthropic SDK 에러 분석 | ✅ | N/A (분석) | M3.1.3에서 구현 완료 — classifyError duck typing 패턴 |
544
+ | 3.1.4.2 | Rate limit 에러 매핑 | ✅ | `adapter.test.ts` | M3.1.3에서 구현 — 429→RateLimitError (retryable) |
545
+ | 3.1.4.3 | Auth 에러 매핑 | ✅ | `adapter.test.ts` | M3.1.3에서 구현 — 401/403→AuthenticationError (non-retryable) |
546
+ | 3.1.4.4 | Overloaded 에러 매핑 | ✅ | `adapter.test.ts` | M3.1.3에서 구현 — 529→MODEL_OVERLOADED (retryable) |
547
+ | 3.1.4.5 | 에러 변환 유틸 함수 | ✅ | `adapter.test.ts` | M3.1.3에서 구현 — classifyError + LlmError passthrough |
548
+
549
+ ⚠️ **참고**: M3.1.4 전체 범위가 M3.1.3 (스트림 에러 고도화) 작업에서 선행
550
+ 구현됨. 설계서 §3.3.6 대비 추가 구현: 400/422→INVALID_REQUEST,
551
+ 404→ModelNotFoundError, 500+→SERVER_ERROR, timeout/network 휴리스틱, LlmError
552
+ passthrough.
553
+
554
+ **검증 기준**:
555
+
556
+ - [x] Claude 기본 대화 동작
557
+ - [x] Claude 스트리밍 동작
558
+ - [x] Claude 도구 호출 동작
559
+ - [x] Claude 이미지 입력 동작
560
+
561
+ ---
562
+
563
+ # M3.2: OpenAI 어댑터/변환기 구현 (3-4일)
564
+
565
+ > 📚 **설계서 참조**:
566
+ > [03-technical-design.md §3.3.7 OpenAI 어댑터](../03-technical-design.md#337-openai-어댑터-구조-예시),
567
+ > [§3.3.8 OpenAI 타입 변환기](../03-technical-design.md#338-openai-타입-변환기-추가),
568
+ > [05-implementation-plan.md §M3.2](../05-implementation-plan.md#m32-openai-어댑터변환기-구현-3-4일)
569
+
570
+ ## 목표
571
+
572
+ OpenAI 메시지/툴/스트림 변환기 구현
573
+
574
+ ## OpenAI 특화 고려사항
575
+
576
+ - System 메시지 첫 번째로 위치
577
+ - JSON mode / response_format 지원
578
+ - function_call → tool_calls 전환
579
+
580
+ ## 작업 항목
581
+
582
+ ### 3.2.0 사전 준비
583
+
584
+ | ID | 작업 | 상태 | 테스트 파일 | 비고 |
585
+ | ------- | ------------------------------------- | ---- | ------------------- | ----------------------------------------------------------------------- |
586
+ | 3.2.0.1 | `openai` SDK 의존성 설치 | ✅ | N/A | `openai@^6.18.0` 설치 (설계서 ^4.70.0보다 최신) |
587
+ | 3.2.0.2 | ProviderRegistry에 OpenAI 팩토리 등록 | ✅ | `bootstrap.test.ts` | `bootstrapOpenAiProvider()` — has() 가드, singleton 기본값, config 전달 |
588
+
589
+ ### 3.2.1 OpenAiAdapter 구현
590
+
591
+ | ID | 작업 | 상태 | 테스트 파일 | 비고 |
592
+ | ------- | ------------------------------ | ---- | ----------------- | ----------------------------------------------------------------- |
593
+ | 3.2.1.1 | `OpenAiAdapter` 클래스 생성 | ✅ | `adapter.test.ts` | DI 패턴: `OpenAiClient` 인터페이스 |
594
+ | 3.2.1.2 | `BaseAdapter` 상속 구현 | ✅ | `adapter.test.ts` | validateRequest, mapToProviderConfig 구현 |
595
+ | 3.2.1.3 | OpenAI SDK 연동 | ✅ | `adapter.test.ts` | `client.chat.completions.create()` 호출 |
596
+ | 3.2.1.4 | `generateContent()` 구현 | ✅ | `adapter.test.ts` | 변환→호출→역변환 패턴, classifyError 에러 분류 |
597
+ | 3.2.1.5 | `generateContentStream()` 구현 | ✅ | `adapter.test.ts` | M3.2.A: 스켈레톤, M3.2.B: 변환기 완성 + `supportsStreaming: true` |
598
+ | 3.2.1.6 | capabilities 선언 | ✅ | `adapter.test.ts` | `supportsTokenCount: false`, `supportsThought: false` |
599
+
600
+ **TDD 시나리오**:
601
+
602
+ ```typescript
603
+ describe('OpenAIAdapter', () => {
604
+ it('should generate response using OpenAI SDK', async () => {
605
+ const adapter = new OpenAIAdapter({
606
+ apiKey: 'test-key',
607
+ model: 'gpt-4o'
608
+ });
609
+
610
+ const request: LlmGenerateRequest = {
611
+ messages: [{ role: LlmRole.User, content: [{ type: 'text', text: 'Hi' }] }]
612
+ };
613
+
614
+ const response = await adapter.generate(request);
615
+ expect(response.message).toBeDefined();
616
+ });
617
+
618
+ it('should support JSON mode', async () => {
619
+ const adapter = new OpenAIAdapter(config);
620
+ const request: LlmGenerateRequest = {
621
+ messages: [...],
622
+ responseFormat: { type: 'json_object' }
623
+ };
624
+
625
+ const mockCreate = vi.spyOn(openai.chat.completions, 'create');
626
+ await adapter.generate(request);
627
+
628
+ expect(mockCreate).toHaveBeenCalledWith(
629
+ expect.objectContaining({
630
+ response_format: { type: 'json_object' }
631
+ })
632
+ );
633
+ });
634
+ });
635
+ ```
636
+
637
+ ### 3.2.2 OpenAI 메시지 변환기
638
+
639
+ | ID | 작업 | 상태 | 테스트 파일 | 비고 |
640
+ | ------- | --------------------------- | ---- | ------------------- | ------------------------------------------------------- |
641
+ | 3.2.2.1 | `toOpenAiMessages()` 변환 | ✅ | `converter.test.ts` | 4 role (system/user/assistant/tool) + 혼합 content 처리 |
642
+ | 3.2.2.2 | System 메시지 순서 처리 | ✅ | `converter.test.ts` | systemInstruction → 첫 번째 system 메시지로 prepend |
643
+ | 3.2.2.3 | 이미지 URL/base64 처리 | ✅ | `converter.test.ts` | URL 직접 전달, base64→data URI 변환 |
644
+ | 3.2.2.4 | `toOpenAiTools()` 변환 | ✅ | `converter.test.ts` | `{ type: 'function', function: {...} }` 래핑 |
645
+ | 3.2.2.5 | `fromOpenAiResponse()` 변환 | ✅ | `converter.test.ts` | text, tool_calls, usage, cached_tokens 추출 |
646
+ | 3.2.2.6 | JSON mode 매핑 | ✅ | `converter.test.ts` | `responseFormat: 'json'` → `{ type: 'json_object' }` |
647
+
648
+ **TDD 시나리오**:
649
+
650
+ ```typescript
651
+ describe('OpenAI Message Converter', () => {
652
+ it('should place system message first', () => {
653
+ const messages: LlmMessage[] = [
654
+ { role: LlmRole.User, content: [{ type: 'text', text: 'Hi' }] },
655
+ { role: LlmRole.System, content: [{ type: 'text', text: 'Be helpful' }] },
656
+ ];
657
+
658
+ const openaiMessages = toOpenAIMessages(messages);
659
+
660
+ expect(openaiMessages[0].role).toBe('system');
661
+ expect(openaiMessages[1].role).toBe('user');
662
+ });
663
+
664
+ it('should convert image URL directly', () => {
665
+ const message: LlmMessage = {
666
+ role: LlmRole.User,
667
+ content: [
668
+ {
669
+ type: 'image',
670
+ source: { type: 'url', url: 'https://example.com/image.png' },
671
+ },
672
+ ],
673
+ };
674
+
675
+ const openaiMessage = toOpenAIMessage(message);
676
+
677
+ expect(openaiMessage.content[0].type).toBe('image_url');
678
+ expect(openaiMessage.content[0].image_url.url).toBe(
679
+ 'https://example.com/image.png',
680
+ );
681
+ });
682
+ });
683
+ ```
684
+
685
+ ### 3.2.3 OpenAI 스트림 변환기
686
+
687
+ | ID | 작업 | 상태 | 테스트 파일 | 비고 |
688
+ | ------- | --------------------------- | ---- | ------------------- | ------------------------------------------------------------------------------------ |
689
+ | 3.2.3.1 | `convertStreamEvent()` 변환 | ✅ | `converter.test.ts` | text delta 5건 + tool call 8건 + finish 4건 + usage 4건 + 통합 2건 + 엣지 2건 = 25건 |
690
+ | 3.2.3.2 | 텍스트 델타 처리 | ✅ | `converter.test.ts` | T1-T5: delta.content 비empty → TextDelta, null/empty/role-only 필터링 |
691
+ | 3.2.3.3 | Tool call 델타 처리 | ✅ | `converter.test.ts` | T6-T13: index 기반 축적, 병렬 추적, finish_reason=tool_calls 시 일괄 발행 |
692
+ | 3.2.3.4 | Usage 정보 추출 | ✅ | `converter.test.ts` | T18-T21: usage-only 최종 청크 → MessageEnd, cached_tokens 추출 |
693
+
694
+ ### 3.2.4 OpenAI 에러 매핑
695
+
696
+ | ID | 작업 | 상태 | 테스트 파일 | 비고 |
697
+ | ------- | -------------------- | ---- | ----------------- | --------------------------------------------------------------------- |
698
+ | 3.2.4.1 | OpenAI SDK 에러 분석 | ✅ | N/A (분석) | M3.2.A 사전작업에서 SDK d.ts 전수 분석 완료 |
699
+ | 3.2.4.2 | Rate limit 에러 매핑 | ✅ | `adapter.test.ts` | 429→RateLimitError, Claude와 동일 패턴 |
700
+ | 3.2.4.3 | Auth 에러 매핑 | ✅ | `adapter.test.ts` | 401/403→AuthenticationError |
701
+ | 3.2.4.4 | 에러 변환 유틸 함수 | ✅ | `adapter.test.ts` | `classifyError()` — 8 status code + message heuristic + LlmError 보존 |
702
+
703
+ **검증 기준**:
704
+
705
+ - [x] OpenAI 기본 대화 동작
706
+ - [x] OpenAI 스트리밍 동작 (M3.2.B — `convertStreamEvent` 25건 + adapter
707
+ streaming 3건)
708
+ - [x] OpenAI 도구 호출 동작
709
+ - [x] OpenAI JSON mode 동작
710
+
711
+ ---
712
+
713
+ # M3.3: OpenAI-Compatible(vLLM/sLM) 어댑터 템플릿 (3일)
714
+
715
+ > 📚 **설계서 참조**:
716
+ > [03-technical-design.md §3.4 vLLM 및 OpenAI 호환 프로바이더 확장](../03-technical-design.md#34-vllm-및-기타-openai-호환-프로바이더-확장),
717
+ > [05-implementation-plan.md §M3.3](../05-implementation-plan.md#m33-openai-compatiblevllmslm-어댑터-템플릿-3일)
718
+
719
+ ## 목표
720
+
721
+ vLLM, TGI, LM Studio 등 OpenAI 호환 API 지원
722
+
723
+ ## 특화 고려사항
724
+
725
+ - Custom baseUrl 지원
726
+ - Custom headers 지원
727
+ - 다양한 API Key 헤더 지원
728
+ - 모델별 ChatTemplate 훅
729
+
730
+ ## 작업 항목
731
+
732
+ ### 3.3.0 사전 준비
733
+
734
+ | ID | 작업 | 상태 | 테스트 파일 | 비고 |
735
+ | ------- | ------------------------------------------------ | ---- | ------------------- | ----------------------------------------------------------------------------------------------------------- |
736
+ | 3.3.0.1 | ProviderRegistry에 OpenAI-Compatible 팩토리 등록 | ✅ | `bootstrap.test.ts` | `bootstrapOpenAiCompatibleProvider()` — has() guard, `LLM_CUSTOM_HEADERS`/`LLM_API_KEY_HEADER` env var 지원 |
737
+
738
+ ### 3.3.1 OpenAICompatibleAdapter 구현
739
+
740
+ | ID | 작업 | 상태 | 테스트 파일 |
741
+ | ------- | -------------------------------- | ---- | ------------------- | ------------------------------------------------------------------- |
742
+ | 3.3.1.1 | `OpenAICompatibleAdapter` 클래스 | ✅ | `adapter.test.ts` | BaseAdapter + OpenAiAdapter 상속, providerName='openai-compatible' |
743
+ | 3.3.1.2 | `OpenAIAdapter` 상속 | ✅ | `adapter.test.ts` | `extends OpenAiAdapter` — converter/classifyError/generate\* 재사용 |
744
+ | 3.3.1.3 | `baseUrl` 설정 지원 | ✅ | `bootstrap.test.ts` | OpenAI SDK `baseURL` 옵션으로 전달 |
745
+ | 3.3.1.4 | Custom headers 지원 | ✅ | `bootstrap.test.ts` | `LLM_CUSTOM_HEADERS` env var (JSON) → SDK `defaultHeaders` |
746
+ | 3.3.1.5 | `apiKeyHeaderName` 지원 | ✅ | `bootstrap.test.ts` | `LLM_API_KEY_HEADER` env var → custom auth header |
747
+ | 3.3.1.6 | 연결 테스트 메서드 | ✅ | `adapter.test.ts` | `testConnection()` — HTTP응답=true, 네트워크에러=false |
748
+
749
+ **TDD 시나리오**:
750
+
751
+ ```typescript
752
+ describe('OpenAICompatibleAdapter', () => {
753
+ it('should use custom baseUrl', async () => {
754
+ const adapter = new OpenAICompatibleAdapter({
755
+ baseUrl: 'http://localhost:8000/v1',
756
+ model: 'meta-llama/Llama-3.1-8B-Instruct',
757
+ });
758
+
759
+ const mockFetch = vi.spyOn(global, 'fetch');
760
+ await adapter.generate(request);
761
+
762
+ expect(mockFetch).toHaveBeenCalledWith(
763
+ expect.stringContaining('http://localhost:8000/v1'),
764
+ expect.any(Object),
765
+ );
766
+ });
767
+
768
+ it('should support custom API key header', async () => {
769
+ const adapter = new OpenAICompatibleAdapter({
770
+ baseUrl: 'http://localhost:8000/v1',
771
+ apiKey: 'my-key',
772
+ apiKeyHeaderName: 'X-Custom-Auth',
773
+ });
774
+
775
+ const mockFetch = vi.spyOn(global, 'fetch');
776
+ await adapter.generate(request);
777
+
778
+ expect(mockFetch).toHaveBeenCalledWith(
779
+ expect.any(String),
780
+ expect.objectContaining({
781
+ headers: expect.objectContaining({
782
+ 'X-Custom-Auth': 'my-key',
783
+ }),
784
+ }),
785
+ );
786
+ });
787
+ });
788
+ ```
789
+
790
+ ### 3.3.2 모델별 템플릿 훅
791
+
792
+ | ID | 작업 | 상태 | 테스트 파일 |
793
+ | ------- | -------------------------- | ---- | ----------------------- | ------------------------------------------------------------------ |
794
+ | 3.3.2.1 | `PromptBuilder` 인터페이스 | ✅ | `promptBuilder.test.ts` | `formatPrompt()` 메서드 — 확장 포인트 |
795
+ | 3.3.2.2 | Llama3 ChatTemplate | ✅ | `promptBuilder.test.ts` | `Llama3PromptBuilder` + model hook(`createPromptBuilderForModel`) |
796
+ | 3.3.2.3 | Mistral ChatTemplate | ✅ | `promptBuilder.test.ts` | `MistralPromptBuilder` + model hook(`createPromptBuilderForModel`) |
797
+ | 3.3.2.4 | 범용 ChatML 템플릿 | ✅ | `promptBuilder.test.ts` | `ChatMLPromptBuilder` — `<\|im_start\|>/<\|im_end\|>` 토큰 |
798
+
799
+ ### 3.3.3 호환성 시나리오 테스트
800
+
801
+ | ID | 작업 | 상태 | 테스트 파일 |
802
+ | ------- | ----------------------- | ---- | ----------------------- | -------------------------------------------------------------- |
803
+ | 3.3.3.1 | vLLM 호환성 테스트 | ✅ | `compatibility.test.ts` | chat completion + streaming + error + no apiKey (4 tests) |
804
+ | 3.3.3.2 | TGI 호환성 테스트 | ✅ | `compatibility.test.ts` | chat completion + streaming + error (3 tests) |
805
+ | 3.3.3.3 | LM Studio 호환성 테스트 | ✅ | `compatibility.test.ts` | chat completion + streaming (2 tests) |
806
+ | 3.3.3.4 | Ollama 호환성 테스트 | ✅ | `compatibility.test.ts` | chat completion + streaming + missing usage graceful (3 tests) |
807
+
808
+ **검증 기준**:
809
+
810
+ - [x] vLLM 기본 대화 동작
811
+ - [x] Custom baseUrl 동작
812
+ - [x] Custom headers 동작
813
+
814
+ ---
815
+
816
+ # M3.4: 통합 테스트/문서/안정화 — ⚡ 부분 선행
817
+
818
+ > 📚 **설계서 참조**:
819
+ > [04-integration-design.md §4.2 연동 아키텍처](../04-integration-design.md#42-연동-아키텍처)
820
+ > (통합 테스트 시나리오),
821
+ > [05-implementation-plan.md §5.5 테스트 및 검증](../05-implementation-plan.md#55-테스트-및-검증),
822
+ > [§M3.4](../05-implementation-plan.md#m34-통합-테스트문서안정화-5-7일)
823
+ >
824
+ > ⚡ **실행 순서**: M3.4.A (선행) → M3.3 → M3.4.B (잔여)
825
+ >
826
+ > **선행 범위**: Gemini/Claude/OpenAI (3 providers) 기반 통합 테스트 및 문서화
827
+ > **M3.3 의존 항목**: vLLM E2E 테스트, OpenAI-Compatible 문서 상세화
828
+
829
+ ## 목표
830
+
831
+ 멀티 프로바이더 통합 검증 및 문서화 (Phase: 3 providers → 4 providers)
832
+
833
+ ---
834
+
835
+ ## M3.4.A: 선행 가능 항목 (3-Provider Integration)
836
+
837
+ > **전제 조건**: M3.0 ✅, M3.1 ✅, M3.2 ✅
838
+ >
839
+ > **작업 기간**: 3-4일
840
+
841
+ ## 작업 항목
842
+
843
+ ### 3.4.1 멀티 프로바이더 통합 테스트
844
+
845
+ | ID | 작업 | 상태 | 테스트 파일 | M3.3 의존 |
846
+ | ------- | --------------------------- | ---- | ----------------------------------- | --------- |
847
+ | 3.4.1.1 | 프로바이더 전환 테스트 | ✅ | `multiProvider.integration.test.ts` | ❌ |
848
+ | 3.4.1.2 | 동시 프로바이더 사용 테스트 | ✅ | `multiProvider.integration.test.ts` | ❌ |
849
+ | 3.4.1.3 | 설정 검증 통합 테스트 | ✅ | `providerConfigIntegration.test.ts` | ❌ |
850
+ | 3.4.1.4 | 에러 처리 통합 테스트 | ✅ | `errorHandling.integration.test.ts` | ❌ |
851
+
852
+ ### 3.4.2 E2E 테스트 시나리오
853
+
854
+ | ID | 작업 | 상태 | 테스트 파일 | M3.3 의존 |
855
+ | ------- | ---------------------- | ---- | ------------------------ | ----------- |
856
+ | 3.4.2.1 | Gemini E2E 테스트 | ✅ | `multi-provider.test.ts` | ❌ |
857
+ | 3.4.2.2 | Claude E2E 테스트 | ✅ | `multi-provider.test.ts` | ❌ |
858
+ | 3.4.2.3 | OpenAI E2E 테스트 | ✅ | `multi-provider.test.ts` | ❌ |
859
+ | 3.4.2.4 | vLLM E2E 테스트 (선택) | ⬜ | E2E | ✅ → M3.4.B |
860
+
861
+ **E2E 테스트 매트릭스 (M3.4.A 선행 범위)**:
862
+
863
+ | 시나리오 | Gemini | Claude | OpenAI | vLLM (M3.4.B) |
864
+ | ------------- | ------ | ------ | ------ | ------------- |
865
+ | 기본 대화 | ✅ | ✅ | ✅ | ⏳ M3.3 후 |
866
+ | 스트리밍 대화 | ✅ | ✅ | ✅ | ⏳ M3.3 후 |
867
+ | 도구 호출 | ✅ | ✅ | ✅ | ⏳ M3.3 후 |
868
+ | 이미지 입력 | ⬜ | ⬜ | ⬜ | ⏳ M3.3 후 |
869
+ | 에러 처리 | ✅ | ✅ | ✅ | ⏳ M3.3 후 |
870
+
871
+ ### 3.4.3 성능 회귀 테스트 (3-Provider Baseline)
872
+
873
+ | ID | 작업 | 상태 | 테스트 파일 | M3.3 의존 |
874
+ | ------- | ------------------------- | ---- | ----------------------------------------- | --------- |
875
+ | 3.4.3.1 | 응답 지연 벤치마크 | ✅ | `providers/__tests__/performance.test.ts` | ❌ |
876
+ | 3.4.3.2 | 스트리밍 첫 토큰 벤치마크 | ✅ | `providers/__tests__/performance.test.ts` | ❌ |
877
+ | 3.4.3.3 | 메모리 사용량 프로파일링 | ✅ | `providers/__tests__/performance.test.ts` | ❌ |
878
+ | 3.4.3.4 | 번들 크기 분석 | ✅ | `providers/__tests__/bundleSize.test.ts` | ❌ |
879
+
880
+ **성능 기준**:
881
+
882
+ - 응답 지연 증가 < 50ms
883
+ - 스트리밍 첫 토큰 지연 < 100ms
884
+ - 메모리 증가 < 10%
885
+ - 번들 크기 증가 < 500KB
886
+
887
+ ### 3.4.4 문서 업데이트 (3-Provider + vLLM Placeholder)
888
+
889
+ | ID | 작업 | 상태 | 산출물 | M3.3 의존 |
890
+ | ------- | --------------------- | ---- | ----------------------- | --------- |
891
+ | 3.4.4.1 | 사용자 가이드 작성 | ✅ | `docs/providers.md` | 🔶 |
892
+ | 3.4.4.2 | API 레퍼런스 업데이트 | ✅ | `docs/api/` | ❌ |
893
+ | 3.4.4.3 | 환경변수 문서화 | ✅ | `docs/configuration.md` | 🔶 |
894
+ | 3.4.4.4 | 마이그레이션 가이드 | ✅ | `docs/migration.md` | ❌ |
895
+ | 3.4.4.5 | README 업데이트 | ✅ | `README.md` | 🔶 |
896
+
897
+ 🔶 = 3 providers 완전 문서화 + vLLM placeholder 포함, M3.4.B에서 상세화
898
+
899
+ ### 3.4.5 안정화 작업 (3-Provider Scope)
900
+
901
+ | ID | 작업 | 상태 | M3.3 의존 | 비고 |
902
+ | ------- | ------------------ | ---- | --------- | -------------------------------------------------------------------------------------------------------------------------- |
903
+ | 3.4.5.1 | 버그 수정 | ✅ | ❌ | non-Gemini provider + llm\* 메서드 불일치 가드 및 explicit error event 추가 |
904
+ | 3.4.5.2 | 에지 케이스 처리 | ✅ | ❌ | llm stream throw 시 Error event 변환, model history 오염 방지 |
905
+ | 3.4.5.3 | 에러 메시지 개선 | ✅ | ❌ | `PROVIDER_METHOD_MISMATCH`, `LLM_STREAM_FAILURE` 코드와 설명 메시지 추가 |
906
+ | 3.4.5.4 | 로깅 개선 | ✅ | ❌ | debug mode에서 non-Gemini 경로 선택/stream throw 상황 로깅 |
907
+ | 3.4.5.5 | 기능 플래그 정리 | ✅ | ❌ | featureFlag 테스트 재검증(16 PASS) + non-Gemini 경로 guard와 충돌 없는 동작 확인 |
908
+ | 3.4.5.6 | 의존성 정합성 검증 | ✅ | ❌ | package/lockfile 검증, `npm ci --ignore-scripts` 성공, `npm run check:lockfile` PASS, bundle 내 anthropic/openai 포함 확인 |
909
+
910
+ **M3.4.A 검증 기준** (선행 완료 조건):
911
+
912
+ - [x] 멀티 프로바이더 통합 테스트 통과 (3.4.1.1~3.4.1.4)
913
+ - [x] Gemini/Claude/OpenAI E2E 테스트 통과 (3.4.2.1~3.4.2.3)
914
+ - [x] 성능 회귀 없음 (3-provider baseline 기준 내)
915
+ - [x] 3-provider 문서 완성 (vLLM placeholder 포함)
916
+ - [x] 의존성 검증 (`npm ci` 성공, esbuild bundle 포함 확인)
917
+
918
+ ---
919
+
920
+ ## M3.4.B: M3.3 의존 항목 (vLLM Integration)
921
+
922
+ > **전제 조건**: M3.3 완료 (OpenAI-Compatible adapter)
923
+ >
924
+ > **작업 기간**: 1-2일
925
+
926
+ ### 3.4.2 E2E 테스트 시나리오 (vLLM Subset)
927
+
928
+ | ID | 작업 | 상태 | 테스트 파일 |
929
+ | ------- | ---------------------- | ---- | ----------- |
930
+ | 3.4.2.4 | vLLM E2E 테스트 (선택) | ⬜ | E2E |
931
+
932
+ ### 3.4.4 문서 업데이트 (vLLM 상세화)
933
+
934
+ | ID | 작업 | 상태 | 산출물 |
935
+ | --------- | ------------------------ | ---- | ----------------------- |
936
+ | 3.4.4.1-B | vLLM 섹션 상세화 | ✅ | `docs/providers.md` |
937
+ | 3.4.4.3-B | LLM_BASE_URL 문서 상세화 | ✅ | `docs/configuration.md` |
938
+ | 3.4.4.5-B | vLLM Quick Start 추가 | ✅ | `README.md` |
939
+
940
+ **M3.4.B 검증 기준** (전체 M3.4 완료 조건):
941
+
942
+ - [ ] vLLM E2E 테스트 통과 (또는 환경 의존 skip 처리)
943
+ - [x] vLLM 문서 완성 (placeholder → full docs)
944
+ - [ ] 전체 M3.4 완료 (M3.4.A + M3.4.B)
945
+
946
+ ---
947
+
948
+ # M3.5: 테스트 마이그레이션 (3-4일) [v0.2 신규]
949
+
950
+ > 📚 **설계서 참조**:
951
+ > [05-implementation-plan.md §5.5 테스트 및 검증](../05-implementation-plan.md#55-테스트-및-검증)
952
+ > (테스트 전략),
953
+ > [03-technical-design.md §3.1 타입 시스템](../03-technical-design.md#31-프로바이더-독립적-타입-시스템)
954
+ > (Mock 타입 전환 참조)
955
+
956
+ ## 목표
957
+
958
+ Gemini 특화 테스트를 프로바이더 중립적 테스트로 전환
959
+
960
+ ## 배경
961
+
962
+ Phase 2에서 리팩토링된 코드에 대응하여 기존 테스트도 함께 마이그레이션 필요
963
+
964
+ ## 작업 항목
965
+
966
+ ### 3.5.1 테스트 파일 분석
967
+
968
+ | ID | 작업 | 상태 | 산출물 |
969
+ | ------- | ----------------------------------- | ---- | ---------------- |
970
+ | 3.5.1.1 | Gemini 특화 테스트 파일 식별 | ⬜ | 테스트 파일 목록 |
971
+ | 3.5.1.2 | 테스트 내 @google/genai 의존성 분석 | ⬜ | 의존성 매트릭스 |
972
+ | 3.5.1.3 | Mock 객체 Gemini 특화 여부 분석 | ⬜ | Mock 분석 문서 |
973
+ | 3.5.1.4 | 테스트 수정 범위 산정 | ⬜ | 수정 범위 문서 |
974
+
975
+ **분석 대상 테스트 파일** (실제 존재 확인됨):
976
+
977
+ ```
978
+ packages/core/src/
979
+ ├── core/
980
+ │ ├── contentGenerator.test.ts # GenerateContentParameters 의존
981
+ │ ├── turn.test.ts # GeminiEventType 의존
982
+ │ ├── geminiChat.test.ts # Gemini 응답/스트리밍 의존 🆕
983
+ │ ├── baseLlmClient.test.ts # 🆕 baseLlmClient 의존
984
+ │ ├── loggingContentGenerator.test.ts # 래퍼 클래스
985
+ │ ├── recordingContentGenerator.test.ts # 래퍼 클래스
986
+ │ └── fakeContentGenerator.test.ts # Mock 구현
987
+ ├── services/
988
+ │ └── modelConfigService.test.ts # GenerateContentConfig 의존
989
+ ├── routing/
990
+ │ ├── modelRouterService.test.ts # 🆕 라우팅 레이어
991
+ │ └── strategies/*.test.ts # 🆕 라우팅 전략
992
+ └── utils/
993
+ ├── tokenCalculation.test.ts # Part, Content 타입 의존
994
+ └── partUtils.test.ts # Part 타입 의존
995
+ ```
996
+
997
+ ⚠️ **주의**: `session.test.ts`는 존재하지 않음 (원본 계획서 오류 수정됨)
998
+
999
+ ### 3.5.2 테스트 마이그레이션 전략
1000
+
1001
+ | ID | 작업 | 상태 | 테스트 파일 |
1002
+ | ------- | ------------------------- | ---- | ------------------------------- |
1003
+ | 3.5.2.1 | 공통 Mock Factory 설계 | ⬜ | `testUtils/mockFactory.ts` |
1004
+ | 3.5.2.2 | 프로바이더 중립 Mock 구현 | ⬜ | `testUtils/mockFactory.test.ts` |
1005
+ | 3.5.2.3 | 프로바이더별 Mock 어댑터 | ⬜ | `testUtils/mockAdapters.ts` |
1006
+ | 3.5.2.4 | 테스트 데이터 팩토리 | ⬜ | `testUtils/testDataFactory.ts` |
1007
+
1008
+ **TDD 시나리오**:
1009
+
1010
+ ```typescript
1011
+ describe('MockFactory', () => {
1012
+ it('should create provider-agnostic mock message', () => {
1013
+ const mockMessage = MockFactory.createMessage({
1014
+ role: LlmRole.User,
1015
+ text: 'Hello',
1016
+ });
1017
+
1018
+ expect(mockMessage.role).toBe(LlmRole.User);
1019
+ expect(mockMessage.content[0].type).toBe('text');
1020
+ });
1021
+
1022
+ it('should create provider-specific response via adapter', () => {
1023
+ const genericResponse = MockFactory.createResponse({ text: 'Hi' });
1024
+
1025
+ // Gemini용 변환
1026
+ const geminiResponse = MockAdapters.toGemini(genericResponse);
1027
+ expect(geminiResponse).toHaveProperty('candidates');
1028
+
1029
+ // Claude용 변환
1030
+ const claudeResponse = MockAdapters.toClaude(genericResponse);
1031
+ expect(claudeResponse).toHaveProperty('content');
1032
+ });
1033
+ });
1034
+ ```
1035
+
1036
+ ### 3.5.3 테스트 파일 마이그레이션
1037
+
1038
+ | ID | 작업 | 상태 | 우선순위 |
1039
+ | ------- | ------------------------------------------- | ---- | -------- |
1040
+ | 3.5.3.1 | `contentGenerator.test.ts` 마이그레이션 | ⬜ | 높음 |
1041
+ | 3.5.3.2 | `turn.test.ts` 마이그레이션 | ⬜ | 높음 |
1042
+ | 3.5.3.3 | `geminiChat.test.ts` 마이그레이션 | ⬜ | 높음 |
1043
+ | 3.5.3.4 | `baseLlmClient.test.ts` 마이그레이션 | ⬜ | 중간 |
1044
+ | 3.5.3.5 | `modelConfigService.test.ts` 마이그레이션 | ⬜ | 중간 |
1045
+ | 3.5.3.6 | `tokenCalculation.test.ts` 마이그레이션 | ⬜ | 낮음 |
1046
+ | 3.5.3.7 | `partUtils.test.ts` 마이그레이션 | ⬜ | 낮음 |
1047
+ | 3.5.3.8 | `routing/*.test.ts` 마이그레이션 (7개 파일) | ⬜ | 중간 |
1048
+
1049
+ **마이그레이션 패턴**:
1050
+
1051
+ ```typescript
1052
+ // Before: Gemini 특화 테스트
1053
+ import type { GenerateContentResponse } from '@google/genai';
1054
+
1055
+ const mockResponse: GenerateContentResponse = {
1056
+ candidates: [{ content: { parts: [{ text: 'Hello' }] } }],
1057
+ };
1058
+
1059
+ // After: 프로바이더 중립 테스트
1060
+ import { MockFactory } from '../../testUtils/mockFactory';
1061
+
1062
+ const mockResponse = MockFactory.createResponse({ text: 'Hello' });
1063
+ // GeminiAdapter 테스트시 GeminiMockAdapter로 변환
1064
+ ```
1065
+
1066
+ ### 3.5.4 크로스 프로바이더 테스트 수트
1067
+
1068
+ | ID | 작업 | 상태 | 테스트 파일 |
1069
+ | ------- | ------------------------ | ---- | ------------------------------------------- |
1070
+ | 3.5.4.1 | 공통 테스트 케이스 정의 | ⬜ | `providers/__tests__/common.ts` |
1071
+ | 3.5.4.2 | 파라미터화된 테스트 구현 | ⬜ | `providers/__tests__/crossProvider.test.ts` |
1072
+ | 3.5.4.3 | 프로바이더별 테스트 실행 | ⬜ | CI/CD 설정 |
1073
+
1074
+ **TDD 시나리오**:
1075
+
1076
+ ```typescript
1077
+ describe.each([
1078
+ ['gemini', GeminiAdapter],
1079
+ ['claude', ClaudeAdapter],
1080
+ ['openai', OpenAIAdapter],
1081
+ ])('%s adapter', (name, AdapterClass) => {
1082
+ it('should convert user message correctly', () => {
1083
+ const adapter = new AdapterClass(testConfig);
1084
+ const message = MockFactory.createUserMessage('Hello');
1085
+
1086
+ const converted = adapter.convertMessage(message);
1087
+
1088
+ // 각 프로바이더별 검증
1089
+ expect(converted).toMatchProviderSchema(name);
1090
+ });
1091
+
1092
+ it('should handle streaming events', async () => {
1093
+ const adapter = new AdapterClass(testConfig);
1094
+ const events: LlmStreamEvent[] = [];
1095
+
1096
+ for await (const event of adapter.generateStream(request)) {
1097
+ events.push(event);
1098
+ }
1099
+
1100
+ expect(events.some((e) => e.type === 'text_delta')).toBe(true);
1101
+ });
1102
+ });
1103
+ ```
1104
+
1105
+ **검증 기준**:
1106
+
1107
+ - [ ] 모든 기존 테스트 마이그레이션 완료
1108
+ - [ ] 공통 Mock Factory 동작 확인
1109
+ - [ ] 크로스 프로바이더 테스트 통과
1110
+ - [ ] 테스트 커버리지 유지 (≥80%)
1111
+
1112
+ ---
1113
+
1114
+ # PHASE 3 COMPLETION CHECKLIST
1115
+
1116
+ ## Phase 2 연기 항목 해소 (M3.0) [v0.4 추가]
1117
+
1118
+ - [x] `geminiChat.ts` → `providers/gemini/chat.ts` 물리적 이동 완료 (M3.0.1)
1119
+ - [x] `turn.ts` Gemini 특화 로직 분리 완료 (M3.0.1)
1120
+ - [x] root `index.ts` re-export 회귀 테스트 통과 (M3.0.1.5)
1121
+ - [x] messageInspectors 4개 파일 마이그레이션 완료 (M3.0.2)
1122
+ - [x] 텔레메트리 레이어 @google/genai 독립화 (M3.0.3)
1123
+ - [x] LocalAgentExecutor GeminiChat 직접 결합 해소 (M3.0.3)
1124
+ - [x] `geminiTypeConversion.ts` 브릿지 정리 완료 (M3.0.4)
1125
+ - [x] `telemetry/sdk.ts` 시그널 핸들러 누수 수정 (M3.0.3)
1126
+ - [ ] `createContentGenerator()` → ProviderFactory 런타임 연결 완료 (3.0.5)
1127
+ - [ ] ProviderRegistry Gemini 팩토리 부트스트랩 동작 (3.0.5.4)
1128
+ - [ ] 부트스트랩 중복 호출 안전성 검증 (3.0.5.4)
1129
+ - [ ] 프로바이더 선택 우선순위 통합 및 7개 회귀 시나리오 통과 (3.0.5.5)
1130
+
1131
+ ## Quality Gates
1132
+
1133
+ - [ ] 모든 단위 테스트 통과
1134
+ - [ ] 모든 통합 테스트 통과
1135
+ - [ ] 모든 E2E 테스트 통과
1136
+ - [ ] TypeScript 컴파일 에러 없음
1137
+ - [ ] ESLint 경고 없음
1138
+
1139
+ ## 성능 검증
1140
+
1141
+ - [ ] 응답 지연 증가 < 50ms
1142
+ - [ ] 스트리밍 첫 토큰 지연 < 100ms
1143
+ - [ ] 메모리 사용량 증가 < 10%
1144
+ - [ ] 번들 크기 증가 < 500KB
1145
+
1146
+ ## 기능 검증
1147
+
1148
+ - [ ] Gemini 기존 기능 100% 동작
1149
+ - [ ] Claude 핵심 기능 동작
1150
+ - [ ] OpenAI 핵심 기능 동작
1151
+ - [ ] OpenAI-Compatible 기본 동작
1152
+
1153
+ ## 산출물 확인
1154
+
1155
+ - [ ] `packages/core/src/providers/gemini/chat.ts` 이동 완료 (M3.0)
1156
+ - [ ] `packages/core/src/providers/gemini/turn.ts` 분리 완료 (M3.0)
1157
+ - [ ] `packages/core/src/providers/claude/` 디렉토리 생성
1158
+ - [ ] `packages/core/src/providers/openai/` 디렉토리 생성
1159
+ - [ ] `packages/core/src/providers/openai-compatible/` 디렉토리 생성
1160
+ - [ ] `@anthropic-ai/sdk`, `openai` 의존성 설치 및 lockfile 동기화
1161
+ - [ ] ProviderRegistry에 4개 팩토리 등록 (gemini, claude, openai,
1162
+ openai-compatible)
1163
+ - [ ] 사용자 문서 완성
1164
+ - [ ] API 레퍼런스 완성
1165
+
1166
+ ## 테스트 마이그레이션 검증 [v0.2 추가]
1167
+
1168
+ - [ ] 모든 기존 테스트 파일 마이그레이션 완료
1169
+ - [ ] 공통 Mock Factory 구현 및 테스트 통과
1170
+ - [ ] 프로바이더별 Mock 어댑터 동작 확인
1171
+ - [ ] 크로스 프로바이더 테스트 수트 통과
1172
+ - [ ] 테스트 커버리지 ≥80% 유지
1173
+
1174
+ ---
1175
+
1176
+ # RELEASE PLAN
1177
+
1178
+ ## 버전 출시 계획
1179
+
1180
+ | 버전 | 포함 내용 | 시점 |
1181
+ | ------------ | --------------------------------- | ----------------- |
1182
+ | 0.28.0-alpha | GeminiAdapter + 타입 전환 | Phase 2 완료 후 |
1183
+ | 0.28.0-beta | Claude/OpenAI + OpenAI-Compatible | Phase 3 일부 완료 |
1184
+ | 0.28.0 | 안정화/문서/테스트 | Phase 3 종료 후 |
1185
+
1186
+ ## 기능 플래그 관리
1187
+
1188
+ ```typescript
1189
+ // 점진적 활성화
1190
+ ENABLE_MULTI_PROVIDER=false # 기본값: 기존 동작
1191
+ ENABLE_MULTI_PROVIDER=true # 신규 아키텍처 활성화
1192
+ ```
1193
+
1194
+ ## 롤백 계획
1195
+
1196
+ 1. 문제 발생 시 `ENABLE_MULTI_PROVIDER=false` 설정
1197
+ 2. 기존 Gemini 전용 경로로 즉시 폴백
1198
+ 3. 이슈 분석 및 수정 후 재배포
1199
+
1200
+ ---
1201
+
1202
+ # DEPENDENCY MANAGEMENT
1203
+
1204
+ ## 신규 의존성
1205
+
1206
+ ```json
1207
+ {
1208
+ "dependencies": {
1209
+ "@anthropic-ai/sdk": "^0.30.0",
1210
+ "openai": "^4.70.0"
1211
+ }
1212
+ }
1213
+ ```
1214
+
1215
+ ## 번들 최적화
1216
+
1217
+ ```typescript
1218
+ // Dynamic import로 번들 크기 관리
1219
+ const ClaudeAdapter = await import('./claude/adapter');
1220
+ const OpenAIAdapter = await import('./openai/adapter');
1221
+ ```
1222
+
1223
+ ---
1224
+
1225
+ # NOTES
1226
+
1227
+ ## 프로바이더별 주의사항
1228
+
1229
+ ### Claude
1230
+
1231
+ - System 메시지는 별도 파라미터로 전달
1232
+ - 이미지 URL은 base64로 변환 필수
1233
+ - tool delta 합성 필요
1234
+
1235
+ ### OpenAI
1236
+
1237
+ - System 메시지는 첫 번째 위치
1238
+ - JSON mode 지원
1239
+ - 이미지 URL 직접 지원
1240
+
1241
+ ### OpenAI-Compatible
1242
+
1243
+ - baseUrl 설정 필수
1244
+ - 모델별 capability 차이 존재
1245
+ - 일부 기능 미지원 가능
1246
+
1247
+ ## TDD 원칙
1248
+
1249
+ 1. 각 프로바이더별 변환 함수 테스트 우선
1250
+ 2. 스트리밍 합성 테스트 필수
1251
+ 3. 에러 매핑 테스트 필수
1252
+
1253
+ ## 참고 문서
1254
+
1255
+ - [03-technical-design.md](../03-technical-design.md)
1256
+ - [04-integration-design.md](../04-integration-design.md)
1257
+ - [05-implementation-plan.md](../05-implementation-plan.md)
1258
+
1259
+ ---
1260
+
1261
+ # CHANGE LOG
1262
+
1263
+ ## v0.8 (리뷰 3건 반영)
1264
+
1265
+ - **이슈 #1 [Medium] — 중복 등록 안전성**:
1266
+ - M3.0.5.4 비고 보강: `registry.register()` 중복 호출 시 예외 발생
1267
+ (registry.ts:81) — `has()` 가드/force 정책/초기화 위치 3가지 방안 명시
1268
+ - 테스트 파일에 `contentGenerator.test.ts` 추가 (런타임 부트스트랩 검증)
1269
+ - 부트스트랩 코드 예시(`has()` 가드 권장 패턴) 추가
1270
+ - M3.1.0.2/M3.2.0.2/M3.3.0.1에 동일 가드 패턴 적용 주석 추가
1271
+ - 검증 기준/Completion Checklist에 "중복 호출 안전성" 항목 추가
1272
+ - **이슈 #2 [Medium] — 런타임 wiring 테스트 타깃 보강**:
1273
+ - M3.0.5.2 테스트 파일: `providerConfigIntegration.test.ts` →
1274
+ `contentGenerator.test.ts`, `providerConfigIntegration.test.ts` (복수)
1275
+ - 비고에 "실제 런타임 분기점은 `createContentGenerator()` (L167)" 명시
1276
+ - M3.0.5.4 테스트 파일에 `contentGenerator.test.ts` 추가
1277
+ - **이슈 #3 [Low] — `--provider` CLI 옵션 미존재 명확화**:
1278
+ - 우선순위 표 1순위: `--provider claude` → `providerName: 'claude'` (내부 API
1279
+ 수준)
1280
+ - Q7 Open Question 신규: CLI `--provider` 옵션 노출 여부 (잠정: 환경변수로
1281
+ 충분)
1282
+ - 비고에 "CLI `--provider` 옵션은 미존재 — Q7 참조" 추가
1283
+
1284
+ ## v0.7 (리뷰 4건 반영)
1285
+
1286
+ - **이슈 #1 [High] — 레지스트리 등록 누락**:
1287
+ - M3.0.5.4 신규: ProviderRegistry Gemini 팩토리 부트스트랩 구현
1288
+ - M3.0.5.5 신규: 프로바이더 선택 우선순위 통합 (5단계 우선순위 표 + 7개 회귀
1289
+ 시나리오)
1290
+ - M3.1.0.2 신규: `register('claude', ...)` 작업 추가
1291
+ - M3.2.0.2 신규: `register('openai', ...)` 작업 추가
1292
+ - M3.3.0.1 신규: `register('openai-compatible', ...)` 작업 추가
1293
+ - **이슈 #2 [Medium] — root index.ts export 테스트 부재**:
1294
+ - M3.0.1.5 신규: root `index.ts` re-export 회귀 테스트 추가 (현재 placeholder)
1295
+ - 검증 기준 및 Completion Checklist에 CLI import 호환성 항목 추가
1296
+ - **이슈 #3 [Medium] — 프로바이더 선택 우선순위 충돌**:
1297
+ - M3.0.5.5에 통합 우선순위 표(5단계) 및 회귀 테스트(7시나리오) 추가
1298
+ - 2개 분리 시스템(contentGenerator authType vs providerSelector LLM_PROVIDER)
1299
+ 충돌 명시
1300
+ - **이슈 #4 [Low] — 의존성 설치 작업 누락**:
1301
+ - M3.1.0.1 신규: `@anthropic-ai/sdk` 설치 작업
1302
+ - M3.2.0.1 신규: `openai` SDK 설치 작업
1303
+ - M3.4.5.6 신규: 의존성 정합성 검증 (lockfile, npm ci, 번들링)
1304
+ - 산출물 확인에 의존성/레지스트리 항목 추가
1305
+
1306
+ ## v0.6 (코드 기반 검증 반영)
1307
+
1308
+ - **geminiChat.ts 라인 수**: 988 → 999라인 정정
1309
+ - **turn.ts 분석 정정**: "공통 인터페이스 core 유지" → Turn 클래스 전체가
1310
+ Gemini-specific (324라인, GeminiChat 생성자 의존)
1311
+ - **loopDetectionService.ts 라인 번호**: L444/452/473 → L408/416/437 정정
1312
+ - **loggingContentGenerator import 수**: "8+" → "11개 SDK 타입" (L7-18 상세)
1313
+ 정정
1314
+ - **contentGenerator.ts 라인 범위**: "220~250" → "167-259 (GoogleGenAI 생성:
1315
+ L235)" 정정
1316
+ - **LocalAgentExecutor 결합 상세**: L753 직접 생성자 호출 + 3개 메서드 하드코딩
1317
+ 명시
1318
+ - **ENABLE_MULTI_PROVIDER 제어 범위**: adapterBridge에서만 제어,
1319
+ contentGenerator 미연결 명시
1320
+ - **import 변경 파일 수**: geminiChat 13개 + turn 10개 = 23개 파일 명시
1321
+ - **핸드오프 문서 동기화**: phase3_handoff.md의 라인 번호/수치도 동일 정정
1322
+
1323
+ ## v0.5 (리뷰 5건 반영)
1324
+
1325
+ - **이슈 #1 [High]**: M3.0.5 신규 — 런타임 실행 경로 연결 (contentGenerator.ts →
1326
+ ProviderFactory 연결 3개 작업)
1327
+ - **이슈 #2 [High]**: phase3_handoff.md 마일스톤 순서 — 최신 계획서와의 매핑
1328
+ 주석 및 H-1~H-5 라벨 추가
1329
+ - **이슈 #3 [Medium]**: 테스트 파일명 3건 수정 — `localAgentExecutor.test.ts` →
1330
+ `local-executor.test.ts`, `telemetry/types.test.ts` → `telemetry/sdk.test.ts`,
1331
+ `exports.test.ts` → `providers/gemini/exports.test.ts`
1332
+ - **이슈 #4 [Medium]**: 일정 산정 — Phase 3 기간 3-4주 → 4-6주, 전체 일정 8-10주
1333
+ → 9-12주 (M3.0 추가분 반영)
1334
+ - **이슈 #5 [Medium]**: Q5/Q6 의존성 명시 — M3.0.3.3/3.0.3.4에 Open Question
1335
+ 의존성 주석 추가, 사전 결정 필요 사항 테이블 추가
1336
+ - **검증 기준 보강**: 런타임 연결 검증 2건 추가, Completion Checklist에 3.0.5
1337
+ 추가
1338
+
1339
+ ## v0.4 (Phase 2 연기 항목 반영)
1340
+
1341
+ - **M3.0 신규 추가**: Phase 2 연기 항목 해소 — Gemini 내부 리팩토링 (3-5일)
1342
+ - 3.0.1: geminiChat.ts/turn.ts 물리적 이동 (핸드오프 Critical #3, #4)
1343
+ - 3.0.2: messageInspectors 마이그레이션 4파일 (핸드오프 High #5)
1344
+ - 3.0.3: 텔레메트리/Agent 레이어 독립화 (핸드오프 High #6, #7 + M2.7 + Medium
1345
+ #12)
1346
+ - 3.0.4: 변환 브릿지 정리 (핸드오프 Medium #11)
1347
+ - **전제 조건 갱신**: Phase 2 완료(✅), EventType 전환 완료(✅) 반영
1348
+ - **핸드오프 추적 테이블 추가**: 12개 연기 항목 + M2.7의 해소 상태 및 배정 위치
1349
+ 추적
1350
+ - **설계서 참조 확대**: phase3_handoff.md, EventType 전환 결과서 추가
1351
+ - **산출물 갱신**: providers/gemini/chat.ts, turn.ts 이동 반영
1352
+ - **Completion Checklist 보강**: M3.0 해소 항목 7건 추가, 산출물에
1353
+ chat.ts/turn.ts 추가
1354
+ - **배경**: Phase 2 핸드오프 Critical #1, #2는 M2.연기(EventType 전환)에서 이미
1355
+ 해소됨. 나머지 10개 항목을 M3.0에 체계적으로 배정
1356
+
1357
+ ## v0.3 (2차 리뷰 반영)
1358
+
1359
+ - **산출물 디렉토리 구조 수정**: `eventMapper.ts` 추가로 마스터 플랜과 일관성
1360
+ 확보
1361
+ - **테스트 파일 목록 정정**:
1362
+ - `session.test.ts` 제거 (존재하지 않는 파일)
1363
+ - `geminiChat.test.ts`, `baseLlmClient.test.ts` 추가 (실제 존재 파일)
1364
+ - `routing/*.test.ts` 7개 파일 추가
1365
+ - **3.5.3 테스트 마이그레이션 작업 확대**: 6개 → 8개 항목
1366
+
1367
+ ## v0.2 (소스코드 기반 리뷰 반영)
1368
+
1369
+ - **M3.5 신규 추가**: 테스트 마이그레이션 마일스톤 (3-4일)
1370
+ - 3.5.1: 테스트 파일 분석 (Gemini 특화 테스트 식별)
1371
+ - 3.5.2: 테스트 마이그레이션 전략 (Mock Factory, 어댑터)
1372
+ - 3.5.3: 테스트 파일 마이그레이션 (우선순위별)
1373
+ - 3.5.4: 크로스 프로바이더 테스트 수트
1374
+ - **완료 체크리스트 보강**: 테스트 마이그레이션 검증 항목 추가
1375
+ - **배경**: Phase 2 리팩토링에 따른 테스트 코드 동기화 필요성 반영
1376
+
1377
+ ## v0.1 (초기 버전)
1378
+
1379
+ - M3.1: Claude 어댑터/변환기 구현 (4-5일)
1380
+ - M3.2: OpenAI 어댑터/변환기 구현 (3-4일)
1381
+ - M3.3: OpenAI-Compatible 어댑터 템플릿 (3일)
1382
+ - M3.4: 통합 테스트/문서/안정화 (5-7일)