decodingtrust-agent-sdk 0.2.4__tar.gz → 0.2.7__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 (408) hide show
  1. {decodingtrust_agent_sdk-0.2.4/decodingtrust_agent_sdk.egg-info → decodingtrust_agent_sdk-0.2.7}/PKG-INFO +3 -1
  2. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/claudesdk/src/agent.py +18 -1
  3. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/pocketflow/src/agent.py +187 -2
  4. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7/decodingtrust_agent_sdk.egg-info}/PKG-INFO +3 -1
  5. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/decodingtrust_agent_sdk.egg-info/SOURCES.txt +9 -5
  6. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/decodingtrust_agent_sdk.egg-info/requires.txt +2 -0
  7. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/config/env.yaml +124 -20
  8. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/config/injection_mcp.yaml +34 -0
  9. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/ecommerce/docker-compose.yml +1 -1
  10. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/hospital/docker-compose-hub.yml +0 -2
  11. decodingtrust_agent_sdk-0.2.7/dt_arena/envs/macos/docker-compose.yml +98 -0
  12. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/whatsapp/docker-compose-hub.yml +7 -9
  13. decodingtrust_agent_sdk-0.2.7/dt_arena/envs/windows/dns_listener.py +155 -0
  14. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/windows/docker-compose.yml +1 -0
  15. decodingtrust_agent_sdk-0.2.7/dt_arena/envs/windows/exfil_listener.py +187 -0
  16. decodingtrust_agent_sdk-0.2.7/dt_arena/envs/windows/ftp_listener.py +126 -0
  17. decodingtrust_agent_sdk-0.2.7/dt_arena/envs/windows/reset_server.py +153 -0
  18. decodingtrust_agent_sdk-0.2.7/dt_arena/envs/windows/validate.py +45 -0
  19. decodingtrust_agent_sdk-0.2.7/dt_arena/injection_mcp_server/googledocs/env_injection.py +388 -0
  20. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/github/main.py +0 -17
  21. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/gmail/main.py +289 -17
  22. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/macos/mcp_server.py +24 -1
  23. decodingtrust_agent_sdk-0.2.7/dt_arena/utils/chase/helpers.py +84 -0
  24. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/macos/env_setup.py +63 -0
  25. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/macos/helpers.py +19 -3
  26. decodingtrust_agent_sdk-0.2.7/dt_arena/utils/robinhood/helpers.py +98 -0
  27. decodingtrust_agent_sdk-0.2.7/dt_arena/utils/whatsapp/__init__.py +0 -0
  28. decodingtrust_agent_sdk-0.2.7/dt_arena/utils/windows/__init__.py +0 -0
  29. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/windows/env_setup.py +53 -6
  30. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/eval/evaluation.py +52 -18
  31. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/pyproject.toml +3 -1
  32. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/llm.py +11 -2
  33. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/task_executor.py +2 -1
  34. decodingtrust_agent_sdk-0.2.4/dt_arena/envs/atlassian/docker/docker-compose.dev.yml +0 -65
  35. decodingtrust_agent_sdk-0.2.4/dt_arena/envs/atlassian/docker/docker-compose.yml +0 -53
  36. decodingtrust_agent_sdk-0.2.4/dt_arena/envs/ers/hrms/docker/docker-compose.yml +0 -31
  37. decodingtrust_agent_sdk-0.2.4/dt_arena/envs/github/docker/docker-compose-hub.yml +0 -50
  38. decodingtrust_agent_sdk-0.2.4/dt_arena/envs/github/docker/docker-compose.yml +0 -50
  39. decodingtrust_agent_sdk-0.2.4/dt_arena/envs/macos/docker-compose.yml +0 -79
  40. decodingtrust_agent_sdk-0.2.4/dt_arena/injection_mcp_server/googledocs/env_injection.py +0 -44
  41. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/LICENSE +0 -0
  42. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/MANIFEST.in +0 -0
  43. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/README.md +0 -0
  44. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/__init__.py +0 -0
  45. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/claudesdk/__init__.py +0 -0
  46. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/claudesdk/example.py +0 -0
  47. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/claudesdk/src/__init__.py +0 -0
  48. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/claudesdk/src/mcp_proxy.py +0 -0
  49. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/claudesdk/src/utils.py +0 -0
  50. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/googleadk/__init__.py +0 -0
  51. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/googleadk/example.py +0 -0
  52. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/googleadk/src/__init__.py +0 -0
  53. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/googleadk/src/agent.py +0 -0
  54. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/googleadk/src/mcp_wrapper.py +0 -0
  55. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/googleadk/src/utils.py +0 -0
  56. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/hermes/__init__.py +0 -0
  57. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/hermes/example.py +0 -0
  58. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/hermes/src/__init__.py +0 -0
  59. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/hermes/src/agent.py +0 -0
  60. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/hermes/src/hermes_runner.py +0 -0
  61. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/hermes/src/mcp_proxy.py +0 -0
  62. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/hermes/src/utils.py +0 -0
  63. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/langchain/__init__.py +0 -0
  64. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/langchain/example.py +0 -0
  65. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/langchain/src/__init__.py +0 -0
  66. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/langchain/src/agent.py +0 -0
  67. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/langchain/src/utils.py +0 -0
  68. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/openaisdk/__init__.py +0 -0
  69. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/openaisdk/example.py +0 -0
  70. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/openaisdk/src/__init__.py +0 -0
  71. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/openaisdk/src/agent.py +0 -0
  72. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/openaisdk/src/agent_wrapper.py +0 -0
  73. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/openaisdk/src/mcp_wrapper.py +0 -0
  74. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/openaisdk/src/utils.py +0 -0
  75. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/openclaw/__init__.py +0 -0
  76. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/openclaw/example.py +0 -0
  77. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/openclaw/src/__init__.py +0 -0
  78. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/openclaw/src/agent.py +0 -0
  79. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/openclaw/src/helpers/__init__.py +0 -0
  80. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/openclaw/src/helpers/auth_helpers.py +0 -0
  81. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/openclaw/src/mcp_proxy.py +0 -0
  82. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/openclaw/src/plugin_generator.py +0 -0
  83. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/openclaw/src/utils.py +0 -0
  84. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/pocketflow/__init__.py +0 -0
  85. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/pocketflow/example.py +0 -0
  86. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/pocketflow/prompts/react_agent.py +0 -0
  87. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/pocketflow/src/__init__.py +0 -0
  88. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/pocketflow/src/agent_wrapper.py +0 -0
  89. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/pocketflow/src/async_helper.py +0 -0
  90. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/pocketflow/src/mcp_react_agent.py +0 -0
  91. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/pocketflow/src/native_agent.py +0 -0
  92. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/pocketflow/src/nodes.py +0 -0
  93. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/strands/__init__.py +0 -0
  94. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/strands/example.py +0 -0
  95. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/strands/src/__init__.py +0 -0
  96. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/strands/src/agent.py +0 -0
  97. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/agent/strands/src/utils.py +0 -0
  98. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/__init__.py +0 -0
  99. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/browser/benign.jsonl +0 -0
  100. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/browser/direct.jsonl +0 -0
  101. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/browser/indirect.jsonl +0 -0
  102. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/code/benign.jsonl +0 -0
  103. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/code/direct.jsonl +0 -0
  104. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/code/indirect.jsonl +0 -0
  105. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/crm/benign.jsonl +0 -0
  106. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/crm/direct.jsonl +0 -0
  107. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/crm/indirect.jsonl +0 -0
  108. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/customer-service/benign.jsonl +0 -0
  109. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/customer-service/direct.jsonl +0 -0
  110. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/customer-service/indirect.jsonl +0 -0
  111. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/finance/benign.jsonl +0 -0
  112. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/finance/direct.jsonl +0 -0
  113. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/finance/indirect.jsonl +0 -0
  114. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/legal/benign.jsonl +0 -0
  115. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/legal/direct.jsonl +0 -0
  116. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/legal/indirect.jsonl +0 -0
  117. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/macos/benign.jsonl +0 -0
  118. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/macos/direct.jsonl +0 -0
  119. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/macos/indirect.jsonl +0 -0
  120. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/medical/benign.jsonl +0 -0
  121. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/medical/direct.jsonl +0 -0
  122. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/medical/indirect.jsonl +0 -0
  123. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/os-filesystem/benign.jsonl +0 -0
  124. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/os-filesystem/direct.jsonl +0 -0
  125. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/os-filesystem/indirect.jsonl +0 -0
  126. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/research/benign.jsonl +0 -0
  127. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/research/direct.jsonl +0 -0
  128. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/research/indirect.jsonl +0 -0
  129. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/telecom/benign.jsonl +0 -0
  130. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/telecom/direct.jsonl +0 -0
  131. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/telecom/indirect.jsonl +0 -0
  132. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/travel/benign.jsonl +0 -0
  133. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/travel/direct.jsonl +0 -0
  134. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/travel/indirect.jsonl +0 -0
  135. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/windows/benign.jsonl +0 -0
  136. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/windows/direct.jsonl +0 -0
  137. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/windows/indirect.jsonl +0 -0
  138. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/workflow/benign.jsonl +0 -0
  139. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/workflow/direct.jsonl +0 -0
  140. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/benchmark/workflow/indirect.jsonl +0 -0
  141. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/cli/__init__.py +0 -0
  142. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/cli/main.py +0 -0
  143. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/cli/scaffold.py +0 -0
  144. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/decodingtrust_agent_sdk.egg-info/dependency_links.txt +0 -0
  145. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/decodingtrust_agent_sdk.egg-info/entry_points.txt +0 -0
  146. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/decodingtrust_agent_sdk.egg-info/top_level.txt +0 -0
  147. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/a2a_agents/generic/__init__.py +0 -0
  148. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/a2a_agents/generic/agent.py +0 -0
  149. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/config/mcp.yaml +0 -0
  150. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/arxiv/docker-compose-hub.yml +0 -0
  151. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/arxiv/docker-compose.yml +0 -0
  152. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/atlassian/docker-compose-hub.yml +0 -0
  153. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/atlassian/docker-compose.yml +0 -0
  154. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/bigquery/docker-compose.yml +0 -0
  155. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/booking/docker-compose.yml +0 -0
  156. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/calendar/docker-compose-hub.yml +0 -0
  157. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/calendar/docker-compose.yml +0 -0
  158. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/custom-website/docker-compose.yml +0 -0
  159. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/customer_service/docker-compose.yml +0 -0
  160. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/databricks/docker-compose-hub.yml +0 -0
  161. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/databricks/docker-compose.yml +0 -0
  162. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/ers/docker-compose.yml +0 -0
  163. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/finance/docker-compose.yml +0 -0
  164. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/gmail/docker-compose-hub.yml +0 -0
  165. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/gmail/docker-compose.yml +0 -0
  166. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/google-form/docker-compose-hub.yml +0 -0
  167. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/google-form/docker-compose.yml +0 -0
  168. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/googledocs/docker-compose-hub.yml +0 -0
  169. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/googledocs/docker-compose.yml +0 -0
  170. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/hospital/docker-compose.yml +0 -0
  171. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/legal/docker-compose.yml +0 -0
  172. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/linkedin/docker-compose.yml +0 -0
  173. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/os-filesystem/docker-compose-hub.yml +0 -0
  174. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/os-filesystem/docker-compose.yml +0 -0
  175. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/paypal/docker-compose-hub.yml +0 -0
  176. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/paypal/docker-compose.yml +0 -0
  177. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/research/docker-compose-hub.yml +0 -0
  178. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/research/docker-compose.yml +0 -0
  179. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/salesforce_crm/docker-compose-hub.yaml +0 -0
  180. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/salesforce_crm/docker-compose.yaml +0 -0
  181. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/slack/docker-compose-hub.yml +0 -0
  182. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/slack/docker-compose.yml +0 -0
  183. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/snowflake/docker-compose-hub.yml +0 -0
  184. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/snowflake/docker-compose.yml +0 -0
  185. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/telecom/docker-compose-hub.yml +0 -0
  186. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/telecom/docker-compose.yml +0 -0
  187. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/telegram/docker-compose-hub.yml +0 -0
  188. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/telegram/docker-compose.yml +0 -0
  189. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/terminal/docker-compose-hub.yml +0 -0
  190. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/terminal/docker-compose.yml +0 -0
  191. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/travel/docker-compose-hub.yml +0 -0
  192. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/travel/docker-compose.yml +0 -0
  193. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/whatsapp/docker-compose.yml +0 -0
  194. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/zoom/docker-compose-hub.yml +0 -0
  195. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/envs/zoom/docker-compose.yml +0 -0
  196. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/atlassian/env_injection.py +0 -0
  197. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/calendar/env_injection.py +0 -0
  198. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/custom_website/env_injection.py +0 -0
  199. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/customer_service/env_injection.py +0 -0
  200. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/databricks/env_injection.py +0 -0
  201. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/ecommerce/env_injection.py +0 -0
  202. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/finance/env_injection.py +0 -0
  203. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/github/env_injection.py +0 -0
  204. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/gmail/env_injection.py +0 -0
  205. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/google_form/env_injection.py +0 -0
  206. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/hospital/env_injection.py +0 -0
  207. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/legal/env_injection.py +0 -0
  208. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/macos/env_injection.py +0 -0
  209. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/os-filesystem/env_injection.py +0 -0
  210. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/paypal/env_injection.py +0 -0
  211. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/research/env_injection.py +0 -0
  212. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/salesforce/env_injection.py +0 -0
  213. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/slack/env_injection.py +0 -0
  214. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/snowflake/env_injection.py +0 -0
  215. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/telecom/env_injection.py +0 -0
  216. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/telegram/env_injection.py +0 -0
  217. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/terminal/env_injection.py +0 -0
  218. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/travel/env_injection.py +0 -0
  219. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/whatsapp/env_injection.py +0 -0
  220. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/windows/env_injection.py +0 -0
  221. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/injection_mcp_server/zoom/env_injection.py +0 -0
  222. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/atlassian/main.py +0 -0
  223. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/atlassian/test_server.py +0 -0
  224. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/bigquery/main.py +0 -0
  225. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/booking/main.py +0 -0
  226. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/browser/main.py +0 -0
  227. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/calendar/example_multi_user.py +0 -0
  228. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/calendar/main.py +0 -0
  229. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/calendar/test_mcp.py +0 -0
  230. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/customer_service/main.py +0 -0
  231. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/databricks/main.py +0 -0
  232. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/databricks/probe.py +0 -0
  233. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/ers/main.py +0 -0
  234. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/__init__.py +0 -0
  235. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/core/__init__.py +0 -0
  236. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/core/data_loader.py +0 -0
  237. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/core/portfolio.py +0 -0
  238. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/evaluation/__init__.py +0 -0
  239. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/evaluation/evaluator.py +0 -0
  240. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/evaluation/logger.py +0 -0
  241. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/injection/__init__.py +0 -0
  242. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/injection/config.py +0 -0
  243. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/injection/content.py +0 -0
  244. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/injection/html.py +0 -0
  245. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/injection/locations.py +0 -0
  246. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/injection/methods.py +0 -0
  247. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/injection/presets.py +0 -0
  248. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/main.py +0 -0
  249. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/run_mcp.py +0 -0
  250. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/run_web.py +0 -0
  251. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/server/__init__.py +0 -0
  252. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/server/extractor.py +0 -0
  253. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/server/extractor_minimal.py +0 -0
  254. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/server/extractor_simple.py +0 -0
  255. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/server/injection_mcp.py +0 -0
  256. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/server/mcp.py +0 -0
  257. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/server/tools/__init__.py +0 -0
  258. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/server/tools/account.py +0 -0
  259. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/server/tools/browsing.py +0 -0
  260. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/server/tools/social.py +0 -0
  261. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/server/tools/trading.py +0 -0
  262. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/server/tools/utility.py +0 -0
  263. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/server/web.py +0 -0
  264. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/tasks/benchmark/__init__.py +0 -0
  265. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/tasks/benchmark/attack_pool.py +0 -0
  266. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/tasks/benchmark/attack_runner.py +0 -0
  267. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/tasks/benchmark/finra_requirements.py +0 -0
  268. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/tasks/benchmark/finra_tasks.py +0 -0
  269. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/tasks/benchmark/malicious_tasks.py +0 -0
  270. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/tasks/redteam_suite/run_redteam_suite.py +0 -0
  271. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/finance/test_mcp_tools.py +0 -0
  272. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/google_form/main.py +0 -0
  273. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/googledocs/main.py +0 -0
  274. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/hospital/mcp_server.py +0 -0
  275. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/legal/__init__.py +0 -0
  276. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/legal/core/__init__.py +0 -0
  277. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/legal/core/courtlistener_store.py +0 -0
  278. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/legal/core/data_loader.py +0 -0
  279. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/legal/core/document_store.py +0 -0
  280. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/legal/core/matter_manager.py +0 -0
  281. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/legal/main.py +0 -0
  282. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/legal/scripts/collect_data.py +0 -0
  283. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/legal/server/__init__.py +0 -0
  284. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/legal/server/mcp.py +0 -0
  285. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/macos/client_test.py +0 -0
  286. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/os-filesystem/main.py +0 -0
  287. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/paypal/main.py +0 -0
  288. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/research/main.py +0 -0
  289. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/salesforce/main.py +0 -0
  290. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/slack/main.py +0 -0
  291. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/snowflake/main.py +0 -0
  292. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/snowflake/probe.py +0 -0
  293. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/telecom/mcp_client.py +0 -0
  294. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/telecom/mcp_server.py +0 -0
  295. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/telegram/main.py +0 -0
  296. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/terminal/main.py +0 -0
  297. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/travel/client_test.py +0 -0
  298. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/travel/mcp_server.py +0 -0
  299. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/whatsapp/main.py +0 -0
  300. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/windows/client_test.py +0 -0
  301. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/windows/mcp_server.py +0 -0
  302. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/mcp_server/zoom/main.py +0 -0
  303. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/src/__init__.py +0 -0
  304. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/src/hooks/__init__.py +0 -0
  305. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/src/hooks/audit_log.py +0 -0
  306. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/src/hooks/hooks.json +0 -0
  307. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/src/run_benign.py +0 -0
  308. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/src/types/__init__.py +0 -0
  309. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/src/types/agent.py +0 -0
  310. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/src/types/attacks.py +0 -0
  311. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/src/types/environment.py +0 -0
  312. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/src/types/hooks.py +0 -0
  313. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/src/types/judge.py +0 -0
  314. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/src/types/red_teaming_trajectory.py +0 -0
  315. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/src/types/task.py +0 -0
  316. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/src/types/trajectory.py +0 -0
  317. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/__init__.py +0 -0
  318. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/atlassian/__init__.py +0 -0
  319. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/atlassian/helpers.py +0 -0
  320. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/bigquery/__init__.py +0 -0
  321. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/bigquery/helpers.py +0 -0
  322. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/calendar/__init__.py +0 -0
  323. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/calendar/helpers.py +0 -0
  324. {decodingtrust_agent_sdk-0.2.4/dt_arena/utils/finance → decodingtrust_agent_sdk-0.2.7/dt_arena/utils/chase}/__init__.py +0 -0
  325. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/customer_service/__init__.py +0 -0
  326. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/customer_service/cs_env_client.py +0 -0
  327. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/customer_service/helpers.py +0 -0
  328. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/customer_service/judges/__init__.py +0 -0
  329. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/customer_service/judges/abusive_comms.py +0 -0
  330. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/customer_service/judges/bulk_destructive.py +0 -0
  331. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/customer_service/judges/cross_customer.py +0 -0
  332. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/customer_service/judges/email_exfiltration.py +0 -0
  333. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/customer_service/judges/financial_fraud.py +0 -0
  334. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/customer_service/judges/llm_utils.py +0 -0
  335. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/customer_service/judges/pii_disclosure.py +0 -0
  336. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/customer_service/judges/policy_misrep.py +0 -0
  337. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/customer_service/judges/text_utils.py +0 -0
  338. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/databricks/__init__.py +0 -0
  339. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/databricks/helpers.py +0 -0
  340. {decodingtrust_agent_sdk-0.2.4/dt_arena/utils/legal → decodingtrust_agent_sdk-0.2.7/dt_arena/utils/finance}/__init__.py +0 -0
  341. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/finance/helpers.py +0 -0
  342. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/github/__init__.py +0 -0
  343. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/github/helpers.py +0 -0
  344. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/gmail/__init__.py +0 -0
  345. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/gmail/helpers.py +0 -0
  346. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/google_form/__init__.py +0 -0
  347. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/google_form/helpers.py +0 -0
  348. {decodingtrust_agent_sdk-0.2.4/dt_arena/utils/macos → decodingtrust_agent_sdk-0.2.7/dt_arena/utils/legal}/__init__.py +0 -0
  349. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/legal/helpers.py +0 -0
  350. {decodingtrust_agent_sdk-0.2.4/dt_arena/utils/research → decodingtrust_agent_sdk-0.2.7/dt_arena/utils/macos}/__init__.py +0 -0
  351. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/os_filesystem/__init__.py +0 -0
  352. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/os_filesystem/helpers.py +0 -0
  353. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/paypal/__init__.py +0 -0
  354. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/paypal/helpers.py +0 -0
  355. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/port_allocator.py +0 -0
  356. {decodingtrust_agent_sdk-0.2.4/dt_arena/utils/telegram → decodingtrust_agent_sdk-0.2.7/dt_arena/utils/research}/__init__.py +0 -0
  357. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/research/helpers.py +0 -0
  358. {decodingtrust_agent_sdk-0.2.4/dt_arena/utils/terminal → decodingtrust_agent_sdk-0.2.7/dt_arena/utils/robinhood}/__init__.py +0 -0
  359. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/salesforce/__init__.py +0 -0
  360. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/salesforce/helpers.py +0 -0
  361. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/slack/__init__.py +0 -0
  362. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/slack/helpers.py +0 -0
  363. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/snowflake/__init__.py +0 -0
  364. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/snowflake/helpers.py +0 -0
  365. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/telecom/__init__.py +0 -0
  366. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/telecom/helpers.py +0 -0
  367. {decodingtrust_agent_sdk-0.2.4/dt_arena/utils/travel → decodingtrust_agent_sdk-0.2.7/dt_arena/utils/telegram}/__init__.py +0 -0
  368. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/telegram/helpers.py +0 -0
  369. {decodingtrust_agent_sdk-0.2.4/dt_arena/utils/whatsapp → decodingtrust_agent_sdk-0.2.7/dt_arena/utils/terminal}/__init__.py +0 -0
  370. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/terminal/helpers.py +0 -0
  371. {decodingtrust_agent_sdk-0.2.4/dt_arena/utils/windows → decodingtrust_agent_sdk-0.2.7/dt_arena/utils/travel}/__init__.py +0 -0
  372. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/travel/env_client.py +0 -0
  373. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/travel/llm_judge.py +0 -0
  374. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/travel/prompts.py +0 -0
  375. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/utils/__init__.py +0 -0
  376. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/whatsapp/helpers.py +0 -0
  377. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/windows/env_reset.py +0 -0
  378. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/windows/exfil_helpers.py +0 -0
  379. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/windows/helpers.py +0 -0
  380. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/zoom/__init__.py +0 -0
  381. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/dt_arena/utils/zoom/helpers.py +0 -0
  382. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/eval/__init__.py +0 -0
  383. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/eval/_ui.py +0 -0
  384. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/eval/task_runner.py +0 -0
  385. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/setup.cfg +0 -0
  386. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/__init__.py +0 -0
  387. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/a2a_helpers.py +0 -0
  388. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/agent_helpers.py +0 -0
  389. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/agent_wrapper.py +0 -0
  390. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/compose_utils.py +0 -0
  391. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/config.py +0 -0
  392. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/env_helpers.py +0 -0
  393. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/eval_stats.py +0 -0
  394. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/injection_a2a_helpers.py +0 -0
  395. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/injection_helpers.py +0 -0
  396. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/injection_mcp_helpers.py +0 -0
  397. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/judge_helpers.py +0 -0
  398. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/judge_utils.py +0 -0
  399. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/logging.py +0 -0
  400. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/mcp_helpers.py +0 -0
  401. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/mcp_manager.py +0 -0
  402. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/memory_guard.py +0 -0
  403. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/red_teaming_sandbox.py +0 -0
  404. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/reset_helpers.py +0 -0
  405. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/resource_manager.py +0 -0
  406. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/skill_helpers.py +0 -0
  407. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/task_helpers.py +0 -0
  408. {decodingtrust_agent_sdk-0.2.4 → decodingtrust_agent_sdk-0.2.7}/utils/template_helpers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: decodingtrust-agent-sdk
3
- Version: 0.2.4
3
+ Version: 0.2.7
4
4
  Summary: DecodingTrust Agent Platform (DTap) — A controllable and interactive red-teaming platform for AI agents
5
5
  Author-email: DTap Team <zhaorun@uchicago.edu>
6
6
  License: Apache License
@@ -224,6 +224,8 @@ Description-Content-Type: text/markdown
224
224
  License-File: LICENSE
225
225
  Requires-Dist: mcp>=1.0.0
226
226
  Requires-Dist: fastmcp>=2.0.0
227
+ Requires-Dist: uv>=0.5.0
228
+ Requires-Dist: defusedxml>=0.7.1
227
229
  Requires-Dist: pydantic>=2.0
228
230
  Requires-Dist: pydantic-settings>=2.0
229
231
  Requires-Dist: PyYAML>=6.0
@@ -3,6 +3,7 @@ import shutil
3
3
  import tempfile
4
4
  import uuid
5
5
  from datetime import datetime
6
+ from pathlib import Path
6
7
  from typing import Dict, Any, Optional, List, Union
7
8
 
8
9
  from claude_agent_sdk import (
@@ -70,9 +71,25 @@ class ClaudeSDKAgent(Agent):
70
71
  # Skill injection temp directory
71
72
  self._skill_temp_dir: Optional[str] = None
72
73
 
73
- # Per-instance Claude Code home.
74
+ # Per-instance Claude Code home.
74
75
  self._claude_home: str = tempfile.mkdtemp(prefix="claude-home-")
75
76
 
77
+ # Seed the isolated home with the user's OAuth credentials so that,
78
+ # when ANTHROPIC_API_KEY is unset, the spawned `claude` CLI authenticates
79
+ # via the logged-in subscription (Max/Pro) instead of reporting
80
+ # "Not logged in". CLAUDE_CONFIG_DIR points the CLI at this temp home, so
81
+ # without this copy it can't find ~/.claude/.credentials.json. The temp
82
+ # home (and this copy) is removed when the agent is cleaned up.
83
+ # No-op when API-key billing is used or no credentials file exists.
84
+ _src_creds = Path.home() / ".claude" / ".credentials.json"
85
+ if _src_creds.is_file():
86
+ try:
87
+ _dst_creds = Path(self._claude_home) / ".credentials.json"
88
+ shutil.copy2(_src_creds, _dst_creds)
89
+ os.chmod(_dst_creds, 0o600)
90
+ except OSError as e:
91
+ print(f"[WARNING] Could not seed Claude subscription credentials: {e}")
92
+
76
93
  # Claude SDK client for multi-turn conversations
77
94
  self._client: Optional[ClaudeSDKClient] = None
78
95
  self._options: Optional[ClaudeAgentOptions] = None
@@ -5,13 +5,20 @@ from datetime import datetime
5
5
  from typing import Dict, Any, List, Optional, Union
6
6
  import uuid
7
7
  from pocketflow import Flow
8
- from fastmcp import Client
8
+ from fastmcp import Client, FastMCP
9
9
 
10
10
  from agent.pocketflow.src.nodes import DecideActionNode, ExecuteToolNode, FinalAnswerNode
11
11
  from agent.pocketflow.src.async_helper import AsyncHelper
12
12
 
13
13
  from dt_arena.src.types.agent import Agent, AgentConfig, RuntimeConfig, MCPServerConfig, AgentResult
14
14
  from dt_arena.src.types.trajectory import Trajectory
15
+ from utils.skill_helpers import (
16
+ create_injected_skills_directory,
17
+ cleanup_temp_directory,
18
+ parse_skill_metadata,
19
+ load_skill_full_content,
20
+ scan_available_skills,
21
+ )
15
22
 
16
23
 
17
24
  @dataclass
@@ -83,6 +90,11 @@ class MCPReactAgent(Agent):
83
90
  self._turn_count: int = 0 # Total turn count across multi-turn conversation
84
91
  self._current_trajectory: Optional[Trajectory] = None # Current trajectory object
85
92
 
93
+ # Skill injection support
94
+ self._skill_temp_dir: Optional[str] = None
95
+ self._skill_mcp_server: Optional[FastMCP] = None
96
+ self._skill_server_thread = None
97
+
86
98
  def _build_flow(self) -> Flow:
87
99
  """Build the ReAct workflow using PocketFlow."""
88
100
  # Create nodes
@@ -248,6 +260,159 @@ class MCPReactAgent(Agent):
248
260
  print(f"[INFO] Total tools available: {len(self._all_tools)}")
249
261
  return self._mcp_servers
250
262
 
263
+ async def _setup_skills(self) -> None:
264
+ """Setup skill directories and apply any skill injections."""
265
+ skill_directories = self.config.skill_directories if self.config else []
266
+ skill_injection = self.runtime_config.skill_injection
267
+
268
+ has_create_mode = skill_injection and any(
269
+ any(inj.mode == "create" for inj in injs)
270
+ for injs in skill_injection.values()
271
+ )
272
+
273
+ if not skill_directories and not has_create_mode:
274
+ return
275
+
276
+ self._skill_temp_dir = create_injected_skills_directory(
277
+ source_skill_dirs=skill_directories,
278
+ skill_injection=skill_injection,
279
+ skill_subpath="skills",
280
+ base_dir=self.output_dir,
281
+ )
282
+
283
+ def _build_skill_mcp_server(self) -> Optional[FastMCP]:
284
+ """Build a local FastMCP server that exposes load_skill as an MCP tool."""
285
+ if not self._skill_temp_dir:
286
+ return None
287
+
288
+ skills_dir = os.path.join(self._skill_temp_dir, "skills")
289
+ mcp = FastMCP("skill-server")
290
+
291
+ @mcp.tool()
292
+ def load_skill(skill_name: str) -> str:
293
+ """Load a skill by name and return its full instructions.
294
+
295
+ Use this tool to retrieve the complete content of a skill file.
296
+ After loading, follow the skill's instructions to complete the task.
297
+
298
+ Args:
299
+ skill_name: The name of the skill to load.
300
+
301
+ Returns:
302
+ The full content of the skill's SKILL.md file, or an error message if not found.
303
+ """
304
+ available = scan_available_skills(skills_dir)
305
+ for skill in available:
306
+ if skill.get("name") == skill_name:
307
+ return load_skill_full_content(skill["path"])
308
+ names = [s.get("name", "") for s in available]
309
+ return f"Skill '{skill_name}' not found. Available skills: {names}"
310
+
311
+ return mcp
312
+
313
+ def _build_skill_system_prompt_suffix(self) -> str:
314
+ """Build system prompt suffix with skill hints."""
315
+ if not self._skill_temp_dir:
316
+ return ""
317
+
318
+ skills_dir = os.path.join(self._skill_temp_dir, "skills")
319
+ skill_entries = []
320
+ if os.path.isdir(skills_dir):
321
+ for item in sorted(os.listdir(skills_dir)):
322
+ skill_path = os.path.join(skills_dir, item)
323
+ if not os.path.isdir(skill_path):
324
+ continue
325
+ skill_file = os.path.join(skill_path, "SKILL.md")
326
+ if not os.path.exists(skill_file):
327
+ continue
328
+ metadata = parse_skill_metadata(skill_file)
329
+ if metadata:
330
+ skill_entries.append(f"# Skill: {item}\n\n{metadata}")
331
+ else:
332
+ skill_entries.append(f"# Skill: {item}")
333
+
334
+ if not skill_entries:
335
+ return ""
336
+
337
+ skills_list = "\n".join(skill_entries)
338
+ return (
339
+ "\n\n## Instructions for Using Skills\n"
340
+ "You have access to the `load_skill` tool that retrieves full skill instructions, "
341
+ "whose metadata are defined in the system prompt. "
342
+ "Based on the task requirements, if you need to use a skill, "
343
+ "call `load_skill` with the skill name to get its full instructions, then follow them.\n\n"
344
+ f"## Available skills:\n{skills_list}"
345
+ )
346
+
347
+ async def _start_skill_mcp_server(self, mcp_server: FastMCP) -> None:
348
+ """Start the skill MCP server and register its tools.
349
+
350
+ The server runs in a dedicated thread with its own event loop so that
351
+ it can handle HTTP requests even while the main event loop is blocked
352
+ by the synchronous PocketFlow ``_flow.run()`` call.
353
+ """
354
+ import asyncio
355
+ import threading
356
+ import socket
357
+
358
+ server_name = "skill-server"
359
+
360
+ # Pick a random available port
361
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
362
+ sock.bind(("127.0.0.1", 0))
363
+ port = sock.getsockname()[1]
364
+ sock.close()
365
+
366
+ server_url = f"http://127.0.0.1:{port}/mcp"
367
+
368
+ # Start the server in a dedicated thread with its own event loop
369
+ # so it stays responsive while _flow.run() blocks the caller's loop.
370
+ def _run_server():
371
+ loop = asyncio.new_event_loop()
372
+ asyncio.set_event_loop(loop)
373
+ loop.run_until_complete(
374
+ mcp_server.run_async(transport="streamable-http", host="127.0.0.1", port=port)
375
+ )
376
+
377
+ self._skill_server_thread = threading.Thread(target=_run_server, daemon=True)
378
+ self._skill_server_thread.start()
379
+
380
+ # Wait for server to be ready
381
+ for _ in range(30):
382
+ try:
383
+ async with Client(server_url) as client:
384
+ tools_response = await client.list_tools()
385
+ break
386
+ except Exception:
387
+ await asyncio.sleep(0.1)
388
+ else:
389
+ raise RuntimeError("Skill MCP server failed to start within 3 seconds")
390
+
391
+ # Register skill server tools into PocketFlow's tool registry
392
+ async with Client(server_url) as client:
393
+ tools_response = await client.list_tools()
394
+ for tool in tools_response:
395
+ tool_name = tool.name
396
+ description = tool.description or ""
397
+ tool_info = {
398
+ "name": tool_name,
399
+ "server": server_name,
400
+ "description": description,
401
+ "inputSchema": tool.inputSchema or {},
402
+ }
403
+ self._all_tools.append(tool_info)
404
+ self._tool_to_server[tool_name] = server_name
405
+
406
+ # Store as a normal MCP server entry
407
+ self._mcp_servers[server_name] = MCPServerInfo(
408
+ name=server_name,
409
+ client=None,
410
+ url=server_url,
411
+ tools=[],
412
+ )
413
+
414
+ print(f"[INFO] Skill MCP server started on port {port} with {len(tools_response)} tools")
415
+
251
416
  async def initialize(self) -> None:
252
417
  """Initialize agent and connect to MCP servers"""
253
418
  if not self.config:
@@ -257,9 +422,18 @@ class MCPReactAgent(Agent):
257
422
  self._async_helper = AsyncHelper()
258
423
  self._async_helper.start()
259
424
 
425
+ # Setup skills if configured
426
+ await self._setup_skills()
427
+
260
428
  # Load and connect to MCP servers
261
429
  await self.load_mcp_servers()
262
430
 
431
+ # Start skill MCP server if skills are available
432
+ skill_mcp = self._build_skill_mcp_server()
433
+ if skill_mcp:
434
+ self._skill_mcp_server = skill_mcp
435
+ await self._start_skill_mcp_server(skill_mcp)
436
+
263
437
  def _get_all_tools(self) -> List[Dict[str, Any]]:
264
438
  """Get the list of all available tools from all connected MCP servers."""
265
439
  return self._all_tools
@@ -332,8 +506,9 @@ class MCPReactAgent(Agent):
332
506
 
333
507
  # Initialize shared store with multi-server support
334
508
  # Use existing message_history for multi-turn context
509
+ system_prompt = self.config.system_prompt + self._build_skill_system_prompt_suffix()
335
510
  shared = {
336
- "system_prompt": self.config.system_prompt,
511
+ "system_prompt": system_prompt,
337
512
  "user_query": query,
338
513
  "trajectory": [],
339
514
  "message_history": self._message_history.copy(), # Use existing history
@@ -494,6 +669,16 @@ class MCPReactAgent(Agent):
494
669
  # Reset conversation history
495
670
  self.reset_conversation()
496
671
 
672
+ # Stop skill MCP server (daemon thread exits automatically on process end,
673
+ # but we clear references so GC can reclaim resources)
674
+ self._skill_server_thread = None
675
+ self._skill_mcp_server = None
676
+
677
+ # Clean up skill temp directory
678
+ if self._skill_temp_dir:
679
+ cleanup_temp_directory(self._skill_temp_dir)
680
+ self._skill_temp_dir = None
681
+
497
682
  # Stop async helper
498
683
  if self._async_helper:
499
684
  self._async_helper.stop()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: decodingtrust-agent-sdk
3
- Version: 0.2.4
3
+ Version: 0.2.7
4
4
  Summary: DecodingTrust Agent Platform (DTap) — A controllable and interactive red-teaming platform for AI agents
5
5
  Author-email: DTap Team <zhaorun@uchicago.edu>
6
6
  License: Apache License
@@ -224,6 +224,8 @@ Description-Content-Type: text/markdown
224
224
  License-File: LICENSE
225
225
  Requires-Dist: mcp>=1.0.0
226
226
  Requires-Dist: fastmcp>=2.0.0
227
+ Requires-Dist: uv>=0.5.0
228
+ Requires-Dist: defusedxml>=0.7.1
227
229
  Requires-Dist: pydantic>=2.0
228
230
  Requires-Dist: pydantic-settings>=2.0
229
231
  Requires-Dist: PyYAML>=6.0
@@ -119,8 +119,6 @@ dt_arena/envs/arxiv/docker-compose-hub.yml
119
119
  dt_arena/envs/arxiv/docker-compose.yml
120
120
  dt_arena/envs/atlassian/docker-compose-hub.yml
121
121
  dt_arena/envs/atlassian/docker-compose.yml
122
- dt_arena/envs/atlassian/docker/docker-compose.dev.yml
123
- dt_arena/envs/atlassian/docker/docker-compose.yml
124
122
  dt_arena/envs/bigquery/docker-compose.yml
125
123
  dt_arena/envs/booking/docker-compose.yml
126
124
  dt_arena/envs/calendar/docker-compose-hub.yml
@@ -131,10 +129,7 @@ dt_arena/envs/databricks/docker-compose-hub.yml
131
129
  dt_arena/envs/databricks/docker-compose.yml
132
130
  dt_arena/envs/ecommerce/docker-compose.yml
133
131
  dt_arena/envs/ers/docker-compose.yml
134
- dt_arena/envs/ers/hrms/docker/docker-compose.yml
135
132
  dt_arena/envs/finance/docker-compose.yml
136
- dt_arena/envs/github/docker/docker-compose-hub.yml
137
- dt_arena/envs/github/docker/docker-compose.yml
138
133
  dt_arena/envs/gmail/docker-compose-hub.yml
139
134
  dt_arena/envs/gmail/docker-compose.yml
140
135
  dt_arena/envs/google-form/docker-compose-hub.yml
@@ -168,7 +163,12 @@ dt_arena/envs/travel/docker-compose-hub.yml
168
163
  dt_arena/envs/travel/docker-compose.yml
169
164
  dt_arena/envs/whatsapp/docker-compose-hub.yml
170
165
  dt_arena/envs/whatsapp/docker-compose.yml
166
+ dt_arena/envs/windows/dns_listener.py
171
167
  dt_arena/envs/windows/docker-compose.yml
168
+ dt_arena/envs/windows/exfil_listener.py
169
+ dt_arena/envs/windows/ftp_listener.py
170
+ dt_arena/envs/windows/reset_server.py
171
+ dt_arena/envs/windows/validate.py
172
172
  dt_arena/envs/zoom/docker-compose-hub.yml
173
173
  dt_arena/envs/zoom/docker-compose.yml
174
174
  dt_arena/injection_mcp_server/atlassian/env_injection.py
@@ -304,6 +304,8 @@ dt_arena/utils/bigquery/__init__.py
304
304
  dt_arena/utils/bigquery/helpers.py
305
305
  dt_arena/utils/calendar/__init__.py
306
306
  dt_arena/utils/calendar/helpers.py
307
+ dt_arena/utils/chase/__init__.py
308
+ dt_arena/utils/chase/helpers.py
307
309
  dt_arena/utils/customer_service/__init__.py
308
310
  dt_arena/utils/customer_service/cs_env_client.py
309
311
  dt_arena/utils/customer_service/helpers.py
@@ -338,6 +340,8 @@ dt_arena/utils/paypal/__init__.py
338
340
  dt_arena/utils/paypal/helpers.py
339
341
  dt_arena/utils/research/__init__.py
340
342
  dt_arena/utils/research/helpers.py
343
+ dt_arena/utils/robinhood/__init__.py
344
+ dt_arena/utils/robinhood/helpers.py
341
345
  dt_arena/utils/salesforce/__init__.py
342
346
  dt_arena/utils/salesforce/helpers.py
343
347
  dt_arena/utils/slack/__init__.py
@@ -1,5 +1,7 @@
1
1
  mcp>=1.0.0
2
2
  fastmcp>=2.0.0
3
+ uv>=0.5.0
4
+ defusedxml>=0.7.1
3
5
  pydantic>=2.0
4
6
  pydantic-settings>=2.0
5
7
  PyYAML>=6.0
@@ -297,16 +297,16 @@ environments:
297
297
  windows:
298
298
  docker_compose: "dt_arena/envs/windows/docker-compose.yml"
299
299
  max_instances: 10 # Windows VM is resource-heavy, limit instances
300
- health_timeout: 300 # Windows VM needs ~3-5 minutes to boot
301
- reset_scripts:
302
- windows-mcp: "echo 'loadvm booted' | nc -w60 localhost 7100 > /dev/null 2>&1; sleep 5"
303
- reset_endpoints:
304
- listeners:
305
- url: "http://127.0.0.1:${EXFIL_PORT}/reset-all"
306
- method: DELETE
307
- reset_retries: 2
308
- reset_retry_delay: 15
309
- reset_script_timeout: 120
300
+ health_timeout: 600 # Cold boot from baseline qcow2: ~2-5 min (Windows
301
+ # init + python3 install + reset_server start) with
302
+ # 2-3 min of headroom for slow hosts.
303
+ # OSWorld-style reset: tear down + recreate the container between
304
+ # tasks. The qcow2 is mounted /base:ro and the per-container thin
305
+ # overlay at /storage is discarded on teardown, so every new container
306
+ # starts from a clean baseline. No savevm/loadvm — that mechanism is
307
+ # tied to the original host CPU and doesn't survive moving the qcow2
308
+ # between machines (see dt_arena/envs/windows/README.md).
309
+ disable_reuse: true
310
310
  ports:
311
311
  WEB_MANAGEMENT_PORT:
312
312
  default: 8006
@@ -386,16 +386,16 @@ environments:
386
386
  docker_compose: "dt_arena/envs/macos/docker-compose.yml"
387
387
  vm_profile: "dt_arena/envs/macos/vm.yaml" # ADL backend uses QemuVM
388
388
  max_instances: 1
389
- health_timeout: 300 # macOS VM needs ~3-5 minutes for first boot; loadvm ~30s
390
- reset_endpoints:
391
- api:
392
- url: "http://127.0.0.1:${MCP_SERVICE_PORT}/reset"
393
- method: POST
394
- listeners:
395
- url: "http://127.0.0.1:${EXFIL_PORT}/reset-all"
396
- method: DELETE
397
- reset_retries: 2
398
- reset_retry_delay: 15
389
+ health_timeout: 600 # Cold boot from baseline qcow2: 2-4 min (MacOS-MCP
390
+ # clone + pip install + macOS GUI ready + SSH up) with
391
+ # 2-3 min of headroom for slow hosts.
392
+ # OSWorld-style reset: tear down + recreate the container between
393
+ # tasks. The qcow2 is mounted /base:ro and the per-container thin
394
+ # overlay at /storage is discarded on teardown, so every new container
395
+ # starts from a clean baseline. No savevm/loadvm — that mechanism is
396
+ # tied to the original host CPU and doesn't survive moving the qcow2
397
+ # between machines (see dt_arena/envs/macos/README.md).
398
+ disable_reuse: true
399
399
  ports:
400
400
  WEB_MANAGEMENT_PORT:
401
401
  default: 8046
@@ -566,3 +566,107 @@ environments:
566
566
  BIGQUERY_GRPC_PORT:
567
567
  default: 9060
568
568
  container_port: 9060
569
+
570
+ chase:
571
+ docker_compose: "dt_arena/envs/chase/docker-compose.yml"
572
+ reset_endpoints:
573
+ api:
574
+ url: "http://127.0.0.1:${CHASE_API_PORT}/admin/reset"
575
+ method: POST
576
+ ports:
577
+ CHASE_PG_PORT:
578
+ default: 5468
579
+ container_port: 5468
580
+ CHASE_API_PORT:
581
+ default: 8068
582
+ container_port: 8068
583
+ CHASE_UI_PORT:
584
+ default: 8069
585
+ container_port: 8069
586
+
587
+ robinhood:
588
+ docker_compose: "dt_arena/envs/robinhood/docker-compose.yml"
589
+ reset_endpoints:
590
+ api:
591
+ url: "http://127.0.0.1:${ROBINHOOD_API_PORT}/admin/reset"
592
+ method: POST
593
+ ports:
594
+ ROBINHOOD_PG_PORT:
595
+ default: 5470
596
+ container_port: 5470
597
+ ROBINHOOD_API_PORT:
598
+ default: 8070
599
+ container_port: 8070
600
+ ROBINHOOD_UI_PORT:
601
+ default: 8071
602
+ container_port: 8071
603
+
604
+ booking:
605
+ docker_compose: "dt_arena/envs/booking/docker-compose.yml"
606
+ reset_endpoints:
607
+ api:
608
+ url: "http://127.0.0.1:${BOOKING_API_PORT}/admin/reset"
609
+ method: POST
610
+ ports:
611
+ BOOKING_PG_PORT:
612
+ default: 5479
613
+ container_port: 5479
614
+ BOOKING_API_PORT:
615
+ default: 8059
616
+ container_port: 8059
617
+
618
+ doordash:
619
+ docker_compose: "dt_arena/envs/doordash/docker-compose.yml"
620
+ reset_endpoints:
621
+ api:
622
+ url: "http://127.0.0.1:${DOORDASH_API_PORT}/admin/reset"
623
+ method: POST
624
+ ports:
625
+ DOORDASH_PG_PORT:
626
+ default: 5482
627
+ container_port: 5482
628
+ DOORDASH_API_PORT:
629
+ default: 8062
630
+ container_port: 8062
631
+
632
+ expedia:
633
+ docker_compose: "dt_arena/envs/expedia/docker-compose.yml"
634
+ reset_endpoints:
635
+ api:
636
+ url: "http://127.0.0.1:${EXPEDIA_API_PORT}/admin/reset"
637
+ method: POST
638
+ ports:
639
+ EXPEDIA_PG_PORT:
640
+ default: 5478
641
+ container_port: 5478
642
+ EXPEDIA_API_PORT:
643
+ default: 8058
644
+ container_port: 8058
645
+
646
+ southwest:
647
+ docker_compose: "dt_arena/envs/southwest/docker-compose.yml"
648
+ reset_endpoints:
649
+ api:
650
+ url: "http://127.0.0.1:${SOUTHWEST_API_PORT}/admin/reset"
651
+ method: POST
652
+ ports:
653
+ SOUTHWEST_PG_PORT:
654
+ default: 5475
655
+ container_port: 5475
656
+ SOUTHWEST_API_PORT:
657
+ default: 8055
658
+ container_port: 8055
659
+
660
+ united:
661
+ docker_compose: "dt_arena/envs/united/docker-compose.yml"
662
+ reset_endpoints:
663
+ api:
664
+ url: "http://127.0.0.1:${UNITED_API_PORT}/admin/reset"
665
+ method: POST
666
+ ports:
667
+ UNITED_PG_PORT:
668
+ default: 5476
669
+ container_port: 5476
670
+ UNITED_API_PORT:
671
+ default: 8056
672
+ container_port: 8056
@@ -103,6 +103,40 @@ servers:
103
103
  transport: http
104
104
  command: ["python3", "env_injection.py"]
105
105
 
106
+ # Chase Environment Injection MCP Server (red-teaming)
107
+ - name: chase-injection
108
+ target_environment: chase
109
+ description: Chase environment injection MCP server for red-teaming (inject Zelle requests/contacts, transactions, statements)
110
+ path: chase/env_injection.py
111
+ enabled: true
112
+ env:
113
+ CHASE_ENV_INJECTION_MCP_HOST: "localhost"
114
+ CHASE_ENV_INJECTION_MCP_PORT: "10318"
115
+ CHASE_PG_HOST: "127.0.0.1"
116
+ CHASE_PG_PORT: "${CHASE_PG_PORT}"
117
+ CHASE_PG_DB: "chase_sandbox"
118
+ CHASE_PG_USER: "sandbox"
119
+ CHASE_PG_PASSWORD: "sandbox"
120
+ transport: http
121
+ command: ["python3", "env_injection.py"]
122
+
123
+ # Robinhood Environment Injection MCP Server (red-teaming)
124
+ - name: robinhood-injection
125
+ target_environment: robinhood
126
+ description: Robinhood environment injection MCP server for red-teaming (inject orders, positions, watchlists, notifications)
127
+ path: robinhood/env_injection.py
128
+ enabled: true
129
+ env:
130
+ ROBINHOOD_ENV_INJECTION_MCP_HOST: "localhost"
131
+ ROBINHOOD_ENV_INJECTION_MCP_PORT: "10317"
132
+ ROBINHOOD_PG_HOST: "127.0.0.1"
133
+ ROBINHOOD_PG_PORT: "${ROBINHOOD_PG_PORT}"
134
+ ROBINHOOD_PG_DB: "robinhood_sandbox"
135
+ ROBINHOOD_PG_USER: "sandbox"
136
+ ROBINHOOD_PG_PASSWORD: "sandbox"
137
+ transport: http
138
+ command: ["python3", "env_injection.py"]
139
+
106
140
  # Gmail Environment Injection MCP Server (red-teaming)
107
141
  - name: gmail-injection
108
142
  target_environment: gmail
@@ -1,6 +1,6 @@
1
1
  services:
2
2
  shopping:
3
- image: decodingtrustagent/e-commerce:v1
3
+ image: decodingtrustagent/e-commerce:v1-slim
4
4
  restart: unless-stopped
5
5
  ports:
6
6
  - "${ECOMMERCE_UI_PORT:-7770}:80"
@@ -15,8 +15,6 @@ services:
15
15
  - JUDGE_MODEL=${JUDGE_MODEL:-gpt-5.1-2025-11-13}
16
16
  ports:
17
17
  - "${HOSPITAL_PORT:-12001}:12001"
18
- volumes:
19
- - ./data:/app/data:ro
20
18
  healthcheck:
21
19
  test: ["CMD", "curl", "-f", "http://localhost:12001/"]
22
20
  interval: 10s