@didim365/agent-cli-core 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +6 -2
- package/dist/docs/00_project/ai_adapter/01-overview.md +0 -172
- package/dist/docs/00_project/ai_adapter/02-architecture.md +0 -448
- package/dist/docs/00_project/ai_adapter/03-technical-design.md +0 -1470
- package/dist/docs/00_project/ai_adapter/04-integration-design.md +0 -1934
- package/dist/docs/00_project/ai_adapter/05-implementation-plan.md +0 -336
- package/dist/docs/00_project/ai_adapter/06-didiaistudio-plan.md +0 -559
- package/dist/docs/00_project/ai_adapter/README.md +0 -145
- package/dist/docs/00_project/ai_adapter/agent_service_openapi.json +0 -1
- 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
- package/dist/docs/00_project/ai_adapter/event-mapping-matrix.md +0 -148
- package/dist/docs/00_project/ai_adapter/migration-plan.md +0 -205
- package/dist/docs/00_project/ai_adapter/template/00_vibecoding_workflow.md +0 -627
- package/dist/docs/00_project/ai_adapter/template/01_todolist_performance_template.md +0 -436
- package/dist/docs/00_project/ai_adapter/template/02_code_review_template.md +0 -248
- package/dist/docs/00_project/ai_adapter/template/03_work_result_report_template.md +0 -133
- package/dist/docs/00_project/ai_adapter/template/100_Python_Performance_Guide.md +0 -472
- package/dist/docs/00_project/ai_adapter/template/99_TDD_plan.md +0 -123
- package/dist/docs/00_project/ai_adapter/todolist/00_master_implementation_plan.md +0 -433
- package/dist/docs/00_project/ai_adapter/todolist/phase1_foundation_todolist.md +0 -726
- package/dist/docs/00_project/ai_adapter/todolist/phase2_core_refactoring_todolist.md +0 -974
- package/dist/docs/00_project/ai_adapter/todolist/phase3_handoff.md +0 -203
- package/dist/docs/00_project/ai_adapter/todolist/phase3_provider_extension_todolist.md +0 -1382
- package/dist/docs/00_project/ai_adapter/utility-migration.md +0 -237
- package/dist/docs/00_project/ai_adapter/working_history/.gitkeep +0 -0
- package/dist/docs/00_project/ai_adapter/working_history/Phase1_M1.0_/354/275/224/353/223/234/354/235/270/353/262/244/355/206/240/353/246/254_20260201.md +0 -197
- package/dist/docs/00_project/ai_adapter/working_history/Phase1_M1.1_/355/203/200/354/236/205/354/204/244/352/263/204_20260201.md +0 -185
- package/dist/docs/00_project/ai_adapter/working_history/Phase1_M1.2_Adapter/354/235/270/355/224/204/353/235/274_20260203.md +0 -378
- package/dist/docs/00_project/ai_adapter/working_history/Phase1_M1.3_Provider/354/204/240/355/203/235_20260206.md +0 -269
- package/dist/docs/00_project/ai_adapter/working_history/Phase1_M1.4_/354/234/240/355/213/270/353/246/254/355/213/260/353/247/210/354/235/264/352/267/270/353/240/210/354/235/264/354/205/230_20260206.md +0 -86
- package/dist/docs/00_project/ai_adapter/working_history/Phase2_ETC_/354/227/260/352/270/260/354/236/221/354/227/205/354/240/225/353/246/254_20260208.md +0 -157
- package/dist/docs/00_project/ai_adapter/working_history/Phase2_M2.0_/353/224/224/353/240/211/355/206/240/353/246/254/354/236/254/352/265/254/354/204/261_20260207.md +0 -107
- package/dist/docs/00_project/ai_adapter/working_history/Phase2_M2.1_ContentGenerator/354/235/270/355/204/260/355/216/230/354/235/264/354/212/244/354/236/254/354/240/225/354/235/230_20260207.md +0 -630
- package/dist/docs/00_project/ai_adapter/working_history/Phase2_M2.2_EventMapper/352/265/254/355/230/204_20260207.md +0 -372
- package/dist/docs/00_project/ai_adapter/working_history/Phase2_M2.3_GeminiAdapter/352/265/254/355/230/204_20260208.md +0 -205
- package/dist/docs/00_project/ai_adapter/working_history/Phase2_M2.4_ModelConfigService/355/230/270/355/231/230/353/240/210/354/235/264/354/226/264_20260208.md +0 -275
- package/dist/docs/00_project/ai_adapter/working_history/Phase2_M2.5_/354/234/240/355/213/270/353/246/254/355/213/260/353/240/210/354/235/264/354/226/264/353/246/254/355/214/251/355/206/240/353/247/201_20260208.md +0 -239
- package/dist/docs/00_project/ai_adapter/working_history/Phase2_M2.6_/353/235/274/354/232/260/355/214/205/353/240/210/354/235/264/354/226/264/355/203/200/354/236/205/353/217/205/353/246/275/355/231/224_20260208.md +0 -228
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_ETC_/352/270/260/353/263/270/354/273/250/355/205/215/354/212/244/355/212/270/355/214/214/354/235/274/353/252/205AGENTS/354/240/204/355/231/230_20260211.md +0 -470
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.0.1_Gemini/354/240/204/354/232/251/355/214/214/354/235/274/353/254/274/353/246/254/354/240/201/354/235/264/353/217/231_20260209.md +0 -271
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.0.2_messageInspectors/353/247/210/354/235/264/352/267/270/353/240/210/354/235/264/354/205/230_20260209.md +0 -330
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.0.3_/355/205/224/353/240/210/353/251/224/355/212/270/353/246/254Agent/353/217/205/353/246/275/355/231/224_20260209.md +0 -251
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.0.4_/353/263/200/355/231/230/353/270/214/353/246/277/354/247/200/354/240/225/353/246/254_20260209.md +0 -136
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.0.5_/353/237/260/355/203/200/354/236/204/354/213/244/355/226/211/352/262/275/353/241/234/354/227/260/352/262/260_20260209.md +0 -232
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.1.0_Claude/354/202/254/354/240/204/354/244/200/353/271/204_20260209.md +0 -191
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.1.1_ClaudeAdapter/352/265/254/355/230/204_20260209.md +0 -225
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.1.2_ClaudeConverter/352/263/240/353/217/204/355/231/224_20260209.md +0 -171
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.1.3_ClaudeStreamError/352/263/240/353/217/204/355/231/224_20260209.md +0 -198
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.1.4_ClaudeErrorMapping_20260209.md +0 -98
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.2.A_OpenAIAdapterCore_20260210.md +0 -264
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.2.B_OpenAIStreamConverter_20260210.md +0 -204
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.3.2_/353/252/250/353/215/270/355/205/234/355/224/214/353/246/277/355/233/205/353/263/264/354/231/204_20260211.md +0 -106
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.3_OpenAICompatibleAdapter_20260211.md +0 -251
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.4.2_E2E/355/205/214/354/212/244/355/212/270/354/213/234/353/202/230/353/246/254/354/230/244_20260210.md +0 -264
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.4.3_/354/204/261/353/212/245/355/232/214/352/267/200/355/205/214/354/212/244/355/212/270_20260211.md +0 -176
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.4.5_/354/225/210/354/240/225/355/231/224/354/236/221/354/227/205_20260211.md +0 -204
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.4.A_CLI/355/206/265/355/225/251_3Provider/355/206/265/355/225/251/355/205/214/354/212/244/355/212/270_20260210.md +0 -316
- package/dist/docs/00_project/ai_adapter/working_history/Phase3_M3.4.A_UI/354/203/201/355/203/234/353/260/224/354/210/230/354/240/225_20260210.md +0 -262
- package/dist/docs/00_project/ai_adapter/working_history/phase2_tradeoff_EventType/354/240/204/355/231/230_20260208.md +0 -286
- package/dist/docs/00_project/white_labeling/template/00_vibecoding_workflow.md +0 -627
- package/dist/docs/00_project/white_labeling/template/01_todolist_performance_template.md +0 -400
- package/dist/docs/00_project/white_labeling/template/02_code_review_template.md +0 -248
- package/dist/docs/00_project/white_labeling/template/03_work_result_report_template.md +0 -133
- package/dist/docs/00_project/white_labeling/template/100_Python_Performance_Guide.md +0 -472
- package/dist/docs/00_project/white_labeling/template/99_TDD_plan.md +0 -123
- package/dist/docs/00_project/white_labeling/todolist/Phase_CLI/355/214/250/355/202/244/354/247/200/353/252/205/353/263/200/352/262/275_todolist.md +0 -431
- package/dist/docs/00_project/white_labeling/working_history/Phase_CLI/355/214/250/355/202/244/354/247/200/353/252/205/353/263/200/352/262/275_20260214.md +0 -238
- package/dist/docs/00_project/white_labeling//354/225/261/352/265/254/354/241/260.md +0 -310
- package/dist/docs/CONTRIBUTING.md +0 -554
- package/dist/docs/ai_adapter/01-overview.md +0 -155
- package/dist/docs/ai_adapter/02-architecture.md +0 -452
- package/dist/docs/ai_adapter/03-technical-design.md +0 -1470
- package/dist/docs/ai_adapter/04-integration-design.md +0 -1904
- package/dist/docs/ai_adapter/05-implementation-plan.md +0 -312
- package/dist/docs/ai_adapter/06-didiaistudio-plan.md +0 -559
- package/dist/docs/ai_adapter/README.md +0 -118
- package/dist/docs/ai_adapter/agent_service_openapi.json +0 -1
- 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
- package/dist/docs/ai_adapter/event-mapping-matrix.md +0 -140
- package/dist/docs/ai_adapter/migration-plan.md +0 -205
- package/dist/docs/ai_adapter/template/00_vibecoding_workflow.md +0 -636
- package/dist/docs/ai_adapter/template/01_todolist_performance_template.md +0 -372
- package/dist/docs/ai_adapter/template/02_code_review_template.md +0 -220
- package/dist/docs/ai_adapter/template/03_work_result_report_template.md +0 -120
- package/dist/docs/ai_adapter/template/100_Python_Performance_Guide.md +0 -453
- package/dist/docs/ai_adapter/template/99_TDD_plan.md +0 -111
- package/dist/docs/ai_adapter/todolist/00_master_implementation_plan.md +0 -433
- package/dist/docs/ai_adapter/todolist/phase1_foundation_todolist.md +0 -726
- package/dist/docs/ai_adapter/todolist/phase2_core_refactoring_todolist.md +0 -974
- package/dist/docs/ai_adapter/todolist/phase3_handoff.md +0 -203
- package/dist/docs/ai_adapter/todolist/phase3_provider_extension_todolist.md +0 -1382
- package/dist/docs/ai_adapter/utility-migration.md +0 -237
- package/dist/docs/ai_adapter/working_history/.gitkeep +0 -0
- package/dist/docs/ai_adapter/working_history/Phase1_M1.0_/354/275/224/353/223/234/354/235/270/353/262/244/355/206/240/353/246/254_20260201.md +0 -185
- package/dist/docs/ai_adapter/working_history/Phase1_M1.1_/355/203/200/354/236/205/354/204/244/352/263/204_20260201.md +0 -185
- package/dist/docs/ai_adapter/working_history/Phase1_M1.2_Adapter/354/235/270/355/224/204/353/235/274_20260203.md +0 -378
- package/dist/docs/ai_adapter/working_history/Phase1_M1.3_Provider/354/204/240/355/203/235_20260206.md +0 -269
- package/dist/docs/ai_adapter/working_history/Phase1_M1.4_/354/234/240/355/213/270/353/246/254/355/213/260/353/247/210/354/235/264/352/267/270/353/240/210/354/235/264/354/205/230_20260206.md +0 -86
- package/dist/docs/ai_adapter/working_history/Phase2_ETC_/354/227/260/352/270/260/354/236/221/354/227/205/354/240/225/353/246/254_20260208.md +0 -157
- package/dist/docs/ai_adapter/working_history/Phase2_M2.0_/353/224/224/353/240/211/355/206/240/353/246/254/354/236/254/352/265/254/354/204/261_20260207.md +0 -107
- package/dist/docs/ai_adapter/working_history/Phase2_M2.1_ContentGenerator/354/235/270/355/204/260/355/216/230/354/235/264/354/212/244/354/236/254/354/240/225/354/235/230_20260207.md +0 -630
- package/dist/docs/ai_adapter/working_history/Phase2_M2.2_EventMapper/352/265/254/355/230/204_20260207.md +0 -372
- package/dist/docs/ai_adapter/working_history/Phase2_M2.3_GeminiAdapter/352/265/254/355/230/204_20260208.md +0 -205
- package/dist/docs/ai_adapter/working_history/Phase2_M2.4_ModelConfigService/355/230/270/355/231/230/353/240/210/354/235/264/354/226/264_20260208.md +0 -275
- package/dist/docs/ai_adapter/working_history/Phase2_M2.5_/354/234/240/355/213/270/353/246/254/355/213/260/353/240/210/354/235/264/354/226/264/353/246/254/355/214/251/355/206/240/353/247/201_20260208.md +0 -239
- package/dist/docs/ai_adapter/working_history/Phase2_M2.6_/353/235/274/354/232/260/355/214/205/353/240/210/354/235/264/354/226/264/355/203/200/354/236/205/353/217/205/353/246/275/355/231/224_20260208.md +0 -228
- package/dist/docs/ai_adapter/working_history/Phase3_ETC_/352/270/260/353/263/270/354/273/250/355/205/215/354/212/244/355/212/270/355/214/214/354/235/274/353/252/205AGENTS/354/240/204/355/231/230_20260211.md +0 -367
- package/dist/docs/ai_adapter/working_history/Phase3_M3.0.1_Gemini/354/240/204/354/232/251/355/214/214/354/235/274/353/254/274/353/246/254/354/240/201/354/235/264/353/217/231_20260209.md +0 -271
- package/dist/docs/ai_adapter/working_history/Phase3_M3.0.2_messageInspectors/353/247/210/354/235/264/352/267/270/353/240/210/354/235/264/354/205/230_20260209.md +0 -330
- package/dist/docs/ai_adapter/working_history/Phase3_M3.0.3_/355/205/224/353/240/210/353/251/224/355/212/270/353/246/254Agent/353/217/205/353/246/275/355/231/224_20260209.md +0 -251
- package/dist/docs/ai_adapter/working_history/Phase3_M3.0.4_/353/263/200/355/231/230/353/270/214/353/246/277/354/247/200/354/240/225/353/246/254_20260209.md +0 -136
- package/dist/docs/ai_adapter/working_history/Phase3_M3.0.5_/353/237/260/355/203/200/354/236/204/354/213/244/355/226/211/352/262/275/353/241/234/354/227/260/352/262/260_20260209.md +0 -232
- package/dist/docs/ai_adapter/working_history/Phase3_M3.1.0_Claude/354/202/254/354/240/204/354/244/200/353/271/204_20260209.md +0 -191
- package/dist/docs/ai_adapter/working_history/Phase3_M3.1.1_ClaudeAdapter/352/265/254/355/230/204_20260209.md +0 -225
- package/dist/docs/ai_adapter/working_history/Phase3_M3.1.2_ClaudeConverter/352/263/240/353/217/204/355/231/224_20260209.md +0 -171
- package/dist/docs/ai_adapter/working_history/Phase3_M3.1.3_ClaudeStreamError/352/263/240/353/217/204/355/231/224_20260209.md +0 -198
- package/dist/docs/ai_adapter/working_history/Phase3_M3.1.4_ClaudeErrorMapping_20260209.md +0 -98
- package/dist/docs/ai_adapter/working_history/Phase3_M3.2.A_OpenAIAdapterCore_20260210.md +0 -264
- package/dist/docs/ai_adapter/working_history/Phase3_M3.2.B_OpenAIStreamConverter_20260210.md +0 -204
- package/dist/docs/ai_adapter/working_history/Phase3_M3.3.2_/353/252/250/353/215/270/355/205/234/355/224/214/353/246/277/355/233/205/353/263/264/354/231/204_20260211.md +0 -106
- package/dist/docs/ai_adapter/working_history/Phase3_M3.3_OpenAICompatibleAdapter_20260211.md +0 -251
- package/dist/docs/ai_adapter/working_history/Phase3_M3.4.2_E2E/355/205/214/354/212/244/355/212/270/354/213/234/353/202/230/353/246/254/354/230/244_20260210.md +0 -264
- package/dist/docs/ai_adapter/working_history/Phase3_M3.4.3_/354/204/261/353/212/245/355/232/214/352/267/200/355/205/214/354/212/244/355/212/270_20260211.md +0 -176
- package/dist/docs/ai_adapter/working_history/Phase3_M3.4.5_/354/225/210/354/240/225/355/231/224/354/236/221/354/227/205_20260211.md +0 -204
- package/dist/docs/ai_adapter/working_history/Phase3_M3.4.A_CLI/355/206/265/355/225/251_3Provider/355/206/265/355/225/251/355/205/214/354/212/244/355/212/270_20260210.md +0 -316
- package/dist/docs/ai_adapter/working_history/Phase3_M3.4.A_UI/354/203/201/355/203/234/353/260/224/354/210/230/354/240/225_20260210.md +0 -262
- package/dist/docs/ai_adapter/working_history/phase2_tradeoff_EventType/354/240/204/355/231/230_20260208.md +0 -286
- package/dist/docs/api/index.md +0 -5
- package/dist/docs/api/providers.md +0 -56
- package/dist/docs/architecture.md +0 -80
- package/dist/docs/assets/connected_devtools.png +0 -0
- package/dist/docs/assets/gemini-screenshot.png +0 -0
- package/dist/docs/assets/monitoring-dashboard-logs.png +0 -0
- package/dist/docs/assets/monitoring-dashboard-metrics.png +0 -0
- package/dist/docs/assets/monitoring-dashboard-overview.png +0 -0
- package/dist/docs/assets/release_patch.png +0 -0
- package/dist/docs/assets/theme-ansi-light.png +0 -0
- package/dist/docs/assets/theme-ansi.png +0 -0
- package/dist/docs/assets/theme-atom-one.png +0 -0
- package/dist/docs/assets/theme-ayu-light.png +0 -0
- package/dist/docs/assets/theme-ayu.png +0 -0
- package/dist/docs/assets/theme-custom.png +0 -0
- package/dist/docs/assets/theme-default-light.png +0 -0
- package/dist/docs/assets/theme-default.png +0 -0
- package/dist/docs/assets/theme-dracula.png +0 -0
- package/dist/docs/assets/theme-github-light.png +0 -0
- package/dist/docs/assets/theme-github.png +0 -0
- package/dist/docs/assets/theme-google-light.png +0 -0
- package/dist/docs/assets/theme-xcode-light.png +0 -0
- package/dist/docs/change_model/model_command_multi_provider_plan.md +0 -221
- package/dist/docs/change_model/model_command_multi_provider_todolist.md +0 -206
- package/dist/docs/changelogs/index.md +0 -726
- package/dist/docs/changelogs/latest.md +0 -370
- package/dist/docs/changelogs/preview.md +0 -332
- package/dist/docs/cli/authentication.md +0 -3
- package/dist/docs/cli/checkpointing.md +0 -94
- package/dist/docs/cli/commands.md +0 -375
- package/dist/docs/cli/custom-commands.md +0 -315
- package/dist/docs/cli/enterprise.md +0 -565
- package/dist/docs/cli/gemini-ignore.md +0 -71
- package/dist/docs/cli/gemini-md.md +0 -108
- package/dist/docs/cli/generation-settings.md +0 -210
- package/dist/docs/cli/headless.md +0 -388
- package/dist/docs/cli/index.md +0 -65
- package/dist/docs/cli/keyboard-shortcuts.md +0 -129
- package/dist/docs/cli/model-routing.md +0 -42
- package/dist/docs/cli/model.md +0 -62
- package/dist/docs/cli/sandbox.md +0 -171
- package/dist/docs/cli/session-management.md +0 -158
- package/dist/docs/cli/settings.md +0 -130
- package/dist/docs/cli/skills.md +0 -188
- package/dist/docs/cli/system-prompt.md +0 -125
- package/dist/docs/cli/telemetry.md +0 -826
- package/dist/docs/cli/themes.md +0 -235
- package/dist/docs/cli/token-caching.md +0 -20
- package/dist/docs/cli/trusted-folders.md +0 -95
- package/dist/docs/cli/tutorials/skills-getting-started.md +0 -124
- package/dist/docs/cli/tutorials.md +0 -87
- package/dist/docs/cli/uninstall.md +0 -65
- package/dist/docs/configuration.md +0 -108
- package/dist/docs/core/index.md +0 -105
- package/dist/docs/core/long-term-memory-design.md +0 -254
- package/dist/docs/core/long-term-memory-proposal.md +0 -112
- package/dist/docs/core/memport.md +0 -246
- package/dist/docs/core/policy-engine.md +0 -300
- package/dist/docs/core/tools-api.md +0 -131
- package/dist/docs/examples/proxy-script.md +0 -83
- package/dist/docs/extensions/best-practices.md +0 -139
- package/dist/docs/extensions/index.md +0 -44
- package/dist/docs/extensions/reference.md +0 -312
- package/dist/docs/extensions/releasing.md +0 -183
- package/dist/docs/extensions/writing-extensions.md +0 -283
- package/dist/docs/faq.md +0 -154
- package/dist/docs/get-started/authentication.md +0 -321
- package/dist/docs/get-started/configuration-v1.md +0 -888
- package/dist/docs/get-started/configuration.md +0 -1567
- package/dist/docs/get-started/examples.md +0 -219
- package/dist/docs/get-started/gemini-3.md +0 -101
- package/dist/docs/get-started/index.md +0 -71
- package/dist/docs/get-started/installation.md +0 -141
- package/dist/docs/hooks/best-practices.md +0 -677
- package/dist/docs/hooks/index.md +0 -178
- package/dist/docs/hooks/reference.md +0 -322
- package/dist/docs/hooks/writing-hooks.md +0 -450
- package/dist/docs/ide-integration/ide-companion-spec.md +0 -267
- package/dist/docs/ide-integration/index.md +0 -202
- package/dist/docs/index.md +0 -153
- package/dist/docs/integration-tests.md +0 -211
- package/dist/docs/issue-and-pr-automation.md +0 -134
- package/dist/docs/local-development.md +0 -128
- package/dist/docs/mermaid/context.mmd +0 -103
- package/dist/docs/mermaid/render-path.mmd +0 -64
- package/dist/docs/migration.md +0 -78
- package/dist/docs/npm.md +0 -62
- package/dist/docs/providers.md +0 -136
- package/dist/docs/quota-and-pricing.md +0 -158
- package/dist/docs/release-confidence.md +0 -164
- package/dist/docs/releases.md +0 -539
- package/dist/docs/sidebar.json +0 -140
- package/dist/docs/tools/file-system.md +0 -217
- package/dist/docs/tools/index.md +0 -98
- package/dist/docs/tools/mcp-server.md +0 -1068
- package/dist/docs/tools/memory.md +0 -54
- package/dist/docs/tools/shell.md +0 -260
- package/dist/docs/tools/todos.md +0 -57
- package/dist/docs/tools/web-fetch.md +0 -59
- package/dist/docs/tools/web-search.md +0 -42
- package/dist/docs/tos-privacy.md +0 -96
- package/dist/docs/troubleshooting.md +0 -173
- package/dist/src/agents/a2a-client-manager.test.d.ts +0 -6
- package/dist/src/agents/a2a-client-manager.test.js +0 -220
- package/dist/src/agents/a2a-client-manager.test.js.map +0 -1
- package/dist/src/agents/a2aUtils.test.d.ts +0 -6
- package/dist/src/agents/a2aUtils.test.js +0 -147
- package/dist/src/agents/a2aUtils.test.js.map +0 -1
- package/dist/src/agents/acknowledgedAgents.test.d.ts +0 -6
- package/dist/src/agents/acknowledgedAgents.test.js +0 -70
- package/dist/src/agents/acknowledgedAgents.test.js.map +0 -1
- package/dist/src/agents/agent-scheduler.test.d.ts +0 -6
- package/dist/src/agents/agent-scheduler.test.js +0 -56
- package/dist/src/agents/agent-scheduler.test.js.map +0 -1
- package/dist/src/agents/agentLoader.test.d.ts +0 -6
- package/dist/src/agents/agentLoader.test.js +0 -304
- package/dist/src/agents/agentLoader.test.js.map +0 -1
- package/dist/src/agents/cli-help-agent.test.d.ts +0 -6
- package/dist/src/agents/cli-help-agent.test.js +0 -67
- package/dist/src/agents/cli-help-agent.test.js.map +0 -1
- package/dist/src/agents/codebase-investigator.test.d.ts +0 -6
- package/dist/src/agents/codebase-investigator.test.js +0 -42
- package/dist/src/agents/codebase-investigator.test.js.map +0 -1
- package/dist/src/agents/generalist-agent.test.d.ts +0 -6
- package/dist/src/agents/generalist-agent.test.js +0 -31
- package/dist/src/agents/generalist-agent.test.js.map +0 -1
- package/dist/src/agents/local-executor.test.d.ts +0 -6
- package/dist/src/agents/local-executor.test.js +0 -1577
- package/dist/src/agents/local-executor.test.js.map +0 -1
- package/dist/src/agents/local-invocation.test.d.ts +0 -6
- package/dist/src/agents/local-invocation.test.js +0 -228
- package/dist/src/agents/local-invocation.test.js.map +0 -1
- package/dist/src/agents/registry.test.d.ts +0 -6
- package/dist/src/agents/registry.test.js +0 -773
- package/dist/src/agents/registry.test.js.map +0 -1
- package/dist/src/agents/registry_acknowledgement.test.d.ts +0 -6
- package/dist/src/agents/registry_acknowledgement.test.js +0 -130
- package/dist/src/agents/registry_acknowledgement.test.js.map +0 -1
- package/dist/src/agents/remote-invocation.test.d.ts +0 -6
- package/dist/src/agents/remote-invocation.test.js +0 -213
- package/dist/src/agents/remote-invocation.test.js.map +0 -1
- package/dist/src/agents/subagent-tool-wrapper.test.d.ts +0 -6
- package/dist/src/agents/subagent-tool-wrapper.test.js +0 -109
- package/dist/src/agents/subagent-tool-wrapper.test.js.map +0 -1
- package/dist/src/agents/utils.test.d.ts +0 -6
- package/dist/src/agents/utils.test.js +0 -87
- package/dist/src/agents/utils.test.js.map +0 -1
- package/dist/src/availability/fallbackIntegration.test.d.ts +0 -6
- package/dist/src/availability/fallbackIntegration.test.js +0 -58
- package/dist/src/availability/fallbackIntegration.test.js.map +0 -1
- package/dist/src/availability/modelAvailabilityService.test.d.ts +0 -6
- package/dist/src/availability/modelAvailabilityService.test.js +0 -140
- package/dist/src/availability/modelAvailabilityService.test.js.map +0 -1
- package/dist/src/availability/policyCatalog.test.d.ts +0 -6
- package/dist/src/availability/policyCatalog.test.js +0 -70
- package/dist/src/availability/policyCatalog.test.js.map +0 -1
- package/dist/src/availability/policyHelpers.test.d.ts +0 -6
- package/dist/src/availability/policyHelpers.test.js +0 -220
- package/dist/src/availability/policyHelpers.test.js.map +0 -1
- package/dist/src/code_assist/admin/admin_controls.test.d.ts +0 -6
- package/dist/src/code_assist/admin/admin_controls.test.js +0 -200
- package/dist/src/code_assist/admin/admin_controls.test.js.map +0 -1
- package/dist/src/code_assist/codeAssist.test.d.ts +0 -6
- package/dist/src/code_assist/codeAssist.test.js +0 -102
- package/dist/src/code_assist/codeAssist.test.js.map +0 -1
- package/dist/src/code_assist/converter.test.d.ts +0 -6
- package/dist/src/code_assist/converter.test.js +0 -391
- package/dist/src/code_assist/converter.test.js.map +0 -1
- package/dist/src/code_assist/experiments/client_metadata.test.d.ts +0 -6
- package/dist/src/code_assist/experiments/client_metadata.test.js +0 -96
- package/dist/src/code_assist/experiments/client_metadata.test.js.map +0 -1
- package/dist/src/code_assist/experiments/experiments.test.d.ts +0 -6
- package/dist/src/code_assist/experiments/experiments.test.js +0 -93
- package/dist/src/code_assist/experiments/experiments.test.js.map +0 -1
- package/dist/src/code_assist/experiments/experiments_local.test.d.ts +0 -6
- package/dist/src/code_assist/experiments/experiments_local.test.js +0 -115
- package/dist/src/code_assist/experiments/experiments_local.test.js.map +0 -1
- package/dist/src/code_assist/oauth-credential-storage.test.d.ts +0 -6
- package/dist/src/code_assist/oauth-credential-storage.test.js +0 -198
- package/dist/src/code_assist/oauth-credential-storage.test.js.map +0 -1
- package/dist/src/code_assist/oauth2.test.d.ts +0 -6
- package/dist/src/code_assist/oauth2.test.js +0 -1065
- package/dist/src/code_assist/oauth2.test.js.map +0 -1
- package/dist/src/code_assist/server.test.d.ts +0 -6
- package/dist/src/code_assist/server.test.js +0 -453
- package/dist/src/code_assist/server.test.js.map +0 -1
- package/dist/src/code_assist/setup.test.d.ts +0 -6
- package/dist/src/code_assist/setup.test.js +0 -517
- package/dist/src/code_assist/setup.test.js.map +0 -1
- package/dist/src/code_assist/telemetry.test.d.ts +0 -6
- package/dist/src/code_assist/telemetry.test.js +0 -301
- package/dist/src/code_assist/telemetry.test.js.map +0 -1
- package/dist/src/commands/extensions.test.d.ts +0 -6
- package/dist/src/commands/extensions.test.js +0 -19
- package/dist/src/commands/extensions.test.js.map +0 -1
- package/dist/src/commands/init.test.d.ts +0 -6
- package/dist/src/commands/init.test.js +0 -25
- package/dist/src/commands/init.test.js.map +0 -1
- package/dist/src/commands/memory.test.d.ts +0 -6
- package/dist/src/commands/memory.test.js +0 -182
- package/dist/src/commands/memory.test.js.map +0 -1
- package/dist/src/commands/restore.test.d.ts +0 -6
- package/dist/src/commands/restore.test.js +0 -137
- package/dist/src/commands/restore.test.js.map +0 -1
- package/dist/src/config/config.test.d.ts +0 -6
- package/dist/src/config/config.test.js +0 -1811
- package/dist/src/config/config.test.js.map +0 -1
- package/dist/src/config/flashFallback.test.d.ts +0 -6
- package/dist/src/config/flashFallback.test.js +0 -63
- package/dist/src/config/flashFallback.test.js.map +0 -1
- package/dist/src/config/models.test.d.ts +0 -6
- package/dist/src/config/models.test.js +0 -146
- package/dist/src/config/models.test.js.map +0 -1
- package/dist/src/config/storage.test.d.ts +0 -6
- package/dist/src/config/storage.test.js +0 -115
- package/dist/src/config/storage.test.js.map +0 -1
- package/dist/src/confirmation-bus/message-bus.test.d.ts +0 -6
- package/dist/src/confirmation-bus/message-bus.test.js +0 -170
- package/dist/src/confirmation-bus/message-bus.test.js.map +0 -1
- package/dist/src/core/apiKeyCredentialStorage.test.d.ts +0 -6
- package/dist/src/core/apiKeyCredentialStorage.test.js +0 -71
- package/dist/src/core/apiKeyCredentialStorage.test.js.map +0 -1
- package/dist/src/core/baseLlmClient.test.d.ts +0 -6
- package/dist/src/core/baseLlmClient.test.js +0 -569
- package/dist/src/core/baseLlmClient.test.js.map +0 -1
- package/dist/src/core/baseLlmClient_new_types.test.d.ts +0 -1
- package/dist/src/core/baseLlmClient_new_types.test.js +0 -387
- package/dist/src/core/baseLlmClient_new_types.test.js.map +0 -1
- package/dist/src/core/client.test.d.ts +0 -6
- package/dist/src/core/client.test.js +0 -2654
- package/dist/src/core/client.test.js.map +0 -1
- package/dist/src/core/contentGenerator.multiProvider.test.d.ts +0 -6
- package/dist/src/core/contentGenerator.multiProvider.test.js +0 -314
- package/dist/src/core/contentGenerator.multiProvider.test.js.map +0 -1
- package/dist/src/core/contentGenerator.test.d.ts +0 -6
- package/dist/src/core/contentGenerator.test.js +0 -299
- package/dist/src/core/contentGenerator.test.js.map +0 -1
- package/dist/src/core/contentGenerator_new_types.test.d.ts +0 -6
- package/dist/src/core/contentGenerator_new_types.test.js +0 -292
- package/dist/src/core/contentGenerator_new_types.test.js.map +0 -1
- package/dist/src/core/coreToolHookTriggers.test.d.ts +0 -6
- package/dist/src/core/coreToolHookTriggers.test.js +0 -159
- package/dist/src/core/coreToolHookTriggers.test.js.map +0 -1
- package/dist/src/core/coreToolScheduler.test.d.ts +0 -6
- package/dist/src/core/coreToolScheduler.test.js +0 -1684
- package/dist/src/core/coreToolScheduler.test.js.map +0 -1
- package/dist/src/core/fakeContentGenerator.test.d.ts +0 -6
- package/dist/src/core/fakeContentGenerator.test.js +0 -127
- package/dist/src/core/fakeContentGenerator.test.js.map +0 -1
- package/dist/src/core/geminiChat.test.d.ts +0 -6
- package/dist/src/core/geminiChat.test.js +0 -1773
- package/dist/src/core/geminiChat.test.js.map +0 -1
- package/dist/src/core/geminiChat_network_retry.test.d.ts +0 -6
- package/dist/src/core/geminiChat_network_retry.test.js +0 -201
- package/dist/src/core/geminiChat_network_retry.test.js.map +0 -1
- package/dist/src/core/logger.test.d.ts +0 -6
- package/dist/src/core/logger.test.js +0 -550
- package/dist/src/core/logger.test.js.map +0 -1
- package/dist/src/core/loggingContentGenerator.test.d.ts +0 -6
- package/dist/src/core/loggingContentGenerator.test.js +0 -221
- package/dist/src/core/loggingContentGenerator.test.js.map +0 -1
- package/dist/src/core/prompts-substitution.test.d.ts +0 -6
- package/dist/src/core/prompts-substitution.test.js +0 -101
- package/dist/src/core/prompts-substitution.test.js.map +0 -1
- package/dist/src/core/prompts.test.d.ts +0 -6
- package/dist/src/core/prompts.test.js +0 -391
- package/dist/src/core/prompts.test.js.map +0 -1
- package/dist/src/core/recordingContentGenerator.test.d.ts +0 -6
- package/dist/src/core/recordingContentGenerator.test.js +0 -101
- package/dist/src/core/recordingContentGenerator.test.js.map +0 -1
- package/dist/src/core/tokenLimits.test.d.ts +0 -6
- package/dist/src/core/tokenLimits.test.js +0 -30
- package/dist/src/core/tokenLimits.test.js.map +0 -1
- package/dist/src/core/turn.test.d.ts +0 -6
- package/dist/src/core/turn.test.js +0 -739
- package/dist/src/core/turn.test.js.map +0 -1
- package/dist/src/fallback/handler.test.d.ts +0 -6
- package/dist/src/fallback/handler.test.js +0 -242
- package/dist/src/fallback/handler.test.js.map +0 -1
- package/dist/src/hooks/hookAggregator.test.d.ts +0 -6
- package/dist/src/hooks/hookAggregator.test.js +0 -387
- package/dist/src/hooks/hookAggregator.test.js.map +0 -1
- package/dist/src/hooks/hookEventHandler.test.d.ts +0 -6
- package/dist/src/hooks/hookEventHandler.test.js +0 -603
- package/dist/src/hooks/hookEventHandler.test.js.map +0 -1
- package/dist/src/hooks/hookPlanner.test.d.ts +0 -6
- package/dist/src/hooks/hookPlanner.test.js +0 -315
- package/dist/src/hooks/hookPlanner.test.js.map +0 -1
- package/dist/src/hooks/hookRegistry.test.d.ts +0 -6
- package/dist/src/hooks/hookRegistry.test.js +0 -529
- package/dist/src/hooks/hookRegistry.test.js.map +0 -1
- package/dist/src/hooks/hookRunner.test.d.ts +0 -6
- package/dist/src/hooks/hookRunner.test.js +0 -606
- package/dist/src/hooks/hookRunner.test.js.map +0 -1
- package/dist/src/hooks/hookSystem.test.d.ts +0 -6
- package/dist/src/hooks/hookSystem.test.js +0 -330
- package/dist/src/hooks/hookSystem.test.js.map +0 -1
- package/dist/src/hooks/hookSystem_new_types.test.d.ts +0 -6
- package/dist/src/hooks/hookSystem_new_types.test.js +0 -243
- package/dist/src/hooks/hookSystem_new_types.test.js.map +0 -1
- package/dist/src/hooks/hookTranslator.test.d.ts +0 -6
- package/dist/src/hooks/hookTranslator.test.js +0 -192
- package/dist/src/hooks/hookTranslator.test.js.map +0 -1
- package/dist/src/hooks/trustedHooks.test.d.ts +0 -6
- package/dist/src/hooks/trustedHooks.test.js +0 -154
- package/dist/src/hooks/trustedHooks.test.js.map +0 -1
- package/dist/src/hooks/types.test.d.ts +0 -6
- package/dist/src/hooks/types.test.js +0 -278
- package/dist/src/hooks/types.test.js.map +0 -1
- package/dist/src/ide/detect-ide.test.d.ts +0 -6
- package/dist/src/ide/detect-ide.test.js +0 -195
- package/dist/src/ide/detect-ide.test.js.map +0 -1
- package/dist/src/ide/ide-client.test.d.ts +0 -6
- package/dist/src/ide/ide-client.test.js +0 -753
- package/dist/src/ide/ide-client.test.js.map +0 -1
- package/dist/src/ide/ide-installer.test.d.ts +0 -6
- package/dist/src/ide/ide-installer.test.js +0 -193
- package/dist/src/ide/ide-installer.test.js.map +0 -1
- package/dist/src/ide/ideContext.test.d.ts +0 -6
- package/dist/src/ide/ideContext.test.js +0 -393
- package/dist/src/ide/ideContext.test.js.map +0 -1
- package/dist/src/ide/process-utils.test.d.ts +0 -6
- package/dist/src/ide/process-utils.test.js +0 -151
- package/dist/src/ide/process-utils.test.js.map +0 -1
- package/dist/src/index.test.d.ts +0 -6
- package/dist/src/index.test.js +0 -53
- package/dist/src/index.test.js.map +0 -1
- package/dist/src/mcp/google-auth-provider.test.d.ts +0 -6
- package/dist/src/mcp/google-auth-provider.test.js +0 -167
- package/dist/src/mcp/google-auth-provider.test.js.map +0 -1
- package/dist/src/mcp/oauth-provider.test.d.ts +0 -6
- package/dist/src/mcp/oauth-provider.test.js +0 -1355
- package/dist/src/mcp/oauth-provider.test.js.map +0 -1
- package/dist/src/mcp/oauth-token-storage.test.d.ts +0 -6
- package/dist/src/mcp/oauth-token-storage.test.js +0 -305
- package/dist/src/mcp/oauth-token-storage.test.js.map +0 -1
- package/dist/src/mcp/oauth-utils.test.d.ts +0 -6
- package/dist/src/mcp/oauth-utils.test.js +0 -289
- package/dist/src/mcp/oauth-utils.test.js.map +0 -1
- package/dist/src/mcp/sa-impersonation-provider.test.d.ts +0 -6
- package/dist/src/mcp/sa-impersonation-provider.test.js +0 -117
- package/dist/src/mcp/sa-impersonation-provider.test.js.map +0 -1
- package/dist/src/mcp/token-storage/base-token-storage.test.d.ts +0 -6
- package/dist/src/mcp/token-storage/base-token-storage.test.js +0 -151
- package/dist/src/mcp/token-storage/base-token-storage.test.js.map +0 -1
- package/dist/src/mcp/token-storage/file-token-storage.test.d.ts +0 -6
- package/dist/src/mcp/token-storage/file-token-storage.test.js +0 -238
- package/dist/src/mcp/token-storage/file-token-storage.test.js.map +0 -1
- package/dist/src/mcp/token-storage/hybrid-token-storage.test.d.ts +0 -6
- package/dist/src/mcp/token-storage/hybrid-token-storage.test.js +0 -193
- package/dist/src/mcp/token-storage/hybrid-token-storage.test.js.map +0 -1
- package/dist/src/mcp/token-storage/keychain-token-storage.test.d.ts +0 -6
- package/dist/src/mcp/token-storage/keychain-token-storage.test.js +0 -305
- package/dist/src/mcp/token-storage/keychain-token-storage.test.js.map +0 -1
- package/dist/src/output/json-formatter.test.d.ts +0 -6
- package/dist/src/output/json-formatter.test.js +0 -294
- package/dist/src/output/json-formatter.test.js.map +0 -1
- package/dist/src/output/stream-json-formatter.test.d.ts +0 -6
- package/dist/src/output/stream-json-formatter.test.js +0 -477
- package/dist/src/output/stream-json-formatter.test.js.map +0 -1
- package/dist/src/policy/config.test.d.ts +0 -6
- package/dist/src/policy/config.test.js +0 -598
- package/dist/src/policy/config.test.js.map +0 -1
- package/dist/src/policy/persistence.test.d.ts +0 -6
- package/dist/src/policy/persistence.test.js +0 -154
- package/dist/src/policy/persistence.test.js.map +0 -1
- package/dist/src/policy/policy-engine.test.d.ts +0 -6
- package/dist/src/policy/policy-engine.test.js +0 -1299
- package/dist/src/policy/policy-engine.test.js.map +0 -1
- package/dist/src/policy/policy-updater.test.d.ts +0 -6
- package/dist/src/policy/policy-updater.test.js +0 -116
- package/dist/src/policy/policy-updater.test.js.map +0 -1
- package/dist/src/policy/shell-safety.test.d.ts +0 -6
- package/dist/src/policy/shell-safety.test.js +0 -438
- package/dist/src/policy/shell-safety.test.js.map +0 -1
- package/dist/src/policy/toml-loader.test.d.ts +0 -6
- package/dist/src/policy/toml-loader.test.js +0 -409
- package/dist/src/policy/toml-loader.test.js.map +0 -1
- package/dist/src/policy/utils.test.d.ts +0 -6
- package/dist/src/policy/utils.test.js +0 -92
- package/dist/src/policy/utils.test.js.map +0 -1
- package/dist/src/prompts/mcp-prompts.test.d.ts +0 -6
- package/dist/src/prompts/mcp-prompts.test.js +0 -39
- package/dist/src/prompts/mcp-prompts.test.js.map +0 -1
- package/dist/src/prompts/prompt-registry.test.d.ts +0 -6
- package/dist/src/prompts/prompt-registry.test.js +0 -96
- package/dist/src/prompts/prompt-registry.test.js.map +0 -1
- package/dist/src/providers/__tests__/bundleSize.test.d.ts +0 -6
- package/dist/src/providers/__tests__/bundleSize.test.js +0 -75
- package/dist/src/providers/__tests__/bundleSize.test.js.map +0 -1
- package/dist/src/providers/__tests__/errorHandling.integration.test.d.ts +0 -6
- package/dist/src/providers/__tests__/errorHandling.integration.test.js +0 -339
- package/dist/src/providers/__tests__/errorHandling.integration.test.js.map +0 -1
- package/dist/src/providers/__tests__/multiProvider.integration.test.d.ts +0 -6
- package/dist/src/providers/__tests__/multiProvider.integration.test.js +0 -419
- package/dist/src/providers/__tests__/multiProvider.integration.test.js.map +0 -1
- package/dist/src/providers/__tests__/performance.test.d.ts +0 -6
- package/dist/src/providers/__tests__/performance.test.js +0 -270
- package/dist/src/providers/__tests__/performance.test.js.map +0 -1
- package/dist/src/providers/__tests__/providerConfigIntegration.test.d.ts +0 -6
- package/dist/src/providers/__tests__/providerConfigIntegration.test.js +0 -245
- package/dist/src/providers/__tests__/providerConfigIntegration.test.js.map +0 -1
- package/dist/src/providers/baseAdapter.test.d.ts +0 -1
- package/dist/src/providers/baseAdapter.test.js +0 -142
- package/dist/src/providers/baseAdapter.test.js.map +0 -1
- package/dist/src/providers/claude/adapter.test.d.ts +0 -6
- package/dist/src/providers/claude/adapter.test.js +0 -628
- package/dist/src/providers/claude/adapter.test.js.map +0 -1
- package/dist/src/providers/claude/bootstrap.test.d.ts +0 -6
- package/dist/src/providers/claude/bootstrap.test.js +0 -74
- package/dist/src/providers/claude/bootstrap.test.js.map +0 -1
- package/dist/src/providers/claude/converter.test.d.ts +0 -6
- package/dist/src/providers/claude/converter.test.js +0 -1002
- package/dist/src/providers/claude/converter.test.js.map +0 -1
- package/dist/src/providers/claude/exports.test.d.ts +0 -6
- package/dist/src/providers/claude/exports.test.js +0 -40
- package/dist/src/providers/claude/exports.test.js.map +0 -1
- package/dist/src/providers/configAdapter.test.d.ts +0 -1
- package/dist/src/providers/configAdapter.test.js +0 -150
- package/dist/src/providers/configAdapter.test.js.map +0 -1
- package/dist/src/providers/contentResolver.test.d.ts +0 -1
- package/dist/src/providers/contentResolver.test.js +0 -89
- package/dist/src/providers/contentResolver.test.js.map +0 -1
- package/dist/src/providers/factory.test.d.ts +0 -1
- package/dist/src/providers/factory.test.js +0 -151
- package/dist/src/providers/factory.test.js.map +0 -1
- package/dist/src/providers/gemini/adapterBridge.test.d.ts +0 -6
- package/dist/src/providers/gemini/adapterBridge.test.js +0 -164
- package/dist/src/providers/gemini/adapterBridge.test.js.map +0 -1
- package/dist/src/providers/gemini/bootstrap.test.d.ts +0 -6
- package/dist/src/providers/gemini/bootstrap.test.js +0 -72
- package/dist/src/providers/gemini/bootstrap.test.js.map +0 -1
- package/dist/src/providers/gemini/configConverter.test.d.ts +0 -6
- package/dist/src/providers/gemini/configConverter.test.js +0 -218
- package/dist/src/providers/gemini/configConverter.test.js.map +0 -1
- package/dist/src/providers/gemini/errorClassifier.test.d.ts +0 -6
- package/dist/src/providers/gemini/errorClassifier.test.js +0 -83
- package/dist/src/providers/gemini/errorClassifier.test.js.map +0 -1
- package/dist/src/providers/gemini/eventMapper.test.d.ts +0 -6
- package/dist/src/providers/gemini/eventMapper.test.js +0 -502
- package/dist/src/providers/gemini/eventMapper.test.js.map +0 -1
- package/dist/src/providers/gemini/exports.test.d.ts +0 -6
- package/dist/src/providers/gemini/exports.test.js +0 -90
- package/dist/src/providers/gemini/exports.test.js.map +0 -1
- package/dist/src/providers/gemini/featureFlag.test.d.ts +0 -6
- package/dist/src/providers/gemini/featureFlag.test.js +0 -139
- package/dist/src/providers/gemini/featureFlag.test.js.map +0 -1
- package/dist/src/providers/gemini/geminiAdapter.test.d.ts +0 -6
- package/dist/src/providers/gemini/geminiAdapter.test.js +0 -279
- package/dist/src/providers/gemini/geminiAdapter.test.js.map +0 -1
- package/dist/src/providers/gemini/geminiConverter.test.d.ts +0 -6
- package/dist/src/providers/gemini/geminiConverter.test.js +0 -474
- package/dist/src/providers/gemini/geminiConverter.test.js.map +0 -1
- package/dist/src/providers/gemini/geminiParity.test.d.ts +0 -6
- package/dist/src/providers/gemini/geminiParity.test.js +0 -754
- package/dist/src/providers/gemini/geminiParity.test.js.map +0 -1
- package/dist/src/providers/gemini/geminiStream.test.d.ts +0 -6
- package/dist/src/providers/gemini/geminiStream.test.js +0 -391
- package/dist/src/providers/gemini/geminiStream.test.js.map +0 -1
- package/dist/src/providers/gemini/historyBuilder.test.d.ts +0 -6
- package/dist/src/providers/gemini/historyBuilder.test.js +0 -207
- package/dist/src/providers/gemini/historyBuilder.test.js.map +0 -1
- package/dist/src/providers/gemini/requestBuilder.test.d.ts +0 -6
- package/dist/src/providers/gemini/requestBuilder.test.js +0 -358
- package/dist/src/providers/gemini/requestBuilder.test.js.map +0 -1
- package/dist/src/providers/gemini/streamConverter.test.d.ts +0 -6
- package/dist/src/providers/gemini/streamConverter.test.js +0 -131
- package/dist/src/providers/gemini/streamConverter.test.js.map +0 -1
- package/dist/src/providers/modelSpec.test.d.ts +0 -1
- package/dist/src/providers/modelSpec.test.js +0 -119
- package/dist/src/providers/modelSpec.test.js.map +0 -1
- package/dist/src/providers/openai/adapter.test.d.ts +0 -6
- package/dist/src/providers/openai/adapter.test.js +0 -274
- package/dist/src/providers/openai/adapter.test.js.map +0 -1
- package/dist/src/providers/openai/bootstrap.test.d.ts +0 -6
- package/dist/src/providers/openai/bootstrap.test.js +0 -76
- package/dist/src/providers/openai/bootstrap.test.js.map +0 -1
- package/dist/src/providers/openai/converter.test.d.ts +0 -6
- package/dist/src/providers/openai/converter.test.js +0 -1133
- package/dist/src/providers/openai/converter.test.js.map +0 -1
- package/dist/src/providers/openai-compatible/__tests__/compatibility.test.d.ts +0 -6
- package/dist/src/providers/openai-compatible/__tests__/compatibility.test.js +0 -356
- package/dist/src/providers/openai-compatible/__tests__/compatibility.test.js.map +0 -1
- package/dist/src/providers/openai-compatible/adapter.test.d.ts +0 -6
- package/dist/src/providers/openai-compatible/adapter.test.js +0 -240
- package/dist/src/providers/openai-compatible/adapter.test.js.map +0 -1
- package/dist/src/providers/openai-compatible/bootstrap.test.d.ts +0 -6
- package/dist/src/providers/openai-compatible/bootstrap.test.js +0 -145
- package/dist/src/providers/openai-compatible/bootstrap.test.js.map +0 -1
- package/dist/src/providers/openai-compatible/promptBuilder.test.d.ts +0 -6
- package/dist/src/providers/openai-compatible/promptBuilder.test.js +0 -154
- package/dist/src/providers/openai-compatible/promptBuilder.test.js.map +0 -1
- package/dist/src/providers/providerConfig.test.d.ts +0 -1
- package/dist/src/providers/providerConfig.test.js +0 -145
- package/dist/src/providers/providerConfig.test.js.map +0 -1
- package/dist/src/providers/providerConfigIntegration.test.d.ts +0 -6
- package/dist/src/providers/providerConfigIntegration.test.js +0 -187
- package/dist/src/providers/providerConfigIntegration.test.js.map +0 -1
- package/dist/src/providers/providerSelector.test.d.ts +0 -1
- package/dist/src/providers/providerSelector.test.js +0 -199
- package/dist/src/providers/providerSelector.test.js.map +0 -1
- package/dist/src/providers/providerTypes.test.d.ts +0 -1
- package/dist/src/providers/providerTypes.test.js +0 -95
- package/dist/src/providers/providerTypes.test.js.map +0 -1
- package/dist/src/providers/registry.test.d.ts +0 -1
- package/dist/src/providers/registry.test.js +0 -207
- package/dist/src/providers/registry.test.js.map +0 -1
- package/dist/src/providers/streamAssembler.test.d.ts +0 -1
- package/dist/src/providers/streamAssembler.test.js +0 -247
- package/dist/src/providers/streamAssembler.test.js.map +0 -1
- package/dist/src/providers/telemetryBridge.test.d.ts +0 -6
- package/dist/src/providers/telemetryBridge.test.js +0 -235
- package/dist/src/providers/telemetryBridge.test.js.map +0 -1
- package/dist/src/providers/types.test.d.ts +0 -6
- package/dist/src/providers/types.test.js +0 -253
- package/dist/src/providers/types.test.js.map +0 -1
- package/dist/src/resources/resource-registry.test.d.ts +0 -6
- package/dist/src/resources/resource-registry.test.js +0 -54
- package/dist/src/resources/resource-registry.test.js.map +0 -1
- package/dist/src/routing/modelRouterService.test.d.ts +0 -6
- package/dist/src/routing/modelRouterService.test.js +0 -106
- package/dist/src/routing/modelRouterService.test.js.map +0 -1
- package/dist/src/routing/strategies/classifierStrategy.test.d.ts +0 -6
- package/dist/src/routing/strategies/classifierStrategy.test.js +0 -249
- package/dist/src/routing/strategies/classifierStrategy.test.js.map +0 -1
- package/dist/src/routing/strategies/compositeStrategy.test.d.ts +0 -6
- package/dist/src/routing/strategies/compositeStrategy.test.js +0 -124
- package/dist/src/routing/strategies/compositeStrategy.test.js.map +0 -1
- package/dist/src/routing/strategies/defaultStrategy.test.d.ts +0 -6
- package/dist/src/routing/strategies/defaultStrategy.test.js +0 -102
- package/dist/src/routing/strategies/defaultStrategy.test.js.map +0 -1
- package/dist/src/routing/strategies/fallbackStrategy.test.d.ts +0 -6
- package/dist/src/routing/strategies/fallbackStrategy.test.js +0 -96
- package/dist/src/routing/strategies/fallbackStrategy.test.js.map +0 -1
- package/dist/src/routing/strategies/numericalClassifierStrategy.test.d.ts +0 -6
- package/dist/src/routing/strategies/numericalClassifierStrategy.test.js +0 -367
- package/dist/src/routing/strategies/numericalClassifierStrategy.test.js.map +0 -1
- package/dist/src/routing/strategies/overrideStrategy.test.d.ts +0 -6
- package/dist/src/routing/strategies/overrideStrategy.test.js +0 -59
- package/dist/src/routing/strategies/overrideStrategy.test.js.map +0 -1
- package/dist/src/safety/built-in.test.d.ts +0 -6
- package/dist/src/safety/built-in.test.js +0 -199
- package/dist/src/safety/built-in.test.js.map +0 -1
- package/dist/src/safety/checker-runner.test.d.ts +0 -6
- package/dist/src/safety/checker-runner.test.js +0 -238
- package/dist/src/safety/checker-runner.test.js.map +0 -1
- package/dist/src/safety/context-builder.test.d.ts +0 -6
- package/dist/src/safety/context-builder.test.js +0 -49
- package/dist/src/safety/context-builder.test.js.map +0 -1
- package/dist/src/safety/registry.test.d.ts +0 -6
- package/dist/src/safety/registry.test.js +0 -31
- package/dist/src/safety/registry.test.js.map +0 -1
- package/dist/src/scheduler/confirmation.test.d.ts +0 -6
- package/dist/src/scheduler/confirmation.test.js +0 -325
- package/dist/src/scheduler/confirmation.test.js.map +0 -1
- package/dist/src/scheduler/policy.test.d.ts +0 -6
- package/dist/src/scheduler/policy.test.js +0 -299
- package/dist/src/scheduler/policy.test.js.map +0 -1
- package/dist/src/scheduler/scheduler.test.d.ts +0 -6
- package/dist/src/scheduler/scheduler.test.js +0 -822
- package/dist/src/scheduler/scheduler.test.js.map +0 -1
- package/dist/src/scheduler/state-manager.test.d.ts +0 -6
- package/dist/src/scheduler/state-manager.test.js +0 -429
- package/dist/src/scheduler/state-manager.test.js.map +0 -1
- package/dist/src/scheduler/tool-executor.test.d.ts +0 -6
- package/dist/src/scheduler/tool-executor.test.js +0 -232
- package/dist/src/scheduler/tool-executor.test.js.map +0 -1
- package/dist/src/scheduler/tool-modifier.test.d.ts +0 -6
- package/dist/src/scheduler/tool-modifier.test.js +0 -159
- package/dist/src/scheduler/tool-modifier.test.js.map +0 -1
- package/dist/src/services/chatCompressionService.test.d.ts +0 -6
- package/dist/src/services/chatCompressionService.test.js +0 -573
- package/dist/src/services/chatCompressionService.test.js.map +0 -1
- package/dist/src/services/chatRecordingService.test.d.ts +0 -6
- package/dist/src/services/chatRecordingService.test.js +0 -486
- package/dist/src/services/chatRecordingService.test.js.map +0 -1
- package/dist/src/services/contextManager.test.d.ts +0 -6
- package/dist/src/services/contextManager.test.js +0 -104
- package/dist/src/services/contextManager.test.js.map +0 -1
- package/dist/src/services/environmentSanitization.test.d.ts +0 -6
- package/dist/src/services/environmentSanitization.test.js +0 -284
- package/dist/src/services/environmentSanitization.test.js.map +0 -1
- package/dist/src/services/fileDiscoveryService.test.d.ts +0 -6
- package/dist/src/services/fileDiscoveryService.test.js +0 -223
- package/dist/src/services/fileDiscoveryService.test.js.map +0 -1
- package/dist/src/services/fileSystemService.test.d.ts +0 -6
- package/dist/src/services/fileSystemService.test.js +0 -41
- package/dist/src/services/fileSystemService.test.js.map +0 -1
- package/dist/src/services/gitService.test.d.ts +0 -6
- package/dist/src/services/gitService.test.js +0 -264
- package/dist/src/services/gitService.test.js.map +0 -1
- package/dist/src/services/loopDetectionService.test.d.ts +0 -6
- package/dist/src/services/loopDetectionService.test.js +0 -881
- package/dist/src/services/loopDetectionService.test.js.map +0 -1
- package/dist/src/services/modelConfig.golden.test.d.ts +0 -6
- package/dist/src/services/modelConfig.golden.test.js +0 -74
- package/dist/src/services/modelConfig.golden.test.js.map +0 -1
- package/dist/src/services/modelConfig.integration.test.d.ts +0 -6
- package/dist/src/services/modelConfig.integration.test.js +0 -247
- package/dist/src/services/modelConfig.integration.test.js.map +0 -1
- package/dist/src/services/modelConfigBridge.test.d.ts +0 -6
- package/dist/src/services/modelConfigBridge.test.js +0 -410
- package/dist/src/services/modelConfigBridge.test.js.map +0 -1
- package/dist/src/services/modelConfigService.test.d.ts +0 -6
- package/dist/src/services/modelConfigService.test.js +0 -868
- package/dist/src/services/modelConfigService.test.js.map +0 -1
- package/dist/src/services/sessionSummaryService.test.d.ts +0 -6
- package/dist/src/services/sessionSummaryService.test.js +0 -785
- package/dist/src/services/sessionSummaryService.test.js.map +0 -1
- package/dist/src/services/sessionSummaryUtils.test.d.ts +0 -6
- package/dist/src/services/sessionSummaryUtils.test.js +0 -160
- package/dist/src/services/sessionSummaryUtils.test.js.map +0 -1
- package/dist/src/services/shellExecutionService.test.d.ts +0 -6
- package/dist/src/services/shellExecutionService.test.js +0 -1080
- package/dist/src/services/shellExecutionService.test.js.map +0 -1
- package/dist/src/skills/skillLoader.test.d.ts +0 -6
- package/dist/src/skills/skillLoader.test.js +0 -185
- package/dist/src/skills/skillLoader.test.js.map +0 -1
- package/dist/src/skills/skillManager.test.d.ts +0 -6
- package/dist/src/skills/skillManager.test.js +0 -297
- package/dist/src/skills/skillManager.test.js.map +0 -1
- package/dist/src/telemetry/activity-detector.test.d.ts +0 -6
- package/dist/src/telemetry/activity-detector.test.js +0 -136
- package/dist/src/telemetry/activity-detector.test.js.map +0 -1
- package/dist/src/telemetry/activity-monitor.test.d.ts +0 -6
- package/dist/src/telemetry/activity-monitor.test.js +0 -251
- package/dist/src/telemetry/activity-monitor.test.js.map +0 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +0 -19
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +0 -964
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +0 -1
- package/dist/src/telemetry/config.test.d.ts +0 -6
- package/dist/src/telemetry/config.test.js +0 -149
- package/dist/src/telemetry/config.test.js.map +0 -1
- package/dist/src/telemetry/gcp-exporters.test.d.ts +0 -6
- package/dist/src/telemetry/gcp-exporters.test.js +0 -318
- package/dist/src/telemetry/gcp-exporters.test.js.map +0 -1
- package/dist/src/telemetry/high-water-mark-tracker.test.d.ts +0 -6
- package/dist/src/telemetry/high-water-mark-tracker.test.js +0 -152
- package/dist/src/telemetry/high-water-mark-tracker.test.js.map +0 -1
- package/dist/src/telemetry/integration.test.circular.d.ts +0 -6
- package/dist/src/telemetry/integration.test.circular.js +0 -54
- package/dist/src/telemetry/integration.test.circular.js.map +0 -1
- package/dist/src/telemetry/loggers.test.circular.d.ts +0 -6
- package/dist/src/telemetry/loggers.test.circular.js +0 -107
- package/dist/src/telemetry/loggers.test.circular.js.map +0 -1
- package/dist/src/telemetry/loggers.test.d.ts +0 -6
- package/dist/src/telemetry/loggers.test.js +0 -1618
- package/dist/src/telemetry/loggers.test.js.map +0 -1
- package/dist/src/telemetry/memory-monitor.test.d.ts +0 -6
- package/dist/src/telemetry/memory-monitor.test.js +0 -472
- package/dist/src/telemetry/memory-monitor.test.js.map +0 -1
- package/dist/src/telemetry/metrics.test.d.ts +0 -6
- package/dist/src/telemetry/metrics.test.js +0 -1176
- package/dist/src/telemetry/metrics.test.js.map +0 -1
- package/dist/src/telemetry/rate-limiter.test.d.ts +0 -6
- package/dist/src/telemetry/rate-limiter.test.js +0 -207
- package/dist/src/telemetry/rate-limiter.test.js.map +0 -1
- package/dist/src/telemetry/sanitize.test.d.ts +0 -6
- package/dist/src/telemetry/sanitize.test.js +0 -279
- package/dist/src/telemetry/sanitize.test.js.map +0 -1
- package/dist/src/telemetry/sdk.test.d.ts +0 -6
- package/dist/src/telemetry/sdk.test.js +0 -360
- package/dist/src/telemetry/sdk.test.js.map +0 -1
- package/dist/src/telemetry/semantic.test.d.ts +0 -6
- package/dist/src/telemetry/semantic.test.js +0 -387
- package/dist/src/telemetry/semantic.test.js.map +0 -1
- package/dist/src/telemetry/semantic.truncation.test.d.ts +0 -1
- package/dist/src/telemetry/semantic.truncation.test.js +0 -92
- package/dist/src/telemetry/semantic.truncation.test.js.map +0 -1
- package/dist/src/telemetry/startupProfiler.test.d.ts +0 -6
- package/dist/src/telemetry/startupProfiler.test.js +0 -285
- package/dist/src/telemetry/startupProfiler.test.js.map +0 -1
- package/dist/src/telemetry/telemetry-utils.test.d.ts +0 -6
- package/dist/src/telemetry/telemetry-utils.test.js +0 -41
- package/dist/src/telemetry/telemetry-utils.test.js.map +0 -1
- package/dist/src/telemetry/telemetry.test.d.ts +0 -6
- package/dist/src/telemetry/telemetry.test.js +0 -57
- package/dist/src/telemetry/telemetry.test.js.map +0 -1
- package/dist/src/telemetry/uiTelemetry.test.d.ts +0 -6
- package/dist/src/telemetry/uiTelemetry.test.js +0 -584
- package/dist/src/telemetry/uiTelemetry.test.js.map +0 -1
- package/dist/src/tools/activate-skill.test.d.ts +0 -6
- package/dist/src/tools/activate-skill.test.js +0 -113
- package/dist/src/tools/activate-skill.test.js.map +0 -1
- package/dist/src/tools/ask-user.test.d.ts +0 -6
- package/dist/src/tools/ask-user.test.js +0 -187
- package/dist/src/tools/ask-user.test.js.map +0 -1
- package/dist/src/tools/base-tool-invocation.test.d.ts +0 -6
- package/dist/src/tools/base-tool-invocation.test.js +0 -85
- package/dist/src/tools/base-tool-invocation.test.js.map +0 -1
- package/dist/src/tools/confirmation-policy.test.d.ts +0 -6
- package/dist/src/tools/confirmation-policy.test.js +0 -143
- package/dist/src/tools/confirmation-policy.test.js.map +0 -1
- package/dist/src/tools/diffOptions.test.d.ts +0 -6
- package/dist/src/tools/diffOptions.test.js +0 -172
- package/dist/src/tools/diffOptions.test.js.map +0 -1
- package/dist/src/tools/edit.test.d.ts +0 -6
- package/dist/src/tools/edit.test.js +0 -729
- package/dist/src/tools/edit.test.js.map +0 -1
- package/dist/src/tools/get-internal-docs.test.d.ts +0 -6
- package/dist/src/tools/get-internal-docs.test.js +0 -57
- package/dist/src/tools/get-internal-docs.test.js.map +0 -1
- package/dist/src/tools/glob.test.d.ts +0 -6
- package/dist/src/tools/glob.test.js +0 -433
- package/dist/src/tools/glob.test.js.map +0 -1
- package/dist/src/tools/grep.test.d.ts +0 -6
- package/dist/src/tools/grep.test.js +0 -328
- package/dist/src/tools/grep.test.js.map +0 -1
- package/dist/src/tools/ls.test.d.ts +0 -6
- package/dist/src/tools/ls.test.js +0 -242
- package/dist/src/tools/ls.test.js.map +0 -1
- package/dist/src/tools/mcp-client-manager.test.d.ts +0 -6
- package/dist/src/tools/mcp-client-manager.test.js +0 -251
- package/dist/src/tools/mcp-client-manager.test.js.map +0 -1
- package/dist/src/tools/mcp-client.test.d.ts +0 -6
- package/dist/src/tools/mcp-client.test.js +0 -1346
- package/dist/src/tools/mcp-client.test.js.map +0 -1
- package/dist/src/tools/mcp-tool.test.d.ts +0 -6
- package/dist/src/tools/mcp-tool.test.js +0 -657
- package/dist/src/tools/mcp-tool.test.js.map +0 -1
- package/dist/src/tools/memoryTool.test.d.ts +0 -6
- package/dist/src/tools/memoryTool.test.js +0 -302
- package/dist/src/tools/memoryTool.test.js.map +0 -1
- package/dist/src/tools/message-bus-integration.test.d.ts +0 -6
- package/dist/src/tools/message-bus-integration.test.js +0 -169
- package/dist/src/tools/message-bus-integration.test.js.map +0 -1
- package/dist/src/tools/modifiable-tool.test.d.ts +0 -6
- package/dist/src/tools/modifiable-tool.test.js +0 -237
- package/dist/src/tools/modifiable-tool.test.js.map +0 -1
- package/dist/src/tools/read-file.test.d.ts +0 -6
- package/dist/src/tools/read-file.test.js +0 -376
- package/dist/src/tools/read-file.test.js.map +0 -1
- package/dist/src/tools/read-many-files.test.d.ts +0 -6
- package/dist/src/tools/read-many-files.test.js +0 -567
- package/dist/src/tools/read-many-files.test.js.map +0 -1
- package/dist/src/tools/ripGrep.test.d.ts +0 -6
- package/dist/src/tools/ripGrep.test.js +0 -1139
- package/dist/src/tools/ripGrep.test.js.map +0 -1
- package/dist/src/tools/shell.test.d.ts +0 -6
- package/dist/src/tools/shell.test.js +0 -526
- package/dist/src/tools/shell.test.js.map +0 -1
- package/dist/src/tools/tool-names.test.d.ts +0 -6
- package/dist/src/tools/tool-names.test.js +0 -43
- package/dist/src/tools/tool-names.test.js.map +0 -1
- package/dist/src/tools/tool-registry.test.d.ts +0 -6
- package/dist/src/tools/tool-registry.test.js +0 -461
- package/dist/src/tools/tool-registry.test.js.map +0 -1
- package/dist/src/tools/tools.test.d.ts +0 -6
- package/dist/src/tools/tools.test.js +0 -207
- package/dist/src/tools/tools.test.js.map +0 -1
- package/dist/src/tools/web-fetch.test.d.ts +0 -6
- package/dist/src/tools/web-fetch.test.js +0 -442
- package/dist/src/tools/web-fetch.test.js.map +0 -1
- package/dist/src/tools/web-search.test.d.ts +0 -6
- package/dist/src/tools/web-search.test.js +0 -214
- package/dist/src/tools/web-search.test.js.map +0 -1
- package/dist/src/tools/write-file.test.d.ts +0 -6
- package/dist/src/tools/write-file.test.js +0 -681
- package/dist/src/tools/write-file.test.js.map +0 -1
- package/dist/src/tools/write-todos.test.d.ts +0 -6
- package/dist/src/tools/write-todos.test.js +0 -90
- package/dist/src/tools/write-todos.test.js.map +0 -1
- package/dist/src/utils/apiConversionUtils.test.d.ts +0 -6
- package/dist/src/utils/apiConversionUtils.test.js +0 -150
- package/dist/src/utils/apiConversionUtils.test.js.map +0 -1
- package/dist/src/utils/bfsFileSearch.test.d.ts +0 -6
- package/dist/src/utils/bfsFileSearch.test.js +0 -227
- package/dist/src/utils/bfsFileSearch.test.js.map +0 -1
- package/dist/src/utils/channel.test.d.ts +0 -6
- package/dist/src/utils/channel.test.js +0 -170
- package/dist/src/utils/channel.test.js.map +0 -1
- package/dist/src/utils/checkpointUtils.test.d.ts +0 -6
- package/dist/src/utils/checkpointUtils.test.js +0 -229
- package/dist/src/utils/checkpointUtils.test.js.map +0 -1
- package/dist/src/utils/customHeaderUtils.test.d.ts +0 -6
- package/dist/src/utils/customHeaderUtils.test.js +0 -77
- package/dist/src/utils/customHeaderUtils.test.js.map +0 -1
- package/dist/src/utils/debugLogger.test.d.ts +0 -6
- package/dist/src/utils/debugLogger.test.js +0 -69
- package/dist/src/utils/debugLogger.test.js.map +0 -1
- package/dist/src/utils/delay.test.d.ts +0 -6
- package/dist/src/utils/delay.test.js +0 -88
- package/dist/src/utils/delay.test.js.map +0 -1
- package/dist/src/utils/editCorrector.test.d.ts +0 -6
- package/dist/src/utils/editCorrector.test.js +0 -533
- package/dist/src/utils/editCorrector.test.js.map +0 -1
- package/dist/src/utils/editor.test.d.ts +0 -6
- package/dist/src/utils/editor.test.js +0 -429
- package/dist/src/utils/editor.test.js.map +0 -1
- package/dist/src/utils/environmentContext.test.d.ts +0 -6
- package/dist/src/utils/environmentContext.test.js +0 -114
- package/dist/src/utils/environmentContext.test.js.map +0 -1
- package/dist/src/utils/errorParsing.test.d.ts +0 -6
- package/dist/src/utils/errorParsing.test.js +0 -84
- package/dist/src/utils/errorParsing.test.js.map +0 -1
- package/dist/src/utils/errorReporting.test.d.ts +0 -6
- package/dist/src/utils/errorReporting.test.js +0 -133
- package/dist/src/utils/errorReporting.test.js.map +0 -1
- package/dist/src/utils/errors.test.d.ts +0 -6
- package/dist/src/utils/errors.test.js +0 -155
- package/dist/src/utils/errors.test.js.map +0 -1
- package/dist/src/utils/events.test.d.ts +0 -6
- package/dist/src/utils/events.test.js +0 -237
- package/dist/src/utils/events.test.js.map +0 -1
- package/dist/src/utils/extensionLoader.test.d.ts +0 -6
- package/dist/src/utils/extensionLoader.test.js +0 -176
- package/dist/src/utils/extensionLoader.test.js.map +0 -1
- package/dist/src/utils/fileDiffUtils.test.d.ts +0 -6
- package/dist/src/utils/fileDiffUtils.test.js +0 -84
- package/dist/src/utils/fileDiffUtils.test.js.map +0 -1
- package/dist/src/utils/fileUtils.test.d.ts +0 -6
- package/dist/src/utils/fileUtils.test.js +0 -780
- package/dist/src/utils/fileUtils.test.js.map +0 -1
- package/dist/src/utils/filesearch/crawlCache.test.d.ts +0 -6
- package/dist/src/utils/filesearch/crawlCache.test.js +0 -103
- package/dist/src/utils/filesearch/crawlCache.test.js.map +0 -1
- package/dist/src/utils/filesearch/crawler.test.d.ts +0 -6
- package/dist/src/utils/filesearch/crawler.test.js +0 -495
- package/dist/src/utils/filesearch/crawler.test.js.map +0 -1
- package/dist/src/utils/filesearch/fileSearch.test.d.ts +0 -6
- package/dist/src/utils/filesearch/fileSearch.test.js +0 -663
- package/dist/src/utils/filesearch/fileSearch.test.js.map +0 -1
- package/dist/src/utils/filesearch/ignore.test.d.ts +0 -6
- package/dist/src/utils/filesearch/ignore.test.js +0 -144
- package/dist/src/utils/filesearch/ignore.test.js.map +0 -1
- package/dist/src/utils/filesearch/result-cache.test.d.ts +0 -6
- package/dist/src/utils/filesearch/result-cache.test.js +0 -46
- package/dist/src/utils/filesearch/result-cache.test.js.map +0 -1
- package/dist/src/utils/flashFallback.test.d.ts +0 -6
- package/dist/src/utils/flashFallback.test.js +0 -103
- package/dist/src/utils/flashFallback.test.js.map +0 -1
- package/dist/src/utils/formatters.test.d.ts +0 -6
- package/dist/src/utils/formatters.test.js +0 -26
- package/dist/src/utils/formatters.test.js.map +0 -1
- package/dist/src/utils/geminiIgnoreParser.test.d.ts +0 -6
- package/dist/src/utils/geminiIgnoreParser.test.js +0 -98
- package/dist/src/utils/geminiIgnoreParser.test.js.map +0 -1
- package/dist/src/utils/geminiTypeConversion.test.d.ts +0 -6
- package/dist/src/utils/geminiTypeConversion.test.js +0 -310
- package/dist/src/utils/geminiTypeConversion.test.js.map +0 -1
- package/dist/src/utils/generateContentResponseUtilities.test.d.ts +0 -6
- package/dist/src/utils/generateContentResponseUtilities.test.js +0 -512
- package/dist/src/utils/generateContentResponseUtilities.test.js.map +0 -1
- package/dist/src/utils/getFolderStructure.test.d.ts +0 -6
- package/dist/src/utils/getFolderStructure.test.js +0 -283
- package/dist/src/utils/getFolderStructure.test.js.map +0 -1
- package/dist/src/utils/gitIgnoreParser.test.d.ts +0 -6
- package/dist/src/utils/gitIgnoreParser.test.js +0 -243
- package/dist/src/utils/gitIgnoreParser.test.js.map +0 -1
- package/dist/src/utils/googleErrors.test.d.ts +0 -6
- package/dist/src/utils/googleErrors.test.js +0 -309
- package/dist/src/utils/googleErrors.test.js.map +0 -1
- package/dist/src/utils/googleQuotaErrors.test.d.ts +0 -6
- package/dist/src/utils/googleQuotaErrors.test.js +0 -548
- package/dist/src/utils/googleQuotaErrors.test.js.map +0 -1
- package/dist/src/utils/ignorePatterns.test.d.ts +0 -6
- package/dist/src/utils/ignorePatterns.test.js +0 -246
- package/dist/src/utils/ignorePatterns.test.js.map +0 -1
- package/dist/src/utils/installationManager.test.d.ts +0 -6
- package/dist/src/utils/installationManager.test.js +0 -93
- package/dist/src/utils/installationManager.test.js.map +0 -1
- package/dist/src/utils/llm-edit-fixer.test.d.ts +0 -6
- package/dist/src/utils/llm-edit-fixer.test.js +0 -223
- package/dist/src/utils/llm-edit-fixer.test.js.map +0 -1
- package/dist/src/utils/llmUtils.test.d.ts +0 -6
- package/dist/src/utils/llmUtils.test.js +0 -196
- package/dist/src/utils/llmUtils.test.js.map +0 -1
- package/dist/src/utils/memoryDiscovery.test.d.ts +0 -6
- package/dist/src/utils/memoryDiscovery.test.js +0 -542
- package/dist/src/utils/memoryDiscovery.test.js.map +0 -1
- package/dist/src/utils/memoryImportProcessor.test.d.ts +0 -6
- package/dist/src/utils/memoryImportProcessor.test.js +0 -581
- package/dist/src/utils/memoryImportProcessor.test.js.map +0 -1
- package/dist/src/utils/nextSpeakerChecker.test.d.ts +0 -6
- package/dist/src/utils/nextSpeakerChecker.test.js +0 -191
- package/dist/src/utils/nextSpeakerChecker.test.js.map +0 -1
- package/dist/src/utils/partUtils.test.d.ts +0 -6
- package/dist/src/utils/partUtils.test.js +0 -397
- package/dist/src/utils/partUtils.test.js.map +0 -1
- package/dist/src/utils/pathCorrector.test.d.ts +0 -6
- package/dist/src/utils/pathCorrector.test.js +0 -87
- package/dist/src/utils/pathCorrector.test.js.map +0 -1
- package/dist/src/utils/pathReader.test.d.ts +0 -6
- package/dist/src/utils/pathReader.test.js +0 -406
- package/dist/src/utils/pathReader.test.js.map +0 -1
- package/dist/src/utils/paths.test.d.ts +0 -6
- package/dist/src/utils/paths.test.js +0 -402
- package/dist/src/utils/paths.test.js.map +0 -1
- package/dist/src/utils/retry.test.d.ts +0 -6
- package/dist/src/utils/retry.test.js +0 -548
- package/dist/src/utils/retry.test.js.map +0 -1
- package/dist/src/utils/retry_llm_error.test.d.ts +0 -6
- package/dist/src/utils/retry_llm_error.test.js +0 -280
- package/dist/src/utils/retry_llm_error.test.js.map +0 -1
- package/dist/src/utils/safeJsonStringify.test.d.ts +0 -6
- package/dist/src/utils/safeJsonStringify.test.js +0 -61
- package/dist/src/utils/safeJsonStringify.test.js.map +0 -1
- package/dist/src/utils/schemaValidator.test.d.ts +0 -6
- package/dist/src/utils/schemaValidator.test.js +0 -113
- package/dist/src/utils/schemaValidator.test.js.map +0 -1
- package/dist/src/utils/secure-browser-launcher.test.d.ts +0 -6
- package/dist/src/utils/secure-browser-launcher.test.js +0 -149
- package/dist/src/utils/secure-browser-launcher.test.js.map +0 -1
- package/dist/src/utils/security.test.d.ts +0 -1
- package/dist/src/utils/security.test.js +0 -121
- package/dist/src/utils/security.test.js.map +0 -1
- package/dist/src/utils/shell-utils.integration.test.d.ts +0 -1
- package/dist/src/utils/shell-utils.integration.test.js +0 -58
- package/dist/src/utils/shell-utils.integration.test.js.map +0 -1
- package/dist/src/utils/shell-utils.test.d.ts +0 -6
- package/dist/src/utils/shell-utils.test.js +0 -437
- package/dist/src/utils/shell-utils.test.js.map +0 -1
- package/dist/src/utils/stdio.test.d.ts +0 -6
- package/dist/src/utils/stdio.test.js +0 -47
- package/dist/src/utils/stdio.test.js.map +0 -1
- package/dist/src/utils/summarizer.test.d.ts +0 -6
- package/dist/src/utils/summarizer.test.js +0 -152
- package/dist/src/utils/summarizer.test.js.map +0 -1
- package/dist/src/utils/systemEncoding.test.d.ts +0 -6
- package/dist/src/utils/systemEncoding.test.js +0 -369
- package/dist/src/utils/systemEncoding.test.js.map +0 -1
- package/dist/src/utils/terminalSerializer.test.d.ts +0 -6
- package/dist/src/utils/terminalSerializer.test.js +0 -193
- package/dist/src/utils/terminalSerializer.test.js.map +0 -1
- package/dist/src/utils/textUtils.test.d.ts +0 -6
- package/dist/src/utils/textUtils.test.js +0 -76
- package/dist/src/utils/textUtils.test.js.map +0 -1
- package/dist/src/utils/thoughtUtils.test.d.ts +0 -6
- package/dist/src/utils/thoughtUtils.test.js +0 -78
- package/dist/src/utils/thoughtUtils.test.js.map +0 -1
- package/dist/src/utils/tokenCalculation.test.d.ts +0 -6
- package/dist/src/utils/tokenCalculation.test.js +0 -184
- package/dist/src/utils/tokenCalculation.test.js.map +0 -1
- package/dist/src/utils/tool-utils.test.d.ts +0 -6
- package/dist/src/utils/tool-utils.test.js +0 -84
- package/dist/src/utils/tool-utils.test.js.map +0 -1
- package/dist/src/utils/toolCallContext.test.d.ts +0 -6
- package/dist/src/utils/toolCallContext.test.js +0 -68
- package/dist/src/utils/toolCallContext.test.js.map +0 -1
- package/dist/src/utils/userAccountManager.test.d.ts +0 -6
- package/dist/src/utils/userAccountManager.test.js +0 -225
- package/dist/src/utils/userAccountManager.test.js.map +0 -1
- package/dist/src/utils/version.test.d.ts +0 -6
- package/dist/src/utils/version.test.js +0 -39
- package/dist/src/utils/version.test.js.map +0 -1
- package/dist/src/utils/workspaceContext.test.d.ts +0 -6
- package/dist/src/utils/workspaceContext.test.js +0 -374
- package/dist/src/utils/workspaceContext.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"openapi":"3.1.0","info":{"title":"DidimAIStudio AGENT API 문서","description":"Didim API는 다양한 AI 서비스를 통합하고 워크플로우를 관리하기 위한 RESTful API를 제공합니다.\n이 문서는 API 사용 방법, 각 엔드포인트의 역할, 그리고 예제 요청 및 응답에 대한 정보를 포함합니다.","version":"0.2.1"},"paths":{"/v1/scenarios/data":{"get":{"tags":["scenarios"],"summary":"시나리오 데이터 목록 조회","description":"검색 조건에 따른 시나리오 원본 데이터 목록을 조회합니다.","operationId":"list_scenario_data_v1_scenarios_data_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"시나리오 ID 목록 필터","title":"Id"},"description":"시나리오 ID 목록 필터"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"소유자 ID 목록 필터","title":"User Id"},"description":"소유자 ID 목록 필터"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ScenarioCategoryEnum"}},{"type":"null"}],"description":"카테고리 목록 필터","title":"Category"},"description":"카테고리 목록 필터"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"공식 이름 키워드 검색","title":"Name"},"description":"공식 이름 키워드 검색"},{"name":"description","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"공식 설명 키워드 검색","title":"Description"},"description":"공식 설명 키워드 검색"},{"name":"definition_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"함수명 키워드 검색","title":"Definition Name"},"description":"함수명 키워드 검색"},{"name":"user_scenario_title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"유저 제목 키워드 검색","title":"User Scenario Title"},"description":"유저 제목 키워드 검색"},{"name":"user_scenario_description","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"유저 설명 키워드 검색","title":"User Scenario Description"},"description":"유저 설명 키워드 검색"},{"name":"is_system","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"시스템 제공 시나리오 필터","title":"Is System"},"description":"시스템 제공 시나리오 필터"},{"name":"is_public","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"공개 시나리오 필터","title":"Is Public"},"description":"공개 시나리오 필터"},{"name":"operation_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OperationTypeEnum","description":"검색 조건 결합 연산자","default":"AND"},"description":"검색 조건 결합 연산자"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"created_at","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_ScenarioDataResponse_"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["scenarios"],"summary":"시나리오 데이터 생성","description":"새로운 시나리오 원본 데이터를 생성합니다.","operationId":"create_scenario_data_endpoint_v1_scenarios_data_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioDataCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/scenarios/data/{scenario_id}":{"get":{"tags":["scenarios"],"summary":"시나리오 데이터 조회","description":"특정 시나리오 원본 데이터를 조회합니다.","operationId":"get_scenario_data_endpoint_v1_scenarios_data__scenario_id__get","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Scenario Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["scenarios"],"summary":"시나리오 데이터 수정 (Upsert)","description":"시나리오 원본 데이터를 수정합니다. 존재하지 않으면 새로 생성합니다.","operationId":"upsert_scenario_data_endpoint_v1_scenarios_data__scenario_id__put","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Scenario Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioDataCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["scenarios"],"summary":"시나리오 데이터 부분 수정","description":"시나리오 원본 데이터를 부분적으로 수정합니다.","operationId":"patch_scenario_data_endpoint_v1_scenarios_data__scenario_id__patch","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Scenario Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioDataUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["scenarios"],"summary":"시나리오 데이터 삭제","description":"시나리오 원본 데이터를 삭제합니다. 관련된 마이페이지 항목들도 함께 삭제됩니다.","operationId":"delete_scenario_data_endpoint_v1_scenarios_data__scenario_id__delete","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Scenario Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/scenarios/my":{"get":{"tags":["scenarios"],"summary":"마이페이지 시나리오 목록 조회","description":"검색 조건에 따른 마이페이지 시나리오 목록을 조회합니다.","operationId":"list_my_page_scenarios_v1_scenarios_my_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"마이페이지 항목 ID 목록 필터","title":"Id"},"description":"마이페이지 항목 ID 목록 필터"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"소유자 ID 목록 필터","title":"User Id"},"description":"소유자 ID 목록 필터"},{"name":"scenario_data_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"시나리오 원본 ID 목록 필터","title":"Scenario Data Id"},"description":"시나리오 원본 ID 목록 필터"},{"name":"user_my_scenario_title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"사용자 별칭 키워드 검색","title":"User My Scenario Title"},"description":"사용자 별칭 키워드 검색"},{"name":"user_my_scenario_description","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"사용자 메모 키워드 검색","title":"User My Scenario Description"},"description":"사용자 메모 키워드 검색"},{"name":"is_favorite","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"즐겨찾기 여부 필터","title":"Is Favorite"},"description":"즐겨찾기 여부 필터"},{"name":"operation_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OperationTypeEnum","description":"검색 조건 결합 연산자","default":"AND"},"description":"검색 조건 결합 연산자"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"created_at","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_MyPageScenarioResponse_"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["scenarios"],"summary":"마이페이지에 시나리오 추가","description":"시나리오를 사용자 마이페이지에 추가합니다.","operationId":"add_scenario_to_my_page_endpoint_v1_scenarios_my_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPageScenarioCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPageScenarioResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/scenarios/my/{my_page_id}":{"get":{"tags":["scenarios"],"summary":"마이페이지 시나리오 조회","description":"특정 마이페이지 시나리오 항목을 조회합니다.","operationId":"get_my_page_scenario_endpoint_v1_scenarios_my__my_page_id__get","parameters":[{"name":"my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"My Page Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPageScenarioResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["scenarios"],"summary":"마이페이지 시나리오 수정 (Upsert)","description":"마이페이지 시나리오 항목을 수정합니다. 존재하지 않으면 새로 생성합니다.","operationId":"upsert_my_page_scenario_endpoint_v1_scenarios_my__my_page_id__put","parameters":[{"name":"my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"My Page Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPageScenarioCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPageScenarioResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["scenarios"],"summary":"마이페이지 시나리오 부분 수정","description":"마이페이지 시나리오 항목을 부분적으로 수정합니다.","operationId":"patch_my_page_scenario_endpoint_v1_scenarios_my__my_page_id__patch","parameters":[{"name":"my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"My Page Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPageScenarioUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPageScenarioResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["scenarios"],"summary":"마이페이지에서 시나리오 제거","description":"마이페이지에서 특정 시나리오 항목을 제거합니다.","operationId":"delete_my_page_scenario_endpoint_v1_scenarios_my__my_page_id__delete","parameters":[{"name":"my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"My Page Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/scenarios/role":{"get":{"tags":["scenarios"],"summary":"시나리오 역할 권한 목록 조회","description":"검색 조건에 따른 시나리오 역할 권한 목록을 조회합니다.","operationId":"list_scenario_roles_v1_scenarios_role_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"권한 매핑 레코드 ID 목록 필터","title":"Id"},"description":"권한 매핑 레코드 ID 목록 필터"},{"name":"scenario_data_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"시나리오 데이터 ID 목록 필터","title":"Scenario Data Id"},"description":"시나리오 데이터 ID 목록 필터"},{"name":"role_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"역할/권한 ID 목록 필터","title":"Role Id"},"description":"역할/권한 ID 목록 필터"},{"name":"operation_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OperationTypeEnum","description":"검색 조건 결합 연산자","default":"AND"},"description":"검색 조건 결합 연산자"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"created_at","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_ScenarioRoleResponse_"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["scenarios"],"summary":"시나리오 역할 권한 생성","description":"새로운 시나리오 역할 권한을 생성합니다.","operationId":"create_scenario_role_endpoint_v1_scenarios_role_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioRoleCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioRoleResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/scenarios/role/{role_id}":{"get":{"tags":["scenarios"],"summary":"시나리오 역할 권한 조회","description":"특정 시나리오 역할 권한을 조회합니다.","operationId":"get_scenario_role_endpoint_v1_scenarios_role__role_id__get","parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Role Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioRoleResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["scenarios"],"summary":"시나리오 역할 권한 수정 (Upsert)","description":"시나리오 역할 권한을 수정합니다. 존재하지 않으면 새로 생성합니다.","operationId":"upsert_scenario_role_endpoint_v1_scenarios_role__role_id__put","parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Role Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioRoleCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioRoleResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["scenarios"],"summary":"시나리오 역할 권한 부분 수정","description":"시나리오 역할 권한을 부분적으로 수정합니다.","operationId":"patch_scenario_role_endpoint_v1_scenarios_role__role_id__patch","parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Role Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioRoleUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioRoleResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["scenarios"],"summary":"시나리오 역할 권한 삭제","description":"시나리오 역할 권한을 삭제합니다.","operationId":"delete_scenario_role_endpoint_v1_scenarios_role__role_id__delete","parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Role Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/personas/generate":{"post":{"tags":["personas"],"summary":"LLM을 이용한 페르소나 자동 생성","description":"사용자가 제공한 기본 정보를 바탕으로 LLM이 시스템 프롬프트를 자동 생성하여 새로운 페르소나를 등록합니다.","operationId":"generate_persona_with_agent_endpoint_v1_personas_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaLLMGenerationRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/personas/generate/sse":{"put":{"tags":["personas"],"summary":"LLM을 이용한 페르소나 자동 생성/재생성 (SSE 스트리밍)","description":"페르소나를 생성하거나 재생성합니다. persona_id가 있으면 재생성, 없으면 신규 생성합니다. 생성 과정을 SSE로 실시간 스트리밍합니다.","operationId":"generate_or_regenerate_persona_sse_endpoint_v1_personas_generate_sse_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaLLMGenerationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/personas/data":{"get":{"tags":["personas"],"summary":"페르소나 데이터 목록 조회","description":"검색 조건에 따른 페르소나 원본 데이터 목록을 조회합니다.","operationId":"list_persona_data_v1_personas_data_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"페르소나 ID 목록 필터","title":"Id"},"description":"페르소나 ID 목록 필터"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"소유자 ID 목록 필터","title":"User Id"},"description":"소유자 ID 목록 필터"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/PersonaCategoryEnum"}},{"type":"null"}],"description":"카테고리 목록 필터","title":"Category"},"description":"카테고리 목록 필터"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"이름 키워드 검색","title":"Name"},"description":"이름 키워드 검색"},{"name":"description","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"설명 키워드 검색","title":"Description"},"description":"설명 키워드 검색"},{"name":"system_prompt","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"시스템 프롬프트 키워드 검색","title":"System Prompt"},"description":"시스템 프롬프트 키워드 검색"},{"name":"user_persona_title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"사용자 개인 제목 키워드 검색","title":"User Persona Title"},"description":"사용자 개인 제목 키워드 검색"},{"name":"user_persona_description","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"사용자 개인 설명 키워드 검색","title":"User Persona Description"},"description":"사용자 개인 설명 키워드 검색"},{"name":"is_system","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"시스템 제공 페르소나 필터","title":"Is System"},"description":"시스템 제공 페르소나 필터"},{"name":"is_public","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"공개 페르소나 필터","title":"Is Public"},"description":"공개 페르소나 필터"},{"name":"operation_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OperationTypeEnum","description":"검색 조건 결합 연산자","default":"AND"},"description":"검색 조건 결합 연산자"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"created_at","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_PersonaDataResponse_"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["personas"],"summary":"페르소나 데이터 생성","description":"새로운 페르소나 원본 데이터를 생성합니다.","operationId":"create_persona_data_endpoint_v1_personas_data_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaDataCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/personas/data/{persona_id}":{"get":{"tags":["personas"],"summary":"페르소나 데이터 조회","description":"특정 페르소나 원본 데이터를 조회합니다.","operationId":"get_persona_data_endpoint_v1_personas_data__persona_id__get","parameters":[{"name":"persona_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Persona Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["personas"],"summary":"페르소나 데이터 수정 (Upsert)","description":"페르소나 원본 데이터를 수정합니다. 존재하지 않으면 새로 생성합니다.","operationId":"upsert_persona_data_endpoint_v1_personas_data__persona_id__put","parameters":[{"name":"persona_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Persona Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaDataCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["personas"],"summary":"페르소나 데이터 부분 수정","description":"페르소나 원본 데이터를 부분적으로 수정합니다.","operationId":"patch_persona_data_endpoint_v1_personas_data__persona_id__patch","parameters":[{"name":"persona_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Persona Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaDataUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["personas"],"summary":"페르소나 데이터 삭제","description":"페르소나 원본 데이터를 삭제합니다. 관련된 마이페이지 항목들도 함께 삭제됩니다.","operationId":"delete_persona_data_endpoint_v1_personas_data__persona_id__delete","parameters":[{"name":"persona_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Persona Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/personas/my":{"get":{"tags":["personas"],"summary":"마이페이지 페르소나 목록 조회","description":"검색 조건에 따른 마이페이지 페르소나 목록을 조회합니다. 에이전트 및 시나리오 연결 정보를 포함합니다.","operationId":"list_my_page_personas_v1_personas_my_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"마이페이지 항목 ID 목록 필터","title":"Id"},"description":"마이페이지 항목 ID 목록 필터"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"소유자 ID 목록 필터","title":"User Id"},"description":"소유자 ID 목록 필터"},{"name":"persona_data_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"페르소나 원본 ID 목록 필터","title":"Persona Data Id"},"description":"페르소나 원본 ID 목록 필터"},{"name":"user_my_persona_title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"사용자 설정 이름 키워드 검색","title":"User My Persona Title"},"description":"사용자 설정 이름 키워드 검색"},{"name":"user_my_persona_description","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"사용자 설정 설명 키워드 검색","title":"User My Persona Description"},"description":"사용자 설정 설명 키워드 검색"},{"name":"is_favorite","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"즐겨찾기 여부 필터","title":"Is Favorite"},"description":"즐겨찾기 여부 필터"},{"name":"operation_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OperationTypeEnum","description":"검색 조건 결합 연산자","default":"AND"},"description":"검색 조건 결합 연산자"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"created_at","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_MyPagePersonaResponseWithConnections_"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["personas"],"summary":"마이페이지에 페르소나 추가","description":"페르소나를 사용자 마이페이지에 추가합니다.","operationId":"add_persona_to_my_page_endpoint_v1_personas_my_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPagePersonaCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPagePersonaResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/personas/my/{my_page_id}":{"get":{"tags":["personas"],"summary":"마이페이지 페르소나 조회","description":"특정 마이페이지 페르소나 항목을 조회합니다. 에이전트 및 시나리오 연결 정보를 포함합니다.","operationId":"get_my_page_persona_endpoint_v1_personas_my__my_page_id__get","parameters":[{"name":"my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"My Page Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPagePersonaResponseWithConnections"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["personas"],"summary":"마이페이지 페르소나 수정 (Upsert)","description":"마이페이지 페르소나 항목을 수정합니다. 존재하지 않으면 새로 생성합니다.","operationId":"upsert_my_page_persona_endpoint_v1_personas_my__my_page_id__put","parameters":[{"name":"my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"My Page Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPagePersonaCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPagePersonaResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["personas"],"summary":"마이페이지 페르소나 부분 수정","description":"마이페이지 페르소나 항목을 부분적으로 수정합니다.","operationId":"patch_my_page_persona_endpoint_v1_personas_my__my_page_id__patch","parameters":[{"name":"my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"My Page Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPagePersonaUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPagePersonaResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["personas"],"summary":"마이페이지에서 페르소나 제거","description":"마이페이지에서 특정 페르소나 항목을 제거합니다.","operationId":"delete_my_page_persona_endpoint_v1_personas_my__my_page_id__delete","parameters":[{"name":"my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"My Page Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/personas/role":{"get":{"tags":["personas"],"summary":"페르소나 역할 권한 목록 조회","description":"검색 조건에 따른 페르소나 역할 권한 목록을 조회합니다.","operationId":"list_persona_roles_v1_personas_role_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"권한 매핑 레코드 ID 목록 필터","title":"Id"},"description":"권한 매핑 레코드 ID 목록 필터"},{"name":"persona_data_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"페르소나 데이터 ID 목록 필터","title":"Persona Data Id"},"description":"페르소나 데이터 ID 목록 필터"},{"name":"role_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"역할/권한 ID 목록 필터","title":"Role Id"},"description":"역할/권한 ID 목록 필터"},{"name":"operation_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OperationTypeEnum","description":"검색 조건 결합 연산자","default":"AND"},"description":"검색 조건 결합 연산자"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"created_at","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_PersonaRoleResponse_"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["personas"],"summary":"페르소나 역할 권한 생성","description":"새로운 페르소나 역할 권한을 생성합니다.","operationId":"create_persona_role_endpoint_v1_personas_role_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaRoleCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaRoleResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/personas/role/{role_id}":{"get":{"tags":["personas"],"summary":"페르소나 역할 권한 조회","description":"특정 페르소나 역할 권한을 조회합니다.","operationId":"get_persona_role_endpoint_v1_personas_role__role_id__get","parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Role Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaRoleResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["personas"],"summary":"페르소나 역할 권한 수정 (Upsert)","description":"페르소나 역할 권한을 수정합니다. 존재하지 않으면 새로 생성합니다.","operationId":"upsert_persona_role_endpoint_v1_personas_role__role_id__put","parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Role Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaRoleCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaRoleResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["personas"],"summary":"페르소나 역할 권한 부분 수정","description":"페르소나 역할 권한을 부분적으로 수정합니다.","operationId":"patch_persona_role_endpoint_v1_personas_role__role_id__patch","parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Role Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaRoleUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaRoleResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["personas"],"summary":"페르소나 역할 권한 삭제","description":"페르소나 역할 권한을 삭제합니다.","operationId":"delete_persona_role_endpoint_v1_personas_role__role_id__delete","parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Role Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/personas/runtime":{"get":{"tags":["personas"],"summary":"페르소나 런타임 목록 조회","description":"검색 조건에 따른 페르소나 런타임 목록을 조회합니다.","operationId":"list_persona_runtime_v1_personas_runtime_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"런타임 ID 목록 필터","title":"Id"},"description":"런타임 ID 목록 필터"},{"name":"runnable_config","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"RunnableConfig 키워드 검색","title":"Runnable Config"},"description":"RunnableConfig 키워드 검색"},{"name":"system_prompt","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"시스템 프롬프트 키워드 검색","title":"System Prompt"},"description":"시스템 프롬프트 키워드 검색"},{"name":"operation_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OperationTypeEnum","description":"검색 조건 결합 연산자","default":"AND"},"description":"검색 조건 결합 연산자"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"created_at","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_PersonaRuntimeResponse_"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["personas"],"summary":"페르소나 런타임 생성","description":"새로운 페르소나 런타임을 생성합니다.","operationId":"create_persona_runtime_endpoint_v1_personas_runtime_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaRuntimeCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaRuntimeResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/personas/runtime/{runtime_id}":{"get":{"tags":["personas"],"summary":"페르소나 런타임 조회","description":"특정 페르소나 런타임을 조회합니다.","operationId":"get_persona_runtime_endpoint_v1_personas_runtime__runtime_id__get","parameters":[{"name":"runtime_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Runtime Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaRuntimeResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["personas"],"summary":"페르소나 런타임 수정 (Upsert)","description":"페르소나 런타임을 수정합니다. 존재하지 않으면 새로 생성합니다.","operationId":"upsert_persona_runtime_endpoint_v1_personas_runtime__runtime_id__put","parameters":[{"name":"runtime_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Runtime Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaRuntimeCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaRuntimeResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["personas"],"summary":"페르소나 런타임 부분 수정","description":"페르소나 런타임을 부분적으로 수정합니다.","operationId":"patch_persona_runtime_endpoint_v1_personas_runtime__runtime_id__patch","parameters":[{"name":"runtime_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Runtime Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaRuntimeUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaRuntimeResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["personas"],"summary":"페르소나 런타임 삭제","description":"페르소나 런타임을 삭제합니다.","operationId":"delete_persona_runtime_endpoint_v1_personas_runtime__runtime_id__delete","parameters":[{"name":"runtime_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Runtime Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/personas/data-runtime":{"get":{"tags":["personas"],"summary":"페르소나 데이터-런타임 매핑 목록 조회","description":"검색 조건에 따른 페르소나 데이터-런타임 매핑 목록을 조회합니다.","operationId":"list_persona_data_runtime_v1_personas_data_runtime_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"ID 목록 필터","title":"Id"},"description":"ID 목록 필터"},{"name":"persona_data_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"원본 페르소나 ID 목록 필터","title":"Persona Data Id"},"description":"원본 페르소나 ID 목록 필터"},{"name":"persona_runtime_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"런타임 ID 목록 필터","title":"Persona Runtime Id"},"description":"런타임 ID 목록 필터"},{"name":"operation_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OperationTypeEnum","description":"검색 조건 결합 연산자","default":"AND"},"description":"검색 조건 결합 연산자"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"created_at","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_PersonaDataRuntimeResponse_"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["personas"],"summary":"페르소나 데이터-런타임 매핑 생성","description":"새로운 페르소나 데이터-런타임 매핑을 생성합니다.","operationId":"create_persona_data_runtime_endpoint_v1_personas_data_runtime_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaDataRuntimeCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaDataRuntimeResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/personas/data-runtime/{data_runtime_id}":{"get":{"tags":["personas"],"summary":"페르소나 데이터-런타임 매핑 조회","description":"특정 페르소나 데이터-런타임 매핑을 조회합니다.","operationId":"get_persona_data_runtime_endpoint_v1_personas_data_runtime__data_runtime_id__get","parameters":[{"name":"data_runtime_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Data Runtime Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaDataRuntimeResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["personas"],"summary":"페르소나 데이터-런타임 매핑 수정 (Upsert)","description":"페르소나 데이터-런타임 매핑을 수정합니다. 존재하지 않으면 새로 생성합니다.","operationId":"upsert_persona_data_runtime_endpoint_v1_personas_data_runtime__data_runtime_id__put","parameters":[{"name":"data_runtime_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Data Runtime Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaDataRuntimeCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaDataRuntimeResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["personas"],"summary":"페르소나 데이터-런타임 매핑 부분 수정","description":"페르소나 데이터-런타임 매핑을 부분적으로 수정합니다.","operationId":"patch_persona_data_runtime_endpoint_v1_personas_data_runtime__data_runtime_id__patch","parameters":[{"name":"data_runtime_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Data Runtime Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaDataRuntimeUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaDataRuntimeResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["personas"],"summary":"페르소나 데이터-런타임 매핑 삭제","description":"페르소나 데이터-런타임 매핑을 삭제합니다.","operationId":"delete_persona_data_runtime_endpoint_v1_personas_data_runtime__data_runtime_id__delete","parameters":[{"name":"data_runtime_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Data Runtime Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/personas/model":{"get":{"tags":["personas"],"summary":"페르소나 모델 목록 조회","description":"검색 조건에 따른 페르소나 모델 목록을 조회합니다.","operationId":"list_persona_models_v1_personas_model_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"페르소나 모델 ID 목록 필터","title":"Id"},"description":"페르소나 모델 ID 목록 필터"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"소유자 ID 목록 필터","title":"User Id"},"description":"소유자 ID 목록 필터"},{"name":"my_page_model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"모델 ID 목록 필터","title":"My Page Model Id"},"description":"모델 ID 목록 필터"},{"name":"operation_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OperationTypeEnum","description":"검색 조건 결합 연산자","default":"AND"},"description":"검색 조건 결합 연산자"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"created_at","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_PersonaModelResponse_"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["personas"],"summary":"페르소나 모델 생성","description":"새로운 페르소나 모델을 생성합니다.","operationId":"create_persona_model_endpoint_v1_personas_model_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaModelCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaModelResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/personas/model/{model_id}":{"get":{"tags":["personas"],"summary":"페르소나 모델 조회","description":"특정 페르소나 모델을 조회합니다.","operationId":"get_persona_model_endpoint_v1_personas_model__model_id__get","parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Model Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaModelResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["personas"],"summary":"페르소나 모델 수정 (Upsert)","description":"페르소나 모델을 수정합니다. 존재하지 않으면 새로 생성합니다.","operationId":"upsert_persona_model_endpoint_v1_personas_model__model_id__put","parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Model Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaModelCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaModelResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["personas"],"summary":"페르소나 모델 부분 수정","description":"페르소나 모델을 부분적으로 수정합니다.","operationId":"patch_persona_model_endpoint_v1_personas_model__model_id__patch","parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Model Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaModelUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaModelResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["personas"],"summary":"페르소나 모델 삭제","description":"페르소나 모델을 삭제합니다.","operationId":"delete_persona_model_endpoint_v1_personas_model__model_id__delete","parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Model Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/data":{"get":{"tags":["agents"],"summary":"에이전트 데이터 목록 조회","description":"검색 조건에 따른 에이전트 원본 데이터 목록을 조회합니다.","operationId":"list_agent_data_v1_agents_data_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"에이전트 ID 목록 필터","title":"Id"},"description":"에이전트 ID 목록 필터"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"소유자 ID 목록 필터","title":"User Id"},"description":"소유자 ID 목록 필터"},{"name":"model_my_page_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"모델 ID 목록 필터","title":"Model My Page Id"},"description":"모델 ID 목록 필터"},{"name":"persona_my_page_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"페르소나 ID 목록 필터","title":"Persona My Page Id"},"description":"페르소나 ID 목록 필터"},{"name":"tool_my_page_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"도구 ID 목록 필터","title":"Tool My Page Id"},"description":"도구 ID 목록 필터"},{"name":"fallback_model_my_page_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"fallback 모델 ID 목록 필터","title":"Fallback Model My Page Id"},"description":"fallback 모델 ID 목록 필터"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/AgentCategoryEnum"}},{"type":"null"}],"description":"카테고리 목록 필터","title":"Category"},"description":"카테고리 목록 필터"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"이름 키워드 검색","title":"Name"},"description":"이름 키워드 검색"},{"name":"description","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"설명 키워드 검색","title":"Description"},"description":"설명 키워드 검색"},{"name":"user_agent_title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"사용자 개인 제목 키워드 검색","title":"User Agent Title"},"description":"사용자 개인 제목 키워드 검색"},{"name":"user_agent_description","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"사용자 개인 설명 키워드 검색","title":"User Agent Description"},"description":"사용자 개인 설명 키워드 검색"},{"name":"is_system","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"시스템 제공 에이전트 필터","title":"Is System"},"description":"시스템 제공 에이전트 필터"},{"name":"is_public","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"공개 에이전트 필터","title":"Is Public"},"description":"공개 에이전트 필터"},{"name":"operation_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OperationTypeEnum","description":"검색 조건 결합 연산자","default":"AND"},"description":"검색 조건 결합 연산자"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"created_at","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_AgentDataResponse_"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["agents"],"summary":"에이전트 데이터 생성","description":"새로운 에이전트 원본 데이터를 생성합니다.","operationId":"create_agent_data_endpoint_v1_agents_data_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentDataCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/data/{agent_id}":{"get":{"tags":["agents"],"summary":"에이전트 데이터 조회","description":"특정 에이전트 원본 데이터를 조회합니다.","operationId":"get_agent_data_endpoint_v1_agents_data__agent_id__get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["agents"],"summary":"에이전트 데이터 수정 (Upsert)","description":"에이전트 원본 데이터를 수정합니다. 존재하지 않으면 새로 생성합니다.","operationId":"upsert_agent_data_endpoint_v1_agents_data__agent_id__put","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentDataCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["agents"],"summary":"에이전트 데이터 부분 수정","description":"에이전트 원본 데이터를 부분적으로 수정합니다.","operationId":"patch_agent_data_endpoint_v1_agents_data__agent_id__patch","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentDataUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["agents"],"summary":"에이전트 데이터 삭제","description":"에이전트 원본 데이터를 삭제합니다. 관련된 마이페이지 항목들도 함께 삭제됩니다.","operationId":"delete_agent_data_endpoint_v1_agents_data__agent_id__delete","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Agent Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/my":{"get":{"tags":["agents"],"summary":"마이페이지 에이전트 목록 조회","description":"검색 조건에 따른 마이페이지 에이전트 목록을 조회합니다.","operationId":"list_my_page_agents_v1_agents_my_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"마이페이지 항목 ID 목록 필터","title":"Id"},"description":"마이페이지 항목 ID 목록 필터"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"소유자 ID 목록 필터","title":"User Id"},"description":"소유자 ID 목록 필터"},{"name":"agent_data_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"에이전트 원본 ID 목록 필터","title":"Agent Data Id"},"description":"에이전트 원본 ID 목록 필터"},{"name":"user_my_agent_title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"사용자 설정 이름 키워드 검색","title":"User My Agent Title"},"description":"사용자 설정 이름 키워드 검색"},{"name":"user_my_agent_description","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"사용자 설정 설명 키워드 검색","title":"User My Agent Description"},"description":"사용자 설정 설명 키워드 검색"},{"name":"is_favorite","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"즐겨찾기 여부 필터","title":"Is Favorite"},"description":"즐겨찾기 여부 필터"},{"name":"operation_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OperationTypeEnum","description":"검색 조건 결합 연산자","default":"AND"},"description":"검색 조건 결합 연산자"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"created_at","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_MyPageAgentResponseWithScenarios_"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["agents"],"summary":"마이페이지에 에이전트 추가","description":"에이전트를 사용자 마이페이지에 추가합니다.","operationId":"add_agent_to_my_page_endpoint_v1_agents_my_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPageAgentCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPageAgentResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/my/{my_page_id}":{"get":{"tags":["agents"],"summary":"마이페이지 에이전트 조회","description":"특정 마이페이지 에이전트 항목을 조회합니다.","operationId":"get_my_page_agent_endpoint_v1_agents_my__my_page_id__get","parameters":[{"name":"my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"My Page Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPageAgentResponseWithScenarios"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["agents"],"summary":"마이페이지 에이전트 수정 (Upsert)","description":"마이페이지 에이전트 항목을 수정합니다. 존재하지 않으면 새로 생성합니다.","operationId":"upsert_my_page_agent_endpoint_v1_agents_my__my_page_id__put","parameters":[{"name":"my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"My Page Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPageAgentCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPageAgentResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["agents"],"summary":"마이페이지 에이전트 부분 수정","description":"마이페이지 에이전트 항목을 부분적으로 수정합니다.","operationId":"patch_my_page_agent_endpoint_v1_agents_my__my_page_id__patch","parameters":[{"name":"my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"My Page Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPageAgentUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyPageAgentResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["agents"],"summary":"마이페이지에서 에이전트 제거","description":"마이페이지에서 특정 에이전트 항목을 제거합니다.","operationId":"delete_my_page_agent_endpoint_v1_agents_my__my_page_id__delete","parameters":[{"name":"my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"My Page Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/role":{"get":{"tags":["agents"],"summary":"에이전트 역할 권한 목록 조회","description":"검색 조건에 따른 에이전트 역할 권한 목록을 조회합니다.","operationId":"list_agent_roles_v1_agents_role_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"권한 매핑 레코드 ID 목록 필터","title":"Id"},"description":"권한 매핑 레코드 ID 목록 필터"},{"name":"agent_data_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"에이전트 데이터 ID 목록 필터","title":"Agent Data Id"},"description":"에이전트 데이터 ID 목록 필터"},{"name":"role_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"역할/권한 ID 목록 필터","title":"Role Id"},"description":"역할/권한 ID 목록 필터"},{"name":"operation_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OperationTypeEnum","description":"검색 조건 결합 연산자","default":"AND"},"description":"검색 조건 결합 연산자"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"created_at","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_AgentRoleResponse_"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["agents"],"summary":"에이전트 역할 권한 생성","description":"새로운 에이전트 역할 권한을 생성합니다.","operationId":"create_agent_role_endpoint_v1_agents_role_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRoleCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRoleResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/role/{role_id}":{"get":{"tags":["agents"],"summary":"에이전트 역할 권한 조회","description":"특정 에이전트 역할 권한을 조회합니다.","operationId":"get_agent_role_endpoint_v1_agents_role__role_id__get","parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Role Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRoleResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["agents"],"summary":"에이전트 역할 권한 수정 (Upsert)","description":"에이전트 역할 권한을 수정합니다. 존재하지 않으면 새로 생성합니다.","operationId":"upsert_agent_role_endpoint_v1_agents_role__role_id__put","parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Role Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRoleCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRoleResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["agents"],"summary":"에이전트 역할 권한 부분 수정","description":"에이전트 역할 권한을 부분적으로 수정합니다.","operationId":"patch_agent_role_endpoint_v1_agents_role__role_id__patch","parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Role Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRoleUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRoleResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["agents"],"summary":"에이전트 역할 권한 삭제","description":"에이전트 역할 권한을 삭제합니다.","operationId":"delete_agent_role_endpoint_v1_agents_role__role_id__delete","parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Role Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/nodes":{"get":{"tags":["nodes"],"summary":"노드 목록 조회","description":"조건부 필터링을 통한 노드 목록을 조회합니다. 결과는 항상 {user_id, agt_scenarios_data_id, nodes: []} 구조입니다.","operationId":"list_nodes_v1_nodes_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"노드 레코드 ID 목록 필터","title":"Id"},"description":"노드 레코드 ID 목록 필터"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"소유자 ID 목록 필터","title":"User Id"},"description":"소유자 ID 목록 필터"},{"name":"agt_scenarios_data_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"시나리오 데이터 ID 목록 필터","title":"Agt Scenarios Data Id"},"description":"시나리오 데이터 ID 목록 필터"},{"name":"node_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"노드 ID (문자열) 목록 필터","title":"Node Id"},"description":"노드 ID (문자열) 목록 필터"},{"name":"node_type","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"노드 타입 목록 필터 (start, agent, end, agent_0)","title":"Node Type"},"description":"노드 타입 목록 필터 (start, agent, end, agent_0)"},{"name":"agent_my_page_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"에이전트 ID 목록 필터","title":"Agent My Page Id"},"description":"에이전트 ID 목록 필터"},{"name":"node_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"노드 이름 키워드 검색","title":"Node Name"},"description":"노드 이름 키워드 검색"},{"name":"operation_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OperationTypeEnum","description":"검색 조건 결합 연산자","default":"AND"},"description":"검색 조건 결합 연산자"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"created_at","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_NodeDataResponse_"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["nodes"],"summary":"노드 생성","description":"실제 입력 구조 {user_id, agt_scenarios_data_id, nodes: []} 로 노드를 생성합니다.","operationId":"create_nodes_endpoint_v1_nodes_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDataRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/nodes/{node_id}":{"get":{"tags":["nodes"],"summary":"단일 노드 조회","description":"agt_node_data 테이블의 PK ID로 단일 노드를 조회합니다. 결과는 {user_id, agt_scenarios_data_id, nodes: [해당노드]} 형태입니다.","operationId":"get_node_endpoint_v1_nodes__node_id__get","parameters":[{"name":"node_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"agt_node_data 테이블의 PK ID","title":"Node Id"},"description":"agt_node_data 테이블의 PK ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["nodes"],"summary":"단일 노드 교체","description":"agt_node_data 테이블의 PK ID로 단일 노드를 교체합니다. 입력은 {user_id, agt_scenarios_data_id, nodes: [새로운노드]} 형태입니다.","operationId":"replace_node_endpoint_v1_nodes__node_id__put","parameters":[{"name":"node_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"agt_node_data 테이블의 PK ID","title":"Node Id"},"description":"agt_node_data 테이블의 PK ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDataRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["nodes"],"summary":"단일 노드 부분 수정","description":"agt_node_data 테이블의 PK ID로 단일 노드를 부분 수정합니다. 입력은 {nodes: [수정할노드]} 형태입니다.","operationId":"update_node_endpoint_v1_nodes__node_id__patch","parameters":[{"name":"node_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"agt_node_data 테이블의 PK ID","title":"Node Id"},"description":"agt_node_data 테이블의 PK ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDataUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["nodes"],"summary":"단일 노드 삭제","description":"agt_node_data 테이블의 PK ID로 단일 노드를 삭제합니다.","operationId":"delete_node_endpoint_v1_nodes__node_id__delete","parameters":[{"name":"node_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"agt_node_data 테이블의 PK ID","title":"Node Id"},"description":"agt_node_data 테이블의 PK ID"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/nodes/scenario/{agt_scenarios_data_id}":{"put":{"tags":["nodes"],"summary":"시나리오 전체 노드 교체","description":"특정 시나리오의 모든 노드를 삭제하고 새로운 노드들로 교체합니다.","operationId":"replace_nodes_by_scenario_endpoint_v1_nodes_scenario__agt_scenarios_data_id__put","parameters":[{"name":"agt_scenarios_data_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"교체할 시나리오의 ID","title":"Agt Scenarios Data Id"},"description":"교체할 시나리오의 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDataRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["nodes"],"summary":"시나리오 전체 노드 수정 (Upsert)","description":"특정 시나리오의 노드들을 업데이트하거나 새로 추가합니다 (Upsert).","operationId":"update_nodes_by_scenario_endpoint_v1_nodes_scenario__agt_scenarios_data_id__patch","parameters":[{"name":"agt_scenarios_data_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"수정할 시나리오의 ID","title":"Agt Scenarios Data Id"},"description":"수정할 시나리오의 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDataScenarioUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDataResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["nodes"],"summary":"시나리오 전체 노드 삭제","description":"특정 시나리오의 모든 노드를 삭제합니다.","operationId":"delete_nodes_by_scenario_endpoint_v1_nodes_scenario__agt_scenarios_data_id__delete","parameters":[{"name":"agt_scenarios_data_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"삭제할 시나리오의 ID","title":"Agt Scenarios Data Id"},"description":"삭제할 시나리오의 ID"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/nodes/scenario/my":{"get":{"tags":["nodes"],"summary":"마이페이지 노드 목록 조회","description":"마이페이지 기반으로 노드 목록을 조회합니다. 필터링 및 페이지네이션을 지원합니다.","operationId":"list_nodes_my_page_v1_nodes_scenario_my_get","parameters":[{"name":"scenario_my_page_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"마이페이지 ID 목록 필터","title":"Scenario My Page Id"},"description":"마이페이지 ID 목록 필터"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"유저 ID 목록 필터","title":"User Id"},"description":"유저 ID 목록 필터"},{"name":"agt_scenarios_data_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"원본 시나리오 ID 목록 필터","title":"Agt Scenarios Data Id"},"description":"원본 시나리오 ID 목록 필터"},{"name":"node_type","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"노드 타입 필터","title":"Node Type"},"description":"노드 타입 필터"},{"name":"agent_my_page_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"에이전트 ID 목록 필터","title":"Agent My Page Id"},"description":"에이전트 ID 목록 필터"},{"name":"node_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"노드 ID 목록 필터","title":"Node Id"},"description":"노드 ID 목록 필터"},{"name":"node_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"노드 이름 키워드 검색","title":"Node Name"},"description":"노드 이름 키워드 검색"},{"name":"operation_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OperationTypeEnum","description":"검색 조건 결합 연산자","default":"AND"},"description":"검색 조건 결합 연산자"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"created_at","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_NodeDataMyPageResponse_"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["nodes"],"summary":"마이페이지 노드 생성","description":"마이페이지 ID 기반으로 노드를 생성합니다.","operationId":"create_nodes_my_page_v1_nodes_scenario_my_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDataMyPageRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDataMyPageResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/nodes/scenario/my/{scenario_my_page_id}":{"put":{"tags":["nodes"],"summary":"마이페이지 노드 전체 교체","description":"마이페이지 ID 기반으로 모든 노드를 교체합니다.","operationId":"replace_nodes_my_page_v1_nodes_scenario_my__scenario_my_page_id__put","parameters":[{"name":"scenario_my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"마이페이지 ID","title":"Scenario My Page Id"},"description":"마이페이지 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDataMyPageUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDataMyPageResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["nodes"],"summary":"마이페이지 노드 부분 수정","description":"마이페이지 ID 기반으로 노드를 부분 수정합니다.","operationId":"update_nodes_my_page_v1_nodes_scenario_my__scenario_my_page_id__patch","parameters":[{"name":"scenario_my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"마이페이지 ID","title":"Scenario My Page Id"},"description":"마이페이지 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDataMyPageUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDataMyPageResponse"}}}},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["nodes"],"summary":"마이페이지 노드 삭제","description":"마이페이지 ID 기반으로 노드를 삭제합니다.","operationId":"delete_nodes_my_page_v1_nodes_scenario_my__scenario_my_page_id__delete","parameters":[{"name":"scenario_my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"마이페이지 ID","title":"Scenario My Page Id"},"description":"마이페이지 ID"},{"name":"user_id","in":"query","required":true,"schema":{"type":"string","description":"요청 유저 ID","title":"User Id"},"description":"요청 유저 ID"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"요청한 리소스를 찾을 수 없습니다."},"403":{"description":"이 작업을 수행할 권한이 없습니다."},"409":{"description":"리소스 충돌이 발생했습니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/edges":{"get":{"tags":["edges"],"summary":"search edges","description":"조건부 필터링 및 페이지네이션을 통해 엣지 목록을 조회합니다.","operationId":"list_edges_v1_edges_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"PK ID 목록 필터","title":"Id"},"description":"PK ID 목록 필터"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"소유자 ID 목록 필터","title":"User Id"},"description":"소유자 ID 목록 필터"},{"name":"agt_scenarios_data_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"시나리오 데이터 ID 목록 필터","title":"Agt Scenarios Data Id"},"description":"시나리오 데이터 ID 목록 필터"},{"name":"edge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"엣지 ID (문자열) 목록 필터","title":"Edge Id"},"description":"엣지 ID (문자열) 목록 필터"},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Source Node ID 키워드 검색","title":"Source"},"description":"Source Node ID 키워드 검색"},{"name":"target","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Target Node ID 키워드 검색","title":"Target"},"description":"Target Node ID 키워드 검색"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"엣지 타입 키워드 검색","title":"Type"},"description":"엣지 타입 키워드 검색"},{"name":"operation_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OperationTypeEnum","description":"검색 조건 결합 연산자","default":"AND"},"description":"검색 조건 결합 연산자"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"created_at","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_EdgeDataResponse_"}}}},"404":{"description":"EdgeData를 찾을 수 없습니다"},"500":{"description":"서버 내부 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["edges"],"summary":"create edges","description":"엣지를 생성합니다. 입력: {user_id, agt_scenarios_data_id, edges: []}, 출력: 동일한 구조","operationId":"create_edges_endpoint_v1_edges_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EdgeDataRequest","description":"생성할 엣지 데이터"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EdgeDataResponse"}}}},"404":{"description":"EdgeData를 찾을 수 없습니다"},"500":{"description":"서버 내부 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/edges/{edge_id}":{"get":{"tags":["edges"],"summary":"get edge by id","description":"PK ID로 단일 엣지를 조회합니다. 출력: {user_id, agt_scenarios_data_id, edges: [해당엣지]}","operationId":"get_edge_endpoint_v1_edges__edge_id__get","parameters":[{"name":"edge_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"조회할 엣지의 PK ID","title":"Edge Id"},"description":"조회할 엣지의 PK ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/EdgeDataResponse"},{"type":"null"}],"title":"Response Get Edge Endpoint V1 Edges Edge Id Get"}}}},"404":{"description":"EdgeData를 찾을 수 없습니다"},"500":{"description":"서버 내부 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["edges"],"summary":"upsert edge by id","description":"PK ID로 단일 엣지를 전체 교체합니다. 입력: {user_id, agt_scenarios_data_id, edges: [새로운엣지]}, 출력: 동일한 구조","operationId":"upsert_edge_endpoint_v1_edges__edge_id__put","parameters":[{"name":"edge_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"교체할 엣지의 PK ID","title":"Edge Id"},"description":"교체할 엣지의 PK ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EdgeDataRequest","description":"교체할 엣지 데이터"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/EdgeDataResponse"},{"type":"null"}],"title":"Response Upsert Edge Endpoint V1 Edges Edge Id Put"}}}},"404":{"description":"EdgeData를 찾을 수 없습니다"},"500":{"description":"서버 내부 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["edges"],"summary":"update edge by id","description":"PK ID로 단일 엣지를 부분 수정합니다. 입력: {edges: [수정할엣지]}, 출력: {user_id, agt_scenarios_data_id, edges: [수정된엣지]}","operationId":"update_edge_endpoint_v1_edges__edge_id__patch","parameters":[{"name":"edge_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"수정할 엣지의 PK ID","title":"Edge Id"},"description":"수정할 엣지의 PK ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EdgeDataUpdateRequest","description":"부분 수정할 엣지 데이터"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/EdgeDataResponse"},{"type":"null"}],"title":"Response Update Edge Endpoint V1 Edges Edge Id Patch"}}}},"404":{"description":"EdgeData를 찾을 수 없습니다"},"500":{"description":"서버 내부 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["edges"],"summary":"delete edge by id","description":"PK ID로 단일 엣지를 삭제합니다.","operationId":"delete_edge_endpoint_v1_edges__edge_id__delete","parameters":[{"name":"edge_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"삭제할 엣지의 PK ID","title":"Edge Id"},"description":"삭제할 엣지의 PK ID"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"EdgeData를 찾을 수 없습니다"},"500":{"description":"서버 내부 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/edges/scenario/{agt_scenarios_data_id}":{"put":{"tags":["edges"],"summary":"시나리오 전체 엣지 교체","description":"특정 시나리오의 모든 엣지를 삭제하고 새로운 엣지들로 교체합니다.","operationId":"replace_edges_by_scenario_endpoint_v1_edges_scenario__agt_scenarios_data_id__put","parameters":[{"name":"agt_scenarios_data_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"교체할 시나리오의 ID","title":"Agt Scenarios Data Id"},"description":"교체할 시나리오의 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EdgeDataRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EdgeDataResponse"}}}},"404":{"description":"EdgeData를 찾을 수 없습니다"},"500":{"description":"서버 내부 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["edges"],"summary":"시나리오 전체 엣지 수정 (Upsert)","description":"특정 시나리오의 엣지들을 업데이트하거나 새로 추가합니다 (Upsert).","operationId":"update_edges_by_scenario_endpoint_v1_edges_scenario__agt_scenarios_data_id__patch","parameters":[{"name":"agt_scenarios_data_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"수정할 시나리오의 ID","title":"Agt Scenarios Data Id"},"description":"수정할 시나리오의 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EdgeDataScenarioUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EdgeDataResponse"}}}},"404":{"description":"EdgeData를 찾을 수 없습니다"},"500":{"description":"서버 내부 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["edges"],"summary":"시나리오 전체 엣지 삭제","description":"특정 시나리오의 모든 엣지를 삭제합니다.","operationId":"delete_edges_by_scenario_endpoint_v1_edges_scenario__agt_scenarios_data_id__delete","parameters":[{"name":"agt_scenarios_data_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"삭제할 시나리오의 ID","title":"Agt Scenarios Data Id"},"description":"삭제할 시나리오의 ID"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"EdgeData를 찾을 수 없습니다"},"500":{"description":"서버 내부 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/edges/scenario/my":{"get":{"tags":["edges"],"summary":"마이페이지 엣지 목록 조회","description":"마이페이지 기반으로 엣지 목록을 조회합니다. 필터링 및 페이지네이션을 지원합니다.","operationId":"list_edges_my_page_v1_edges_scenario_my_get","parameters":[{"name":"scenario_my_page_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"마이페이지 ID 목록 필터","title":"Scenario My Page Id"},"description":"마이페이지 ID 목록 필터"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"유저 ID 목록 필터","title":"User Id"},"description":"유저 ID 목록 필터"},{"name":"agt_scenarios_data_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"원본 시나리오 ID 목록 필터","title":"Agt Scenarios Data Id"},"description":"원본 시나리오 ID 목록 필터"},{"name":"edge_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"엣지 ID 목록 필터","title":"Edge Id"},"description":"엣지 ID 목록 필터"},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Source Node ID 키워드 검색","title":"Source"},"description":"Source Node ID 키워드 검색"},{"name":"target","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Target Node ID 키워드 검색","title":"Target"},"description":"Target Node ID 키워드 검색"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"엣지 타입 키워드 검색","title":"Type"},"description":"엣지 타입 키워드 검색"},{"name":"operation_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OperationTypeEnum","description":"검색 조건 결합 연산자","default":"AND"},"description":"검색 조건 결합 연산자"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"created_at","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_EdgeDataMyPageResponse_"}}}},"404":{"description":"EdgeData를 찾을 수 없습니다"},"500":{"description":"서버 내부 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["edges"],"summary":"마이페이지 엣지 생성","description":"마이페이지 ID 기반으로 엣지를 생성합니다.","operationId":"create_edges_my_page_v1_edges_scenario_my_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EdgeDataMyPageRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EdgeDataMyPageResponse"}}}},"404":{"description":"EdgeData를 찾을 수 없습니다"},"500":{"description":"서버 내부 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/edges/scenario/my/{scenario_my_page_id}":{"put":{"tags":["edges"],"summary":"마이페이지 엣지 전체 교체","description":"마이페이지 ID 기반으로 모든 엣지를 교체합니다.","operationId":"replace_edges_my_page_v1_edges_scenario_my__scenario_my_page_id__put","parameters":[{"name":"scenario_my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"마이페이지 ID","title":"Scenario My Page Id"},"description":"마이페이지 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EdgeDataMyPageRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EdgeDataMyPageResponse"}}}},"404":{"description":"EdgeData를 찾을 수 없습니다"},"500":{"description":"서버 내부 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["edges"],"summary":"마이페이지 엣지 부분 수정","description":"마이페이지 ID 기반으로 엣지를 부분 수정합니다.","operationId":"update_edges_my_page_v1_edges_scenario_my__scenario_my_page_id__patch","parameters":[{"name":"scenario_my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"마이페이지 ID","title":"Scenario My Page Id"},"description":"마이페이지 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EdgeDataMyPageUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EdgeDataMyPageResponse"}}}},"404":{"description":"EdgeData를 찾을 수 없습니다"},"500":{"description":"서버 내부 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["edges"],"summary":"마이페이지 엣지 삭제","description":"마이페이지 ID 기반으로 엣지를 삭제합니다.","operationId":"delete_edges_my_page_v1_edges_scenario_my__scenario_my_page_id__delete","parameters":[{"name":"scenario_my_page_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"마이페이지 ID","title":"Scenario My Page Id"},"description":"마이페이지 ID"},{"name":"user_id","in":"query","required":true,"schema":{"type":"string","description":"요청 유저 ID","title":"User Id"},"description":"요청 유저 ID"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"EdgeData를 찾을 수 없습니다"},"500":{"description":"서버 내부 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/graphs/":{"get":{"tags":["graphs"],"summary":"[Deprecated] 그래프 목록 조회","description":"[Deprecated] JIT 방식으로 변경되어 더 이상 저장된 그래프를 조회하지 않습니다.","operationId":"list_graphs_api_v1_graphs__get","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"유저 ID","title":"User Id"},"description":"유저 ID"},{"name":"agt_scenarios_data_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"agt_scenarios_data_id","title":"Agt Scenarios Data Id"},"description":"agt_scenarios_data_id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response List Graphs Api V1 Graphs Get"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["graphs"],"summary":"스테이트그래프 테스트 생성","description":"스테이트그래프를 테스트로 생성합니다 (저장하지 않음). 실제 사용은 invoke/sse/websocket API에서 JIT로 처리됩니다.","operationId":"create_graph_api_v1_graphs__post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphRequestDTO"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["graphs"],"summary":"[Deprecated] 그래프 삭제","description":"[Deprecated] JIT 방식으로 변경되어 삭제할 그래프가 메모리에 없습니다.","operationId":"delete_graph_api_v1_graphs__delete","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"유저 ID","title":"User Id"},"description":"유저 ID"},{"name":"agt_scenarios_data_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"agt_scenarios_data_id","title":"Agt Scenarios Data Id"},"description":"agt_scenarios_data_id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Graph Api V1 Graphs Delete"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/websocket-keys":{"get":{"tags":["websocket-keys"],"summary":"WebSocketKey 목록 조회 및 필터링","description":"WebSocketKey 목록을 조회하고 다양한 조건으로 필터링합니다.","operationId":"search_websocket_keys_endpoint_v1_websocket_keys_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"WebSocketKey ID로 필터링","title":"Id"},"description":"WebSocketKey ID로 필터링"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"사용자 ID로 필터링","title":"User Id"},"description":"사용자 ID로 필터링"},{"name":"scenario_my_page_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"시나리오 마이페이지 ID로 필터링","title":"Scenario My Page Id"},"description":"시나리오 마이페이지 ID로 필터링"},{"name":"thread_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"스레드 ID로 필터링 (Text)","title":"Thread Id"},"description":"스레드 ID로 필터링 (Text)"},{"name":"qa_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"QA ID로 필터링 (Text)","title":"Qa Id"},"description":"QA ID로 필터링 (Text)"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드 (예: id, user_id, created_at)","default":"id","title":"Sort By"},"description":"정렬 기준 필드 (예: id, user_id, created_at)"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/WebSocketKeySortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_WebSocketKeyResponseDTO_"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["websocket-keys"],"summary":"새로운 WebSocketKey 생성","description":"user_id와 scenario_my_page_id를 기반으로 항상 새로운 WebSocketKey를 생성합니다. thread_id와 qa_id는 내부적으로 고유하게 생성됩니다.","operationId":"create_websocket_key_endpoint_v1_websocket_keys_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebSocketKeyCreateDTO"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebSocketKeyResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/websocket-keys/with-thread-id":{"post":{"tags":["websocket-keys"],"summary":"새로운 WebSocketKey 생성 (thread_id 제공)","description":"user_id, scenario_my_page_id, thread_id를 기반으로 항상 새로운 WebSocketKey를 생성합니다. qa_id는 내부적으로 고유하게 생성됩니다.","operationId":"create_websocket_key_with_thread_id_endpoint_v1_websocket_keys_with_thread_id_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebSocketKeyCreateWithThreadIdDTO"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebSocketKeyResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/websocket-keys/{id}":{"get":{"tags":["websocket-keys"],"summary":"ID로 WebSocketKey 조회","description":"특정 ID로 WebSocketKey 정보를 조회합니다.","operationId":"get_websocket_key_endpoint_v1_websocket_keys__id__get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"조회할 WebSocketKey의 ID","title":"Id"},"description":"조회할 WebSocketKey의 ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebSocketKeyResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["websocket-keys"],"summary":"WebSocketKey 전체 수정","description":"ID로 특정 WebSocketKey 정보를 전체 수정합니다.","operationId":"update_websocket_key_endpoint_v1_websocket_keys__id__put","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"수정할 WebSocketKey의 ID","title":"Id"},"description":"수정할 WebSocketKey의 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebSocketKeyUpdateDTO","description":"수정할 WebSocketKey 정보"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebSocketKeyResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["websocket-keys"],"summary":"WebSocketKey 부분 수정","description":"ID로 특정 WebSocketKey 정보를 부분적으로 수정합니다.","operationId":"patch_websocket_key_endpoint_v1_websocket_keys__id__patch","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"부분 수정할 WebSocketKey의 ID","title":"Id"},"description":"부분 수정할 WebSocketKey의 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebSocketKeyPatchDTO","description":"부분 수정할 WebSocketKey 정보"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebSocketKeyResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["websocket-keys"],"summary":"WebSocketKey 삭제","description":"특정 ID의 WebSocketKey를 삭제합니다.","operationId":"delete_websocket_key_endpoint_v1_websocket_keys__id__delete","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"삭제할 WebSocketKey의 ID","title":"Id"},"description":"삭제할 WebSocketKey의 ID"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/titles":{"get":{"tags":["titles"],"summary":"제목 목록 조회 및 필터링","description":"제목 목록을 조회하고 다양한 조건으로 필터링합니다. thread_id, qa_id는 Text로 처리됩니다.","operationId":"search_titles_endpoint_v1_titles_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"제목 ID로 필터링","title":"Id"},"description":"제목 ID로 필터링"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"사용자 ID로 필터링","title":"User Id"},"description":"사용자 ID로 필터링"},{"name":"scenario_my_page_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"시나리오 마이페이지 ID로 필터링","title":"Scenario My Page Id"},"description":"시나리오 마이페이지 ID로 필터링"},{"name":"thread_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"스레드 ID로 필터링 (Text)","title":"Thread Id"},"description":"스레드 ID로 필터링 (Text)"},{"name":"qa_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"QA ID로 필터링 (Text)","title":"Qa Id"},"description":"QA ID로 필터링 (Text)"},{"name":"title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"제목 내용으로 필터링 (부분 일치)","title":"Title"},"description":"제목 내용으로 필터링 (부분 일치)"},{"name":"message","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"메시지 내용으로 필터링 (부분 일치)","title":"Message"},"description":"메시지 내용으로 필터링 (부분 일치)"},{"name":"is_flag","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"플래그 여부로 필터링","title":"Is Flag"},"description":"플래그 여부로 필터링"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"id","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/TitleSortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_TitleResponseDTO_"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["titles"],"summary":"질문으로부터 제목 생성 및 저장","description":"질문을 받아 LLM으로 제목을 생성하고, DB에 저장합니다. thread_id, qa_id는 Text로 처리됩니다.","operationId":"create_title_endpoint_v1_titles_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TitleServiceDTO"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TitleResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/titles/{id}":{"get":{"tags":["titles"],"summary":"ID로 제목 조회","description":"특정 ID로 제목 정보를 조회합니다.","operationId":"get_title_endpoint_v1_titles__id__get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"조회할 제목의 ID","title":"Id"},"description":"조회할 제목의 ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TitleResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["titles"],"summary":"제목 전체 수정","description":"ID로 특정 제목 정보를 전체 수정합니다. thread_id, qa_id는 Text로 처리됩니다.","operationId":"update_title_endpoint_v1_titles__id__put","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"수정할 제목의 ID","title":"Id"},"description":"수정할 제목의 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TitleCreateDTO","description":"수정할 제목 정보"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TitleResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["titles"],"summary":"제목 부분 수정 (title만)","description":"id로 특정 title의 제목만 부분적으로 수정합니다.","operationId":"patch_title_endpoint_v1_titles__id__patch","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TitlePatchDTO"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TitleResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["titles"],"summary":"제목 삭제","description":"특정 ID의 제목을 삭제합니다.","operationId":"delete_title_endpoint_v1_titles__id__delete","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"삭제할 제목의 ID","title":"Id"},"description":"삭제할 제목의 ID"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/invoke":{"post":{"tags":["invoke"],"summary":"에이전트에 메시지 전송 및 응답 반환","description":"에이전트에 메시지를 전송하고 생성된 응답을 한 번에 반환합니다.","operationId":"invoke_agent_v1_invoke_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvokeInputDTO"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvokeResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/invoke/sse":{"post":{"tags":["invoke"],"summary":"SSE 스트리밍으로 에이전트 실행","description":"Server-Sent Events를 통해 에이전트 실행 과정을 실시간으로 스트리밍합니다.","operationId":"invoke_agent_sse_v1_invoke_sse_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SSEInputDTO"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/invoke/sse/improved":{"post":{"tags":["invoke"],"summary":"세분화된 메시지 스트리밍 SSE 엔드포인트","description":"LangGraph Platform 호환 세분화된 메시지 스트리밍을 지원하는 SSE 엔드포인트입니다.\n\n ## 이벤트 타입\n - **message_metadata**: 실행 컨텍스트 정보 (노드, 스텝, 모델)\n - **message_partial**: AI 토큰 실시간 스트리밍\n - **message_complete**: ToolMessage 완료 이벤트\n - **process**: 노드 진행 상황\n - **message**: 최종 완성된 응답\n - **complete**: 실행 완료","operationId":"invoke_agent_sse_improved_v1_invoke_sse_improved_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SSEInputDTO"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/histories":{"get":{"tags":["histories"],"summary":"대화 히스토리 목록 조회 및 필터링","description":"대화 히스토리 목록을 조회하고 다양한 조건으로 필터링합니다.","operationId":"search_histories_endpoint_v1_histories_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"히스토리 ID로 필터링","title":"Id"},"description":"히스토리 ID로 필터링"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"사용자 ID로 필터링","title":"User Id"},"description":"사용자 ID로 필터링"},{"name":"scenario_my_page_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"시나리오 마이페이지 ID로 필터링","title":"Scenario My Page Id"},"description":"시나리오 마이페이지 ID로 필터링"},{"name":"thread_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"스레드 ID로 필터링 (Text)","title":"Thread Id"},"description":"스레드 ID로 필터링 (Text)"},{"name":"qa_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"QA ID로 필터링 (Text)","title":"Qa Id"},"description":"QA ID로 필터링 (Text)"},{"name":"attributes","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"속성으로 필터링","title":"Attributes"},"description":"속성으로 필터링"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"id","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서 (기본: DESC - 최신 항목 먼저)","default":"DESC"},"description":"정렬 순서 (기본: DESC - 최신 항목 먼저)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_HistoryResponseDTO_"}}}},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["histories"],"summary":"히스토리 수동 생성","description":"히스토리를 수동으로 생성합니다.","operationId":"create_history_endpoint_v1_histories_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryCreateDTO"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryResponseDTO"}}}},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/histories/memory_config":{"get":{"tags":["histories"],"summary":"히스토리 메모리 설정 목록 조회","description":"히스토리 메모리 설정 목록을 조회하고 필터링합니다.","operationId":"get_memory_configs_v1_histories_memory_config_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"메모리 설정 ID로 필터링","title":"Id"},"description":"메모리 설정 ID로 필터링"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"id","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_HistoryMemoryConfigResponseDTO_"}}}},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["histories"],"summary":"히스토리 메모리 설정 생성","description":"새로운 히스토리 메모리 설정을 생성합니다.","operationId":"create_memory_config_v1_histories_memory_config_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryMemoryConfigCreateDTO"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryMemoryConfigResponseDTO"}}}},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/histories/memory_config/{id}":{"get":{"tags":["histories"],"summary":"ID로 히스토리 메모리 설정 조회","description":"특정 ID로 히스토리 메모리 설정을 조회합니다.","operationId":"get_memory_config_v1_histories_memory_config__id__get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"조회할 메모리 설정의 ID","title":"Id"},"description":"조회할 메모리 설정의 ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryMemoryConfigResponseDTO"}}}},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["histories"],"summary":"히스토리 메모리 설정 수정 (Upsert)","description":"히스토리 메모리 설정을 수정합니다. 존재하지 않으면 새로 생성합니다.","operationId":"upsert_memory_config_v1_histories_memory_config__id__put","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"수정할 메모리 설정의 ID","title":"Id"},"description":"수정할 메모리 설정의 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryMemoryConfigCreateDTO","description":"메모리 설정 정보"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryMemoryConfigResponseDTO"}}}},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["histories"],"summary":"히스토리 메모리 설정 부분 수정","description":"히스토리 메모리 설정을 부분적으로 수정합니다.","operationId":"update_memory_config_v1_histories_memory_config__id__patch","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"수정할 메모리 설정의 ID","title":"Id"},"description":"수정할 메모리 설정의 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryMemoryConfigUpdateDTO","description":"수정할 메모리 설정 정보"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryMemoryConfigResponseDTO"}}}},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["histories"],"summary":"히스토리 메모리 설정 삭제","description":"특정 ID의 히스토리 메모리 설정을 삭제합니다.","operationId":"delete_memory_config_v1_histories_memory_config__id__delete","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"삭제할 메모리 설정의 ID","title":"Id"},"description":"삭제할 메모리 설정의 ID"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/histories/relationship":{"get":{"tags":["histories"],"summary":"히스토리 메모리 시나리오 연결 목록 조회","description":"히스토리 메모리 시나리오 연결 목록을 조회하고 필터링합니다.","operationId":"get_memory_scenario_relationships_v1_histories_relationship_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"연결 레코드 ID로 필터링","title":"Id"},"description":"연결 레코드 ID로 필터링"},{"name":"scenario_data_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"시나리오 데이터 ID로 필터링","title":"Scenario Data Id"},"description":"시나리오 데이터 ID로 필터링"},{"name":"model_my_page_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"모델 마이페이지 ID로 필터링","title":"Model My Page Id"},"description":"모델 마이페이지 ID로 필터링"},{"name":"history_memory_config_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"히스토리 메모리 설정 ID로 필터링","title":"History Memory Config Id"},"description":"히스토리 메모리 설정 ID로 필터링"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"id","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_HistoryMemoryScenarioResponseDTO_"}}}},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["histories"],"summary":"히스토리 메모리 시나리오 연결 생성","description":"새로운 히스토리 메모리 시나리오 연결을 생성합니다.","operationId":"create_memory_scenario_relationship_v1_histories_relationship_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryMemoryScenarioCreateDTO"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryMemoryScenarioResponseDTO"}}}},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/histories/relationship/{id}":{"get":{"tags":["histories"],"summary":"ID로 히스토리 메모리 시나리오 연결 조회","description":"특정 ID로 히스토리 메모리 시나리오 연결을 조회합니다.","operationId":"get_memory_scenario_relationship_v1_histories_relationship__id__get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"조회할 연결 레코드의 ID","title":"Id"},"description":"조회할 연결 레코드의 ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryMemoryScenarioResponseDTO"}}}},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["histories"],"summary":"히스토리 메모리 시나리오 연결 수정 (Upsert)","description":"히스토리 메모리 시나리오 연결을 수정합니다. 존재하지 않으면 새로 생성합니다.","operationId":"upsert_memory_scenario_relationship_v1_histories_relationship__id__put","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"수정할 연결 레코드의 ID","title":"Id"},"description":"수정할 연결 레코드의 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryMemoryScenarioCreateDTO","description":"연결 정보"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryMemoryScenarioResponseDTO"}}}},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["histories"],"summary":"히스토리 메모리 시나리오 연결 부분 수정","description":"히스토리 메모리 시나리오 연결을 부분적으로 수정합니다.","operationId":"update_memory_scenario_relationship_v1_histories_relationship__id__patch","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"수정할 연결 레코드의 ID","title":"Id"},"description":"수정할 연결 레코드의 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryMemoryScenarioUpdateDTO","description":"수정할 연결 정보"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryMemoryScenarioResponseDTO"}}}},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["histories"],"summary":"히스토리 메모리 시나리오 연결 삭제","description":"특정 ID의 히스토리 메모리 시나리오 연결을 삭제합니다.","operationId":"delete_memory_scenario_relationship_v1_histories_relationship__id__delete","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"삭제할 연결 레코드의 ID","title":"Id"},"description":"삭제할 연결 레코드의 ID"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/histories/thread/{user_id}/{thread_id}":{"get":{"tags":["histories"],"summary":"스레드 히스토리 조회","description":"특정 사용자 및 스레드의 모든 히스토리를 조회합니다.","operationId":"get_thread_histories_endpoint_v1_histories_thread__user_id___thread_id__get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"사용자 ID","title":"User Id"},"description":"사용자 ID"},{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","description":"스레드 ID (Text)","title":"Thread Id"},"description":"스레드 ID (Text)"},{"name":"scenario_my_page_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"시나리오 마이페이지 ID (선택 사항)","title":"Scenario My Page Id"},"description":"시나리오 마이페이지 ID (선택 사항)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HistoryResponseDTO"},"title":"Response Get Thread Histories Endpoint V1 Histories Thread User Id Thread Id Get"}}}},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/histories/thread/{thread_id}":{"delete":{"tags":["histories"],"summary":"스레드 ID로 히스토리 및 관련 데이터 삭제","description":"특정 thread_id의 모든 히스토리와 관련 chatting 데이터를 삭제합니다. (agents.agt_history_data, chatting.checkpoints, chatting.checkpoint_writes, chatting.checkpoint_blobs)","operationId":"delete_histories_by_thread_id_endpoint_v1_histories_thread__thread_id__delete","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","description":"삭제할 스레드 ID (Text)","title":"Thread Id"},"description":"삭제할 스레드 ID (Text)"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/histories/{id}":{"get":{"tags":["histories"],"summary":"ID로 히스토리 조회","description":"특정 ID로 히스토리 정보를 조회합니다.","operationId":"get_history_endpoint_v1_histories__id__get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"조회할 히스토리의 ID","title":"Id"},"description":"조회할 히스토리의 ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryResponseDTO"}}}},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["histories"],"summary":"히스토리 삭제","description":"특정 ID의 히스토리를 삭제합니다.","operationId":"delete_history_endpoint_v1_histories__id__delete","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"삭제할 히스토리의 ID","title":"Id"},"description":"삭제할 히스토리의 ID"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/histories/{id}/answer":{"patch":{"tags":["histories"],"summary":"히스토리 답변 업데이트","description":"ID로 특정 히스토리의 답변을 업데이트합니다.","operationId":"update_history_answer_endpoint_v1_histories__id__answer_patch","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"업데이트할 히스토리의 ID","title":"Id"},"description":"업데이트할 히스토리의 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryUpdateAnswerDTO","description":"업데이트할 답변 정보"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryResponseDTO"}}}},"404":{"description":"찾을 수 없음"},"500":{"description":"내부 서버 오류"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/chats":{"get":{"tags":["chats"],"summary":"에이전트의 대화 기록 목록 및 검색","description":"필터, 정렬, 페이징을 지원하는 에이전트의 대화 기록 목록 조회 API (토큰 사용량 요약 포함)","operationId":"search_chats_endpoint_v1_chats_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"에이전트의 대화 기록 ID 필터","title":"Id"},"description":"에이전트의 대화 기록 ID 필터"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"유저 ID 필터","title":"User Id"},"description":"유저 ID 필터"},{"name":"scenario_my_page_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"시나리오 마이페이지 ID 필터","title":"Scenario My Page Id"},"description":"시나리오 마이페이지 ID 필터"},{"name":"thread_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"스레드 ID 필터 (Text)","title":"Thread Id"},"description":"스레드 ID 필터 (Text)"},{"name":"qa_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"QA ID 필터 (Text)","title":"Qa Id"},"description":"QA ID 필터 (Text)"},{"name":"agent_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"에이전트명 부분검색","title":"Agent Name"},"description":"에이전트명 부분검색"},{"name":"role","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"역할 부분검색","title":"Role"},"description":"역할 부분검색"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"카테고리 부분검색","title":"Category"},"description":"카테고리 부분검색"},{"name":"model_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"모델명 부분검색","title":"Model Name"},"description":"모델명 부분검색"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드명","default":"created_at","title":"Sort By"},"description":"정렬 기준 필드명"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서(ASC/DESC)","default":"DESC"},"description":"정렬 순서(ASC/DESC)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedChatResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["chats"],"summary":"에이전트의 대화 기록 생성","description":"user_id, scenario_my_page_id, thread_id, qa_id로 에이전트의 대화 기록을 생성합니다. (토큰 사용량 요약 및 성능 메트릭 자동 포함)","operationId":"create_chat_endpoint_v1_chats_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatServiceDTO","description":"에이전트의 대화 기록 생성 정보"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatCreateResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["chats"],"summary":"에이전트의 대화 기록 삭제","description":"user_id, scenario_my_page_id, thread_id, qa_id로 에이전트의 대화 기록을 삭제합니다.","operationId":"delete_chat_endpoint_v1_chats_delete","parameters":[{"name":"user_id","in":"query","required":true,"schema":{"type":"string","description":"유저 ID","title":"User Id"},"description":"유저 ID"},{"name":"scenario_my_page_id","in":"query","required":true,"schema":{"type":"integer","description":"시나리오 마이페이지 ID","title":"Scenario My Page Id"},"description":"시나리오 마이페이지 ID"},{"name":"thread_id","in":"query","required":true,"schema":{"type":"string","description":"스레드 ID (Text)","title":"Thread Id"},"description":"스레드 ID (Text)"},{"name":"qa_id","in":"query","required":true,"schema":{"type":"string","description":"QA ID (Text)","title":"Qa Id"},"description":"QA ID (Text)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"integer","title":"Response Delete Chat Endpoint V1 Chats Delete"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/dashboard/usage/models":{"post":{"tags":["dashboard"],"summary":"모델별 사용량 통계 조회","description":"특정 기간 동안의 모델별 토큰 사용량과 비용을 조회합니다.","operationId":"get_model_usage_v1_dashboard_usage_models_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelUsageRequestDTO"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ModelUsageResponseDTO"},"title":"Response Get Model Usage V1 Dashboard Usage Models Post"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["dashboard"],"summary":"모델별 사용량 통계 조회 (GET)","description":"특정 기간 동안의 모델별 토큰 사용량과 비용을 조회합니다. (GET 방식)","operationId":"get_model_usage_get_v1_dashboard_usage_models_get","parameters":[{"name":"user_id","in":"query","required":true,"schema":{"type":"string","description":"사용자 ID (예: '이박사')","title":"User Id"},"description":"사용자 ID (예: '이박사')"},{"name":"models","in":"query","required":true,"schema":{"type":"string","description":"조회할 모델 ID (쉼표로 구분, 예: 170,203,52 or 170)","title":"Models"},"description":"조회할 모델 ID (쉼표로 구분, 예: 170,203,52 or 170)"},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","description":"조회 시작일 (YYYY-MM-DD, 예: '2025-01-01')","title":"Start Date"},"description":"조회 시작일 (YYYY-MM-DD, 예: '2025-01-01')"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","description":"조회 종료일 (YYYY-MM-DD, 예: '2025-12-31')","title":"End Date"},"description":"조회 종료일 (YYYY-MM-DD, 예: '2025-12-31')"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ModelUsageResponseDTO"},"title":"Response Get Model Usage Get V1 Dashboard Usage Models Get"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/dashboard/usages/agents/statistics":{"post":{"tags":["dashboard"],"summary":"에이전트별 사용량 통계 조회","description":"특정 기간 동안의 에이전트별 토큰 사용량과 요청 통계를 조회합니다.","operationId":"get_agent_usage_statistics_post_v1_dashboard_usages_agents_statistics_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentUsageRequestDTO"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentUsageResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["dashboard"],"summary":"에이전트별 사용량 통계 조회 (GET)","description":"특정 기간 동안의 에이전트별 토큰 사용량과 요청 통계를 조회합니다. (GET 방식)","operationId":"get_agent_usage_statistics_get_v1_dashboard_usages_agents_statistics_get","parameters":[{"name":"user_id","in":"query","required":true,"schema":{"type":"string","description":"사용자 ID (예: '이박사')","title":"User Id"},"description":"사용자 ID (예: '이박사')"},{"name":"agent_my_page_id","in":"query","required":true,"schema":{"type":"string","description":"조회할 에이전트 마이페이지 ID (쉼표로 구분, 예: '1,2,3')","title":"Agent My Page Id"},"description":"조회할 에이전트 마이페이지 ID (쉼표로 구분, 예: '1,2,3')"},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","description":"조회 시작일 (YYYY-MM-DD, 예: '2025-01-01')","title":"Start Date"},"description":"조회 시작일 (YYYY-MM-DD, 예: '2025-01-01')"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","description":"조회 종료일 (YYYY-MM-DD, 예: '2025-12-31')","title":"End Date"},"description":"조회 종료일 (YYYY-MM-DD, 예: '2025-12-31')"},{"name":"granularity","in":"query","required":false,"schema":{"type":"string","description":"시계열 단위 (hour, day, week, month, year)","default":"day","title":"Granularity"},"description":"시계열 단위 (hour, day, week, month, year)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentUsageResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/dashboard/scenarios":{"post":{"tags":["dashboard"],"summary":"시나리오별 토큰 사용량 통계 조회","description":"특정 기간 동안의 시나리오별 토큰 사용량을 조회합니다. | 이전 사용 엔드포인트: /v1/tokens/stats","operationId":"get_scenario_usage_v1_dashboard_scenarios_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioUsageRequestDTO"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ScenarioUsageResponseDTO"},{"$ref":"#/components/schemas/SingleScenarioUsageResponseDTO"}],"title":"Response Get Scenario Usage V1 Dashboard Scenarios Post"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["dashboard"],"summary":"시나리오별 토큰 사용량 통계 조회 (GET)","description":"특정 기간 동안의 시나리오별 토큰 사용량을 조회합니다. (GET 방식) | 이전 사용 엔드포인트: /v1/tokens/stats","operationId":"get_scenario_usage_get_v1_dashboard_scenarios_get","parameters":[{"name":"user_id","in":"query","required":true,"schema":{"type":"string","description":"사용자 ID (예: '이박사')","title":"User Id"},"description":"사용자 ID (예: '이박사')"},{"name":"scenario_my_page_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"시나리오 마이페이지 ID (선택사항)","title":"Scenario My Page Id"},"description":"시나리오 마이페이지 ID (선택사항)"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"조회 시작일 (YYYY-MM-DD, 예: '2025-01-01')","title":"Start Date"},"description":"조회 시작일 (YYYY-MM-DD, 예: '2025-01-01')"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"조회 종료일 (YYYY-MM-DD, 예: '2025-12-31')","title":"End Date"},"description":"조회 종료일 (YYYY-MM-DD, 예: '2025-12-31')"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ScenarioUsageResponseDTO"},{"$ref":"#/components/schemas/SingleScenarioUsageResponseDTO"}],"title":"Response Get Scenario Usage Get V1 Dashboard Scenarios Get"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/memory/setting":{"get":{"tags":["memory"],"summary":"메모리 설정 목록 조회 (간소화)","description":"간소화된 메모리 설정 목록을 조회합니다.","operationId":"search_memory_settings_endpoint_v1_memory_setting_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"메모리 설정 ID로 필터링","title":"Id"},"description":"메모리 설정 ID로 필터링"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"사용자 ID로 필터링","title":"User Id"},"description":"사용자 ID로 필터링"},{"name":"user_model_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"모델 ID로 필터링","title":"User Model Id"},"description":"모델 ID로 필터링"},{"name":"min_max_tokens_before_summary","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"요약 전 토큰 수 최소값","title":"Min Max Tokens Before Summary"},"description":"요약 전 토큰 수 최소값"},{"name":"max_max_tokens_before_summary","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"요약 전 토큰 수 최대값","title":"Max Max Tokens Before Summary"},"description":"요약 전 토큰 수 최대값"},{"name":"min_messages_to_keep","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"유지 메시지 수 최소값","title":"Min Messages To Keep"},"description":"유지 메시지 수 최소값"},{"name":"max_messages_to_keep","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"유지 메시지 수 최대값","title":"Max Messages To Keep"},"description":"유지 메시지 수 최대값"},{"name":"operation_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OperationTypeEnum","description":"검색 조건 결합 연산자","default":"AND"},"description":"검색 조건 결합 연산자"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"id","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_MemorySettingResponseDTO_"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["memory"],"summary":"메모리 설정 생성 (간소화)","description":"간소화된 메모리 설정을 생성합니다.","operationId":"create_memory_setting_endpoint_v1_memory_setting_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemorySettingCreateDTO"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemorySettingResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/memory/setting/{id}":{"get":{"tags":["memory"],"summary":"ID로 메모리 설정 조회","description":"특정 ID로 메모리 설정 정보를 조회합니다.","operationId":"get_memory_setting_endpoint_v1_memory_setting__id__get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"조회할 메모리 설정의 ID","title":"Id"},"description":"조회할 메모리 설정의 ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemorySettingResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["memory"],"summary":"메모리 설정 전체 수정","description":"ID로 특정 메모리 설정 정보를 전체 수정합니다.","operationId":"update_memory_setting_endpoint_v1_memory_setting__id__put","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"수정할 메모리 설정의 ID","title":"Id"},"description":"수정할 메모리 설정의 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemorySettingCreateDTO","description":"수정할 메모리 설정 정보"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemorySettingResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["memory"],"summary":"메모리 설정 부분 수정","description":"ID로 특정 메모리 설정을 부분적으로 수정합니다.","operationId":"patch_memory_setting_endpoint_v1_memory_setting__id__patch","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","title":"Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemorySettingPatchDTO"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemorySettingResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["memory"],"summary":"메모리 설정 삭제","description":"특정 ID의 메모리 설정을 삭제합니다.","operationId":"delete_memory_setting_endpoint_v1_memory_setting__id__delete","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"삭제할 메모리 설정의 ID","title":"Id"},"description":"삭제할 메모리 설정의 ID"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/model-profiles/":{"post":{"tags":["model-profiles"],"summary":"모델 프로필 조회","description":"LLM 모델의 capabilities 정보를 조회합니다.\n\n **단일 모델 조회:**\n ```json\n {\n \"provider\": \"openai\",\n \"model_name\": \"gpt-4o-mini\"\n }\n ```\n\n **여러 모델 비교:**\n ```json\n {\n \"models\": [\n {\"provider\": \"openai\", \"model_name\": \"gpt-4o-mini\"},\n {\"provider\": \"anthropic\", \"model_name\": \"claude-3-5-sonnet-20241022\"}\n ]\n }\n ```\n\n **조회 가능한 정보:**\n - Context window (max_input_tokens, max_output_tokens)\n - 입력 모달리티 (image, audio, video, pdf)\n - 출력 모달리티 (image, audio, video, reasoning)\n - 고급 기능 (tool_calling, structured_output)","operationId":"query_model_profiles_v1_model_profiles__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelProfileRequestDTO","examples":[{"provider":"openai","model_name":"gpt-4o-mini"},{"models":[{"provider":"openai","model_name":"gpt-4o-mini"},{"provider":"anthropic","model_name":"claude-3-5-sonnet-20241022"}]}]}}},"required":true},"responses":{"200":{"description":"모델 프로필 정보","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelProfileResponseDTO"}}}},"400":{"description":"잘못된 요청입니다."},"500":{"description":"서버 내부 오류가 발생했습니다."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/permissions":{"get":{"tags":["permissions"],"summary":"API 권한 목록 조회 및 필터링","description":"API 권한 목록을 조회하고 다양한 조건으로 필터링합니다.","operationId":"search_permissions_endpoint_v1_permissions_get","parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"권한 ID로 필터링","title":"Id"},"description":"권한 ID로 필터링"},{"name":"path","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"경로로 필터링 (부분 일치)","title":"Path"},"description":"경로로 필터링 (부분 일치)"},{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"리소스 타입으로 필터링","title":"Resource Type"},"description":"리소스 타입으로 필터링"},{"name":"http_method","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"HTTP 메서드로 필터링","title":"Http Method"},"description":"HTTP 메서드로 필터링"},{"name":"action_type","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"액션 타입으로 필터링","title":"Action Type"},"description":"액션 타입으로 필터링"},{"name":"required_role","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"필요 역할로 필터링","title":"Required Role"},"description":"필요 역할로 필터링"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"정렬 기준 필드","default":"id","title":"Sort By"},"description":"정렬 기준 필드"},{"name":"order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrderEnum","description":"정렬 순서","default":"DESC"},"description":"정렬 순서"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"페이지 번호","default":1,"title":"Page"},"description":"페이지 번호"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"페이지 크기","default":10,"title":"Size"},"description":"페이지 크기"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDTO_ApiPermissionResponseDTO_"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["permissions"],"summary":"API 권한 생성","description":"새로운 API 권한 정보를 생성합니다.","operationId":"create_permission_endpoint_v1_permissions_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPermissionCreateDTO"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPermissionResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/permissions/refresh":{"post":{"tags":["permissions"],"summary":"권한 캐시 갱신","description":"모든 API 권한 캐시를 갱신합니다.","operationId":"refresh_permissions_endpoint_v1_permissions_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"}}}},"/v1/permissions/health":{"get":{"tags":["permissions"],"summary":"권한 서비스 상태 확인","description":"권한 서비스의 상태를 확인합니다.","operationId":"health_check_endpoint_v1_permissions_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Check Endpoint V1 Permissions Health Get"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"}}}},"/v1/permissions/check/{path}":{"get":{"tags":["permissions"],"summary":"특정 경로의 권한 확인","description":"특정 API 경로와 메서드에 대한 권한 정보를 확인합니다.","operationId":"check_permission_endpoint_v1_permissions_check__path__get","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","description":"확인할 API 경로","title":"Path"},"description":"확인할 API 경로"},{"name":"method","in":"query","required":true,"schema":{"type":"string","description":"HTTP 메서드","title":"Method"},"description":"HTTP 메서드"},{"name":"user_role","in":"query","required":false,"schema":{"type":"string","description":"사용자 역할","default":"USER","title":"User Role"},"description":"사용자 역할"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Check Permission Endpoint V1 Permissions Check Path Get"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/permissions/{id}":{"get":{"tags":["permissions"],"summary":"ID로 API 권한 조회","description":"특정 ID로 API 권한 정보를 조회합니다.","operationId":"get_permission_endpoint_v1_permissions__id__get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"조회할 권한의 ID","title":"Id"},"description":"조회할 권한의 ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPermissionResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["permissions"],"summary":"API 권한 전체 수정","description":"ID로 특정 API 권한 정보를 전체 수정합니다.","operationId":"update_permission_endpoint_v1_permissions__id__put","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"수정할 권한의 ID","title":"Id"},"description":"수정할 권한의 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPermissionUpdateDTO","description":"수정할 권한 정보"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPermissionResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["permissions"],"summary":"API 권한 부분 수정","description":"ID로 특정 API 권한을 부분적으로 수정합니다.","operationId":"patch_permission_endpoint_v1_permissions__id__patch","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"수정할 권한의 ID","title":"Id"},"description":"수정할 권한의 ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPermissionPatchDTO","description":"부분 수정할 권한 정보"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPermissionResponseDTO"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["permissions"],"summary":"API 권한 삭제","description":"특정 ID의 API 권한을 삭제합니다.","operationId":"delete_permission_endpoint_v1_permissions__id__delete","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"description":"삭제할 권한의 ID","title":"Id"},"description":"삭제할 권한의 ID"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agent/{agent_id}/callback":{"post":{"tags":["scheduler-callback"],"summary":"스케줄러 콜백 수신","description":"MCP Scheduler Tool에서 예약된 작업 실행 시 호출되는 콜백 엔드포인트입니다.","operationId":"scheduler_callback_v1_agent__agent_id__callback_post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchedulerCallbackRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchedulerCallbackResponse"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agent/{agent_id}/callback/health":{"get":{"tags":["scheduler-callback"],"summary":"콜백 엔드포인트 헬스체크","description":"스케줄러 콜백 엔드포인트의 상태를 확인합니다.","operationId":"callback_health_check_v1_agent__agent_id__callback_health_get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Callback Health Check V1 Agent Agent Id Callback Health Get"}}}},"404":{"description":"Not found"},"500":{"description":"Internal server error"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"tags":["Health"],"summary":"루트 엔드포인트","description":"API 상태 메시지를 반환합니다.","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"tags":["Health"],"summary":"헬스 체크","description":"애플리케이션 상태가 정상인지 확인합니다.","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/version":{"get":{"tags":["Health"],"summary":"버전 정보","description":"애플리케이션 버전 정보를 반환합니다.","operationId":"get_version_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"ActionType":{"type":"string","enum":["READ","WRITE","EXECUTE"],"title":"ActionType"},"AgentCategoryEnum":{"type":"string","enum":["CHATBOT","REACT","MULTI_AGENT_SYSTEM","REFLECTION_CRITIQUE","PLANNING_AGENT","DATABASE","EVALUATION","EXPERIMENTAL"],"title":"AgentCategoryEnum","description":"Agent category"},"AgentDataCreateRequest":{"properties":{"user_id":{"anyOf":[{"type":"integer"},{"type":"string"}],"title":"User Id","description":"Owner user ID (int or str)"},"model_my_page_id":{"type":"integer","title":"Model My Page Id","description":"Model ID from agt_model_my_page table"},"persona_my_page_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Persona My Page Id","description":"Persona ID from agt_persona_my_page table"},"tool_my_page_id":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Tool My Page Id","description":"Tool ID list from my page"},"fallback_model_my_page_id":{"type":"integer","title":"Fallback Model My Page Id","description":"Fallback model ID from my page model table"},"category":{"$ref":"#/components/schemas/AgentCategoryEnum","default":"CHATBOT"},"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"Official name of the agent"},"description":{"type":"string","minLength":1,"title":"Description","description":"Official description of the agent"},"user_agent_title":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"User Agent Title","description":"User-defined agent title"},"user_agent_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Agent Description","description":"User-defined agent description"},"is_system":{"type":"boolean","title":"Is System","description":"Whether this is a system-provided agent","default":false},"is_public":{"type":"boolean","title":"Is Public","description":"Whether this is a public agent","default":false}},"type":"object","required":["user_id","model_my_page_id","fallback_model_my_page_id","name","description"],"title":"AgentDataCreateRequest","description":"Agent master data creation request","example":{"category":"CHATBOT","description":"AI chatbot agent that converses with users","fallback_model_my_page_id":2,"is_public":true,"is_system":false,"model_my_page_id":1,"name":"AI Chatbot Agent","persona_my_page_id":2,"tool_my_page_id":[3,4,5],"user_agent_description":"Chatbot agent for personal projects","user_agent_title":"My Personal Chatbot","user_id":"user123"}},"AgentDataResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Unique agent ID"},"user_id":{"type":"string","title":"User Id","description":"Owner user ID (always returned as string)"},"model_my_page_id":{"type":"integer","title":"Model My Page Id","description":"Model ID from agt_model_my_page table"},"persona_my_page_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Persona My Page Id","description":"Persona ID from agt_persona_my_page table"},"tool_my_page_id":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Tool My Page Id","description":"Tool ID list from my page"},"fallback_model_my_page_id":{"type":"integer","title":"Fallback Model My Page Id","description":"Fallback model setting using model ID from my page model table"},"category":{"$ref":"#/components/schemas/AgentCategoryEnum"},"name":{"type":"string","title":"Name","description":"Official agent name"},"description":{"type":"string","title":"Description","description":"Official agent description"},"user_agent_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Agent Title","description":"User-defined agent title"},"user_agent_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Agent Description","description":"User-defined agent description"},"is_system":{"type":"boolean","title":"Is System","description":"Whether system-provided agent"},"is_public":{"type":"boolean","title":"Is Public","description":"Whether public agent"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Creation timestamp"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["id","user_id","model_my_page_id","fallback_model_my_page_id","category","name","description","is_system","is_public","created_at","updated_at"],"title":"AgentDataResponse","description":"Agent master data query response"},"AgentDataUpdateRequest":{"properties":{"model_my_page_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Model My Page Id","description":"Model ID from agt_model_my_page table"},"persona_my_page_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Persona My Page Id","description":"Persona ID from agt_persona_my_page table"},"tool_my_page_id":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Tool My Page Id","description":"Tool ID list from my page"},"fallback_model_my_page_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fallback Model My Page Id","description":"Fallback model ID from my page model table"},"category":{"anyOf":[{"$ref":"#/components/schemas/AgentCategoryEnum"},{"type":"null"}],"description":"Agent category"},"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name","description":"Official name of the agent"},"description":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Description","description":"Official description of the agent"},"user_agent_title":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"User Agent Title","description":"User-defined agent title"},"user_agent_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Agent Description","description":"User-defined agent description"},"is_public":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Public","description":"Whether this is a public agent"}},"type":"object","title":"AgentDataUpdateRequest","description":"Agent master data update request (supports partial updates)"},"AgentRoleCreateRequest":{"properties":{"agent_data_id":{"type":"integer","title":"Agent Data Id","description":"Agent data ID"},"role_id":{"type":"integer","title":"Role Id","description":"Target role/permission ID for sharing"}},"type":"object","required":["agent_data_id","role_id"],"title":"AgentRoleCreateRequest","description":"Agent role permission addition request","example":{"agent_data_id":5,"role_id":2}},"AgentRoleResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Permission mapping record ID"},"agent_data_id":{"type":"integer","title":"Agent Data Id","description":"Agent data ID"},"role_id":{"type":"integer","title":"Role Id","description":"Target role/permission ID for sharing"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Permission grant time"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Permission modification time"}},"type":"object","required":["id","agent_data_id","role_id","created_at","updated_at"],"title":"AgentRoleResponse","description":"Agent role permission query response"},"AgentRoleUpdateRequest":{"properties":{"agent_data_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agent Data Id","description":"Agent data ID"},"role_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Role Id","description":"Role/permission ID to change"}},"type":"object","title":"AgentRoleUpdateRequest","description":"Agent role permission update request"},"AgentStatisticsDTO":{"properties":{"request_count":{"type":"integer","title":"Request Count","description":"Number of requests"},"tool_call_count":{"type":"integer","title":"Tool Call Count","description":"Number of tool calls"},"token_usage":{"$ref":"#/components/schemas/AgentTokenUsageDTO","description":"Token usage"}},"type":"object","required":["request_count","tool_call_count","token_usage"],"title":"AgentStatisticsDTO","description":"Agent statistics DTO"},"AgentSummaryDTO":{"properties":{"agent_my_page_id":{"type":"integer","title":"Agent My Page Id","description":"Agent my page ID"},"agent_name":{"type":"string","title":"Agent Name","description":"Agent name"},"total_statistics":{"$ref":"#/components/schemas/AgentStatisticsDTO","description":"Total period statistics"}},"type":"object","required":["agent_my_page_id","agent_name","total_statistics"],"title":"AgentSummaryDTO","description":"Agent summary statistics DTO"},"AgentTimeSeriesItemDTO":{"properties":{"agent_my_page_id":{"type":"integer","title":"Agent My Page Id","description":"Agent my page ID"},"agent_name":{"type":"string","title":"Agent Name","description":"Agent name"},"statistics":{"$ref":"#/components/schemas/AgentStatisticsDTO","description":"Statistics information"}},"type":"object","required":["agent_my_page_id","agent_name","statistics"],"title":"AgentTimeSeriesItemDTO","description":"Time series agent statistics item DTO"},"AgentTokenUsageDTO":{"properties":{"input_tokens":{"type":"number","title":"Input Tokens","description":"Number of input tokens"},"output_tokens":{"type":"number","title":"Output Tokens","description":"Number of output tokens"},"total_tokens":{"type":"number","title":"Total Tokens","description":"Total number of tokens"}},"type":"object","required":["input_tokens","output_tokens","total_tokens"],"title":"AgentTokenUsageDTO","description":"Agent token usage DTO"},"AgentUsageRequestDTO":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"agent_my_page_id":{"items":{"type":"integer"},"type":"array","minItems":1,"title":"Agent My Page Id","description":"Array of agent my page IDs"},"start_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}[Z]?","title":"Start Date","description":"Query start date (ISO 8601)"},"end_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}[Z]?","title":"End Date","description":"Query end date (ISO 8601)"},"granularity":{"type":"string","title":"Granularity","description":"Time series unit (hour, day, week, month, year)","default":"day"}},"type":"object","required":["user_id","agent_my_page_id","start_date","end_date"],"title":"AgentUsageRequestDTO","description":"Agent usage inquiry request DTO","example":{"agent_my_page_id":[1,2,3],"end_date":"2025-12-31T23:59:59Z","granularity":"day","start_date":"2025-01-01T00:00:00Z","user_id":"Dr.Lee"}},"AgentUsageResponseDTO":{"properties":{"userId":{"type":"string","title":"Userid","description":"User ID"},"period":{"$ref":"#/components/schemas/PeriodDTO","description":"Query period information"},"timeSeriesData":{"additionalProperties":{"items":{"$ref":"#/components/schemas/AgentTimeSeriesItemDTO"},"type":"array"},"type":"object","title":"Timeseriesdata","description":"Time series data"},"total_statistics":{"$ref":"#/components/schemas/AgentStatisticsDTO","description":"Total statistics"},"agent_summary":{"items":{"$ref":"#/components/schemas/AgentSummaryDTO"},"type":"array","title":"Agent Summary","description":"Agent summary"}},"type":"object","required":["userId","period","timeSeriesData","total_statistics","agent_summary"],"title":"AgentUsageResponseDTO","description":"Agent usage response DTO","example":{"agent_summary":[{"agent_my_page_id":1,"agent_name":"ChatBot","total_statistics":{"request_count":1250,"token_usage":{"input_tokens":125000,"output_tokens":87500,"total_tokens":212500},"tool_call_count":450}}],"period":{"endDate":"2025-12-31T23:59:59Z","granularity":"day","startDate":"2025-01-01T00:00:00Z"},"timeSeriesData":{"2025-01-01":[{"agent_my_page_id":1,"agent_name":"ChatBot","statistics":{"request_count":45,"token_usage":{"input_tokens":4500,"output_tokens":3200,"total_tokens":7700},"tool_call_count":18}}]},"total_statistics":{"request_count":90,"token_usage":{"input_tokens":9000,"output_tokens":6400,"total_tokens":15400},"tool_call_count":36},"userId":"Dr.Lee"}},"ApiPermissionCreateDTO":{"properties":{"path":{"type":"string","title":"Path","description":"API path"},"resource_type":{"type":"string","title":"Resource Type","description":"Resource type"},"http_method":{"type":"string","title":"Http Method","description":"HTTP method"},"action_type":{"$ref":"#/components/schemas/ActionType","description":"Action type"},"required_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Required Role","description":"Required role"}},"type":"object","required":["path","resource_type","http_method","action_type"],"title":"ApiPermissionCreateDTO","description":"API permission creation DTO"},"ApiPermissionPatchDTO":{"properties":{"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"API path"},"resource_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Type","description":"Resource type"},"http_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Http Method","description":"HTTP method"},"action_type":{"anyOf":[{"$ref":"#/components/schemas/ActionType"},{"type":"null"}],"description":"Action type"},"required_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Required Role","description":"Required role"}},"type":"object","title":"ApiPermissionPatchDTO","description":"API permission partial update DTO"},"ApiPermissionResponseDTO":{"properties":{"path":{"type":"string","title":"Path","description":"API path"},"resource_type":{"type":"string","title":"Resource Type","description":"Resource type"},"http_method":{"type":"string","title":"Http Method","description":"HTTP method"},"action_type":{"$ref":"#/components/schemas/ActionType","description":"Action type"},"required_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Required Role","description":"Required role"},"id":{"type":"integer","title":"Id","description":"Permission ID"}},"type":"object","required":["path","resource_type","http_method","action_type","id"],"title":"ApiPermissionResponseDTO","description":"API permission response DTO"},"ApiPermissionUpdateDTO":{"properties":{"path":{"type":"string","title":"Path","description":"API path"},"resource_type":{"type":"string","title":"Resource Type","description":"Resource type"},"http_method":{"type":"string","title":"Http Method","description":"HTTP method"},"action_type":{"$ref":"#/components/schemas/ActionType","description":"Action type"},"required_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Required Role","description":"Required role"}},"type":"object","required":["path","resource_type","http_method","action_type"],"title":"ApiPermissionUpdateDTO","description":"API permission full update DTO"},"ChatCreateResponseDTO":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ChatResponseDTO"},"type":"array","title":"Items","description":"List of created chat records"},"token_summary":{"$ref":"#/components/schemas/TokenSummaryDTO","description":"Token usage summary"},"performance_metrics":{"anyOf":[{"$ref":"#/components/schemas/PerformanceMetricsDTO"},{"type":"null"}],"description":"Performance metrics (optional)"}},"type":"object","required":["items","token_summary"],"title":"ChatCreateResponseDTO","description":"Chat Creation Response DTO (includes token summary and optional metrics)","example":{"items":[{"agent_name":"supervisor","category":"AIMessage","id":1,"qa_id":"qa_1","role":"ai","scenario_my_page_id":24,"thread_id":"test_thread_001","user_id":"user_1"}],"performance_metrics":{"avg_step_latency_ms":205.76,"checkpoint_count":7,"error_count":1,"retry_count":2,"success_rate":0.95,"total_latency_ms":1234.56},"token_summary":{"duplicate_messages":3,"input_tokens":586.0,"original_messages":1,"output_tokens":28.0,"total_messages":7,"total_tokens":614.0}}},"ChatResponseDTO":{"properties":{"id":{"type":"integer","title":"Id","description":"Chat record primary key ID"},"user_id":{"type":"string","title":"User Id","description":"User ID"},"scenario_my_page_id":{"type":"integer","title":"Scenario My Page Id","description":"Scenario my page ID"},"thread_id":{"type":"string","title":"Thread Id","description":"Thread ID (Text)"},"qa_id":{"type":"string","title":"Qa Id","description":"QA ID (Text)"},"agent_name":{"type":"string","title":"Agent Name","description":"Agent name"},"role":{"type":"string","title":"Role","description":"Role (human, ai, tool)"},"category":{"type":"string","title":"Category","description":"Category (HumanMessage, AIMessage, ToolMessage)"},"model_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Name","description":"Model name"},"content":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content","description":"Message content (JSON)"},"tool_calls":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tool Calls","description":"Tool call information (JSON)"},"stop_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Reason","description":"Stop reason (max_tokens, stop_sequence, tool_use, etc.)"},"finish_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Finish Reason","description":"Finish reason (stop, length, tool_calls, etc.)"},"total_tokens":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Tokens","description":"Total token count"},"input_tokens":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Input Tokens","description":"Input token count"},"output_tokens":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Output Tokens","description":"Output token count"},"input_token_details_audio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Input Token Details Audio","description":"Input audio tokens"},"input_token_details_cache_creation":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Input Token Details Cache Creation","description":"Input cache creation tokens"},"input_token_details_cache_read":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Input Token Details Cache Read","description":"Input cache read tokens"},"output_token_details_audio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Output Token Details Audio","description":"Output audio tokens"},"output_token_details_reasoning":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Output Token Details Reasoning","description":"Output reasoning tokens"},"checkpoint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkpoint Id","description":"Checkpoint UUID (for chronological sorting)"},"checkpoint_ns":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkpoint Ns","description":"Subgraph namespace (e.g., 'react agent:uuid')"},"checkpoint_ts":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Checkpoint Ts","description":"Checkpoint timestamp"},"parent_checkpoint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Checkpoint Id","description":"Parent checkpoint ID (for hierarchy tracking)"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source","description":"Checkpoint source: input/loop/..."},"step":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Step","description":"Loop step: -1/0/1/2..."},"checkpoint_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkpoint Type","description":"Checkpoint type: INPUT/LOOP/SUBGRAPH/FINAL"},"execution_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Execution Context","description":"Execution stage: input_phase/initial_loop/node_execution/final_collection"},"is_final":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Final","description":"Whether this is the final checkpoint"},"is_original_message":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Original Message","description":"Whether this is the first occurrence of the message"},"message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Id","description":"AIMessage unique ID (response_metadata.id)"},"is_token_counted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Token Counted","description":"Whether token counting is completed"},"versions_seen_nodes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Versions Seen Nodes","description":"List of executed nodes (versions_seen)"},"pending_actions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Pending Actions","description":"Scheduled actions (pending_writes)"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Creation timestamp"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Last update timestamp"},"content_text":{"type":"string","title":"Content Text","description":"통일된 텍스트 추출 (프론트엔드 호환성)\n모든 메시지 타입에서 일관된 방식으로 텍스트 추출","readOnly":true},"content_type":{"type":"string","title":"Content Type","description":"Content 구조 타입 반환 (blocks / text / checkpoint_state / unknown)","readOnly":true},"has_tool_calls":{"type":"boolean","title":"Has Tool Calls","description":"Tool calls 존재 여부","readOnly":true}},"type":"object","required":["id","user_id","scenario_my_page_id","thread_id","qa_id","agent_name","role","category","created_at","updated_at","content_text","content_type","has_tool_calls"],"title":"ChatResponseDTO","description":"Chat Response DTO"},"ChatServiceDTO":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"scenario_my_page_id":{"type":"integer","title":"Scenario My Page Id","description":"Scenario my page ID"},"thread_id":{"type":"string","title":"Thread Id","description":"Thread ID (Text)"},"qa_id":{"type":"string","title":"Qa Id","description":"QA ID (Text)"}},"type":"object","required":["user_id","scenario_my_page_id","thread_id","qa_id"],"title":"ChatServiceDTO","description":"Chat Service DTO","example":{"qa_id":"didim_qa_id","scenario_my_page_id":1,"thread_id":"didim_thread_id","user_id":"didim_user_id"}},"CheckpointErrorDTO":{"properties":{"type":{"type":"string","title":"Type","description":"Error type"},"source":{"type":"string","title":"Source","description":"Error source"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Error message"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp","description":"Error timestamp"}},"type":"object","required":["type","source"],"title":"CheckpointErrorDTO","description":"체크포인트 에러 정보"},"EdgeDataItem":{"properties":{"edge_id":{"type":"string","title":"Edge Id","description":"edge id"},"source":{"type":"string","title":"Source","description":"source node id"},"target":{"type":"string","title":"Target","description":"target node id"},"type":{"type":"string","title":"Type","description":"edge type"},"setting":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Setting","description":"edge setting"}},"type":"object","required":["edge_id","source","target","type"],"title":"EdgeDataItem","description":"Single EdgeData item DTO","example":{"edge_id":"edge_id:1","setting":{"connectionCount":1},"source":"node_id:1","target":"node_id:2","type":"smoothstep"}},"EdgeDataItemPartialUpdate":{"properties":{"edge_id":{"type":"string","title":"Edge Id","description":"ID of the edge to be modified"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source","description":"source node id"},"target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target","description":"target node id"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"edge type"},"setting":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Setting","description":"edge setting"}},"type":"object","required":["edge_id"],"title":"EdgeDataItemPartialUpdate","description":"PATCH /scenario/{id} - individual edge partial update DTO"},"EdgeDataItemResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"primary key id"},"edge_id":{"type":"string","title":"Edge Id","description":"edge id"},"source":{"type":"string","title":"Source","description":"source node id"},"target":{"type":"string","title":"Target","description":"target node id"},"type":{"type":"string","title":"Type","description":"edge type"},"setting":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Setting","description":"edge setting"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"created at"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"updated at"}},"type":"object","required":["id","edge_id","source","target","type","created_at","updated_at"],"title":"EdgeDataItemResponse","description":"Single EdgeData response item DTO","example":{"created_at":"2021-01-01T00:00:00","edge_id":"edge_id:1","id":1,"setting":{"connectionCount":1},"source":"node_id:1","target":"node_id:2","type":"smoothstep","updated_at":"2021-01-01T00:00:00"}},"EdgeDataMyPageRequest":{"properties":{"user_id":{"anyOf":[{"type":"integer"},{"type":"string"}],"title":"User Id","description":"Requesting user ID"},"scenario_my_page_id":{"type":"integer","title":"Scenario My Page Id","description":"ID from agt_scenario_my_page table"},"edges":{"items":{"$ref":"#/components/schemas/EdgeDataItem"},"type":"array","title":"Edges","description":"Edge list"}},"type":"object","required":["user_id","scenario_my_page_id","edges"],"title":"EdgeDataMyPageRequest","description":"My page based edge creation/update request","example":{"edges":[{"edge_id":"edge_id:0","setting":{"connectionCount":1},"source":"node_id:0","target":"node_id:1","type":"smoothstep"}],"scenario_my_page_id":1,"user_id":"user123"}},"EdgeDataMyPageResponse":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"scenario_my_page_id":{"type":"integer","title":"Scenario My Page Id","description":"ID from agt_scenario_my_page table"},"agt_scenarios_data_id":{"type":"integer","title":"Agt Scenarios Data Id","description":"Original scenario ID"},"total_count":{"type":"integer","title":"Total Count","description":"Total number of edges"},"edges":{"items":{"$ref":"#/components/schemas/EdgeDataItemResponse"},"type":"array","title":"Edges","description":"Edge list"},"is_owner":{"type":"boolean","title":"Is Owner","description":"Whether original owner"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Creation time"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Update time"}},"type":"object","required":["user_id","scenario_my_page_id","agt_scenarios_data_id","total_count","edges","is_owner"],"title":"EdgeDataMyPageResponse","description":"My page based edge response","example":{"agt_scenarios_data_id":10,"created_at":"2024-12-19T10:00:00Z","edges":[],"is_owner":true,"scenario_my_page_id":1,"total_count":1,"updated_at":"2024-12-19T10:00:00Z","user_id":"user123"}},"EdgeDataMyPageUpdateRequest":{"properties":{"user_id":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"User Id","description":"Requesting user ID"},"scenario_my_page_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Scenario My Page Id","description":"ID from agt_scenario_my_page table"},"edges":{"anyOf":[{"items":{"$ref":"#/components/schemas/EdgeDataItemPartialUpdate"},"type":"array"},{"type":"null"}],"title":"Edges","description":"List of edges to be modified"}},"type":"object","title":"EdgeDataMyPageUpdateRequest","description":"My page based edge partial update request"},"EdgeDataRequest":{"properties":{"user_id":{"anyOf":[{"type":"integer"},{"type":"string"}],"title":"User Id","description":"user id (int or str)"},"agt_scenarios_data_id":{"type":"integer","title":"Agt Scenarios Data Id","description":"scenarios data id"},"edges":{"items":{"$ref":"#/components/schemas/EdgeDataItem"},"type":"array","title":"Edges","description":"edge data list"}},"type":"object","required":["user_id","agt_scenarios_data_id","edges"],"title":"EdgeDataRequest","description":"Unified EdgeData request structure - all APIs use this structure","example":{"agt_scenarios_data_id":1,"edges":[{"edge_id":"edge_id:1","setting":{"connectionCount":1},"source":"node_id:1","target":"node_id:2","type":"smoothstep"},{"edge_id":"edge_id:2","setting":{"connectionCount":1},"source":"node_id:2","target":"node_id:3","type":"smoothstep"}],"user_id":"user123"}},"EdgeDataResponse":{"properties":{"user_id":{"type":"string","title":"User Id","description":"user id (always returned as string)"},"agt_scenarios_data_id":{"type":"integer","title":"Agt Scenarios Data Id","description":"scenarios data id"},"edges":{"items":{"$ref":"#/components/schemas/EdgeDataItemResponse"},"type":"array","title":"Edges","description":"edge data list"}},"type":"object","required":["user_id","agt_scenarios_data_id","edges"],"title":"EdgeDataResponse","description":"Unified EdgeData response structure - all APIs use this structure","example":{"agt_scenarios_data_id":1,"edges":[{"created_at":"2021-01-01T00:00:00","edge_id":"edge_id:1","id":1,"setting":{"connectionCount":1},"source":"node_id:1","target":"node_id:2","type":"smoothstep","updated_at":"2021-01-01T00:00:00"},{"created_at":"2021-01-01T00:00:00","edge_id":"edge_id:2","id":2,"setting":{"connectionCount":1},"source":"node_id:2","target":"node_id:3","type":"smoothstep","updated_at":"2021-01-01T00:00:00"}],"user_id":"user123"}},"EdgeDataScenarioUpdateRequest":{"properties":{"user_id":{"anyOf":[{"type":"integer"},{"type":"string"}],"title":"User Id","description":"user id (int or str)"},"agt_scenarios_data_id":{"type":"integer","title":"Agt Scenarios Data Id","description":"scenarios data id"},"edges":{"items":{"$ref":"#/components/schemas/EdgeDataItemPartialUpdate"},"type":"array","title":"Edges","description":"List of edges to be partially updated"}},"type":"object","required":["user_id","agt_scenarios_data_id","edges"],"title":"EdgeDataScenarioUpdateRequest","description":"PATCH /scenario/{id} - scenario edge partial update request DTO"},"EdgeDataUpdateRequest":{"properties":{"edges":{"items":{"$ref":"#/components/schemas/EdgeDataItem"},"type":"array","title":"Edges","description":"edge data list for partial update"}},"type":"object","required":["edges"],"title":"EdgeDataUpdateRequest","description":"EdgeData partial update request DTO (for PATCH)","example":{"edges":[{"edge_id":"edge_id:1","setting":{"connectionCount":1},"source":"node_id:1","target":"node_id:2","type":"smoothstep"},{"edge_id":"edge_id:2","setting":{"connectionCount":1},"source":"node_id:2","target":"node_id:3","type":"smoothstep"}]}},"GraphRequestDTO":{"properties":{"user_id":{"type":"string","minLength":1,"title":"User Id","description":"User ID (required, e.g., 'user_123', 'admin_001')","examples":["user_123","admin_001","test_user"]},"agt_scenarios_data_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Agt Scenarios Data Id","description":"ID from agt_scenarios_data table (required, positive integer)","examples":[1,24,100]}},"type":"object","required":["user_id","agt_scenarios_data_id"],"title":"GraphRequestDTO","description":"Required information for graph creation. All fields must be included.","example":{"agt_scenarios_data_id":1,"user_id":"user_123"}},"GraphResponseDTO":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"agt_scenarios_data_id":{"type":"integer","title":"Agt Scenarios Data Id","description":"agt_scenarios_data ID"},"stategraph":{"title":"Stategraph","description":"str(stategraph)"}},"type":"object","required":["user_id","agt_scenarios_data_id","stategraph"],"title":"GraphResponseDTO","example":{"agt_scenarios_data_id":1,"stategraph":"<langgraph.graph.state.StateGraph object at 0x7fb9d9a6d9d0>","user_id":"user_123"}},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HistoryCreateDTO":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"scenario_my_page_id":{"type":"integer","title":"Scenario My Page Id","description":"Scenario my page ID"},"thread_id":{"type":"string","title":"Thread Id","description":"Thread ID (Text)"},"qa_id":{"type":"string","title":"Qa Id","description":"QA ID (Text)"},"question":{"additionalProperties":true,"type":"object","title":"Question","description":"Question information JSON"},"answer":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Answer","description":"Answer information JSON"},"attributes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Attributes","description":"Attributes list"},"extra_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Metadata","description":"Additional metadata (scheduler info, source tracking, etc.)"}},"type":"object","required":["user_id","scenario_my_page_id","thread_id","qa_id","question"],"title":"HistoryCreateDTO","description":"History creation DTO"},"HistoryMemoryConfigCreateDTO":{"properties":{"max_tokens_trim":{"type":"integer","exclusiveMinimum":0.0,"title":"Max Tokens Trim","description":"Maximum tokens for trim node"},"max_tokens_summary":{"type":"integer","exclusiveMinimum":0.0,"title":"Max Tokens Summary","description":"Total token limit for summary node"},"max_tokens_before_summary":{"type":"integer","exclusiveMinimum":0.0,"title":"Max Tokens Before Summary","description":"Summary start threshold for summary node"},"max_summary_tokens":{"type":"integer","exclusiveMinimum":0.0,"title":"Max Summary Tokens","description":"Maximum tokens for summary result in summary node"}},"type":"object","required":["max_tokens_trim","max_tokens_summary","max_tokens_before_summary","max_summary_tokens"],"title":"HistoryMemoryConfigCreateDTO","description":"History memory configuration creation DTO","example":{"max_summary_tokens":10000,"max_tokens_before_summary":40000,"max_tokens_summary":50000,"max_tokens_trim":100000}},"HistoryMemoryConfigResponseDTO":{"properties":{"id":{"type":"integer","title":"Id","description":"History memory configuration ID"},"max_tokens_trim":{"type":"integer","title":"Max Tokens Trim","description":"Maximum tokens for trim node"},"max_tokens_summary":{"type":"integer","title":"Max Tokens Summary","description":"Total token limit for summary node"},"max_tokens_before_summary":{"type":"integer","title":"Max Tokens Before Summary","description":"Summary start threshold for summary node"},"max_summary_tokens":{"type":"integer","title":"Max Summary Tokens","description":"Maximum tokens for summary result in summary node"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Creation time"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Update time"}},"type":"object","required":["id","max_tokens_trim","max_tokens_summary","max_tokens_before_summary","max_summary_tokens","created_at","updated_at"],"title":"HistoryMemoryConfigResponseDTO","description":"History memory configuration response DTO"},"HistoryMemoryConfigUpdateDTO":{"properties":{"max_tokens_trim":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Max Tokens Trim","description":"Maximum tokens for trim node"},"max_tokens_summary":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Max Tokens Summary","description":"Total token limit for summary node"},"max_tokens_before_summary":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Max Tokens Before Summary","description":"Summary start threshold for summary node"},"max_summary_tokens":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Max Summary Tokens","description":"Maximum tokens for summary result in summary node"}},"type":"object","title":"HistoryMemoryConfigUpdateDTO","description":"History memory configuration update DTO (supports partial updates)"},"HistoryMemoryScenarioCreateDTO":{"properties":{"scenario_data_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Scenario Data Id","description":"Scenario data ID"},"model_my_page_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Model My Page Id","description":"Model my page ID"},"history_memory_config_id":{"type":"integer","exclusiveMinimum":0.0,"title":"History Memory Config Id","description":"History memory configuration ID"}},"type":"object","required":["scenario_data_id","model_my_page_id","history_memory_config_id"],"title":"HistoryMemoryScenarioCreateDTO","description":"History memory scenario link creation DTO","example":{"history_memory_config_id":3,"model_my_page_id":5,"scenario_data_id":1}},"HistoryMemoryScenarioResponseDTO":{"properties":{"id":{"type":"integer","title":"Id","description":"Link record ID"},"scenario_data_id":{"type":"integer","title":"Scenario Data Id","description":"Scenario data ID"},"model_my_page_id":{"type":"integer","title":"Model My Page Id","description":"Model my page ID"},"history_memory_config_id":{"type":"integer","title":"History Memory Config Id","description":"History memory configuration ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Creation time"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Update time"}},"type":"object","required":["id","scenario_data_id","model_my_page_id","history_memory_config_id","created_at","updated_at"],"title":"HistoryMemoryScenarioResponseDTO","description":"History memory scenario link response DTO"},"HistoryMemoryScenarioUpdateDTO":{"properties":{"scenario_data_id":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Scenario Data Id","description":"Scenario data ID"},"model_my_page_id":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Model My Page Id","description":"Model my page ID"},"history_memory_config_id":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"History Memory Config Id","description":"History memory configuration ID"}},"type":"object","title":"HistoryMemoryScenarioUpdateDTO","description":"History memory scenario link update DTO (supports partial updates)"},"HistoryResponseDTO":{"properties":{"id":{"type":"integer","title":"Id","description":"History ID"},"user_id":{"type":"string","title":"User Id","description":"User ID"},"scenario_my_page_id":{"type":"integer","title":"Scenario My Page Id","description":"Scenario my page ID"},"thread_id":{"type":"string","title":"Thread Id","description":"Thread ID (Text)"},"qa_id":{"type":"string","title":"Qa Id","description":"QA ID (Text)"},"question":{"additionalProperties":true,"type":"object","title":"Question","description":"Question information JSON"},"answer":{"additionalProperties":true,"type":"object","title":"Answer","description":"Answer information JSON"},"attributes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Attributes","description":"Attributes list"},"extra_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Metadata","description":"Additional metadata (scheduler info, source tracking, etc.)"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Creation time"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Update time"}},"type":"object","required":["id","user_id","scenario_my_page_id","thread_id","qa_id","question","answer","created_at","updated_at"],"title":"HistoryResponseDTO","description":"History response DTO"},"HistoryUpdateAnswerDTO":{"properties":{"answer":{"additionalProperties":true,"type":"object","title":"Answer","description":"Answer information JSON"}},"type":"object","required":["answer"],"title":"HistoryUpdateAnswerDTO","description":"History answer update DTO"},"InvokeInputDTO":{"properties":{"scenario_my_page_id":{"type":"integer","title":"Scenario My Page Id","description":"Scenario my page ID","examples":[123123123124]},"user_id":{"type":"string","title":"User Id","description":"User ID","examples":["123123123124454"]},"thread_id":{"type":"string","title":"Thread Id","description":"Conversation flow distinction ID (Text)","examples":["123123123124890790"]},"qa_id":{"type":"string","title":"Qa Id","description":"Question-answer unit ID (Text)","examples":["123123123124234234"]},"message":{"anyOf":[{"type":"string"},{"items":{},"type":"array"},{"additionalProperties":true,"type":"object"}],"title":"Message","description":"Message entered by user (can be text, list for Claude multi-turn, or dict for structured input)","examples":["What is the capital of South Korea?",[{"text":"Hello","type":"text"}]]},"attachments":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Attachments","description":"Attachment file URL list (images, PDF, audio, etc. - optional)","examples":[["https://example.com/image.jpg","https://example.com/document.pdf","https://example.com/audio.wav"]]},"attributes":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Attributes","description":"Additional metadata attributes (e.g., source='scheduler' for scheduler callbacks)"},"channel_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel Type","description":"채널 유형 (예: 'ms-teams', 'slack', 'web'). MCP 서버로 전달됨"}},"type":"object","required":["scenario_my_page_id","user_id","thread_id","qa_id","message"],"title":"InvokeInputDTO","description":"Message DTO sent from client to server"},"InvokeResponseDTO":{"properties":{"qa_id":{"type":"string","title":"Qa Id","description":"Question-answer unit ID (Text)"},"message":{"anyOf":[{"type":"string"},{"items":{},"type":"array"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Message","description":"Message content (can be text string, list for tool use, or dict for structured output)"},"attachments":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Attachments","description":"Attachment file URL list (images, PDF, audio, etc. - optional)","examples":[["https://example.com/image.jpg","https://example.com/document.pdf","https://example.com/audio.wav"]]}},"type":"object","required":["qa_id"],"title":"InvokeResponseDTO","description":"Message DTO sent from server to client"},"MemorySettingCreateDTO":{"properties":{"user_id":{"type":"string","title":"User Id","description":"사용자 ID"},"user_model_id":{"type":"integer","title":"User Model Id","description":"요약에 사용할 모델 ID"},"max_tokens_before_summary":{"type":"integer","maximum":100000.0,"minimum":100.0,"title":"Max Tokens Before Summary","description":"요약 시작 전 최대 토큰 수 (기본값: 4000)","default":4000},"messages_to_keep":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Messages To Keep","description":"요약 후 유지할 메시지 수 (기본값: 20)","default":20}},"type":"object","required":["user_id","user_model_id"],"title":"MemorySettingCreateDTO","description":"간소화된 메모리 설정 생성 DTO"},"MemorySettingPatchDTO":{"properties":{"user_model_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Model Id","description":"요약에 사용할 모델 ID"},"max_tokens_before_summary":{"anyOf":[{"type":"integer","maximum":100000.0,"minimum":100.0},{"type":"null"}],"title":"Max Tokens Before Summary","description":"요약 시작 전 최대 토큰 수"},"messages_to_keep":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":1.0},{"type":"null"}],"title":"Messages To Keep","description":"요약 후 유지할 메시지 수"}},"type":"object","title":"MemorySettingPatchDTO","description":"간소화된 메모리 설정 부분 수정 DTO"},"MemorySettingResponseDTO":{"properties":{"id":{"type":"integer","title":"Id","description":"메모리 설정 ID"},"user_id":{"type":"string","title":"User Id","description":"사용자 ID"},"user_model_id":{"type":"integer","title":"User Model Id","description":"요약에 사용할 모델 ID"},"max_tokens_before_summary":{"type":"integer","title":"Max Tokens Before Summary","description":"요약 시작 전 최대 토큰 수"},"messages_to_keep":{"type":"integer","title":"Messages To Keep","description":"요약 후 유지할 메시지 수"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"생성 시간"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"수정 시간"}},"type":"object","required":["id","user_id","user_model_id","max_tokens_before_summary","messages_to_keep","created_at","updated_at"],"title":"MemorySettingResponseDTO","description":"간소화된 메모리 설정 응답 DTO"},"ModelCapabilitiesDTO":{"properties":{"max_input_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Input Tokens","description":"최대 입력 토큰 수"},"max_output_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Output Tokens","description":"최대 출력 토큰 수"},"image_inputs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Image Inputs","description":"이미지 입력 지원"},"image_url_inputs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Image Url Inputs","description":"이미지 URL 입력 지원"},"image_tool_message":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Image Tool Message","description":"Tool message에서 이미지 지원"},"audio_inputs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Audio Inputs","description":"오디오 입력 지원"},"video_inputs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Video Inputs","description":"비디오 입력 지원"},"pdf_inputs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Pdf Inputs","description":"PDF 입력 지원"},"pdf_tool_message":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Pdf Tool Message","description":"Tool message에서 PDF 지원"},"image_outputs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Image Outputs","description":"이미지 출력 지원"},"audio_outputs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Audio Outputs","description":"오디오 출력 지원"},"video_outputs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Video Outputs","description":"비디오 출력 지원"},"reasoning_output":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Reasoning Output","description":"추론 과정 출력 지원"},"tool_calling":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Tool Calling","description":"Tool calling 지원"},"tool_choice":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Tool Choice","description":"Tool choice 지원"},"structured_output":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Structured Output","description":"Structured output 지원"}},"type":"object","title":"ModelCapabilitiesDTO","description":"모델의 capabilities 정보","example":{"image_inputs":true,"max_input_tokens":128000,"max_output_tokens":16384,"structured_output":true,"tool_calling":true}},"ModelProfileDTO":{"properties":{"provider":{"type":"string","title":"Provider","description":"모델 프로바이더"},"model_name":{"type":"string","title":"Model Name","description":"모델 이름"},"full_name":{"type":"string","title":"Full Name","description":"전체 모델 이름 (provider:model_name)"},"available":{"type":"boolean","title":"Available","description":"프로필 조회 가능 여부"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"에러 메시지 (조회 실패 시)"},"capabilities":{"anyOf":[{"$ref":"#/components/schemas/ModelCapabilitiesDTO"},{"type":"null"}],"description":"모델 capabilities"}},"type":"object","required":["provider","model_name","full_name","available"],"title":"ModelProfileDTO","description":"단일 모델 프로필 정보","example":{"available":true,"capabilities":{"image_inputs":true,"max_input_tokens":128000,"max_output_tokens":16384,"structured_output":true,"tool_calling":true},"full_name":"openai:gpt-4o-mini","model_name":"gpt-4o-mini","provider":"openai"}},"ModelProfileRequestDTO":{"properties":{"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"모델 프로바이더 (openai, anthropic, google_genai 등)"},"model_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Name","description":"모델 이름"},"models":{"anyOf":[{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},{"type":"null"}],"title":"Models","description":"여러 모델 조회 시 사용 [{'provider': 'openai', 'model_name': 'gpt-4o-mini'}]"}},"type":"object","title":"ModelProfileRequestDTO","description":"모델 프로필 조회 요청 DTO\n\nExamples:\n Single model:\n {\n \"provider\": \"openai\",\n \"model_name\": \"gpt-4o-mini\"\n }\n\n Multiple models:\n {\n \"models\": [\n {\"provider\": \"openai\", \"model_name\": \"gpt-4o-mini\"},\n {\"provider\": \"anthropic\", \"model_name\": \"claude-3-5-sonnet-20241022\"}\n ]\n }","examples":[{"model_name":"gpt-4o-mini","provider":"openai"},{"models":[{"model_name":"gpt-4o-mini","provider":"openai"},{"model_name":"claude-3-5-sonnet-20241022","provider":"anthropic"}]}]},"ModelProfileResponseDTO":{"properties":{"success":{"type":"boolean","title":"Success","description":"조회 성공 여부"},"profiles":{"items":{"$ref":"#/components/schemas/ModelProfileDTO"},"type":"array","title":"Profiles","description":"모델 프로필 목록"},"total_count":{"type":"integer","title":"Total Count","description":"조회된 모델 수"}},"type":"object","required":["success","profiles","total_count"],"title":"ModelProfileResponseDTO","description":"모델 프로필 조회 응답 DTO","example":{"profiles":[{"available":true,"capabilities":{"max_input_tokens":128000,"max_output_tokens":16384,"structured_output":true,"tool_calling":true},"full_name":"openai:gpt-4o-mini","model_name":"gpt-4o-mini","provider":"openai"}],"success":true,"total_count":2}},"ModelUsageRequestDTO":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"models":{"items":{"type":"integer"},"type":"array","minItems":1,"title":"Models","description":"Array of model IDs to compare"},"start_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"Start Date","description":"Query start date (YYYY-MM-DD format)"},"end_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"End Date","description":"Query end date (YYYY-MM-DD format)"}},"type":"object","required":["user_id","models","start_date","end_date"],"title":"ModelUsageRequestDTO","description":"Model usage inquiry request DTO","example":{"end_date":"2025-12-31","models":[170,203,50],"start_date":"2025-01-01","user_id":"Dr.Lee"}},"ModelUsageResponseDTO":{"properties":{"model_id":{"type":"integer","title":"Model Id","description":"Model ID"},"model_name":{"type":"string","title":"Model Name","description":"Model name"},"input_cost_per_token":{"type":"number","title":"Input Cost Per Token","description":"Cost per input token"},"output_cost_per_token":{"type":"number","title":"Output Cost Per Token","description":"Cost per output token"},"total_tokens":{"type":"number","title":"Total Tokens","description":"Total token usage"},"input_tokens":{"type":"number","title":"Input Tokens","description":"Input token usage"},"output_tokens":{"type":"number","title":"Output Tokens","description":"Output token usage"},"total_cost":{"type":"number","title":"Total Cost","description":"Total cost"}},"type":"object","required":["model_id","model_name","input_cost_per_token","output_cost_per_token","total_tokens","input_tokens","output_tokens","total_cost"],"title":"ModelUsageResponseDTO","description":"Model usage response DTO","example":{"input_cost_per_token":3e-06,"input_tokens":6000.0,"model_id":50,"model_name":"o4-mini","output_cost_per_token":6e-06,"output_tokens":4000.0,"total_cost":0.042,"total_tokens":10000.0}},"MyPageAgentCreateRequest":{"properties":{"user_id":{"anyOf":[{"type":"integer"},{"type":"string"}],"title":"User Id","description":"My page owner ID (int or str)"},"agent_data_id":{"type":"integer","title":"Agent Data Id","description":"Agent master ID to add to my page (references AgentDataEntity)"},"user_my_agent_title":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"User My Agent Title","description":"User-defined personal alias (uses original name if not provided)"},"user_my_agent_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User My Agent Description","description":"User-written personal memo and usage purpose"},"is_favorite":{"type":"boolean","title":"Is Favorite","description":"Whether this is a favorite in my page (displayed at top priority)","default":false}},"type":"object","required":["user_id","agent_data_id"],"title":"MyPageAgentCreateRequest","description":"My page agent addition request","example":{"agent_data_id":5,"is_favorite":true,"user_id":"user123","user_my_agent_description":"Settings for personal projects","user_my_agent_title":"My Chatbot Agent"}},"MyPageAgentResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Unique identifier of my page item (PK)"},"user_id":{"type":"string","title":"User Id","description":"My page owner ID (always returned as string)"},"agent_data_id":{"type":"integer","title":"Agent Data Id","description":"Related agent master data ID (references AgentDataEntity)"},"user_my_agent_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User My Agent Title","description":"User-defined personal alias (may differ from original)"},"user_my_agent_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User My Agent Description","description":"User-written personal memo and usage method"},"is_favorite":{"type":"boolean","title":"Is Favorite","description":"Whether this is a favorite in my page"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when added to my page"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Last update time of my page settings"}},"type":"object","required":["id","user_id","agent_data_id","is_favorite","created_at","updated_at"],"title":"MyPageAgentResponse","description":"My page agent query response (pure CRUD - returns single entity only)"},"MyPageAgentResponseWithScenarios":{"properties":{"id":{"type":"integer","title":"Id","description":"Unique identifier of my page item (PK)"},"user_id":{"type":"string","title":"User Id","description":"My page owner ID (always returned as string)"},"agent_data_id":{"type":"integer","title":"Agent Data Id","description":"Related agent master data ID (references AgentDataEntity)"},"user_my_agent_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User My Agent Title","description":"User-defined personal alias (may differ from original)"},"user_my_agent_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User My Agent Description","description":"User-written personal memo and usage method"},"is_favorite":{"type":"boolean","title":"Is Favorite","description":"Whether this is a favorite in my page"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when added to my page"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Last update time of my page settings"},"has_scenario":{"type":"boolean","title":"Has Scenario","description":"Whether connected to scenarios (True if connected to 1 or more)"},"scenarios":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Scenarios","description":"List of connected scenario information (includes agt_scenarios_data, agt_scenario_my_page info)","default":[]},"count_scenario":{"type":"integer","title":"Count Scenario","description":"Number of scenarios connected to the agent in MyPage","default":0}},"type":"object","required":["id","user_id","agent_data_id","is_favorite","created_at","updated_at","has_scenario"],"title":"MyPageAgentResponseWithScenarios","description":"My page agent query response (includes scenario connection information)"},"MyPageAgentUpdateRequest":{"properties":{"user_my_agent_title":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"User My Agent Title","description":"Personal alias to update"},"user_my_agent_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User My Agent Description","description":"Personal memo to update"},"is_favorite":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Favorite","description":"Change favorite status"}},"type":"object","title":"MyPageAgentUpdateRequest","description":"My page agent update request (supports partial updates)"},"MyPagePersonaCreateRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"My page owner user ID"},"persona_data_id":{"type":"integer","title":"Persona Data Id","description":"Original persona ID to add to my page (PersonaDataEntity reference)"},"user_my_persona_title":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"User My Persona Title","description":"Personal alias set by user (uses original name if not entered)"},"user_my_persona_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User My Persona Description","description":"Personal notes and usage purpose written by user"},"is_favorite":{"type":"boolean","title":"Is Favorite","description":"Whether favorite in my page (display priority at top)","default":false}},"type":"object","required":["user_id","persona_data_id"],"title":"MyPagePersonaCreateRequest","example":{"is_favorite":true,"persona_data_id":5,"user_id":"user123","user_my_persona_description":"Settings specialized for personal projects and team code reviews","user_my_persona_title":"My Python Development Helper"}},"MyPagePersonaResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"My page item unique identifier (PK)"},"user_id":{"type":"string","title":"User Id","description":"My page owner ID"},"persona_data_id":{"type":"integer","title":"Persona Data Id","description":"Associated persona original data ID (PersonaDataEntity reference)"},"user_my_persona_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User My Persona Title","description":"Personal alias set by user (may differ from original)"},"user_my_persona_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User My Persona Description","description":"Personal notes and usage methods written by user"},"is_favorite":{"type":"boolean","title":"Is Favorite","description":"Whether favorite in my page"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time added to my page"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"My page settings last update time"}},"type":"object","required":["id","user_id","persona_data_id","is_favorite","created_at","updated_at"],"title":"MyPagePersonaResponse"},"MyPagePersonaResponseWithConnections":{"properties":{"id":{"type":"integer","title":"Id","description":"My page item unique identifier (PK)"},"user_id":{"type":"string","title":"User Id","description":"My page owner ID"},"persona_data_id":{"type":"integer","title":"Persona Data Id","description":"Associated persona original data ID (PersonaDataEntity reference)"},"user_my_persona_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User My Persona Title","description":"Personal alias set by user (may differ from original)"},"user_my_persona_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User My Persona Description","description":"Personal notes and usage methods written by user"},"is_favorite":{"type":"boolean","title":"Is Favorite","description":"Whether favorite in my page"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time added to my page"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"My page settings last update time"},"has_scenario":{"type":"boolean","title":"Has Scenario","description":"Whether scenario is connected (True when 1 or more connected)"},"scenarios":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Scenarios","description":"Connected scenario information list (includes agt_scenarios_data, agt_scenario_my_page info)","default":[]},"count_scenario":{"type":"integer","title":"Count Scenario","description":"Number of scenarios connected to PersonaMyPage","default":0},"has_agent":{"type":"boolean","title":"Has Agent","description":"Whether agent is connected (True when 1 or more connected)"},"agents":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Agents","description":"Connected agent information list (includes agt_agents_data, agt_agent_my_page info)","default":[]},"count_agent":{"type":"integer","title":"Count Agent","description":"Number of agents connected to PersonaMyPage","default":0}},"type":"object","required":["id","user_id","persona_data_id","is_favorite","created_at","updated_at","has_scenario","has_agent"],"title":"MyPagePersonaResponseWithConnections","description":"My page persona query response (including agent and scenario connection information)"},"MyPagePersonaUpdateRequest":{"properties":{"user_my_persona_title":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"User My Persona Title","description":"Personal alias to update"},"user_my_persona_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User My Persona Description","description":"Personal notes to update"},"is_favorite":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Favorite","description":"Change favorite status"}},"type":"object","title":"MyPagePersonaUpdateRequest"},"MyPageScenarioCreateRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"My page owner ID"},"scenario_data_id":{"type":"integer","title":"Scenario Data Id","description":"Scenario master ID to add to my page (references ScenarioDataEntity)"},"user_my_scenario_title":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"User My Scenario Title","description":"User-defined personal alias (uses original name if not provided)"},"user_my_scenario_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User My Scenario Description","description":"User-written personal memo and usage purpose"},"is_favorite":{"type":"boolean","title":"Is Favorite","description":"Whether this is a favorite in my page (displayed at top priority)","default":false}},"type":"object","required":["user_id","scenario_data_id"],"title":"MyPageScenarioCreateRequest","description":"My page scenario addition request","example":{"is_favorite":true,"scenario_data_id":5,"user_id":"user123","user_my_scenario_description":"Settings for personal projects","user_my_scenario_title":"My Chatbot Scenario"}},"MyPageScenarioResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Unique identifier of my page item (PK)"},"user_id":{"type":"string","title":"User Id","description":"My page owner ID"},"scenario_data_id":{"type":"integer","title":"Scenario Data Id","description":"Related scenario master data ID (references ScenarioDataEntity)"},"user_my_scenario_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User My Scenario Title","description":"User-defined personal alias (may differ from original)"},"user_my_scenario_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User My Scenario Description","description":"User-written personal memo and usage method"},"is_favorite":{"type":"boolean","title":"Is Favorite","description":"Whether this is a favorite in my page"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time added to my page"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"My page settings last update time"},"count_agent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Count Agent","description":"Number of unique agents connected to the scenario"},"count_model":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Count Model","description":"Total count of models used by all agents in the scenario (including duplicates)"},"count_persona":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Count Persona","description":"Total count of personas used by all agents in the scenario (including duplicates)"},"count_tool":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Count Tool","description":"Total count of tools used by all agents in the scenario (including duplicates)"}},"type":"object","required":["id","user_id","scenario_data_id","is_favorite","created_at","updated_at"],"title":"MyPageScenarioResponse","description":"My page scenario query response (pure CRUD - returns single entity only)"},"MyPageScenarioUpdateRequest":{"properties":{"user_my_scenario_title":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"User My Scenario Title","description":"Personal alias to update"},"user_my_scenario_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User My Scenario Description","description":"Personal memo to update"},"is_favorite":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Favorite","description":"Change favorite status"}},"type":"object","title":"MyPageScenarioUpdateRequest","description":"My page scenario update request (supports partial updates)"},"NodeDataMyPageRequest":{"properties":{"user_id":{"anyOf":[{"type":"integer"},{"type":"string"}],"title":"User Id","description":"Requesting user ID"},"scenario_my_page_id":{"type":"integer","title":"Scenario My Page Id","description":"ID from agt_scenario_my_page table"},"is_deep_agent_architecture":{"type":"boolean","title":"Is Deep Agent Architecture","description":"deep agent architecture? True: True, False: False","default":false},"nodes":{"items":{"$ref":"#/components/schemas/NodeItem"},"type":"array","title":"Nodes","description":"Node list"}},"type":"object","required":["user_id","scenario_my_page_id","nodes"],"title":"NodeDataMyPageRequest","description":"My page based node creation/update request","example":{"is_deep_agent_architecture":false,"nodes":[{"connectedTo":["agent_0"],"connections":1,"isCollapsed":false,"node_id":"node_id:0","node_name":"start","position":{"x":100,"y":300},"sourcePosition":"right","targetPosition":"left","type":"start"}],"scenario_my_page_id":1,"user_id":"user123"}},"NodeDataMyPageResponse":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"scenario_my_page_id":{"type":"integer","title":"Scenario My Page Id","description":"ID from agt_scenario_my_page table"},"agt_scenarios_data_id":{"type":"integer","title":"Agt Scenarios Data Id","description":"Original scenario ID"},"is_deep_agent_architecture":{"type":"boolean","title":"Is Deep Agent Architecture","description":"deep agent architecture? True: True, False: False","default":false},"total_count":{"type":"integer","title":"Total Count","description":"Total node count"},"nodes":{"items":{"$ref":"#/components/schemas/NodeItem"},"type":"array","title":"Nodes","description":"Node list"},"is_owner":{"type":"boolean","title":"Is Owner","description":"Whether user is the original owner"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Creation time"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Update time"}},"type":"object","required":["user_id","scenario_my_page_id","agt_scenarios_data_id","total_count","nodes","is_owner"],"title":"NodeDataMyPageResponse","description":"My page based node response","example":{"agt_scenarios_data_id":10,"created_at":"2024-12-19T10:00:00Z","is_owner":true,"nodes":[],"scenario_my_page_id":1,"total_count":1,"updated_at":"2024-12-19T10:00:00Z","user_id":"user123"}},"NodeDataMyPageUpdateRequest":{"properties":{"user_id":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"User Id","description":"Requesting user ID"},"scenario_my_page_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Scenario My Page Id","description":"ID from agt_scenario_my_page table"},"is_deep_agent_architecture":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Deep Agent Architecture","description":"deep agent architecture? True: True, False: False"},"nodes":{"anyOf":[{"items":{"$ref":"#/components/schemas/NodeItemPartialUpdate"},"type":"array"},{"type":"null"}],"title":"Nodes","description":"List of nodes to be modified"}},"type":"object","title":"NodeDataMyPageUpdateRequest","description":"My page based node partial update request"},"NodeDataRequest":{"properties":{"user_id":{"anyOf":[{"type":"integer"},{"type":"string"}],"title":"User Id","description":"User ID (int or str)"},"agt_scenarios_data_id":{"type":"integer","title":"Agt Scenarios Data Id","description":"ID from agt_scenarios_data table"},"is_deep_agent_architecture":{"type":"boolean","title":"Is Deep Agent Architecture","description":"deep agent architecture? True: True, False: False","default":false},"nodes":{"items":{"$ref":"#/components/schemas/NodeItem"},"type":"array","title":"Nodes","description":"Node list (single or multiple)"}},"type":"object","required":["user_id","agt_scenarios_data_id","nodes"],"title":"NodeDataRequest","description":"POST, PUT, PATCH - node input (actual input structure)","example":{"agt_scenarios_data_id":1,"is_deep_agent_architecture":false,"nodes":[{"connectedTo":["agent_0"],"connections":1,"isCollapsed":false,"node_id":"node_id:0","node_name":"start","position":{"x":100,"y":300},"sourcePosition":"right","targetPosition":"left","type":"start"},{"agent_my_page_id":1,"connectedTo":["end"],"connections":1,"isCollapsed":false,"node_id":"node_id:1","node_name":"agent_0","position":{"x":200,"y":300},"sourcePosition":"right","targetPosition":"left","type":"agent"},{"connectedTo":[],"connections":0,"isCollapsed":false,"node_id":"node_id:2","node_name":"end","position":{"x":300,"y":300},"sourcePosition":"right","targetPosition":"left","type":"end"}],"user_id":"user123"}},"NodeDataResponse":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID (always returned as string)"},"agt_scenarios_data_id":{"type":"integer","title":"Agt Scenarios Data Id","description":"ID from agt_scenarios_data table"},"is_deep_agent_architecture":{"type":"boolean","title":"Is Deep Agent Architecture","description":"deep agent architecture? True: True, False: False","default":false},"total_count":{"type":"integer","title":"Total Count","description":"Total node count"},"nodes":{"items":{"$ref":"#/components/schemas/NodeItem"},"type":"array","title":"Nodes","description":"Node list"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"Creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["user_id","agt_scenarios_data_id","total_count","nodes"],"title":"NodeDataResponse","description":"GET, POST, PUT, PATCH - node response (actual output structure)","example":{"agt_scenarios_data_id":1,"created_at":"2024-12-19T10:00:00Z","nodes":[{"agent_my_page_id":999,"connectedTo":["agent_0"],"connections":1,"isCollapsed":false,"node_id":"node_id:1","node_name":"start_node","position":{"x":100,"y":300},"sourcePosition":"right","targetPosition":"left","type":"start"}],"total_count":2,"updated_at":"2024-12-19T10:00:00Z","user_id":"user123"}},"NodeDataScenarioUpdateRequest":{"properties":{"user_id":{"anyOf":[{"type":"integer"},{"type":"string"}],"title":"User Id","description":"User ID (int or str)"},"agt_scenarios_data_id":{"type":"integer","title":"Agt Scenarios Data Id","description":"ID from agt_scenarios_data table"},"is_deep_agent_architecture":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Deep Agent Architecture","description":"deep agent architecture? True: True, False: False"},"nodes":{"anyOf":[{"items":{"$ref":"#/components/schemas/NodeItemPartialUpdate"},"type":"array"},{"type":"null"}],"title":"Nodes","description":"List of nodes to be partially updated (optional)"}},"type":"object","required":["user_id","agt_scenarios_data_id"],"title":"NodeDataScenarioUpdateRequest","description":"PATCH /scenario/{id} - scenario node partial update request DTO"},"NodeDataUpdateRequest":{"properties":{"user_id":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID (int or str)"},"agt_scenarios_data_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agt Scenarios Data Id","description":"ID from agt_scenarios_data table"},"is_deep_agent_architecture":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Deep Agent Architecture","description":"deep agent architecture? True: True, False: False"},"nodes":{"anyOf":[{"items":{"$ref":"#/components/schemas/NodeItem"},"type":"array"},{"type":"null"}],"title":"Nodes","description":"Node list (nodes to be modified)"}},"type":"object","title":"NodeDataUpdateRequest","description":"PATCH - node partial update (actual input structure)"},"NodeItem":{"properties":{"node_id":{"type":"string","title":"Node Id","description":"Node ID (ex: node_id:1)"},"type":{"type":"string","title":"Type","description":"Node type (start | agent | end | agent_0)"},"position":{"additionalProperties":{"anyOf":[{"type":"integer"},{"type":"null"}]},"type":"object","title":"Position","description":"Screen position {x: int, y: int}"},"sourcePosition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sourceposition","description":"source position"},"targetPosition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Targetposition","description":"target position"},"agent_my_page_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agent My Page Id","description":"ID from agt_agent_my_page table"},"isCollapsed":{"type":"boolean","title":"Iscollapsed","description":"Whether node popup is collapsed","default":false},"node_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Node Name","description":"Node name (ex: agent_0)"},"connections":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Connections","description":"Number of connections"},"connectedTo":{"items":{"type":"string"},"type":"array","title":"Connectedto","description":"Array of connected node IDs","default":[]}},"type":"object","required":["node_id","type","position"],"title":"NodeItem","description":"Node item in actual input structure","example":{"agent_my_page_id":999,"connectedTo":["agent_0"],"connections":1,"isCollapsed":false,"node_id":"node_id:1","node_name":"start_node","position":{"x":100,"y":300},"sourcePosition":"right","targetPosition":"left","type":"start"}},"NodeItemPartialUpdate":{"properties":{"node_id":{"type":"string","title":"Node Id","description":"ID of the node to be modified"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"Node type (start | agent | end | agent_0)"},"position":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"integer"},{"type":"null"}]},"type":"object"},{"type":"null"}],"title":"Position","description":"Screen position {x: int, y: int}"},"sourcePosition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sourceposition","description":"source position"},"targetPosition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Targetposition","description":"target position"},"agent_my_page_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agent My Page Id","description":"ID from agt_agent_my_page table"},"isCollapsed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Iscollapsed","description":"Whether node popup is collapsed"},"node_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Node Name","description":"Node name (ex: agent_0)"},"connections":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Connections","description":"Number of connections"},"connectedTo":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Connectedto","description":"Array of connected node IDs"}},"type":"object","required":["node_id"],"title":"NodeItemPartialUpdate","description":"PATCH /scenario/{id} - individual node partial update DTO"},"OperationTypeEnum":{"type":"string","enum":["AND","OR"],"title":"OperationTypeEnum"},"PaginatedChatResponseDTO":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ChatResponseDTO"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"},"token_summary":{"anyOf":[{"$ref":"#/components/schemas/TokenSummaryDTO"},{"type":"null"}],"description":"Token usage summary"},"performance_metrics":{"anyOf":[{"$ref":"#/components/schemas/PerformanceMetricsDTO"},{"type":"null"}],"description":"Performance metrics (optional)"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedChatResponseDTO","description":"Paginated Chat Response DTO (includes token summary and optional performance metrics)","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_AgentDataResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AgentDataResponse"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[AgentDataResponse]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_AgentRoleResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AgentRoleResponse"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[AgentRoleResponse]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_ApiPermissionResponseDTO_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ApiPermissionResponseDTO"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[ApiPermissionResponseDTO]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_EdgeDataMyPageResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EdgeDataMyPageResponse"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[EdgeDataMyPageResponse]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_EdgeDataResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EdgeDataResponse"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[EdgeDataResponse]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_HistoryMemoryConfigResponseDTO_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/HistoryMemoryConfigResponseDTO"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[HistoryMemoryConfigResponseDTO]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_HistoryMemoryScenarioResponseDTO_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/HistoryMemoryScenarioResponseDTO"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[HistoryMemoryScenarioResponseDTO]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_HistoryResponseDTO_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/HistoryResponseDTO"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[HistoryResponseDTO]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_MemorySettingResponseDTO_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MemorySettingResponseDTO"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[MemorySettingResponseDTO]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_MyPageAgentResponseWithScenarios_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MyPageAgentResponseWithScenarios"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[MyPageAgentResponseWithScenarios]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_MyPagePersonaResponseWithConnections_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MyPagePersonaResponseWithConnections"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[MyPagePersonaResponseWithConnections]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_MyPageScenarioResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MyPageScenarioResponse"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[MyPageScenarioResponse]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_NodeDataMyPageResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/NodeDataMyPageResponse"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[NodeDataMyPageResponse]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_NodeDataResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/NodeDataResponse"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[NodeDataResponse]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_PersonaDataResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PersonaDataResponse"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[PersonaDataResponse]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_PersonaDataRuntimeResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PersonaDataRuntimeResponse"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[PersonaDataRuntimeResponse]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_PersonaModelResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PersonaModelResponse"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[PersonaModelResponse]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_PersonaRoleResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PersonaRoleResponse"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[PersonaRoleResponse]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_PersonaRuntimeResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PersonaRuntimeResponse"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[PersonaRuntimeResponse]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_ScenarioDataResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ScenarioDataResponse"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[ScenarioDataResponse]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_ScenarioRoleResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ScenarioRoleResponse"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[ScenarioRoleResponse]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_TitleResponseDTO_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TitleResponseDTO"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[TitleResponseDTO]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PaginatedResponseDTO_WebSocketKeyResponseDTO_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WebSocketKeyResponseDTO"},"type":"array","title":"Items","description":"Page data"},"total":{"type":"integer","title":"Total","description":"Total data count"},"page":{"type":"integer","title":"Page","description":"Current page number"},"size":{"type":"integer","title":"Size","description":"Page size"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total pages"}},"type":"object","required":["items","total","page","size","total_pages"],"title":"PaginatedResponseDTO[WebSocketKeyResponseDTO]","example":{"items":[{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}],"page":1,"size":10,"total":25,"total_pages":3}},"PerformanceMetricsDTO":{"properties":{"total_latency_ms":{"type":"number","title":"Total Latency Ms","description":"Total execution latency in milliseconds"},"avg_step_latency_ms":{"type":"number","title":"Avg Step Latency Ms","description":"Average step latency in milliseconds"},"step_latencies":{"items":{"$ref":"#/components/schemas/StepLatencyDTO"},"type":"array","title":"Step Latencies","description":"Individual step latencies"},"success_rate":{"type":"number","title":"Success Rate","description":"Success rate (0.0-1.0)"},"error_count":{"type":"integer","title":"Error Count","description":"Total number of errors"},"retry_count":{"type":"integer","title":"Retry Count","description":"Total number of retries"},"checkpoint_count":{"type":"integer","title":"Checkpoint Count","description":"Total number of checkpoints"},"errors":{"anyOf":[{"items":{"items":{"$ref":"#/components/schemas/CheckpointErrorDTO"},"type":"array"},"type":"array"},{"type":"null"}],"title":"Errors","description":"Errors by checkpoint"},"performance_grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Performance Grade","description":"Performance grade (A-F)"}},"type":"object","required":["total_latency_ms","avg_step_latency_ms","success_rate","error_count","retry_count","checkpoint_count"],"title":"PerformanceMetricsDTO","description":"LangSmith-style performance metrics DTO","example":{"avg_step_latency_ms":205.76,"checkpoint_count":7,"error_count":1,"performance_grade":"B - Good","retry_count":2,"step_latencies":[{"latency_ms":100.0,"source":"input","step":0,"timestamp":"2024-01-01T00:00:00"}],"success_rate":0.95,"total_latency_ms":1234.56}},"PeriodDTO":{"properties":{"startDate":{"type":"string","title":"Startdate","description":"Start date (ISO 8601)"},"endDate":{"type":"string","title":"Enddate","description":"End date (ISO 8601)"},"granularity":{"type":"string","title":"Granularity","description":"Time series unit"}},"type":"object","required":["startDate","endDate","granularity"],"title":"PeriodDTO","description":"Query period information DTO"},"PersonaCategoryEnum":{"type":"string","enum":["IT","Medical","Education","Finance","Marketing","Art","Engineering","Legal","Science","Sports","Environment","Media","Culinary","Politics","Psychology","Fashion","Travel","Agriculture","Gaming","Automotive","CUSTOM"],"title":"PersonaCategoryEnum"},"PersonaDataCreateRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"ID of the user who created the persona (owner)"},"category":{"$ref":"#/components/schemas/PersonaCategoryEnum","description":"Persona expertise category (IT, Business, Education, Creative, etc.)","default":"CUSTOM"},"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"Official persona name (displayed to other users)"},"description":{"type":"string","minLength":1,"title":"Description","description":"Official information describing the persona's purpose and expertise"},"system_prompt":{"type":"string","minLength":1,"title":"System Prompt","description":"System prompt passed to AI model (core definition of persona)"},"user_persona_title":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"User Persona Title","description":"Persona title for owner's personal use"},"user_persona_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Persona Description","description":"Owner's personal persona description and notes"},"is_system":{"type":"boolean","title":"Is System","description":"Whether system-provided persona (only admins can set True)","default":false},"is_public":{"type":"boolean","title":"Is Public","description":"Whether public to other users","default":false}},"type":"object","required":["user_id","name","description","system_prompt"],"title":"PersonaDataCreateRequest","example":{"category":"IT","description":"AI assistant specialized in Python programming and web development, providing code reviews and technical consulting.","is_public":false,"is_system":false,"name":"Python Development Expert","system_prompt":"<ROLE>You are a Python development expert with 10 years of experience.</ROLE><INSTRUCTIONS>Analyze user's Python code and suggest improvements. Provide clear and practical advice.</INSTRUCTIONS>","user_id":"user123","user_persona_description":"Dedicated helper reflecting our team's Python development standards and best practices","user_persona_title":"Team Python Mentor"}},"PersonaDataResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Persona unique identifier (PK)"},"user_id":{"type":"string","title":"User Id","description":"Owner user ID who created the persona"},"category":{"$ref":"#/components/schemas/PersonaCategoryEnum","description":"Persona expertise category"},"name":{"type":"string","title":"Name","description":"Official persona name"},"description":{"type":"string","title":"Description","description":"Official persona description and purpose"},"system_prompt":{"type":"string","title":"System Prompt","description":"System prompt passed to AI model"},"user_persona_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Persona Title","description":"Personal title set by owner"},"user_persona_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Persona Description","description":"Personal description and notes written by owner"},"is_system":{"type":"boolean","title":"Is System","description":"Whether system-provided persona (admin managed)"},"is_public":{"type":"boolean","title":"Is Public","description":"Whether persona is public to other users"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Persona creation time"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Persona last update time"}},"type":"object","required":["id","user_id","category","name","description","system_prompt","is_system","is_public","created_at","updated_at"],"title":"PersonaDataResponse","example":{"category":"IT","created_at":"2025-12-31T00:00:00","description":"AI assistant specialized in Python programming and web development, providing code reviews and technical consulting.","id":1,"is_public":false,"is_system":false,"name":"Python Development Expert","system_prompt":"<ROLE>You are a Python development expert with 10 years of experience.</ROLE><INSTRUCTIONS>Analyze user's Python code and suggest improvements. Provide clear and practical advice.</INSTRUCTIONS>","updated_at":"2025-12-31T00:00:00","user_id":"user123","user_persona_description":"Dedicated helper reflecting our team's Python development standards and best practices","user_persona_title":"Team Python Mentor"}},"PersonaDataRuntimeCreateRequest":{"properties":{"persona_data_id":{"type":"integer","title":"Persona Data Id","description":"Original persona ID"},"persona_runtime_id":{"type":"integer","title":"Persona Runtime Id","description":"Runtime ID"}},"type":"object","required":["persona_data_id","persona_runtime_id"],"title":"PersonaDataRuntimeCreateRequest","example":{"persona_data_id":1,"persona_runtime_id":1}},"PersonaDataRuntimeResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Unique identifier (PK)"},"persona_data_id":{"type":"integer","title":"Persona Data Id","description":"Original persona ID"},"persona_runtime_id":{"type":"integer","title":"Persona Runtime Id","description":"Runtime ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Creation time"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Update time"}},"type":"object","required":["id","persona_data_id","persona_runtime_id","created_at","updated_at"],"title":"PersonaDataRuntimeResponse"},"PersonaDataRuntimeUpdateRequest":{"properties":{"persona_data_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Persona Data Id","description":"Original persona ID"},"persona_runtime_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Persona Runtime Id","description":"Runtime ID"}},"type":"object","title":"PersonaDataRuntimeUpdateRequest"},"PersonaDataUpdateRequest":{"properties":{"category":{"anyOf":[{"$ref":"#/components/schemas/PersonaCategoryEnum"},{"type":"null"}],"description":"Persona expertise category"},"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name","description":"Official persona name"},"description":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Description","description":"Official persona description"},"system_prompt":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"System Prompt","description":"System prompt to update"},"user_persona_title":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"User Persona Title","description":"Personal title to update"},"user_persona_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Persona Description","description":"Personal description to update"},"is_system":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is System","description":"Change system-provided persona status"},"is_public":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Public","description":"Change public status"}},"type":"object","title":"PersonaDataUpdateRequest","example":{"category":"IT","description":"AI assistant specialized in Python programming and web development, providing code reviews and technical consulting.","is_public":false,"is_system":false,"name":"Python Development Expert","system_prompt":"<ROLE>You are a Python development expert with 10 years of experience.</ROLE><INSTRUCTIONS>Analyze user's Python code and suggest improvements. Provide clear and practical advice.</INSTRUCTIONS>","user_persona_description":"Dedicated helper reflecting our team's Python development standards and best practices","user_persona_title":"Team Python Mentor"}},"PersonaLLMGenerationRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"Owner user ID to create persona"},"category":{"$ref":"#/components/schemas/PersonaCategoryEnum","description":"Expertise category for AI reference (affects generation style)","default":"CUSTOM"},"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"Desired persona name (used by AI for role definition)"},"description":{"type":"string","minLength":1,"title":"Description","description":"Description of persona's role and purpose (used by AI for prompt generation)"},"persona_id":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Persona Id","description":"Persona ID for regeneration (if present: regenerate, if absent: create new)"}},"type":"object","required":["user_id","name","description"],"title":"PersonaLLMGenerationRequest","example":{"category":"IT","description":"Friendly mentor for React.js beginners, providing explanations with practical examples and code reviews.","name":"React.js Development Mentor","user_id":"user123"}},"PersonaModelCreateRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"ID of persona creation owner"},"my_page_model_id":{"type":"string","title":"My Page Model Id","description":"Model creating persona: my_page_model_id"}},"type":"object","required":["user_id","my_page_model_id"],"title":"PersonaModelCreateRequest","description":"Persona model creation request DTO","example":{"my_page_model_id":"model_456","user_id":"user123"}},"PersonaModelResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Persona model record unique identifier (PK)"},"user_id":{"type":"string","title":"User Id","description":"ID of persona creation owner"},"my_page_model_id":{"type":"string","title":"My Page Model Id","description":"Model creating persona: my_page_model_id"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Record creation time"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Record last update time"}},"type":"object","required":["id","user_id","my_page_model_id","created_at","updated_at"],"title":"PersonaModelResponse","description":"Persona model response DTO","example":{"created_at":"2025-12-31T00:00:00","id":1,"my_page_model_id":"model_456","updated_at":"2025-12-31T00:00:00","user_id":"user123"}},"PersonaModelUpdateRequest":{"properties":{"my_page_model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"My Page Model Id","description":"Persona creation model ID to update"}},"type":"object","title":"PersonaModelUpdateRequest","description":"Persona model update request DTO","example":{"my_page_model_id":"model_789"}},"PersonaRoleCreateRequest":{"properties":{"persona_data_id":{"type":"integer","title":"Persona Data Id","description":"Original persona ID to share (PersonaDataEntity reference)"},"role_id":{"type":"integer","title":"Role Id","description":"Role ID to grant access"}},"type":"object","required":["persona_data_id","role_id"],"title":"PersonaRoleCreateRequest","example":{"persona_data_id":10,"role_id":2}},"PersonaRoleResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Permission mapping record unique identifier (PK)"},"persona_data_id":{"type":"integer","title":"Persona Data Id","description":"Shared persona original ID (PersonaDataEntity reference)"},"role_id":{"type":"integer","title":"Role Id","description":"Role ID with granted access"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when permission was first granted"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Time when permission setting was last updated"}},"type":"object","required":["id","persona_data_id","role_id","created_at","updated_at"],"title":"PersonaRoleResponse","example":{"created_at":"2025-12-31T00:00:00","id":1,"persona_data_id":10,"role_id":2,"updated_at":"2025-12-31T00:00:00"}},"PersonaRoleUpdateRequest":{"properties":{"persona_data_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Persona Data Id","description":"Original persona ID to share (PersonaDataEntity reference)"},"role_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Role Id","description":"New role ID to change"}},"type":"object","title":"PersonaRoleUpdateRequest","example":{"persona_data_id":10,"role_id":2}},"PersonaRuntimeCreateRequest":{"properties":{"runnable_config":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Runnable Config","description":"RunnableConfig key value list"},"system_prompt":{"type":"string","title":"System Prompt","description":"Persona system prompt"}},"type":"object","required":["system_prompt"],"title":"PersonaRuntimeCreateRequest","example":{"runnable_config":["user_id","thread_id"],"system_prompt":"You are an enterprise chatbot designed to assist with workplace tasks. You can query and organize information using MS Graph API based on user requests, including user profiles and organizational charts, calendar and meeting information, email and message retrieval, SharePoint document search, Teams channel and conversation data, and OneDrive file access.\nUse the provided user ID and thread ID to call MS Graph API tools and return results in a clear and concise format. Always provide accurate information only, comply with privacy protection requirements, organize responses in a simple and understandable manner, and clearly indicate when access to certain information is restricted.\nCurrent session information: User ID: <user_id>{user_id}</user_id> Thread ID: <thread_id>{thread_id}</thread_id>"}},"PersonaRuntimeResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Runtime unique identifier (PK)"},"runnable_config":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Runnable Config","description":"RunnableConfig key value list"},"system_prompt":{"type":"string","title":"System Prompt","description":"Persona system prompt"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Creation time"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Update time"}},"type":"object","required":["id","system_prompt","created_at","updated_at"],"title":"PersonaRuntimeResponse"},"PersonaRuntimeUpdateRequest":{"properties":{"runnable_config":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Runnable Config","description":"RunnableConfig key value list"},"system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Prompt","description":"Persona system prompt"}},"type":"object","title":"PersonaRuntimeUpdateRequest"},"SSEInputDTO":{"properties":{"scenario_my_page_id":{"type":"integer","title":"Scenario My Page Id","description":"Scenario my page ID","examples":[123123123124]},"user_id":{"type":"string","title":"User Id","description":"User ID","examples":["123123123124454"]},"thread_id":{"type":"string","title":"Thread Id","description":"Conversation flow distinction ID (Text)","examples":["123123123124890790"]},"qa_id":{"type":"string","title":"Qa Id","description":"Question-answer unit ID (Text)","examples":["123123123124234234"]},"message":{"anyOf":[{"type":"string"},{"items":{},"type":"array"},{"additionalProperties":true,"type":"object"}],"title":"Message","description":"Message entered by user (can be text, list for Claude multi-turn, or dict for structured input)","examples":["What is the capital of South Korea?",[{"text":"Hello","type":"text"}]]},"attachments":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Attachments","description":"Attachment file URL list (images, PDF, audio, etc. - optional)","examples":[["https://example.com/image.jpg","https://example.com/document.pdf","https://example.com/audio.wav"]]},"channel_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel Type","description":"채널 유형 (예: 'ms-teams', 'slack', 'web'). MCP 서버로 전달됨"}},"type":"object","required":["scenario_my_page_id","user_id","thread_id","qa_id","message"],"title":"SSEInputDTO","description":"SSE message DTO sent from client to server"},"ScenarioBreakdownDTO":{"properties":{"scenario_my_page_id":{"type":"integer","title":"Scenario My Page Id","description":"Scenario my page ID"},"user_my_scenario_title":{"type":"string","title":"User My Scenario Title","description":"User-defined scenario title"},"input_tokens":{"type":"number","title":"Input Tokens","description":"Number of input tokens"},"output_tokens":{"type":"number","title":"Output Tokens","description":"Number of output tokens"},"total_tokens":{"type":"number","title":"Total Tokens","description":"Total number of tokens"}},"type":"object","required":["scenario_my_page_id","user_my_scenario_title","input_tokens","output_tokens","total_tokens"],"title":"ScenarioBreakdownDTO","description":"Scenario-specific token usage analysis DTO"},"ScenarioCategoryEnum":{"type":"string","enum":["CHATBOT","MULTI_AGENT_SYSTEM","REFLECTION_CRITIQUE","PLANNING_AGENT","DATABASE","EVALUATION","EXPERIMENTAL"],"title":"ScenarioCategoryEnum","description":"Scenario category"},"ScenarioDataCreateRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"Owner user ID"},"category":{"$ref":"#/components/schemas/ScenarioCategoryEnum","default":"CHATBOT"},"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"Official name of the scenario"},"description":{"type":"string","minLength":1,"title":"Description","description":"Official description of the scenario"},"definition_name":{"type":"string","title":"Definition Name","description":"Function name that implements the scenario"},"user_scenario_title":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"User Scenario Title","description":"User-defined scenario title"},"user_scenario_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Scenario Description","description":"User-defined scenario description"},"is_system":{"type":"boolean","title":"Is System","description":"Whether this is a system-provided scenario","default":false},"is_public":{"type":"boolean","title":"Is Public","description":"Whether this is a public scenario","default":false}},"type":"object","required":["user_id","name","description","definition_name"],"title":"ScenarioDataCreateRequest","description":"Scenario master data creation request","example":{"category":"CHATBOT","definition_name":"react","description":"AI chatbot scenario for conversing with users","is_public":true,"is_system":false,"name":"AI Chatbot Scenario","user_id":"user123","user_scenario_description":"Chatbot scenario for personal projects","user_scenario_title":"My Personal Chatbot"}},"ScenarioDataResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Unique scenario ID"},"user_id":{"type":"string","title":"User Id","description":"Owner user ID"},"category":{"$ref":"#/components/schemas/ScenarioCategoryEnum"},"name":{"type":"string","title":"Name","description":"Official scenario name"},"description":{"type":"string","title":"Description","description":"Official scenario description"},"definition_name":{"type":"string","title":"Definition Name","description":"Function name that implements the scenario"},"user_scenario_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Scenario Title","description":"User-defined scenario title"},"user_scenario_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Scenario Description","description":"User-defined scenario description"},"is_system":{"type":"boolean","title":"Is System","description":"Whether system-provided scenario"},"is_public":{"type":"boolean","title":"Is Public","description":"Whether public scenario"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Creation time"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Update time"}},"type":"object","required":["id","user_id","category","name","description","definition_name","is_system","is_public","created_at","updated_at"],"title":"ScenarioDataResponse","description":"Scenario master data query response"},"ScenarioDataUpdateRequest":{"properties":{"category":{"anyOf":[{"$ref":"#/components/schemas/ScenarioCategoryEnum"},{"type":"null"}],"description":"Scenario category"},"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name","description":"Official name of the scenario"},"description":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Description","description":"Official description of the scenario"},"definition_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Definition Name","description":"Function name that implements the scenario"},"user_scenario_title":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"User Scenario Title","description":"User-defined scenario title"},"user_scenario_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Scenario Description","description":"User-defined scenario description"},"is_public":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Public","description":"Whether this is a public scenario"}},"type":"object","title":"ScenarioDataUpdateRequest","description":"Scenario master data update request (supports partial updates)"},"ScenarioPeriodDTO":{"properties":{"start_date":{"type":"string","title":"Start Date","description":"Start date (ISO 8601)"},"end_date":{"type":"string","title":"End Date","description":"End date (ISO 8601)"}},"type":"object","required":["start_date","end_date"],"title":"ScenarioPeriodDTO","description":"Query period information DTO"},"ScenarioRoleCreateRequest":{"properties":{"scenario_data_id":{"type":"integer","title":"Scenario Data Id","description":"Scenario data ID"},"role_id":{"type":"integer","title":"Role Id","description":"Target role/permission ID for sharing"}},"type":"object","required":["scenario_data_id","role_id"],"title":"ScenarioRoleCreateRequest","description":"Scenario role permission addition request","example":{"role_id":2,"scenario_data_id":5}},"ScenarioRoleResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Permission mapping record ID"},"scenario_data_id":{"type":"integer","title":"Scenario Data Id","description":"Scenario data ID"},"role_id":{"type":"integer","title":"Role Id","description":"Target role/permission ID for sharing"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Permission grant time"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Permission modification time"}},"type":"object","required":["id","scenario_data_id","role_id","created_at","updated_at"],"title":"ScenarioRoleResponse","description":"Scenario role permission query response","example":{"created_at":"2024-01-01T00:00:00","id":1,"role_id":2,"scenario_data_id":5,"updated_at":"2024-01-01T00:00:00"}},"ScenarioRoleUpdateRequest":{"properties":{"scenario_data_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Scenario Data Id","description":"Scenario data ID"},"role_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Role Id","description":"Role/permission ID to change"}},"type":"object","title":"ScenarioRoleUpdateRequest","description":"Scenario role permission update request","example":{"role_id":2,"scenario_data_id":5}},"ScenarioUsageRequestDTO":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"scenario_my_page_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Scenario My Page Id","description":"Scenario my page ID (optional)"},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date","description":"Query start date (YYYY-MM-DD)"},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date","description":"Query end date (YYYY-MM-DD)"}},"type":"object","required":["user_id"],"title":"ScenarioUsageRequestDTO","description":"Scenario usage inquiry request DTO","example":{"end_date":"2025-12-31","scenario_my_page_id":1,"start_date":"2025-01-01","user_id":"Dr.Lee"}},"ScenarioUsageResponseDTO":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"total_token_usage":{"$ref":"#/components/schemas/TokenUsageDTO","description":"Total token usage"},"scenario_breakdown":{"items":{"$ref":"#/components/schemas/ScenarioBreakdownDTO"},"type":"array","title":"Scenario Breakdown","description":"Scenario-specific usage analysis"},"period":{"$ref":"#/components/schemas/ScenarioPeriodDTO","description":"Query period"}},"type":"object","required":["user_id","total_token_usage","scenario_breakdown","period"],"title":"ScenarioUsageResponseDTO","description":"Scenario usage response DTO (all scenarios)","example":{"period":{"end_date":"2025-12-31T23:59:59Z","start_date":"2025-01-01T00:00:00Z"},"scenario_breakdown":[{"input_tokens":50000,"output_tokens":25000,"scenario_my_page_id":1,"total_tokens":75000,"user_my_scenario_title":"Scenario A"}],"total_token_usage":{"input_tokens":150000,"output_tokens":75000,"total_tokens":225000},"user_id":"Dr.Lee"}},"SchedulerCallbackRequest":{"properties":{"task_id":{"type":"integer","title":"Task Id","description":"스케줄 작업 ID"},"task_name":{"type":"string","title":"Task Name","description":"작업 이름"},"agent_id":{"type":"string","title":"Agent Id","description":"에이전트 ID (scenario_my_page_id)"},"session_id":{"type":"string","title":"Session Id","description":"세션 ID (thread_id)"},"chat_id":{"type":"string","title":"Chat Id","description":"채팅 ID (qa_id)"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"실제 사용자 ID (작업 생성자)"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"에이전트에게 전달할 메시지 (없으면 task_name 사용)"},"scheduled_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scheduled At","description":"예약된 시간"},"executed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Executed At","description":"실행된 시간"},"callback_payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Callback Payload","description":"추가 페이로드 데이터"},"celery_task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Celery Task Id","description":"Celery Task ID (재시도 시 멱등성 보장)"},"channel_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel Type","description":"채널 유형 (예: 'TEAMS', 'SLACK', 'WEB'). MCP 도구 헤더 전달용"}},"type":"object","required":["task_id","task_name","agent_id","session_id","chat_id"],"title":"SchedulerCallbackRequest","description":"스케줄러 콜백 요청 스키마"},"SchedulerCallbackResponse":{"properties":{"success":{"type":"boolean","title":"Success","description":"처리 성공 여부"},"task_id":{"type":"integer","title":"Task Id","description":"스케줄 작업 ID"},"agent_id":{"type":"string","title":"Agent Id","description":"에이전트 ID"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"에이전트 응답 메시지"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"에러 메시지"},"processed_at":{"type":"string","title":"Processed At","description":"처리 완료 시간"}},"type":"object","required":["success","task_id","agent_id","processed_at"],"title":"SchedulerCallbackResponse","description":"스케줄러 콜백 응답 스키마"},"SingleScenarioUsageResponseDTO":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"scenario_my_page_id":{"type":"integer","title":"Scenario My Page Id","description":"Scenario my page ID"},"user_my_scenario_title":{"type":"string","title":"User My Scenario Title","description":"User-defined scenario title"},"token_usage":{"$ref":"#/components/schemas/TokenUsageDTO","description":"Token usage"},"period":{"$ref":"#/components/schemas/ScenarioPeriodDTO","description":"Query period"}},"type":"object","required":["user_id","scenario_my_page_id","user_my_scenario_title","token_usage","period"],"title":"SingleScenarioUsageResponseDTO","description":"Scenario usage response DTO (single scenario)","example":{"period":{"end_date":"2025-12-31T23:59:59Z","start_date":"2025-01-01T00:00:00Z"},"scenario_my_page_id":3,"token_usage":{"input_tokens":40000,"output_tokens":20000,"total_tokens":60000},"user_id":"Dr.Lee","user_my_scenario_title":"Scenario C"}},"SortOrderEnum":{"type":"string","enum":["ASC","DESC"],"title":"SortOrderEnum"},"StepLatencyDTO":{"properties":{"step":{"type":"integer","title":"Step","description":"Step number"},"source":{"type":"string","title":"Source","description":"Checkpoint source (input/loop/final)"},"latency_ms":{"type":"number","title":"Latency Ms","description":"Latency in milliseconds"},"timestamp":{"type":"string","title":"Timestamp","description":"Step timestamp (ISO format)"}},"type":"object","required":["step","source","latency_ms","timestamp"],"title":"StepLatencyDTO","description":"단계별 지연시간 정보"},"TitleCreateDTO":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"scenario_my_page_id":{"type":"integer","title":"Scenario My Page Id","description":"Scenario my page ID"},"thread_id":{"type":"string","title":"Thread Id","description":"Thread ID (Text)"},"qa_id":{"type":"string","title":"Qa Id","description":"QA ID (Text)"},"message":{"type":"string","title":"Message","description":"Message"},"title":{"type":"string","title":"Title","description":"Title"},"is_flag":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Flag","description":"Flag status","default":false}},"type":"object","required":["user_id","scenario_my_page_id","thread_id","qa_id","message","title"],"title":"TitleCreateDTO","description":"Title creation DTO"},"TitlePatchDTO":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Title to update"},"is_flag":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Flag","description":"Flag status to update"}},"type":"object","title":"TitlePatchDTO","description":"Title partial update DTO (only title modification)"},"TitleResponseDTO":{"properties":{"id":{"type":"integer","title":"Id","description":"ID"},"user_id":{"type":"string","title":"User Id","description":"User ID"},"scenario_my_page_id":{"type":"integer","title":"Scenario My Page Id","description":"Scenario my page ID"},"thread_id":{"type":"string","title":"Thread Id","description":"Thread ID (Text)"},"qa_id":{"type":"string","title":"Qa Id","description":"QA ID (Text)"},"message":{"type":"string","title":"Message","description":"Message"},"title":{"type":"string","title":"Title","description":"Title"},"is_flag":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Flag","description":"Flag status"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Created at"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Updated at"}},"type":"object","required":["id","user_id","scenario_my_page_id","thread_id","qa_id","message","title","created_at","updated_at"],"title":"TitleResponseDTO","description":"Title response DTO"},"TitleServiceDTO":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"scenario_my_page_id":{"type":"integer","title":"Scenario My Page Id","description":"Scenario my page ID"},"thread_id":{"type":"string","title":"Thread Id","description":"Thread ID (Text)"},"qa_id":{"type":"string","title":"Qa Id","description":"QA ID (Text)"},"message":{"type":"string","title":"Message","description":"Message"}},"type":"object","required":["user_id","scenario_my_page_id","thread_id","qa_id","message"],"title":"TitleServiceDTO","description":"Title service DTO"},"TitleSortOrderEnum":{"type":"string","enum":["ASC","DESC"],"title":"TitleSortOrderEnum"},"TokenSummaryDTO":{"properties":{"total_tokens":{"type":"number","title":"Total Tokens","description":"Total token count (deduplicated)"},"input_tokens":{"type":"number","title":"Input Tokens","description":"Input token count (deduplicated)"},"output_tokens":{"type":"number","title":"Output Tokens","description":"Output token count (deduplicated)"},"input_token_details_audio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Input Token Details Audio","description":"Input audio tokens (sum)"},"input_token_details_cache_creation":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Input Token Details Cache Creation","description":"Input cache creation tokens (sum)"},"input_token_details_cache_read":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Input Token Details Cache Read","description":"Input cache read tokens (sum)"},"output_token_details_audio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Output Token Details Audio","description":"Output audio tokens (sum)"},"output_token_details_reasoning":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Output Token Details Reasoning","description":"Output reasoning tokens (sum)"},"total_messages":{"type":"integer","title":"Total Messages","description":"Total message count"},"original_messages":{"type":"integer","title":"Original Messages","description":"Original message count"},"duplicate_messages":{"type":"integer","title":"Duplicate Messages","description":"Duplicate message count"}},"type":"object","required":["total_tokens","input_tokens","output_tokens","total_messages","original_messages","duplicate_messages"],"title":"TokenSummaryDTO","description":"Token Usage Summary DTO (includes detailed token breakdown)","example":{"duplicate_messages":3,"input_token_details_cache_creation":50.0,"input_token_details_cache_read":100.0,"input_tokens":586.0,"original_messages":1,"output_tokens":28.0,"total_messages":7,"total_tokens":614.0}},"TokenUsageDTO":{"properties":{"input_tokens":{"type":"number","title":"Input Tokens","description":"Number of input tokens"},"output_tokens":{"type":"number","title":"Output Tokens","description":"Number of output tokens"},"total_tokens":{"type":"number","title":"Total Tokens","description":"Total number of tokens"}},"type":"object","required":["input_tokens","output_tokens","total_tokens"],"title":"TokenUsageDTO","description":"Token usage DTO"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WebSocketKeyCreateDTO":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"scenario_my_page_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Scenario My Page Id","description":"Scenario my page ID"}},"type":"object","required":["user_id"],"title":"WebSocketKeyCreateDTO","description":"WebSocketKey creation DTO"},"WebSocketKeyCreateWithThreadIdDTO":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID"},"scenario_my_page_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Scenario My Page Id","description":"Scenario my page ID"},"thread_id":{"type":"string","title":"Thread Id","description":"Thread ID (Text)"}},"type":"object","required":["user_id","thread_id"],"title":"WebSocketKeyCreateWithThreadIdDTO","description":"WebSocketKey creation DTO with thread_id"},"WebSocketKeyPatchDTO":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID"},"scenario_my_page_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Scenario My Page Id","description":"Scenario my page ID"},"thread_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id","description":"Thread ID (Text)"},"qa_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qa Id","description":"QA ID (Text)"}},"type":"object","title":"WebSocketKeyPatchDTO","description":"WebSocketKey partial update DTO"},"WebSocketKeyResponseDTO":{"properties":{"id":{"type":"integer","title":"Id","description":"ID"},"user_id":{"type":"string","title":"User Id","description":"User ID"},"scenario_my_page_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Scenario My Page Id","description":"Scenario my page ID"},"thread_id":{"type":"string","title":"Thread Id","description":"Thread ID (Text)"},"qa_id":{"type":"string","title":"Qa Id","description":"QA ID (Text)"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Created at"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Updated at"}},"type":"object","required":["id","user_id","thread_id","qa_id","created_at","updated_at"],"title":"WebSocketKeyResponseDTO","description":"WebSocketKey response DTO"},"WebSocketKeySortOrderEnum":{"type":"string","enum":["ASC","DESC"],"title":"WebSocketKeySortOrderEnum"},"WebSocketKeyUpdateDTO":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID"},"scenario_my_page_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Scenario My Page Id","description":"Scenario my page ID"},"thread_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id","description":"Thread ID (Text)"},"qa_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qa Id","description":"QA ID (Text)"}},"type":"object","title":"WebSocketKeyUpdateDTO","description":"WebSocketKey full update DTO"}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT 토큰을 입력하세요 (Bearer 제외, 토큰만 입력)"}}},"tags":[{"name":"scenarios","description":"AI AGENT의 시나리오의 전체 리스트를 조회하고, 각 시나리오의 기본 정보를 확인할 수 있는 엔드포인트입니다. \nAPI Gateway를 통해 접근되며, 다양한 시나리오를 한눈에 비교·확인함으로써 필요한 시나리오를 쉽게 선택할 수 있습니다. \nAGENT 사용 전 개요를 파악하고자 할 때 유용합니다."},{"name":"personas","description":"AI AGENT의 페르소나의 전체 리스트를 조회하고, 각 페르소나의 기본 정보(직업 등)를 확인할 수 있는 엔드포인트입니다. \nAPI Gateway를 통해 접근되며, 다양한 페르소나를 한눈에 비교·확인함으로써 필요한 페르소나를 쉽게 선택할 수 있습니다. \nAGENT 사용 전 개요를 파악하고자 할 때 유용합니다."},{"name":"agents","description":"AI AGENT의 전체 리스트를 조회하고, 각 에이전트의 기본 정보(분류, 비용 등)를 확인할 수 있는 엔드포인트입니다. \nAPI Gateway를 통해 접근되며, 다양한 에이전트를 한눈에 비교·확인함으로써 필요한 에이전트를 손쉽게 선택할 수 있습니다. \nAGENT 사용 전 개요를 파악하고자 할 때 유용합니다."},{"name":"nodes","description":"AI AGENT 시나리오 노드의 설정·관리 엔드포인트입니다. \n노드 생성, 조회, 수정, 삭제 등의 기능을 제공합니다."},{"name":"edges","description":"AI AGENT 시나리오 노드의 연결에 대한 설정·관리 엔드포인트입니다. \n노드 생성, 조회, 수정, 삭제 등의 기능을 제공합니다."},{"name":"graphs","description":"AI AGENT의 상태 그래프 설정·조회 엔드포인트입니다. \nAPI Gateway를 통해 안전하게 관리됩니다."},{"name":"websocket-keys","description":"AI AGENT의 웹소켓 키 관리 엔드포인트입니다. \n사용자가 설정한 웹소켓 키의 정보를 조회하는 엔드포인트 입니다."},{"name":"titles","description":"AI AGENT의 제목 관리 엔드포인트입니다. \n제목 생성, 조회, 수정, 삭제 등의 기능을 제공합니다."},{"name":"histories","description":"AI AGENT의 대화 히스토리 관리 엔드포인트입니다. \n대화 히스토리 생성, 조회, 검색, 업데이트 및 삭제 기능을 제공합니다."},{"name":"chats","description":"AI AGENT의 채팅 관리 엔드포인트입니다. \n채팅 생성, 조회, 수정, 삭제 등의 기능을 제공합니다."},{"name":"dashboard","description":"AI AGENT의 대시보드 통계 엔드포인트입니다. \n모델별/시나리오별/에이전트별 토큰 사용량과 비용 통계를 조회하고 분석할 수 있는 기능을 제공합니다."},{"name":"memory","description":"사용자의 메모리 설정 엔드포인트입니다. \n메모리 설정 모델, 메모리 설정 최대 토큰, 메모리 설정 지연 시간 등을 제공합니다."},{"name":"model-profiles","description":"LLM 모델의 Capabilities 조회 엔드포인트입니다. \nlangchain-model-profiles를 활용하여 다양한 LLM 모델의 세부 정보를 제공합니다: \n- **Context Window**: 최대 입력/출력 토큰 수 \n- **입력 모달리티**: 이미지, 오디오, 비디오, PDF 지원 여부 \n- **출력 모달리티**: 이미지, 오디오, 비디오, 추론 과정 출력 지원 \n- **고급 기능**: Tool calling, Structured output 등 \n단일 모델 조회 또는 여러 모델 비교를 통해 작업에 최적화된 모델을 선택할 수 있습니다."},{"name":"invoke","description":"AI AGENT의 메시지 처리 엔드포인트입니다. \n대화 생성을 다양한 방식으로 제공합니다: \n- **REST API**: 동기식 요청/응답 방식 (`/v1/invoke`) \n- **SSE (Server-Sent Events)**: 실시간 스트리밍 방식 (`/v1/invoke/sse`) \nSSE 방식은 도구 실행 과정을 실시간으로 전달하고, 최종 응답은 한 번에 제공합니다."},{"name":"permissions","description":"API 권한 관리 엔드포인트입니다. (ADMIN 권한 필요) \nAPI 엔드포인트별 권한 정보를 관리하고 조회할 수 있는 기능을 제공합니다: \n- **권한 목록 조회**: 모든 API 엔드포인트의 권한 정보 조회 \n- **권한 생성**: 새로운 API 엔드포인트 권한 추가 \n- **권한 캐시 갱신**: Redis 캐시 갱신으로 성능 최적화 \n- **권한 확인**: 특정 경로와 메서드에 대한 권한 확인 \n- **서비스 상태 확인**: 권한 서비스의 상태 모니터링"}],"security":[{"bearerAuth":[]}]}
|