cmdbox 0.8.0__tar.gz → 0.8.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (616) hide show
  1. {cmdbox-0.8.0/cmdbox.egg-info → cmdbox-0.8.0.2}/PKG-INFO +1 -1
  2. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/a2a.py +0 -5
  3. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_runner_list.py +14 -2
  4. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_runner_load.py +1 -0
  5. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_runner_save.py +4 -16
  6. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_llm_translation.py +2 -2
  7. cmdbox-0.8.0.2/cmdbox/app/features/cli/cmdbox_url_add.py +137 -0
  8. cmdbox-0.8.0.2/cmdbox/app/features/cli/cmdbox_url_del.py +99 -0
  9. cmdbox-0.8.0.2/cmdbox/app/features/cli/cmdbox_url_list.py +121 -0
  10. cmdbox-0.8.0.2/cmdbox/app/features/cli/cmdbox_url_load.py +118 -0
  11. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_do_signin.py +7 -6
  12. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_exec_cmd.py +1 -1
  13. cmdbox-0.8.0/cmdbox/app/features/web/cmdbox_web_filer download.py → cmdbox-0.8.0.2/cmdbox/app/features/web/cmdbox_web_filer_download.py +4 -3
  14. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_gui.py +23 -0
  15. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_signin.py +6 -6
  16. cmdbox-0.8.0.2/cmdbox/app/features/web/cmdbox_web_url.py +28 -0
  17. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/user_list.yml +6 -2
  18. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/version.py +2 -2
  19. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/agent.html +6 -17
  20. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent.css +1 -2
  21. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent.js +17 -0
  22. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_history.js +38 -21
  23. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_agent.js +0 -1
  24. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_embed.html +1 -1
  25. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_embed.js +0 -2
  26. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_extract.js +0 -2
  27. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_llm.js +14 -4
  28. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_mcpsv.js +0 -2
  29. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_rag.html +2 -2
  30. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_rag.js +0 -2
  31. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_runner.js +38 -8
  32. cmdbox-0.8.0.2/cmdbox/web/assets/agent/agent_sidebar_content.html +32 -0
  33. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/main.js +41 -0
  34. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/common.js +61 -35
  35. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/list_pipe.js +2 -2
  36. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/main.js +1 -0
  37. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/filer/filer.js +17 -2
  38. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/limiter/limiter.js +1 -1
  39. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/limiter/limiter_plan.js +1 -1
  40. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/audit.html +1 -1
  41. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/gui.html +3 -3
  42. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/limiter.html +2 -2
  43. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/users.html +1 -1
  44. {cmdbox-0.8.0 → cmdbox-0.8.0.2/cmdbox.egg-info}/PKG-INFO +1 -1
  45. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox.egg-info/SOURCES.txt +6 -1
  46. cmdbox-0.8.0/cmdbox/web/assets/agent/agent_sidebar_content.html +0 -14
  47. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/LICENSE +0 -0
  48. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/MANIFEST.in +0 -0
  49. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/README.md +0 -0
  50. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/__init__.py +0 -0
  51. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/__main__.py +0 -0
  52. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/__init__.py +0 -0
  53. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/app.py +0 -0
  54. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/auth/__init__.py +0 -0
  55. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/auth/azure_signin.py +0 -0
  56. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/auth/azure_signin_proxy.py +0 -0
  57. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/auth/azure_signin_saml.py +0 -0
  58. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/auth/github_signin.py +0 -0
  59. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/auth/google_signin.py +0 -0
  60. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/auth/signin.py +0 -0
  61. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/auth/signin_saml.py +0 -0
  62. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/client.py +0 -0
  63. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/common.py +0 -0
  64. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/cache.py +0 -0
  65. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/convert.py +0 -0
  66. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/limiter.py +0 -0
  67. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/loghandler.py +0 -0
  68. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/module.py +0 -0
  69. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/redis_client.py +0 -0
  70. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/resdata.py +0 -0
  71. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/testable.py +0 -0
  72. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/validator.py +0 -0
  73. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/edge.py +0 -0
  74. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/edge_tool.py +0 -0
  75. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/feature.py +0 -0
  76. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/_cmdbox_cmd_info.py +0 -0
  77. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/_cmdbox_vision_install.py +0 -0
  78. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/_cmdbox_vision_predict.py +0 -0
  79. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/_cmdbox_vision_start.py +0 -0
  80. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/agent/__init__.py +0 -0
  81. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/agent/agant_base.py +0 -0
  82. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/audit/__init__.py +0 -0
  83. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/audit/audit_base.py +0 -0
  84. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox/cmdbox_base.py +0 -0
  85. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_a2asv_start.py +0 -0
  86. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_a2asv_stop.py +0 -0
  87. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_agent_del.py +0 -0
  88. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_agent_list.py +0 -0
  89. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_agent_load.py +0 -0
  90. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_agent_save.py +0 -0
  91. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_chat.py +0 -0
  92. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_mcp_client.py +0 -0
  93. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_mcp_proxy.py +0 -0
  94. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_mcpsv_del.py +0 -0
  95. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_mcpsv_list.py +0 -0
  96. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_mcpsv_load.py +0 -0
  97. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_mcpsv_save.py +0 -0
  98. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_runner_del.py +0 -0
  99. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_session_del.py +0 -0
  100. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_session_list.py +0 -0
  101. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_audit_createdb.py +0 -0
  102. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_audit_delete.py +0 -0
  103. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_audit_search.py +0 -0
  104. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_audit_write.py +0 -0
  105. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_copy.py +0 -0
  106. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_download.py +0 -0
  107. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_is.py +0 -0
  108. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_list.py +0 -0
  109. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_mkdir.py +0 -0
  110. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_move.py +0 -0
  111. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_remove.py +0 -0
  112. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_rmdir.py +0 -0
  113. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_upload.py +0 -0
  114. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_http.py +0 -0
  115. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_server_info.py +0 -0
  116. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_time.py +0 -0
  117. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmd_check.py +0 -0
  118. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmd_list.py +0 -0
  119. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmd_load.py +0 -0
  120. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_down.py +0 -0
  121. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_exec.py +0 -0
  122. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_initdata_install.py +0 -0
  123. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_load.py +0 -0
  124. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_logs.py +0 -0
  125. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_pgsql_install.py +0 -0
  126. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_pgsql_load.py +0 -0
  127. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_reboot.py +0 -0
  128. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_redis_install.py +0 -0
  129. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_redis_load.py +0 -0
  130. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_save.py +0 -0
  131. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_server_install.py +0 -0
  132. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_server_load.py +0 -0
  133. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_setup.py +0 -0
  134. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_uninstall.py +0 -0
  135. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_up.py +0 -0
  136. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_data_delete.py +0 -0
  137. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_data_insert.py +0 -0
  138. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_data_select.py +0 -0
  139. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_data_update.py +0 -0
  140. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_del.py +0 -0
  141. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_idx_create.py +0 -0
  142. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_idx_drop.py +0 -0
  143. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_list.py +0 -0
  144. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_load.py +0 -0
  145. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_save.py +0 -0
  146. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_tbl_create.py +0 -0
  147. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_tbl_drop.py +0 -0
  148. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_edge_config.py +0 -0
  149. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_edge_start.py +0 -0
  150. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_excel_cell_details.py +0 -0
  151. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_excel_cell_search.py +0 -0
  152. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_excel_cell_values.py +0 -0
  153. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_excel_sheet_list.py +0 -0
  154. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_extract_chunklet.py +0 -0
  155. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_extract_del.py +0 -0
  156. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_extract_list.py +0 -0
  157. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_extract_load.py +0 -0
  158. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_extract_pdfplumber.py +0 -0
  159. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_extract_save.py +0 -0
  160. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_gui_start.py +0 -0
  161. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_gui_stop.py +0 -0
  162. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_billing_calc.py +0 -0
  163. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_billing_load.py +0 -0
  164. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_counter.py +0 -0
  165. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_del.py +0 -0
  166. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_evidences.py +0 -0
  167. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_list.py +0 -0
  168. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_load.py +0 -0
  169. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_plan_del.py +0 -0
  170. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_plan_list.py +0 -0
  171. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_plan_load.py +0 -0
  172. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_plan_save.py +0 -0
  173. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_save.py +0 -0
  174. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_targets.py +0 -0
  175. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_llm_chat.py +0 -0
  176. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_llm_del.py +0 -0
  177. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_llm_embed.py +0 -0
  178. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_llm_list.py +0 -0
  179. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_llm_load.py +0 -0
  180. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_llm_save.py +0 -0
  181. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_mcpsv_start.py +0 -0
  182. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_mcpsv_stop.py +0 -0
  183. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_omni_pred.py +0 -0
  184. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_rag_build.py +0 -0
  185. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_rag_del.py +0 -0
  186. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_rag_list.py +0 -0
  187. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_rag_load.py +0 -0
  188. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_rag_regist.py +0 -0
  189. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_rag_save.py +0 -0
  190. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_rag_search.py +0 -0
  191. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_server_list.py +0 -0
  192. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_server_start.py +0 -0
  193. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_server_stop.py +0 -0
  194. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_server_time.py +0 -0
  195. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_test_gen_cli_docs.py +0 -0
  196. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_test_gen_cli_spec.py +0 -0
  197. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_test_gen_test_spec.py +0 -0
  198. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_test_run_spec.py +0 -0
  199. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_tts_install.py +0 -0
  200. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_tts_list.py +0 -0
  201. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_tts_say.py +0 -0
  202. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_tts_uninstall.py +0 -0
  203. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_apikey_add.py +0 -0
  204. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_apikey_del.py +0 -0
  205. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_gencert.py +0 -0
  206. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_genpass.py +0 -0
  207. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_group_add.py +0 -0
  208. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_group_del.py +0 -0
  209. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_group_edit.py +0 -0
  210. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_group_list.py +0 -0
  211. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_start.py +0 -0
  212. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_stop.py +0 -0
  213. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_user_add.py +0 -0
  214. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_user_del.py +0 -0
  215. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_user_edit.py +0 -0
  216. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_user_list.py +0 -0
  217. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/datasource/__init__.py +0 -0
  218. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/datasource/datasource_base.py +0 -0
  219. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/excel/__init__.py +0 -0
  220. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/excel/excel_base.py +0 -0
  221. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/rag/__init__.py +0 -0
  222. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/rag/rag_base.py +0 -0
  223. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/rag/rag_postgresql.py +0 -0
  224. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/rag/rag_sqlite.py +0 -0
  225. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/rag/rag_store.py +0 -0
  226. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/test/gen_cli_docs.py +0 -0
  227. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/test/gen_cli_spec.py +0 -0
  228. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/test/gen_test_spec.py +0 -0
  229. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/test/run_spec.py +0 -0
  230. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_agent.py +0 -0
  231. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_assets.py +0 -0
  232. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_audit.py +0 -0
  233. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_audit_metrics.py +0 -0
  234. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_bbforce_cmd.py +0 -0
  235. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_copyright.py +0 -0
  236. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_del_cmd.py +0 -0
  237. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_del_pipe.py +0 -0
  238. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_do_signout.py +0 -0
  239. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_exec_pipe.py +0 -0
  240. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_filer.py +0 -0
  241. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_filer_upload.py +0 -0
  242. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_get_cmd_choices.py +0 -0
  243. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_get_cmds.py +0 -0
  244. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_get_modes.py +0 -0
  245. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_get_server_opt.py +0 -0
  246. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_gui_callback.py +0 -0
  247. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_limiter.py +0 -0
  248. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_list_cmd.py +0 -0
  249. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_list_pipe.py +0 -0
  250. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_load_cmd.py +0 -0
  251. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_load_pipe.py +0 -0
  252. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_raw_cmd.py +0 -0
  253. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_raw_pipe.py +0 -0
  254. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_result.py +0 -0
  255. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_save_cmd.py +0 -0
  256. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_save_pipe.py +0 -0
  257. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_user_data.py +0 -0
  258. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_users.py +0 -0
  259. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_usesignout.py +0 -0
  260. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_versions_cmdbox.py +0 -0
  261. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/filer.py +0 -0
  262. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/mcp.py +0 -0
  263. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/options.py +0 -0
  264. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/server.py +0 -0
  265. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/web.py +0 -0
  266. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/autoload.py +0 -0
  267. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/cmdbox/Dockerfile +0 -0
  268. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/cmdbox/docker-compose.yml +0 -0
  269. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/cmdbox/scripts/start.sh +0 -0
  270. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/cmdbox/scripts/up.sh +0 -0
  271. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/pgsql/Dockerfile +0 -0
  272. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/pgsql/scripts/down.sh +0 -0
  273. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/pgsql/scripts/start.sh +0 -0
  274. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/pgsql/scripts/up.sh +0 -0
  275. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/redis/Dockerfile +0 -0
  276. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/redis/scripts/down.sh +0 -0
  277. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/redis/scripts/up.sh +0 -0
  278. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/cmdbox_initdata/client/.cmds/cmd-cmd_list.json +0 -0
  279. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/cmdbox_initdata/current/.cmdbox/user_list.yml +0 -0
  280. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/cmdbox_initdata/server/.agent/translation.json +0 -0
  281. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/cmdbox_initdata/server/.datasource/datasource-ds_default.json +0 -0
  282. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/cmdbox_initdata/setup.yml +0 -0
  283. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/features.yml +0 -0
  284. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/.vscode/launch.json +0 -0
  285. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/requirements.txt +0 -0
  286. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/__init__.py +0 -0
  287. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/__main__.py +0 -0
  288. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/app/app.py +0 -0
  289. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/app/features/cli/__init__.py +0 -0
  290. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/app/features/cli/sample_client_time.py +0 -0
  291. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/app/features/cli/sample_server_time.py +0 -0
  292. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/app/features/web/__init__.py +0 -0
  293. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/extensions/features.yml +0 -0
  294. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/extensions/user_list.yml +0 -0
  295. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/logconf_sample.yml +0 -0
  296. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/version.py +0 -0
  297. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/web/assets/sample/favicon.ico +0 -0
  298. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/web/assets/sample/icon.png +0 -0
  299. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_Authlib_1_7_2_BSD_License.txt +0 -0
  300. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_Jinja2_3_1_6_BSD_License.txt +0 -0
  301. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_Markdown_3_10_2_BSD-3-Clause.txt +0 -0
  302. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_MarkupSafe_3_0_3_BSD-3-Clause.txt +0 -0
  303. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_Morfessor_2_0_6_BSD_License.txt +0 -0
  304. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_PyJWT_2_13_0_MIT.txt +0 -0
  305. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_PyYAML_6_0_3_MIT_License.txt +0 -0
  306. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_Pygments_2_20_0_BSD-2-Clause.txt +0 -0
  307. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_SQLAlchemy_2_0_51_MIT.txt +0 -0
  308. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_Sphinx_9_0_4_BSD-2-Clause.txt +0 -0
  309. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_a2a-sdk_0_3_26_Apache-2_0.txt +0 -0
  310. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_aiofile_3_11_1_Apache-2_0.txt +0 -0
  311. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_aiohappyeyeballs_2_7_1_Python_Software_Foundation_License.txt +0 -0
  312. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_aiohttp_3_14_1_Apache-2_0_AND_MIT.txt +0 -0
  313. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_aiosignal_1_4_0_Apache_Software_License.txt +0 -0
  314. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_aiosqlite_0_22_1_MIT_License.txt +0 -0
  315. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_alabaster_1_0_0_BSD_License.txt +0 -0
  316. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_annotated-doc_0_0_4_MIT.txt +0 -0
  317. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_annotated-types_0_7_0_MIT_License.txt +0 -0
  318. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_anyio_4_14_1_MIT.txt +0 -0
  319. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_argcomplete_3_7_0_Apache_Software_License.txt +0 -0
  320. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_async-timeout_5_0_1_Apache_Software_License.txt +0 -0
  321. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_asyncpg_0_31_0_Apache-2_0.txt +0 -0
  322. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_attrs_26_1_0_MIT.txt +0 -0
  323. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_babel_2_18_0_BSD_License.txt +0 -0
  324. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_backports_tarfile_1_2_0_MIT_License.txt +0 -0
  325. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_beartype_0_22_9_MIT_License.txt +0 -0
  326. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_beautifulsoup4_4_15_0_MIT_License.txt +0 -0
  327. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_build_1_5_0_MIT.txt +0 -0
  328. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_cachetools_7_1_4_MIT.txt +0 -0
  329. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_caio_0_9_25_UNKNOWN.txt +0 -0
  330. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_certifi_2026_6_17_Mozilla_Public_License_2_0-MPL_2_0.txt +0 -0
  331. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_cffi_2_0_0_MIT.txt +0 -0
  332. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_charset-normalizer_3_4_7_MIT.txt +0 -0
  333. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_chunklet-py_2_3_2_MIT.txt +0 -0
  334. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_click_8_4_2_BSD-3-Clause.txt +0 -0
  335. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_cobble_0_1_4_BSD_License.txt +0 -0
  336. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_colorama_0_4_6_BSD_License.txt +0 -0
  337. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_cryptography_49_0_0_Apache-2_0_OR_BSD-3-Clause.txt +0 -0
  338. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_cyclopts_4_20_0_Apache-2_0.txt +0 -0
  339. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_debugpy_1_8_21_MIT_License.txt +0 -0
  340. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_defusedxml_0_7_1_Python_Software_Foundation_License.txt +0 -0
  341. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_distro_1_9_0_Apache_Software_License.txt +0 -0
  342. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_dnspython_2_8_0_ISC_License-ISCL.txt +0 -0
  343. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_docstring_parser_0_18_0_MIT_License.txt +0 -0
  344. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_docutils_0_22_4_BSD_License-GNU_General_Public_License-GPL-Public_Domain.txt +0 -0
  345. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_email-validator_2_3_0_The_Unlicense-Unlicense.txt +0 -0
  346. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_et_xmlfile_2_0_0_MIT_License.txt +0 -0
  347. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_exceptiongroup_1_3_1_MIT_License.txt +0 -0
  348. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_fastapi_0_139_0_MIT.txt +0 -0
  349. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_fastmcp-slim_3_4_2_Apache-2_0.txt +0 -0
  350. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_fastmcp_3_4_2_Apache-2_0.txt +0 -0
  351. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_fastuuid_0_14_0_BSD_License.txt +0 -0
  352. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_filelock_3_29_5_MIT.txt +0 -0
  353. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_frozenlist_1_8_0_Apache-2_0.txt +0 -0
  354. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_fsspec_2026_6_0_BSD-3-Clause.txt +0 -0
  355. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_gevent_26_5_0_MIT.txt +0 -0
  356. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_google-adk_2_3_0_Apache_Software_License.txt +0 -0
  357. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_google-api-core_2_31_0_Apache_Software_License.txt +0 -0
  358. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_google-auth_2_55_1_Apache_Software_License.txt +0 -0
  359. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_google-genai_2_10_0_Apache-2_0.txt +0 -0
  360. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_googleapis-common-protos_1_75_0_Apache_Software_License.txt +0 -0
  361. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_graphviz_0_21_MIT.txt +0 -0
  362. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_greenlet_3_5_3_MIT_AND_PSF-2_0.txt +0 -0
  363. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_griffelib_2_1_0_ISC.txt +0 -0
  364. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_gunicorn_26_0_0_MIT.txt +0 -0
  365. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_h11_0_16_0_MIT_License.txt +0 -0
  366. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_hf-xet_1_5_1_Apache-2_0.txt +0 -0
  367. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_httpcore_1_0_9_BSD-3-Clause.txt +0 -0
  368. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_httpx-sse_0_4_3_MIT.txt +0 -0
  369. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_httpx_0_28_1_BSD_License.txt +0 -0
  370. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_huggingface_hub_1_22_0_Apache_Software_License.txt +0 -0
  371. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_id_1_6_1_Apache_Software_License.txt +0 -0
  372. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_idna_3_18_BSD-3-Clause.txt +0 -0
  373. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_imagesize_2_0_0_MIT_License.txt +0 -0
  374. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_importlib_metadata_8_9_0_Apache-2_0.txt +0 -0
  375. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_indic-nlp-library_0_92_MIT_License.txt +0 -0
  376. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_iniconfig_2_3_0_MIT.txt +0 -0
  377. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_itsdangerous_2_2_0_BSD_License.txt +0 -0
  378. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jaraco_classes_3_4_0_MIT_License.txt +0 -0
  379. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jaraco_context_6_1_2_MIT.txt +0 -0
  380. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jaraco_functools_4_5_0_MIT.txt +0 -0
  381. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jiter_0_16_0_MIT.txt +0 -0
  382. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_joserfc_1_7_2_BSD_License.txt +0 -0
  383. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jsonpatch_1_33_BSD_License.txt +0 -0
  384. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jsonpointer_3_1_1_BSD_License.txt +0 -0
  385. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jsonref_1_1_0_MIT.txt +0 -0
  386. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jsonschema-path_0_5_0_Apache_Software_License.txt +0 -0
  387. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jsonschema-specifications_2025_9_1_MIT.txt +0 -0
  388. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jsonschema_4_26_0_MIT.txt +0 -0
  389. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_keyring_25_7_0_MIT.txt +0 -0
  390. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_langchain-classic_1_0_8_MIT_License.txt +0 -0
  391. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_langchain-community_0_4_2_MIT.txt +0 -0
  392. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_langchain-core_1_4_8_MIT_License.txt +0 -0
  393. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_langchain-protocol_0_0_18_MIT_License.txt +0 -0
  394. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_langchain-text-splitters_1_1_2_MIT_License.txt +0 -0
  395. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_langsmith_0_9_7_MIT.txt +0 -0
  396. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_litellm_1_91_0_MIT.txt +0 -0
  397. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_loguru_0_7_3_MIT_License.txt +0 -0
  398. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_lxml_6_1_1_BSD-3-Clause.txt +0 -0
  399. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_mammoth_1_12_0_BSD_License.txt +0 -0
  400. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_markdown-it-py_4_2_0_MIT_License.txt +0 -0
  401. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_markdownify_1_2_3_MIT_License.txt +0 -0
  402. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_mcp_1_28_1_MIT_License.txt +0 -0
  403. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_mdurl_0_1_2_MIT_License.txt +0 -0
  404. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_more-itertools_11_1_0_MIT.txt +0 -0
  405. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_mpire_2_10_2_MIT_License.txt +0 -0
  406. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_multidict_6_7_1_Apache_License_2_0.txt +0 -0
  407. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_nh3_0_3_6_MIT.txt +0 -0
  408. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_numpy_2_4_6_BSD-3-Clause_AND_0BSD_AND_MIT_AND_Zlib_AND_CC0-1_0.txt +0 -0
  409. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_odfpy_1_4_1_Apache_Software_License-GNU_General_Public_License-GPL-GNU_Library_or_Lesser_General_Public_License-LGPL.txt +0 -0
  410. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_openai_2_44_0_Apache_Software_License.txt +0 -0
  411. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_openapi-pydantic_0_5_1_MIT_License.txt +0 -0
  412. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_openpyxl_3_1_5_MIT_License.txt +0 -0
  413. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_opentelemetry-api_1_42_1_Apache-2_0.txt +0 -0
  414. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_opentelemetry-sdk_1_42_1_Apache-2_0.txt +0 -0
  415. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_opentelemetry-semantic-conventions_0_63b1_Apache-2_0.txt +0 -0
  416. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_orjson_3_11_9_MPL-2_0_AND-Apache-2_0_OR_MIT.txt +0 -0
  417. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_packaging_26_2_Apache-2_0_OR_BSD-2-Clause.txt +0 -0
  418. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pandas_3_0_3_BSD_License.txt +0 -0
  419. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pathable_0_6_0_Apache_Software_License.txt +0 -0
  420. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pdfminer_six_20260107_MIT.txt +0 -0
  421. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pdfplumber_0_11_10_MIT_License.txt +0 -0
  422. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pillow_12_3_0_MIT-CMU.txt +0 -0
  423. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pip_24_0_MIT_License.txt +0 -0
  424. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pipdeptree_3_1_1_MIT.txt +0 -0
  425. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_platformdirs_4_10_0_MIT.txt +0 -0
  426. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pluggy_1_6_0_MIT_License.txt +0 -0
  427. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_plyer_2_1_0_MIT_License.txt +0 -0
  428. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_prettytable_3_18_0_BSD-3-Clause.txt +0 -0
  429. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_prompt_toolkit_3_0_52_BSD_License.txt +0 -0
  430. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_propcache_0_5_2_Apache_Software_License.txt +0 -0
  431. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_proto-plus_1_28_0_Apache_Software_License.txt +0 -0
  432. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_protobuf_7_35_1_3-Clause_BSD_License.txt +0 -0
  433. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_psycopg-binary_3_3_4_LGPL-3_0-only.txt +0 -0
  434. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_psycopg-pool_3_3_1_LGPL-3_0-only.txt +0 -0
  435. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_psycopg_3_3_4_LGPL-3_0-only.txt +0 -0
  436. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_py-key-value-aio_0_4_5_Apache-2_0.txt +0 -0
  437. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_py3langid_0_3_0_BSD_License.txt +0 -0
  438. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pyOpenSSL_26_3_0_Apache_Software_License.txt +0 -0
  439. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pyasn1_0_6_3_BSD-2-Clause.txt +0 -0
  440. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pyasn1_modules_0_4_2_BSD_License.txt +0 -0
  441. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pycparser_3_0_BSD-3-Clause.txt +0 -0
  442. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pycryptodome_3_23_0_BSD_License-Public_Domain.txt +0 -0
  443. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pydantic-settings_2_14_2_MIT.txt +0 -0
  444. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pydantic_2_13_4_MIT.txt +0 -0
  445. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pydantic_core_2_46_4_MIT.txt +0 -0
  446. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pylatexenc_2_10_MIT_License.txt +0 -0
  447. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pypdfium2_5_11_0_BSD-3-Clause-Apache-2_0-dependency_licenses.txt +0 -0
  448. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pyperclip_1_11_0_BSD_License.txt +0 -0
  449. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pyproject_hooks_1_2_0_MIT_License.txt +0 -0
  450. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pysbd_0_3_4_MIT_License.txt +0 -0
  451. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pytest_9_1_1_MIT.txt +0 -0
  452. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_python-crfsuite_0_9_12_MIT_License.txt +0 -0
  453. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_python-dateutil_2_9_0_post0_Apache_Software_License-BSD_License.txt +0 -0
  454. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_python-docx_1_2_0_MIT_License.txt +0 -0
  455. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_python-dotenv_1_2_2_BSD-3-Clause.txt +0 -0
  456. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_python-multipart_0_0_32_Apache-2_0.txt +0 -0
  457. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pywin32-ctypes_0_2_3_BSD-3-Clause.txt +0 -0
  458. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pywin32_312_Python_Software_Foundation_License.txt +0 -0
  459. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_questionary_2_1_1_MIT_License.txt +0 -0
  460. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_readme_renderer_45_0_Apache-2_0.txt +0 -0
  461. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_redis_8_0_1_MIT.txt +0 -0
  462. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_referencing_0_37_0_MIT.txt +0 -0
  463. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_regex_2026_6_28_Apache-2_0_AND_CNRI-Python.txt +0 -0
  464. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_requests-toolbelt_1_0_0_Apache_Software_License.txt +0 -0
  465. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_requests_2_34_2_Apache_Software_License.txt +0 -0
  466. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_rfc3986_2_0_0_Apache_Software_License.txt +0 -0
  467. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_rich-rst_2_1_0_MIT.txt +0 -0
  468. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_rich_15_0_0_MIT_License.txt +0 -0
  469. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_roman-numerals_4_1_0_0BSD_OR_CC0-1_0.txt +0 -0
  470. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_rpds-py_2026_6_3_MIT.txt +0 -0
  471. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sentencex_1_0_30_MIT.txt +0 -0
  472. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sentsplit_1_0_8_UNKNOWN.txt +0 -0
  473. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_setuptools_65_5_0_MIT_License.txt +0 -0
  474. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_shellingham_1_5_4_ISC_License-ISCL.txt +0 -0
  475. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_six_1_17_0_MIT_License.txt +0 -0
  476. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sniffio_1_3_1_Apache_Software_License-MIT_License.txt +0 -0
  477. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_snowballstemmer_3_1_1_BSD-3-Clause.txt +0 -0
  478. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_soupsieve_2_8_4_MIT.txt +0 -0
  479. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinx-argparse_0_6_0_MIT.txt +0 -0
  480. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinx-intl_2_3_2_BSD-2-Clause.txt +0 -0
  481. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinx-last-updated-by-git_0_3_8_BSD_License.txt +0 -0
  482. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinx-sitemap_2_9_0_MIT.txt +0 -0
  483. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinx_fontawesome_0_0_6_GNU_General_Public_License_v2-GPLv2.txt +0 -0
  484. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinx_rtd_theme_3_1_0_MIT_License.txt +0 -0
  485. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinxcontrib-applehelp_2_0_0_BSD_License.txt +0 -0
  486. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinxcontrib-devhelp_2_0_0_BSD_License.txt +0 -0
  487. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinxcontrib-htmlhelp_2_1_0_BSD_License.txt +0 -0
  488. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinxcontrib-jquery_4_1_BSD_License.txt +0 -0
  489. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinxcontrib-jsmath_1_0_1_BSD_License.txt +0 -0
  490. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinxcontrib-qthelp_2_0_0_BSD_License.txt +0 -0
  491. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinxcontrib-serializinghtml_2_0_0_BSD_License.txt +0 -0
  492. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sqlite-vec_0_1_9_MIT_License-Apache_License-Version_2_0.txt +0 -0
  493. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sse-starlette_3_4_5_BSD-3-Clause.txt +0 -0
  494. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_starlette_1_3_1_BSD-3-Clause.txt +0 -0
  495. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_striprtf_0_0_32_BSD-3-Clause.txt +0 -0
  496. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_tabulate2_1_10_2_MIT_License.txt +0 -0
  497. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_tabulate_0_10_0_MIT.txt +0 -0
  498. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_tenacity_9_1_4_Apache_Software_License.txt +0 -0
  499. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_tiktoken_0_13_0_MIT_License-Copyright-c-2022_OpenAI-Shantanu_Jain-Permission_is_hereby_granted-free_of_charge-to_any_per.txt +0 -0
  500. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_tokenizers_0_23_1_Apache_Software_License.txt +0 -0
  501. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_tqdm_4_68_3_MPL-2_0_AND_MIT.txt +0 -0
  502. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_twine_6_2_0_Apache-2_0.txt +0 -0
  503. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_typer_0_26_8_MIT.txt +0 -0
  504. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_typing-inspection_0_4_2_MIT.txt +0 -0
  505. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_typing_extensions_4_16_0_PSF-2_0.txt +0 -0
  506. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_tzdata_2026_2_Apache-2_0.txt +0 -0
  507. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_tzlocal_5_4_4_MIT.txt +0 -0
  508. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_uncalled-for_0_3_2_MIT_License.txt +0 -0
  509. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_urllib3_2_7_0_MIT.txt +0 -0
  510. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_uuid_utils_0_16_2_BSD-3-Clause.txt +0 -0
  511. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_uvicorn_0_50_0_BSD-3-Clause.txt +0 -0
  512. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_watchdog_6_0_0_Apache_Software_License.txt +0 -0
  513. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_watchfiles_1_2_0_MIT_License.txt +0 -0
  514. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_wcwidth_0_8_2_MIT.txt +0 -0
  515. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_websockets_15_0_1_BSD_License.txt +0 -0
  516. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_wheel_0_47_0_MIT.txt +0 -0
  517. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_win32_setctime_1_2_0_MIT_License.txt +0 -0
  518. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_wsproto_1_3_2_MIT.txt +0 -0
  519. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_xxhash_3_8_0_BSD-2-Clause.txt +0 -0
  520. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_yarl_1_24_2_Apache-2_0.txt +0 -0
  521. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_zipp_4_1_0_MIT.txt +0 -0
  522. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_zope_event_6_2_ZPL-2_1.txt +0 -0
  523. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_zope_interface_8_5_ZPL-2_1.txt +0 -0
  524. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_zstandard_0_25_0_BSD-3-Clause.txt +0 -0
  525. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/files.txt +0 -0
  526. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/logconf_cmdbox.yml +0 -0
  527. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_chat.js +0 -0
  528. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_document.js +0 -0
  529. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_files.html +0 -0
  530. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_files.js +0 -0
  531. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_logo.js +0 -0
  532. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_logo.png +0 -0
  533. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_logo.svg +0 -0
  534. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings.html +0 -0
  535. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings.js +0 -0
  536. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_agent.html +1 -1
  537. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_datasource.html +1 -1
  538. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_datasource.js +0 -0
  539. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_extract.html +1 -1
  540. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_llm.html +1 -1
  541. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_mcpsv.html +1 -1
  542. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_runner.html +1 -1
  543. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_tts.js +0 -0
  544. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/apexcharts/apexcharts.css +0 -0
  545. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/apexcharts/apexcharts.min.js +0 -0
  546. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/bootstrap/bootstrap.bundle.min.5.3.0.js +0 -0
  547. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/bootstrap/bootstrap.min.5.3.0.css +0 -0
  548. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/audit.js +0 -0
  549. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/color_mode.css +0 -0
  550. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/favicon.ico +0 -0
  551. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/filer_modal.js +0 -0
  552. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/icon.png +0 -0
  553. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/list_cmd.js +0 -0
  554. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/open_capture.js +0 -0
  555. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/open_output_json.js +0 -0
  556. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/result.js +0 -0
  557. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/signin.js +0 -0
  558. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/svgicon.js +0 -0
  559. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/users.js +0 -0
  560. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/view_raw.js +0 -0
  561. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/view_result.js +0 -0
  562. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/encodingjs/LICENSE.txt +0 -0
  563. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/encodingjs/encoding.js +0 -0
  564. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/encodingjs/encoding.min.js +0 -0
  565. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/filer/main.css +0 -0
  566. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/filer/main.js +0 -0
  567. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/highlight/default.css +0 -0
  568. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/highlight/highlight.min.js +0 -0
  569. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/highlight/styles/tokyo-night-dark.min.css +0 -0
  570. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery/jquery.min.3.2.0.js +0 -0
  571. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-linedtextarea/README.md +0 -0
  572. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea-license.txt +0 -0
  573. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.css +0 -0
  574. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.html +0 -0
  575. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.js +0 -0
  576. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-resizable/jquery-resizable.min.js +0 -0
  577. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/AUTHORS.txt +0 -0
  578. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/LICENSE.txt +0 -0
  579. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/images/ui-icons_444444_256x240.png +0 -0
  580. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/images/ui-icons_555555_256x240.png +0 -0
  581. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/images/ui-icons_777620_256x240.png +0 -0
  582. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/images/ui-icons_777777_256x240.png +0 -0
  583. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/images/ui-icons_cc0000_256x240.png +0 -0
  584. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/images/ui-icons_ffffff_256x240.png +0 -0
  585. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/jquery-ui.min.css +0 -0
  586. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/jquery-ui.min.js +0 -0
  587. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/jquery-ui.structure.min.css +0 -0
  588. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/jquery-ui.theme.min.css +0 -0
  589. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/package.json +0 -0
  590. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/lightbox2/css/lightbox.min.css +0 -0
  591. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/lightbox2/images/close.png +0 -0
  592. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/lightbox2/images/loading.gif +0 -0
  593. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/lightbox2/images/next.png +0 -0
  594. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/lightbox2/images/prev.png +0 -0
  595. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/lightbox2/js/lightbox.min.js +0 -0
  596. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/limiter/main.js +0 -0
  597. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/marked/marked.umd.js +0 -0
  598. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/split-pane/split-pane.css +0 -0
  599. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/split-pane/split-pane.js +0 -0
  600. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/tree-menu/css/tree-menu.css +0 -0
  601. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/tree-menu/image/file.png +0 -0
  602. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/tree-menu/image/folder-close.png +0 -0
  603. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/tree-menu/image/folder-open.png +0 -0
  604. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/tree-menu/js/tree-menu.js +0 -0
  605. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets_license_list.txt +0 -0
  606. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/filer.html +0 -0
  607. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/result.html +0 -0
  608. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/signin.html +0 -0
  609. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/voicevox_license_list.txt +0 -0
  610. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox.egg-info/dependency_links.txt +0 -0
  611. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox.egg-info/entry_points.txt +0 -0
  612. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox.egg-info/requires.txt +0 -0
  613. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox.egg-info/top_level.txt +0 -0
  614. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/pyproject.toml +0 -0
  615. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/setup.cfg +0 -0
  616. {cmdbox-0.8.0 → cmdbox-0.8.0.2}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cmdbox
3
- Version: 0.8.0
3
+ Version: 0.8.0.2
4
4
  Summary: cmdbox: It is a command line application with a plugin mechanism.
5
5
  Author-email: hamacom2004jp <hamacom2004jp@gmail.com>
6
6
  License: MIT
@@ -15,13 +15,8 @@ from typing import Callable, List, Dict, Any, Tuple
15
15
  from starlette.applications import Starlette
16
16
  from starlette.middleware.sessions import SessionMiddleware
17
17
  import argparse
18
- import glob
19
18
  import logging
20
- import locale
21
- import json
22
19
  import time
23
- import re
24
- import os
25
20
 
26
21
 
27
22
  class A2a(mcp.Mcp):
@@ -65,8 +65,12 @@ class AgentRunnerList(feature.OneshotResultEdgeFeature, validator.Validator):
65
65
  return self.RESP_SUCCESS, ret, cl
66
66
 
67
67
  def output_schema(self) -> type:
68
+ class RunnerInfo(pydantic.BaseModel):
69
+ name: str = pydantic.Field(description="ランナー名")
70
+ path: str = pydantic.Field(description="設定ファイルパス")
71
+ runner_priority: Union[int, None] = pydantic.Field(default=None, description="ランナー優先度")
68
72
  class Data(resdata.Data):
69
- data: List[resdata.NamePath] = pydantic.Field(default_factory=list, description="処理結果のデータ")
73
+ data: List[RunnerInfo] = pydantic.Field(default_factory=list, description="処理結果のデータ")
70
74
  class Result(resdata.Result):
71
75
  success: Union[Data, None] = pydantic.Field(default=None, description="成功した場合の結果")
72
76
  return Result
@@ -100,7 +104,15 @@ class AgentRunnerList(feature.OneshotResultEdgeFeature, validator.Validator):
100
104
  name = p.name
101
105
  if not name.startswith('runner-') or not name.endswith('.json'):
102
106
  continue
103
- results.append(dict(name=name[7:-5], path=str(p)))
107
+ runner_info = dict(name=name[7:-5], path=str(p))
108
+ try:
109
+ with p.open('r', encoding='utf-8') as f:
110
+ data = json.load(f)
111
+ runner_info['runner_priority'] = data.get('runner_priority', 9999)
112
+ except Exception as e:
113
+ logger.warning(f"Failed to read runner_priority from {p}: {e}")
114
+ runner_info['runner_priority'] = None
115
+ results.append(runner_info)
104
116
 
105
117
  msg = dict(success=results)
106
118
  redis_cli.rpush(reskey, msg)
@@ -75,6 +75,7 @@ class AgentRunnerLoad(feature.OneshotResultEdgeFeature, validator.Validator):
75
75
  tts_engine: Union[str, None] = pydantic.Field(default=None, description="TTSエンジン名")
76
76
  rag: Union[List[str], None] = pydantic.Field(default=None, description="RAG設定リスト")
77
77
  voicevox_model: Union[str, None] = pydantic.Field(default=None, description="VOICEVOXモデル")
78
+ runner_priority: Union[int, None] = pydantic.Field(default=None, description="ランナー優先度")
78
79
  class Result(resdata.Result):
79
80
  success: Union[Data, None] = pydantic.Field(default=None, description="成功した場合の結果")
80
81
  return Result
@@ -25,22 +25,6 @@ class AgentRunnerSave(feature.OneshotResultEdgeFeature, validator.Validator, lim
25
25
  return 'runner_save'
26
26
 
27
27
  def get_option(self) -> Dict[str, Any]:
28
- is_japan = common.is_japan(language=self.language)
29
- description = f"{self.ver.__appid__}に登録されているコマンド提供"
30
- description = description if is_japan else f"Provides commands registered in {self.ver.__appid__}"
31
- instruction = f"あなたはコマンドの意味を熟知しているエキスパートです。" + \
32
- f"ユーザーがコマンドを実行したいとき、あなたは以下の手順に従ってコマンドを確実に実行してください。\n" + \
33
- f"1. ユーザーのクエリからが実行したいコマンドを特定します。\n" + \
34
- f"2. コマンド実行に必要なパラメータのなかで、ユーザーのクエリから取得できないものは、コマンド定義にあるデフォルト値を指定して実行してください。\n" + \
35
- f"3. もしエラーが発生した場合は、ユーザーにコマンド名とパラメータとエラー内容を提示してください。\n" \
36
- f"4. コマンドの実行結果は、json文字列で出力するようにしてください。この時json文字列は「```json」と「```」で囲んだ文字列にしてください。\n"
37
- instruction = instruction if is_japan else \
38
- f"You are the expert who knows what the commands mean." + \
39
- f"When a user wants to execute a command, you follow these steps to ensure that the command is executed.\n" + \
40
- f"1. Identify the command you want to execute from the user's query.\n" + \
41
- f"2. Any parameters required to execute the command that cannot be obtained from the user's query should be executed with the default values provided in the command definition.\n" + \
42
- f"3. If an error occurs, provide the user with the command name, parameters, and error description.\n" \
43
- f"4. The result of the command execution should be output as a json string. The json string should be a string enclosed in '```json' and '```'."
44
28
  return dict(
45
29
  use_redis=self.USE_REDIS_TRUE, nouse_webmode=False, use_agent=False,
46
30
  description_ja="Runner 設定を保存します。",
@@ -78,6 +62,9 @@ class AgentRunnerSave(feature.OneshotResultEdgeFeature, validator.Validator, lim
78
62
  choice_fn=self.choice_ds,
79
63
  description_ja="セッションの保存先データソースを指定します。",
80
64
  description_en="Specify the data source where sessions will be saved."),
65
+ dict(opt="runner_priority", type=Options.T_INT, default=9999, required=True, multi=False, hide=False, choice=None,
66
+ description_ja="Runnerを使用するときの優先度を指定します。小さい値ほど優先されます。",
67
+ description_en="Specifies the priority when using the runner. Lower values indicate higher priority."),
81
68
  dict(opt="tts_engine", type=Options.T_STR, default="voicevox", required=True, multi=False, hide=False,
82
69
  choice=["", "voicevox"],
83
70
  choice_show=dict(voicevox=["voicevox_ver", "voicevox_whl"]),
@@ -147,6 +134,7 @@ class AgentRunnerSave(feature.OneshotResultEdgeFeature, validator.Validator, lim
147
134
  voicevox_model=args.voicevox_model if hasattr(args, 'voicevox_model') else None,
148
135
  rag=list(set(args.rag)) if hasattr(args, 'rag') and args.rag is not None else None,
149
136
  session_datasource=args.session_datasource if hasattr(args, 'session_datasource') else None,
137
+ runner_priority=args.runner_priority if hasattr(args, 'runner_priority') else 1,
150
138
  )
151
139
 
152
140
  payload_b64 = convert.str2b64str(common.to_str(configure))
@@ -249,7 +249,7 @@ class LLMTranslation(cmdbox_llm_chat.LLMChat):
249
249
  )
250
250
  if st != self.RESP_SUCCESS:
251
251
  return st, chat_result
252
-
252
+ content = ''
253
253
  try:
254
254
  data = chat_result.get('success', {}).get('data', [])
255
255
  if data:
@@ -265,7 +265,7 @@ class LLMTranslation(cmdbox_llm_chat.LLMChat):
265
265
  if not nosave:
266
266
  self._save_cache(data_dir, cache)
267
267
  except Exception as e:
268
- logger.warning(f"Failed to parse LLM translation response: {e}", exc_info=True)
268
+ logger.warning(f"Failed to parse LLM translation response: {e}: {content}", exc_info=True)
269
269
  # キャッシュ保存は失敗しても既キャッシュ分は返す
270
270
 
271
271
  result = {w: lang_cache.get(w, w) for w in words}
@@ -0,0 +1,137 @@
1
+ from cmdbox.app import common, feature
2
+ from cmdbox.app.commons import resdata, validator
3
+ from cmdbox.app.options import Options
4
+ from pathlib import Path
5
+ from typing import Dict, Any, Tuple, List, Union
6
+ from datetime import datetime, timedelta
7
+ import argparse
8
+ import logging
9
+ import json
10
+ import pydantic
11
+ import random
12
+ import string
13
+
14
+
15
+ class UrlAdd(feature.OneshotResultEdgeFeature, validator.Validator):
16
+ def __init__(self, appcls, ver, language=None):
17
+ super().__init__(appcls, ver, language)
18
+
19
+ def get_mode(self) -> Union[str, List[str]]:
20
+ """
21
+ この機能のモードを返します
22
+
23
+ Returns:
24
+ Union[str, List[str]]: モード
25
+ """
26
+ return 'url'
27
+
28
+ def get_cmd(self) -> str:
29
+ """
30
+ この機能のコマンドを返します
31
+
32
+ Returns:
33
+ str: コマンド
34
+ """
35
+ return 'add'
36
+
37
+ def get_option(self) -> Dict[str, Any]:
38
+ """
39
+ この機能のオプションを返します
40
+
41
+ Returns:
42
+ Dict[str, Any]: オプション
43
+ """
44
+ return dict(
45
+ use_redis=self.USE_REDIS_FALSE, nouse_webmode=False, use_agent=False,
46
+ description_ja="短縮URLを追加します。target_urlとperiodを指定すると、url_idが生成され、.urlsフォルダにurl_id.jsonファイルが作成されます。",
47
+ description_en="Add a short URL. When target_url and period are specified, a url_id is generated and a url_id.json file is created in the .urls folder.",
48
+ choice=[
49
+ dict(opt="base_url", type=Options.T_STR, default=None, required=True, multi=False, hide=False, choice=None,
50
+ description_ja="短縮URLのベースURLを指定します。",
51
+ description_en="Specify the base URL for the short URL."),
52
+ dict(opt="target_url", type=Options.T_STR, default=None, required=True, multi=False, hide=False, choice=None,
53
+ description_ja="短縮URLのリダイレクト先となるURLを指定します。",
54
+ description_en="Specify the URL that the short URL will redirect to."),
55
+ dict(opt="period", type=Options.T_INT, default=3600*24*30, required=False, multi=False, hide=False, choice=None,
56
+ description_ja="短縮URLの有効期限の秒数を指定します。デフォルトは1か月(2592000秒)です。",
57
+ description_en="Specify the validity period in seconds. Default is 1 month (2592000 seconds)."),
58
+ ]
59
+ )
60
+
61
+ @validator.apprun_check
62
+ def apprun(self, logger: logging.Logger, args: argparse.Namespace, tm: float, pf: List[Dict[str, float]] = []) -> Tuple[int, Dict[str, Any], Any]:
63
+ """
64
+ この機能の実行を行います
65
+
66
+ Args:
67
+ logger (logging.Logger): ロガー
68
+ args (argparse.Namespace): 引数
69
+ tm (float): 実行開始時間
70
+ pf (List[Dict[str, float]]): 呼出元のパフォーマンス情報
71
+
72
+ Returns:
73
+ Tuple[int, Dict[str, Any], Any]: 終了コード, 結果, オブジェクト
74
+ """
75
+ try:
76
+ # url_idを生成(8文字の英数字)
77
+ url_id = common.random_string(size=8)
78
+
79
+ # .urlsフォルダを作成
80
+ urls_dir = Path(self.default_data) / '.urls'
81
+ urls_dir.mkdir(parents=True, exist_ok=True)
82
+
83
+ # JSONファイルのパスを指定
84
+ json_file = urls_dir / f"{url_id}.json"
85
+
86
+ # 保存するデータを作成
87
+ saved_at = datetime.now()
88
+ period = args.period if hasattr(args, 'period') and args.period else 3600*24*30
89
+ period_dt = (saved_at + timedelta(seconds=period)).isoformat()
90
+ url_data = {
91
+ "url_id": url_id,
92
+ "short_url": f'{args.base_url.rstrip("/")}/ru/{url_id}',
93
+ "target_url": args.target_url,
94
+ "base_url": args.base_url,
95
+ "period": period,
96
+ "saved_at": saved_at.isoformat(),
97
+ "period_dt": period_dt
98
+ }
99
+ # JSONファイルを保存
100
+ common.save_file(json_file, lambda f: json.dump(url_data, f, default=common.default_json_enc), nolock=False)
101
+ # 結果を返す
102
+ msg = dict(success=dict(data=dict(
103
+ url_id=url_id,
104
+ short_url=url_data["short_url"],
105
+ target_url=args.target_url,
106
+ base_url=args.base_url,
107
+ period=url_data["period"],
108
+ saved_at=url_data["saved_at"],
109
+ period_dt=url_data["period_dt"],
110
+ file_path=str(json_file),
111
+ msg=f"Short URL added. url_id={url_id}"
112
+ )))
113
+ common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
114
+ return self.RESP_SUCCESS, msg, None
115
+ except Exception as e:
116
+ msg = dict(warn=f"{e}")
117
+ logger.error(f"Error in url_add: {e}", exc_info=True)
118
+ common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
119
+ return self.RESP_WARN, msg, None
120
+
121
+ def output_schema(self) -> type:
122
+
123
+ class UrlData(resdata.Base):
124
+ url_id: Union[str, None] = pydantic.Field(default=None, description="生成されたURL ID")
125
+ short_url: Union[str, None] = pydantic.Field(default=None, description="生成された短縮URL")
126
+ target_url: Union[str, None] = pydantic.Field(default=None, description="リダイレクト先URL")
127
+ base_url: Union[str, None] = pydantic.Field(default=None, description="短縮URLのベースURL")
128
+ period: Union[int, None] = pydantic.Field(default=None, description="有効期限の秒数")
129
+ saved_at: Union[str, None] = pydantic.Field(default=None, description="保存日時")
130
+ period_dt: Union[str, None] = pydantic.Field(default=None, description="期限切れ日時")
131
+ file_path: Union[str, None] = pydantic.Field(default=None, description="作成されたJSONファイルのパス")
132
+ msg: Union[str, None] = pydantic.Field(default=None, description="処理結果のメッセージ")
133
+ class Data(resdata.Data):
134
+ data: Union[UrlData, None] = pydantic.Field(default=None, description="URL情報")
135
+ class Result(resdata.Result):
136
+ success: Union[Data, None] = pydantic.Field(default=None, description="成功した場合の結果")
137
+ return Result
@@ -0,0 +1,99 @@
1
+ from cmdbox.app import common, feature
2
+ from cmdbox.app.commons import resdata, validator
3
+ from cmdbox.app.options import Options
4
+ from pathlib import Path
5
+ from typing import Dict, Any, Tuple, List, Union
6
+ import argparse
7
+ import logging
8
+ import pydantic
9
+
10
+
11
+ class UrlDel(feature.OneshotResultEdgeFeature, validator.Validator):
12
+ def __init__(self, appcls, ver, language=None):
13
+ super().__init__(appcls, ver, language)
14
+
15
+ def get_mode(self) -> Union[str, List[str]]:
16
+ """
17
+ この機能のモードを返します
18
+
19
+ Returns:
20
+ Union[str, List[str]]: モード
21
+ """
22
+ return 'url'
23
+
24
+ def get_cmd(self) -> str:
25
+ """
26
+ この機能のコマンドを返します
27
+
28
+ Returns:
29
+ str: コマンド
30
+ """
31
+ return 'del'
32
+
33
+ def get_option(self) -> Dict[str, Any]:
34
+ """
35
+ この機能のオプションを返します
36
+
37
+ Returns:
38
+ Dict[str, Any]: オプション
39
+ """
40
+ return dict(
41
+ use_redis=self.USE_REDIS_FALSE, nouse_webmode=False, use_agent=False,
42
+ description_ja="短縮URLを削除します。指定されたurl_idのJSONファイルを削除します。",
43
+ description_en="Delete a short URL. Removes the JSON file for the specified url_id.",
44
+ choice=[
45
+ dict(opt="url_id", type=Options.T_STR, default=None, required=True, multi=False, hide=False, choice=None,
46
+ description_ja="削除する短縮URLのurl_idを指定します。",
47
+ description_en="Specify the url_id of the short URL to delete."),
48
+ ]
49
+ )
50
+
51
+ @validator.apprun_check
52
+ def apprun(self, logger: logging.Logger, args: argparse.Namespace, tm: float, pf: List[Dict[str, float]] = []) -> Tuple[int, Dict[str, Any], Any]:
53
+ """
54
+ この機能の実行を行います
55
+
56
+ Args:
57
+ logger (logging.Logger): ロガー
58
+ args (argparse.Namespace): 引数
59
+ tm (float): 実行開始時間
60
+ pf (List[Dict[str, float]]): 呼出元のパフォーマンス情報
61
+
62
+ Returns:
63
+ Tuple[int, Dict[str, Any], Any]: 終了コード, 結果, オブジェクト
64
+ """
65
+ try:
66
+ # JSONファイルのパスを指定
67
+ urls_dir = Path(self.default_data) / '.urls'
68
+ json_file = urls_dir / f"{args.url_id}.json"
69
+
70
+ # ファイルが存在するか確認
71
+ if not json_file.exists():
72
+ msg = dict(warn=f"Short URL '{args.url_id}' not found at '{json_file}'.")
73
+ logger.warning(msg['warn'])
74
+ common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
75
+ return self.RESP_WARN, msg, None
76
+
77
+ # ファイルを削除
78
+ json_file.unlink()
79
+
80
+ # 結果を返す
81
+ msg = dict(success=dict(
82
+ url_id=args.url_id,
83
+ msg=f"Short URL '{args.url_id}' deleted."
84
+ ))
85
+ common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
86
+ return self.RESP_SUCCESS, msg, None
87
+ except Exception as e:
88
+ msg = dict(warn=f"{e}")
89
+ logger.error(f"Error in url_del: {e}", exc_info=True)
90
+ common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
91
+ return self.RESP_WARN, msg, None
92
+
93
+ def output_schema(self) -> type:
94
+ class Data(resdata.Data):
95
+ url_id: Union[str, None] = pydantic.Field(default=None, description="削除されたURL ID")
96
+ msg: Union[str, None] = pydantic.Field(default=None, description="処理結果のメッセージ")
97
+ class Result(resdata.Result):
98
+ success: Union[Data, None] = pydantic.Field(default=None, description="成功した場合の結果")
99
+ return Result
@@ -0,0 +1,121 @@
1
+ from cmdbox.app import common, feature
2
+ from cmdbox.app.commons import cache, resdata, validator
3
+ from cmdbox.app.options import Options
4
+ from pathlib import Path
5
+ from typing import Dict, Any, Tuple, List, Union
6
+ import argparse
7
+ import logging
8
+ import json
9
+ import pydantic
10
+
11
+
12
+ class UrlList(feature.OneshotResultEdgeFeature, validator.Validator):
13
+ def __init__(self, appcls, ver, language=None):
14
+ super().__init__(appcls, ver, language)
15
+
16
+ def get_mode(self) -> Union[str, List[str]]:
17
+ """
18
+ この機能のモードを返します
19
+
20
+ Returns:
21
+ Union[str, List[str]]: モード
22
+ """
23
+ return 'url'
24
+
25
+ def get_cmd(self) -> str:
26
+ """
27
+ この機能のコマンドを返します
28
+
29
+ Returns:
30
+ str: コマンド
31
+ """
32
+ return 'list'
33
+
34
+ def get_option(self) -> Dict[str, Any]:
35
+ """
36
+ この機能のオプションを返します
37
+
38
+ Returns:
39
+ Dict[str, Any]: オプション
40
+ """
41
+ return dict(
42
+ use_redis=self.USE_REDIS_FALSE, nouse_webmode=False, use_agent=False,
43
+ description_ja="登録済みの短縮URLを一覧表示します。",
44
+ description_en="Lists registered short URLs.",
45
+ choice=[
46
+ dict(opt="kwd", type=Options.T_STR, default=None, required=False, multi=False, hide=False, choice=None,
47
+ description_ja="検索したいurl_idを指定します。中間マッチで検索します。",
48
+ description_en="Specify the url_id to search for. Searches for partial matches."),
49
+ ]
50
+ )
51
+
52
+ @cache.apprun_cache(exclude_fn=lambda args: hasattr(args,'kwd') and args.kwd)
53
+ @validator.apprun_check
54
+ def apprun(self, logger: logging.Logger, args: argparse.Namespace, tm: float, pf: List[Dict[str, float]] = []) -> Tuple[int, Dict[str, Any], Any]:
55
+ """
56
+ この機能の実行を行います
57
+
58
+ Args:
59
+ logger (logging.Logger): ロガー
60
+ args (argparse.Namespace): 引数
61
+ tm (float): 実行開始時間
62
+ pf (List[Dict[str, float]]): 呼出元のパフォーマンス情報
63
+
64
+ Returns:
65
+ Tuple[int, Dict[str, Any], Any]: 終了コード, 結果, オブジェクト
66
+ """
67
+ try:
68
+ results: List[Dict[str, Any]] = []
69
+
70
+ # .urlsフォルダを確認
71
+ urls_dir = Path(self.default_data) / '.urls'
72
+ if not urls_dir.exists():
73
+ msg = dict(success=dict(data=results, msg="No URLs found."))
74
+ common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
75
+ return self.RESP_SUCCESS, msg, None
76
+
77
+ # キーワード検索の設定
78
+ kwd = args.kwd if hasattr(args, 'kwd') and args.kwd else '*'
79
+
80
+ # JSONファイルを読み込み
81
+ for json_file in sorted(urls_dir.glob(f"{kwd}.json")):
82
+ try:
83
+ with json_file.open('r', encoding='utf-8') as f:
84
+ url_data = json.load(f)
85
+ results.append(dict(
86
+ url_id=url_data.get('url_id', json_file.stem),
87
+ short_url=url_data.get('short_url', None),
88
+ target_url=url_data.get('target_url', None),
89
+ base_url=url_data.get('base_url', None),
90
+ period=url_data.get('period', None),
91
+ saved_at=url_data.get('saved_at', None),
92
+ period_dt=url_data.get('period_dt', None),
93
+ ))
94
+ except Exception as e:
95
+ logger.warning(f"Error reading {json_file}: {e}")
96
+
97
+ # 結果を返す
98
+ msg = dict(success=dict(data=results, msg=f"Found {len(results)} URL(s)."))
99
+ common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
100
+ return self.RESP_SUCCESS, msg, None
101
+ except Exception as e:
102
+ msg = dict(warn=f"{e}")
103
+ logger.error(f"Error in url_list: {e}", exc_info=True)
104
+ common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
105
+ return self.RESP_WARN, msg, None
106
+
107
+ def output_schema(self) -> type:
108
+ class UrlInfo(resdata.Base):
109
+ url_id: Union[str, None] = pydantic.Field(default=None, description="URL ID")
110
+ short_url: Union[str, None] = pydantic.Field(default=None, description="生成された短縮URL")
111
+ target_url: Union[str, None] = pydantic.Field(default=None, description="リダイレクト先URL")
112
+ base_url: Union[str, None] = pydantic.Field(default=None, description="短縮URLのベースURL")
113
+ period: Union[int, None] = pydantic.Field(default=None, description="有効期限の秒数")
114
+ saved_at: Union[str, None] = pydantic.Field(default=None, description="保存日時")
115
+ period_dt: Union[str, None] = pydantic.Field(default=None, description="期限切れ日時")
116
+ class Data(resdata.Data):
117
+ data: Union[List[UrlInfo], None] = pydantic.Field(default=None, description="URL情報のリスト")
118
+ msg: Union[str, None] = pydantic.Field(default=None, description="処理結果のメッセージ")
119
+ class Result(resdata.Result):
120
+ success: Union[Data, None] = pydantic.Field(default=None, description="成功した場合の結果")
121
+ return Result
@@ -0,0 +1,118 @@
1
+ from cmdbox.app import common, feature
2
+ from cmdbox.app.commons import cache, resdata, validator
3
+ from cmdbox.app.options import Options
4
+ from pathlib import Path
5
+ from typing import Dict, Any, Tuple, List, Union
6
+ from datetime import datetime
7
+ import argparse
8
+ import logging
9
+ import json
10
+ import pydantic
11
+
12
+
13
+ class UrlLoad(feature.OneshotResultEdgeFeature, validator.Validator):
14
+ def __init__(self, appcls, ver, language=None):
15
+ super().__init__(appcls, ver, language)
16
+
17
+ def get_mode(self) -> Union[str, List[str]]:
18
+ """
19
+ この機能のモードを返します
20
+
21
+ Returns:
22
+ Union[str, List[str]]: モード
23
+ """
24
+ return 'url'
25
+
26
+ def get_cmd(self) -> str:
27
+ """
28
+ この機能のコマンドを返します
29
+
30
+ Returns:
31
+ str: コマンド
32
+ """
33
+ return 'load'
34
+
35
+ def get_option(self) -> Dict[str, Any]:
36
+ """
37
+ この機能のオプションを返します
38
+
39
+ Returns:
40
+ Dict[str, Any]: オプション
41
+ """
42
+ return dict(
43
+ use_redis=self.USE_REDIS_FALSE, nouse_webmode=False, use_agent=False,
44
+ description_ja="短縮URLを読み込みます。指定されたurl_idの情報を取得します。",
45
+ description_en="Load a short URL. Retrieves information for the specified url_id.",
46
+ choice=[
47
+ dict(opt="url_id", type=Options.T_STR, default=None, required=True, multi=False, hide=False, choice=None,
48
+ description_ja="読み込む短縮URLのurl_idを指定します。",
49
+ description_en="Specify the url_id of the short URL to load."),
50
+ ]
51
+ )
52
+
53
+ @cache.apprun_cache(args_key='url_id')
54
+ @validator.apprun_check
55
+ def apprun(self, logger: logging.Logger, args: argparse.Namespace, tm: float, pf: List[Dict[str, float]] = []) -> Tuple[int, Dict[str, Any], Any]:
56
+ """
57
+ この機能の実行を行います
58
+
59
+ Args:
60
+ logger (logging.Logger): ロガー
61
+ args (argparse.Namespace): 引数
62
+ tm (float): 実行開始時間
63
+ pf (List[Dict[str, float]]): 呼出元のパフォーマンス情報
64
+
65
+ Returns:
66
+ Tuple[int, Dict[str, Any], Any]: 終了コード, 結果, オブジェクト
67
+ """
68
+ try:
69
+ # JSONファイルのパスを指定
70
+ urls_dir = Path(self.default_data) / '.urls'
71
+ json_file = urls_dir / f"{args.url_id}.json"
72
+
73
+ # ファイルが存在するか確認
74
+ if not json_file.exists():
75
+ msg = dict(warn=f"Short URL '{args.url_id}' not found at '{json_file}'.")
76
+ logger.warning(msg['warn'])
77
+ common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
78
+ return self.RESP_WARN, msg, None
79
+
80
+ # ファイルを読み込み
81
+ with json_file.open('r', encoding='utf-8') as f:
82
+ url_data = json.load(f)
83
+
84
+ # 期限切れをチェック
85
+ if 'period_dt' in url_data:
86
+ period_dt = datetime.fromisoformat(url_data['period_dt'])
87
+ if datetime.now() > period_dt:
88
+ # 期限切れの場合、ファイルを削除
89
+ json_file.unlink()
90
+ msg = dict(warn=f"Short URL '{args.url_id}' not found at '{json_file}'.")
91
+ logger.warning(msg['warn'])
92
+ common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
93
+ return self.RESP_WARN, msg, None
94
+
95
+ # 結果を返す
96
+ msg = dict(success=dict(data=url_data))
97
+ common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
98
+ return self.RESP_SUCCESS, msg, None
99
+ except Exception as e:
100
+ msg = dict(warn=f"{e}")
101
+ logger.error(f"Error in url_load: {e}", exc_info=True)
102
+ common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
103
+ return self.RESP_WARN, msg, None
104
+
105
+ def output_schema(self) -> type:
106
+ class UrlData(resdata.Base):
107
+ url_id: Union[str, None] = pydantic.Field(default=None, description="URL ID")
108
+ short_url: Union[str, None] = pydantic.Field(default=None, description="生成された短縮URL")
109
+ target_url: Union[str, None] = pydantic.Field(default=None, description="リダイレクト先URL")
110
+ base_url: Union[str, None] = pydantic.Field(default=None, description="短縮URLのベースURL")
111
+ period: Union[int, None] = pydantic.Field(default=None, description="有効期限の秒数")
112
+ saved_at: Union[str, None] = pydantic.Field(default=None, description="保存日時")
113
+ period_dt: Union[str, None] = pydantic.Field(default=None, description="期限切れ日時")
114
+ class Data(resdata.Data):
115
+ data: Union[UrlData, None] = pydantic.Field(default=None, description="URL情報")
116
+ class Result(resdata.Result):
117
+ success: Union[Data, None] = pydantic.Field(default=None, description="成功した場合の結果")
118
+ return Result
@@ -29,11 +29,11 @@ class DoSignin(cmdbox_web_signin.Signin):
29
29
  @app.post('/dosignin/', response_class=HTMLResponse, responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
30
30
  async def do_signin(req:Request, res:Response):
31
31
  return await do_signin_token(None, '', req, res)
32
- @app.post('/dosignin/{next}', response_class=HTMLResponse, responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
32
+ @app.post('/dosignin/{next:path}', response_class=HTMLResponse, responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
33
33
  async def do_signin(next:str, req:Request, res:Response):
34
34
  return await do_signin_token(None, next, req, res)
35
35
 
36
- @app.get('/dosignin_token/{token}/{next}', response_class=HTMLResponse, responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
36
+ @app.get('/dosignin_token/{token}/{next:path}', response_class=HTMLResponse, responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
37
37
  async def do_signin_token(token:str, next:str, req:Request, res:Response):
38
38
  form = await req.form()
39
39
  name = form.get('name')
@@ -143,6 +143,7 @@ class DoSignin(cmdbox_web_signin.Signin):
143
143
  # セッションに保存
144
144
  _set_session(req, dict(uid=uid, name=name, apikeys=user.get('apikeys', None), home=user.get('home', None)),
145
145
  email, passwd, None, group_names, group_homes, group_sps, gids)
146
+ next = f"../{next}" if next.find('/') >= 0 else next
146
147
  next = f"../{next}" if token_ok else next
147
148
  if notify_passchange:
148
149
  web.options.audit_exec(req, res, web, body=dict(msg='Signin succeeded. However, you should change your password.'), audit_type='auth', user=name)
@@ -258,7 +259,7 @@ class DoSignin(cmdbox_web_signin.Signin):
258
259
  web.logger.warning(f'Failed to get token. {e}', exc_info=True)
259
260
  raise HTTPException(status_code=400, detail=f'Failed to get token. {e}')
260
261
 
261
- @app.get('/oauth2/google/session/{access_token}/{next}', responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
262
+ @app.get('/oauth2/google/session/{access_token}/{next:path}', responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
262
263
  async def oauth2_google_session(access_token:str, next:str, req:Request, res:Response):
263
264
  return await oauth2_login_session(self.google_signin, access_token, next, req, res)
264
265
 
@@ -275,7 +276,7 @@ class DoSignin(cmdbox_web_signin.Signin):
275
276
  web.logger.warning(f'Failed to get token. {e}', exc_info=True)
276
277
  raise HTTPException(status_code=400, detail=f'Failed to get token. {e}')
277
278
 
278
- @app.get('/oauth2/github/session/{access_token}/{next}', responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
279
+ @app.get('/oauth2/github/session/{access_token}/{next:path}', responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
279
280
  async def oauth2_github_session(access_token:str, next:str, req:Request, res:Response):
280
281
  return await oauth2_login_session(self.github_signin, access_token, next, req, res)
281
282
 
@@ -292,7 +293,7 @@ class DoSignin(cmdbox_web_signin.Signin):
292
293
  web.logger.warning(f'Failed to get token. {e}', exc_info=True)
293
294
  raise HTTPException(status_code=400, detail=f'Failed to get token. {e}')
294
295
 
295
- @app.get('/oauth2/azure/session/{access_token}/{next}', responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
296
+ @app.get('/oauth2/azure/session/{access_token}/{next:path}', responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
296
297
  async def oauth2_azure_session(access_token:str, next:str, req:Request, res:Response):
297
298
  return await oauth2_login_session(self.azure_signin, access_token, next, req, res)
298
299
 
@@ -326,7 +327,7 @@ class DoSignin(cmdbox_web_signin.Signin):
326
327
  form = await req.form()
327
328
  return await saml_login_callback('azure', self.azure_saml_signin, form, None, req, res)
328
329
 
329
- @app.get('/saml/azure/session/{saml_token}/{next}', responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
330
+ @app.get('/saml/azure/session/{saml_token}/{next:path}', responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
330
331
  async def saml_azure_session(saml_token:str, next:str, req:Request, res:Response):
331
332
  form = json.loads(convert.b64str2str(saml_token))
332
333
  return await saml_login_callback('azure', self.azure_saml_signin, form, next, req, res)