europacore 0.1.0__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 (275) hide show
  1. europacore-0.1.0/LICENSE +21 -0
  2. europacore-0.1.0/PKG-INFO +805 -0
  3. europacore-0.1.0/README.md +742 -0
  4. europacore-0.1.0/pyproject.toml +119 -0
  5. europacore-0.1.0/src/europacore/__init__.py +13 -0
  6. europacore-0.1.0/src/europacore/_deprecation.py +61 -0
  7. europacore-0.1.0/src/europacore/_extras.py +26 -0
  8. europacore-0.1.0/src/europacore/agents/Agent.py +53 -0
  9. europacore-0.1.0/src/europacore/agents/AgentHarness.py +1116 -0
  10. europacore-0.1.0/src/europacore/agents/Callback.py +8 -0
  11. europacore-0.1.0/src/europacore/agents/HarnessCheckpointer.py +305 -0
  12. europacore-0.1.0/src/europacore/agents/HarnessJournal.py +438 -0
  13. europacore-0.1.0/src/europacore/agents/MapReduceAgent.py +487 -0
  14. europacore-0.1.0/src/europacore/agents/SingleShotAgent.py +85 -0
  15. europacore-0.1.0/src/europacore/agents/ToolAgent.py +228 -0
  16. europacore-0.1.0/src/europacore/agents/__init__.py +82 -0
  17. europacore-0.1.0/src/europacore/agents/context_fragments.py +178 -0
  18. europacore-0.1.0/src/europacore/agents/failure_taxonomy.py +156 -0
  19. europacore-0.1.0/src/europacore/agents/git_state.py +50 -0
  20. europacore-0.1.0/src/europacore/agents/guardrails/__init__.py +65 -0
  21. europacore-0.1.0/src/europacore/agents/guardrails/built_in.py +389 -0
  22. europacore-0.1.0/src/europacore/agents/guardrails/chain.py +150 -0
  23. europacore-0.1.0/src/europacore/agents/guardrails/credentials.py +100 -0
  24. europacore-0.1.0/src/europacore/agents/guardrails/exec_policy.py +434 -0
  25. europacore-0.1.0/src/europacore/agents/guardrails/exec_runner_flags.py +264 -0
  26. europacore-0.1.0/src/europacore/agents/guardrails/extras.py +355 -0
  27. europacore-0.1.0/src/europacore/agents/guardrails/guardian.py +217 -0
  28. europacore-0.1.0/src/europacore/agents/guardrails/hooks.py +135 -0
  29. europacore-0.1.0/src/europacore/agents/guardrails/permission.py +326 -0
  30. europacore-0.1.0/src/europacore/agents/guardrails/policy_escalation.py +58 -0
  31. europacore-0.1.0/src/europacore/agents/guardrails/protocol.py +292 -0
  32. europacore-0.1.0/src/europacore/agents/guardrails/spec_registry.py +209 -0
  33. europacore-0.1.0/src/europacore/agents/guardrails/spend.py +304 -0
  34. europacore-0.1.0/src/europacore/agents/guardrails/stuck_hashing.py +90 -0
  35. europacore-0.1.0/src/europacore/agents/guardrails/subagent_approval.py +96 -0
  36. europacore-0.1.0/src/europacore/agents/harness_accounting.py +250 -0
  37. europacore-0.1.0/src/europacore/agents/harness_apply.py +170 -0
  38. europacore-0.1.0/src/europacore/agents/harness_async.py +86 -0
  39. europacore-0.1.0/src/europacore/agents/harness_budget.py +109 -0
  40. europacore-0.1.0/src/europacore/agents/harness_capabilities.py +58 -0
  41. europacore-0.1.0/src/europacore/agents/harness_checkpoint.py +254 -0
  42. europacore-0.1.0/src/europacore/agents/harness_compaction.py +495 -0
  43. europacore-0.1.0/src/europacore/agents/harness_compaction_checkpoint.py +122 -0
  44. europacore-0.1.0/src/europacore/agents/harness_config.py +448 -0
  45. europacore-0.1.0/src/europacore/agents/harness_context_budget.py +127 -0
  46. europacore-0.1.0/src/europacore/agents/harness_credentials.py +138 -0
  47. europacore-0.1.0/src/europacore/agents/harness_dispatch.py +500 -0
  48. europacore-0.1.0/src/europacore/agents/harness_errors.py +43 -0
  49. europacore-0.1.0/src/europacore/agents/harness_events.py +156 -0
  50. europacore-0.1.0/src/europacore/agents/harness_feature.py +101 -0
  51. europacore-0.1.0/src/europacore/agents/harness_finalize.py +392 -0
  52. europacore-0.1.0/src/europacore/agents/harness_finalize_text.py +109 -0
  53. europacore-0.1.0/src/europacore/agents/harness_fork.py +108 -0
  54. europacore-0.1.0/src/europacore/agents/harness_host.py +128 -0
  55. europacore-0.1.0/src/europacore/agents/harness_journal_liveness.py +151 -0
  56. europacore-0.1.0/src/europacore/agents/harness_journal_memory.py +173 -0
  57. europacore-0.1.0/src/europacore/agents/harness_journal_owner.py +67 -0
  58. europacore-0.1.0/src/europacore/agents/harness_journal_postgres.py +439 -0
  59. europacore-0.1.0/src/europacore/agents/harness_journal_postgres_runs.py +189 -0
  60. europacore-0.1.0/src/europacore/agents/harness_journal_state.py +161 -0
  61. europacore-0.1.0/src/europacore/agents/harness_llm.py +460 -0
  62. europacore-0.1.0/src/europacore/agents/harness_llm_abandoned.py +136 -0
  63. europacore-0.1.0/src/europacore/agents/harness_llm_errors.py +233 -0
  64. europacore-0.1.0/src/europacore/agents/harness_llm_stream.py +177 -0
  65. europacore-0.1.0/src/europacore/agents/harness_loop.py +352 -0
  66. europacore-0.1.0/src/europacore/agents/harness_loop_phases.py +408 -0
  67. europacore-0.1.0/src/europacore/agents/harness_loop_steps.py +435 -0
  68. europacore-0.1.0/src/europacore/agents/harness_mailbox.py +32 -0
  69. europacore-0.1.0/src/europacore/agents/harness_message_keys.py +62 -0
  70. europacore-0.1.0/src/europacore/agents/harness_messages.py +500 -0
  71. europacore-0.1.0/src/europacore/agents/harness_observe.py +188 -0
  72. europacore-0.1.0/src/europacore/agents/harness_pause.py +281 -0
  73. europacore-0.1.0/src/europacore/agents/harness_port.py +76 -0
  74. europacore-0.1.0/src/europacore/agents/harness_recovery.py +183 -0
  75. europacore-0.1.0/src/europacore/agents/harness_recovery_reconcile.py +154 -0
  76. europacore-0.1.0/src/europacore/agents/harness_resume.py +342 -0
  77. europacore-0.1.0/src/europacore/agents/harness_resume_approval.py +148 -0
  78. europacore-0.1.0/src/europacore/agents/harness_resume_subagent.py +303 -0
  79. europacore-0.1.0/src/europacore/agents/harness_run.py +376 -0
  80. europacore-0.1.0/src/europacore/agents/harness_run_state.py +160 -0
  81. europacore-0.1.0/src/europacore/agents/harness_session_metadata.py +246 -0
  82. europacore-0.1.0/src/europacore/agents/harness_sqlite.py +220 -0
  83. europacore-0.1.0/src/europacore/agents/harness_start.py +301 -0
  84. europacore-0.1.0/src/europacore/agents/harness_steering.py +191 -0
  85. europacore-0.1.0/src/europacore/agents/harness_summary.py +126 -0
  86. europacore-0.1.0/src/europacore/agents/harness_token_estimator.py +152 -0
  87. europacore-0.1.0/src/europacore/agents/harness_tool_call.py +329 -0
  88. europacore-0.1.0/src/europacore/agents/harness_tool_events.py +85 -0
  89. europacore-0.1.0/src/europacore/agents/harness_tool_gate.py +313 -0
  90. europacore-0.1.0/src/europacore/agents/harness_tool_messages.py +278 -0
  91. europacore-0.1.0/src/europacore/agents/harness_tool_progress.py +97 -0
  92. europacore-0.1.0/src/europacore/agents/harness_tool_results.py +337 -0
  93. europacore-0.1.0/src/europacore/agents/harness_tool_schema.py +117 -0
  94. europacore-0.1.0/src/europacore/agents/harness_usage.py +266 -0
  95. europacore-0.1.0/src/europacore/agents/options.py +261 -0
  96. europacore-0.1.0/src/europacore/agents/project_context.py +149 -0
  97. europacore-0.1.0/src/europacore/agents/redaction.py +278 -0
  98. europacore-0.1.0/src/europacore/agents/run_lifecycle.py +194 -0
  99. europacore-0.1.0/src/europacore/agents/subagent_runtime.py +175 -0
  100. europacore-0.1.0/src/europacore/agents/telemetry.py +486 -0
  101. europacore-0.1.0/src/europacore/agents/telemetry_otel.py +257 -0
  102. europacore-0.1.0/src/europacore/agents/telemetry_spans.py +63 -0
  103. europacore-0.1.0/src/europacore/agents/tool_arguments.py +93 -0
  104. europacore-0.1.0/src/europacore/agents/tool_effects.py +82 -0
  105. europacore-0.1.0/src/europacore/agents/tool_runtime.py +461 -0
  106. europacore-0.1.0/src/europacore/agents/tools/__init__.py +10 -0
  107. europacore-0.1.0/src/europacore/agents/tools/coding/__init__.py +69 -0
  108. europacore-0.1.0/src/europacore/agents/tools/coding/files.py +242 -0
  109. europacore-0.1.0/src/europacore/agents/tools/coding/sandbox_access.py +89 -0
  110. europacore-0.1.0/src/europacore/agents/tools/coding/search.py +211 -0
  111. europacore-0.1.0/src/europacore/agents/tools/coding/shell.py +209 -0
  112. europacore-0.1.0/src/europacore/agents/tools/coding/text_edits.py +147 -0
  113. europacore-0.1.0/src/europacore/agents/tools/delegation_feature.py +61 -0
  114. europacore-0.1.0/src/europacore/agents/tools/delegation_progress.py +57 -0
  115. europacore-0.1.0/src/europacore/agents/tools/delegation_tools.py +485 -0
  116. europacore-0.1.0/src/europacore/agents/tools/function_tool.py +237 -0
  117. europacore-0.1.0/src/europacore/agents/tools/mcp_tools.py +253 -0
  118. europacore-0.1.0/src/europacore/agents/tools/memory_tools.py +153 -0
  119. europacore-0.1.0/src/europacore/agents/tools/planning_tools.py +256 -0
  120. europacore-0.1.0/src/europacore/agents/tools/sandbox_session.py +81 -0
  121. europacore-0.1.0/src/europacore/agents/tools/sandbox_tools.py +215 -0
  122. europacore-0.1.0/src/europacore/agents/tools/skill_files.py +97 -0
  123. europacore-0.1.0/src/europacore/agents/tools/skill_tools.py +271 -0
  124. europacore-0.1.0/src/europacore/autonomous/__init__.py +9 -0
  125. europacore-0.1.0/src/europacore/autonomous/coordinator.py +103 -0
  126. europacore-0.1.0/src/europacore/autonomous/models.py +268 -0
  127. europacore-0.1.0/src/europacore/autonomous/patch_artifacts.py +244 -0
  128. europacore-0.1.0/src/europacore/autonomous/run_store.py +261 -0
  129. europacore-0.1.0/src/europacore/autonomous/run_store_postgres.py +343 -0
  130. europacore-0.1.0/src/europacore/autonomous/runtime.py +269 -0
  131. europacore-0.1.0/src/europacore/autonomous/temporal.py +191 -0
  132. europacore-0.1.0/src/europacore/autonomous/tools.py +318 -0
  133. europacore-0.1.0/src/europacore/callbacks.py +125 -0
  134. europacore-0.1.0/src/europacore/coding/__init__.py +40 -0
  135. europacore-0.1.0/src/europacore/coding/evals.py +210 -0
  136. europacore-0.1.0/src/europacore/coding/harness.py +135 -0
  137. europacore-0.1.0/src/europacore/coding/merge_tools.py +222 -0
  138. europacore-0.1.0/src/europacore/coding/policy.py +62 -0
  139. europacore-0.1.0/src/europacore/coding/prompt.py +54 -0
  140. europacore-0.1.0/src/europacore/coding/sandbox_grants.py +84 -0
  141. europacore-0.1.0/src/europacore/coding/server.py +121 -0
  142. europacore-0.1.0/src/europacore/coding/tasks.py +151 -0
  143. europacore-0.1.0/src/europacore/coding/verify.py +91 -0
  144. europacore-0.1.0/src/europacore/config.py +173 -0
  145. europacore-0.1.0/src/europacore/credentials/__init__.py +98 -0
  146. europacore-0.1.0/src/europacore/credentials/context.py +36 -0
  147. europacore-0.1.0/src/europacore/credentials/encryption.py +106 -0
  148. europacore-0.1.0/src/europacore/credentials/models.py +208 -0
  149. europacore-0.1.0/src/europacore/credentials/oauth.py +172 -0
  150. europacore-0.1.0/src/europacore/credentials/page.py +44 -0
  151. europacore-0.1.0/src/europacore/credentials/postgres.py +151 -0
  152. europacore-0.1.0/src/europacore/credentials/providers.py +182 -0
  153. europacore-0.1.0/src/europacore/credentials/service.py +361 -0
  154. europacore-0.1.0/src/europacore/credentials/store.py +90 -0
  155. europacore-0.1.0/src/europacore/evaluation.py +301 -0
  156. europacore-0.1.0/src/europacore/llm/LLM.py +153 -0
  157. europacore-0.1.0/src/europacore/llm/PromptRegistry.py +421 -0
  158. europacore-0.1.0/src/europacore/llm/TokenChecker.py +126 -0
  159. europacore-0.1.0/src/europacore/llm/__init__.py +35 -0
  160. europacore-0.1.0/src/europacore/llm/bedrock/BedrockClaudeModel.py +489 -0
  161. europacore-0.1.0/src/europacore/llm/bedrock/BedrockEmbeddingModel.py +431 -0
  162. europacore-0.1.0/src/europacore/llm/bedrock/BedrockOpenAIModel.py +271 -0
  163. europacore-0.1.0/src/europacore/llm/bedrock/__init__.py +18 -0
  164. europacore-0.1.0/src/europacore/llm/bedrock/bedrock_cancellable.py +73 -0
  165. europacore-0.1.0/src/europacore/llm/bedrock/bedrock_config.py +329 -0
  166. europacore-0.1.0/src/europacore/llm/bedrock/bedrock_converse_config.py +239 -0
  167. europacore-0.1.0/src/europacore/llm/bedrock/bedrock_embedding_limits.py +105 -0
  168. europacore-0.1.0/src/europacore/llm/bedrock/bedrock_embedding_specs.py +74 -0
  169. europacore-0.1.0/src/europacore/llm/bedrock/bedrock_rate_limit.py +112 -0
  170. europacore-0.1.0/src/europacore/llm/bedrock/bedrock_request.py +396 -0
  171. europacore-0.1.0/src/europacore/llm/bedrock/bedrock_response.py +423 -0
  172. europacore-0.1.0/src/europacore/llm/bedrock/bedrock_types.py +116 -0
  173. europacore-0.1.0/src/europacore/llm/bedrock/boto_config.py +63 -0
  174. europacore-0.1.0/src/europacore/llm/bedrock/error_codes.py +67 -0
  175. europacore-0.1.0/src/europacore/llm/bedrock/provider_spec.py +30 -0
  176. europacore-0.1.0/src/europacore/llm/cancel.py +153 -0
  177. europacore-0.1.0/src/europacore/llm/chat_types.py +170 -0
  178. europacore-0.1.0/src/europacore/llm/contracts.py +86 -0
  179. europacore-0.1.0/src/europacore/llm/embedding_utils.py +48 -0
  180. europacore-0.1.0/src/europacore/llm/fallback.py +254 -0
  181. europacore-0.1.0/src/europacore/llm/hooks.py +73 -0
  182. europacore-0.1.0/src/europacore/llm/model_catalog.py +148 -0
  183. europacore-0.1.0/src/europacore/llm/model_ids.py +92 -0
  184. europacore-0.1.0/src/europacore/llm/model_pricing.py +155 -0
  185. europacore-0.1.0/src/europacore/llm/model_specs.py +230 -0
  186. europacore-0.1.0/src/europacore/llm/openai/OpenAIEmbeddingModel.py +201 -0
  187. europacore-0.1.0/src/europacore/llm/openai/OpenAIModel.py +499 -0
  188. europacore-0.1.0/src/europacore/llm/openai/OpenAITranscriptionModel.py +52 -0
  189. europacore-0.1.0/src/europacore/llm/openai/__init__.py +54 -0
  190. europacore-0.1.0/src/europacore/llm/openai/openai_auth.py +142 -0
  191. europacore-0.1.0/src/europacore/llm/openai/openai_cancellable.py +65 -0
  192. europacore-0.1.0/src/europacore/llm/openai/openai_request.py +276 -0
  193. europacore-0.1.0/src/europacore/llm/openai/openai_response.py +190 -0
  194. europacore-0.1.0/src/europacore/llm/openai/openai_stream.py +207 -0
  195. europacore-0.1.0/src/europacore/llm/openai/openai_transport.py +221 -0
  196. europacore-0.1.0/src/europacore/llm/openai/openai_types.py +53 -0
  197. europacore-0.1.0/src/europacore/llm/openai/provider_spec.py +15 -0
  198. europacore-0.1.0/src/europacore/llm/provider_errors.py +53 -0
  199. europacore-0.1.0/src/europacore/llm/provider_specs.py +182 -0
  200. europacore-0.1.0/src/europacore/llm/registry.py +112 -0
  201. europacore-0.1.0/src/europacore/llm/thinking.py +28 -0
  202. europacore-0.1.0/src/europacore/llm/wrapped.py +71 -0
  203. europacore-0.1.0/src/europacore/memory/__init__.py +146 -0
  204. europacore-0.1.0/src/europacore/memory/postgres.py +90 -0
  205. europacore-0.1.0/src/europacore/persistence/__init__.py +38 -0
  206. europacore-0.1.0/src/europacore/persistence/postgres.py +81 -0
  207. europacore-0.1.0/src/europacore/persistence/retention.py +149 -0
  208. europacore-0.1.0/src/europacore/persistence/schema.sql +341 -0
  209. europacore-0.1.0/src/europacore/persistence/sqlite.py +121 -0
  210. europacore-0.1.0/src/europacore/prompts/templates/guardian_approval/v1.0.0/guardian_approval.yaml +43 -0
  211. europacore-0.1.0/src/europacore/prompts/templates/guardian_approval/v1.1.0/guardian_approval.yaml +52 -0
  212. europacore-0.1.0/src/europacore/prompts/templates/guardian_approval/v1.2.0/guardian_approval.yaml +57 -0
  213. europacore-0.1.0/src/europacore/py.typed +0 -0
  214. europacore-0.1.0/src/europacore/sandbox/LambdaMicroVmProvider.py +457 -0
  215. europacore-0.1.0/src/europacore/sandbox/LazySandbox.py +281 -0
  216. europacore-0.1.0/src/europacore/sandbox/LocalSubprocessSandboxProvider.py +324 -0
  217. europacore-0.1.0/src/europacore/sandbox/SandboxProvider.py +322 -0
  218. europacore-0.1.0/src/europacore/sandbox/__init__.py +23 -0
  219. europacore-0.1.0/src/europacore/sandbox/browser_ops.py +250 -0
  220. europacore-0.1.0/src/europacore/sandbox/bwrap_argv.py +42 -0
  221. europacore-0.1.0/src/europacore/sandbox/confinement.py +222 -0
  222. europacore-0.1.0/src/europacore/sandbox/env_ops.py +127 -0
  223. europacore-0.1.0/src/europacore/sandbox/factory.py +64 -0
  224. europacore-0.1.0/src/europacore/sandbox/local_workspace.py +141 -0
  225. europacore-0.1.0/src/europacore/sandbox/microvm_image/Dockerfile +44 -0
  226. europacore-0.1.0/src/europacore/sandbox/microvm_image/agent.py +418 -0
  227. europacore-0.1.0/src/europacore/sandbox/microvm_image/svc.sh +93 -0
  228. europacore-0.1.0/src/europacore/sandbox/repo_ops.py +317 -0
  229. europacore-0.1.0/src/europacore/sandbox/seatbelt_profile.py +88 -0
  230. europacore-0.1.0/src/europacore/sandbox/service_ops.py +448 -0
  231. europacore-0.1.0/src/europacore/server/__init__.py +59 -0
  232. europacore-0.1.0/src/europacore/server/app.py +208 -0
  233. europacore-0.1.0/src/europacore/server/auth.py +100 -0
  234. europacore-0.1.0/src/europacore/server/broker.py +196 -0
  235. europacore-0.1.0/src/europacore/server/cli.py +125 -0
  236. europacore-0.1.0/src/europacore/server/context.py +73 -0
  237. europacore-0.1.0/src/europacore/server/envelope.py +142 -0
  238. europacore-0.1.0/src/europacore/server/errors.py +97 -0
  239. europacore-0.1.0/src/europacore/server/models.py +391 -0
  240. europacore-0.1.0/src/europacore/server/persistence.py +76 -0
  241. europacore-0.1.0/src/europacore/server/registry.py +229 -0
  242. europacore-0.1.0/src/europacore/server/routes/__init__.py +1 -0
  243. europacore-0.1.0/src/europacore/server/routes/credentials.py +131 -0
  244. europacore-0.1.0/src/europacore/server/routes/deps.py +18 -0
  245. europacore-0.1.0/src/europacore/server/routes/events.py +129 -0
  246. europacore-0.1.0/src/europacore/server/routes/info.py +65 -0
  247. europacore-0.1.0/src/europacore/server/routes/runs.py +98 -0
  248. europacore-0.1.0/src/europacore/server/routes/sessions.py +210 -0
  249. europacore-0.1.0/src/europacore/server/routes/workspaces.py +128 -0
  250. europacore-0.1.0/src/europacore/server/routes/ws.py +136 -0
  251. europacore-0.1.0/src/europacore/server/run_driver.py +172 -0
  252. europacore-0.1.0/src/europacore/server/run_inputs.py +50 -0
  253. europacore-0.1.0/src/europacore/server/runs.py +395 -0
  254. europacore-0.1.0/src/europacore/server/serve.py +94 -0
  255. europacore-0.1.0/src/europacore/server/sessions.py +195 -0
  256. europacore-0.1.0/src/europacore/server/sessions_postgres.py +201 -0
  257. europacore-0.1.0/src/europacore/server/sessions_sqlite.py +176 -0
  258. europacore-0.1.0/src/europacore/server/transcript.py +169 -0
  259. europacore-0.1.0/src/europacore/server/workspace_setup.py +90 -0
  260. europacore-0.1.0/src/europacore/server/workspaces.py +219 -0
  261. europacore-0.1.0/src/europacore/stores/__init__.py +1 -0
  262. europacore-0.1.0/src/europacore/stores/image_spool.py +150 -0
  263. europacore-0.1.0/src/europacore/stores/tool_result_spool.py +97 -0
  264. europacore-0.1.0/src/europacore/testing.py +354 -0
  265. europacore-0.1.0/src/europacore/types.py +40 -0
  266. europacore-0.1.0/src/europacore/utils/__init__.py +0 -0
  267. europacore-0.1.0/src/europacore/utils/agent_utils.py +155 -0
  268. europacore-0.1.0/src/europacore/utils/clock.py +68 -0
  269. europacore-0.1.0/src/europacore/utils/env.py +63 -0
  270. europacore-0.1.0/src/europacore/utils/string_utils.py +13 -0
  271. europacore-0.1.0/src/europacore/utils/text_chunking.py +300 -0
  272. europacore-0.1.0/src/europacore/workspace/__init__.py +44 -0
  273. europacore-0.1.0/src/europacore/workspace/git_status.py +190 -0
  274. europacore-0.1.0/src/europacore/workspace/worktree_config.py +105 -0
  275. europacore-0.1.0/src/europacore/workspace/worktrees.py +318 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Mark Moloney
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.