powermem 0.1.0__py3-none-any.whl

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 (123) hide show
  1. powermem/__init__.py +103 -0
  2. powermem/agent/__init__.py +35 -0
  3. powermem/agent/abstract/__init__.py +22 -0
  4. powermem/agent/abstract/collaboration.py +259 -0
  5. powermem/agent/abstract/context.py +187 -0
  6. powermem/agent/abstract/manager.py +232 -0
  7. powermem/agent/abstract/permission.py +217 -0
  8. powermem/agent/abstract/privacy.py +267 -0
  9. powermem/agent/abstract/scope.py +199 -0
  10. powermem/agent/agent.py +791 -0
  11. powermem/agent/components/__init__.py +18 -0
  12. powermem/agent/components/collaboration_coordinator.py +645 -0
  13. powermem/agent/components/permission_controller.py +586 -0
  14. powermem/agent/components/privacy_protector.py +767 -0
  15. powermem/agent/components/scope_controller.py +685 -0
  16. powermem/agent/factories/__init__.py +16 -0
  17. powermem/agent/factories/agent_factory.py +266 -0
  18. powermem/agent/factories/config_factory.py +308 -0
  19. powermem/agent/factories/memory_factory.py +229 -0
  20. powermem/agent/implementations/__init__.py +16 -0
  21. powermem/agent/implementations/hybrid.py +728 -0
  22. powermem/agent/implementations/multi_agent.py +1040 -0
  23. powermem/agent/implementations/multi_user.py +1020 -0
  24. powermem/agent/types.py +53 -0
  25. powermem/agent/wrappers/__init__.py +14 -0
  26. powermem/agent/wrappers/agent_memory_wrapper.py +427 -0
  27. powermem/agent/wrappers/compatibility_wrapper.py +520 -0
  28. powermem/config_loader.py +318 -0
  29. powermem/configs.py +249 -0
  30. powermem/core/__init__.py +19 -0
  31. powermem/core/async_memory.py +1493 -0
  32. powermem/core/audit.py +258 -0
  33. powermem/core/base.py +165 -0
  34. powermem/core/memory.py +1567 -0
  35. powermem/core/setup.py +162 -0
  36. powermem/core/telemetry.py +215 -0
  37. powermem/integrations/__init__.py +17 -0
  38. powermem/integrations/embeddings/__init__.py +13 -0
  39. powermem/integrations/embeddings/aws_bedrock.py +100 -0
  40. powermem/integrations/embeddings/azure_openai.py +55 -0
  41. powermem/integrations/embeddings/base.py +31 -0
  42. powermem/integrations/embeddings/config/base.py +132 -0
  43. powermem/integrations/embeddings/configs.py +31 -0
  44. powermem/integrations/embeddings/factory.py +48 -0
  45. powermem/integrations/embeddings/gemini.py +39 -0
  46. powermem/integrations/embeddings/huggingface.py +41 -0
  47. powermem/integrations/embeddings/langchain.py +35 -0
  48. powermem/integrations/embeddings/lmstudio.py +29 -0
  49. powermem/integrations/embeddings/mock.py +11 -0
  50. powermem/integrations/embeddings/ollama.py +53 -0
  51. powermem/integrations/embeddings/openai.py +49 -0
  52. powermem/integrations/embeddings/qwen.py +102 -0
  53. powermem/integrations/embeddings/together.py +31 -0
  54. powermem/integrations/embeddings/vertexai.py +54 -0
  55. powermem/integrations/llm/__init__.py +18 -0
  56. powermem/integrations/llm/anthropic.py +87 -0
  57. powermem/integrations/llm/base.py +132 -0
  58. powermem/integrations/llm/config/anthropic.py +56 -0
  59. powermem/integrations/llm/config/azure.py +56 -0
  60. powermem/integrations/llm/config/base.py +62 -0
  61. powermem/integrations/llm/config/deepseek.py +56 -0
  62. powermem/integrations/llm/config/ollama.py +56 -0
  63. powermem/integrations/llm/config/openai.py +79 -0
  64. powermem/integrations/llm/config/qwen.py +68 -0
  65. powermem/integrations/llm/config/qwen_asr.py +46 -0
  66. powermem/integrations/llm/config/vllm.py +56 -0
  67. powermem/integrations/llm/configs.py +26 -0
  68. powermem/integrations/llm/deepseek.py +106 -0
  69. powermem/integrations/llm/factory.py +118 -0
  70. powermem/integrations/llm/gemini.py +201 -0
  71. powermem/integrations/llm/langchain.py +65 -0
  72. powermem/integrations/llm/ollama.py +106 -0
  73. powermem/integrations/llm/openai.py +166 -0
  74. powermem/integrations/llm/openai_structured.py +80 -0
  75. powermem/integrations/llm/qwen.py +207 -0
  76. powermem/integrations/llm/qwen_asr.py +171 -0
  77. powermem/integrations/llm/vllm.py +106 -0
  78. powermem/integrations/rerank/__init__.py +20 -0
  79. powermem/integrations/rerank/base.py +43 -0
  80. powermem/integrations/rerank/config/__init__.py +7 -0
  81. powermem/integrations/rerank/config/base.py +27 -0
  82. powermem/integrations/rerank/configs.py +23 -0
  83. powermem/integrations/rerank/factory.py +68 -0
  84. powermem/integrations/rerank/qwen.py +159 -0
  85. powermem/intelligence/__init__.py +17 -0
  86. powermem/intelligence/ebbinghaus_algorithm.py +354 -0
  87. powermem/intelligence/importance_evaluator.py +361 -0
  88. powermem/intelligence/intelligent_memory_manager.py +284 -0
  89. powermem/intelligence/manager.py +148 -0
  90. powermem/intelligence/plugin.py +229 -0
  91. powermem/prompts/__init__.py +29 -0
  92. powermem/prompts/graph/graph_prompts.py +217 -0
  93. powermem/prompts/graph/graph_tools_prompts.py +469 -0
  94. powermem/prompts/importance_evaluation.py +246 -0
  95. powermem/prompts/intelligent_memory_prompts.py +163 -0
  96. powermem/prompts/templates.py +193 -0
  97. powermem/storage/__init__.py +14 -0
  98. powermem/storage/adapter.py +896 -0
  99. powermem/storage/base.py +109 -0
  100. powermem/storage/config/base.py +13 -0
  101. powermem/storage/config/oceanbase.py +58 -0
  102. powermem/storage/config/pgvector.py +52 -0
  103. powermem/storage/config/sqlite.py +27 -0
  104. powermem/storage/configs.py +159 -0
  105. powermem/storage/factory.py +59 -0
  106. powermem/storage/migration_manager.py +438 -0
  107. powermem/storage/oceanbase/__init__.py +8 -0
  108. powermem/storage/oceanbase/constants.py +162 -0
  109. powermem/storage/oceanbase/oceanbase.py +1384 -0
  110. powermem/storage/oceanbase/oceanbase_graph.py +1441 -0
  111. powermem/storage/pgvector/__init__.py +7 -0
  112. powermem/storage/pgvector/pgvector.py +420 -0
  113. powermem/storage/sqlite/__init__.py +0 -0
  114. powermem/storage/sqlite/sqlite.py +218 -0
  115. powermem/storage/sqlite/sqlite_vector_store.py +311 -0
  116. powermem/utils/__init__.py +35 -0
  117. powermem/utils/utils.py +605 -0
  118. powermem/version.py +23 -0
  119. powermem-0.1.0.dist-info/METADATA +187 -0
  120. powermem-0.1.0.dist-info/RECORD +123 -0
  121. powermem-0.1.0.dist-info/WHEEL +5 -0
  122. powermem-0.1.0.dist-info/licenses/LICENSE +206 -0
  123. powermem-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,187 @@
1
+ Metadata-Version: 2.4
2
+ Name: powermem
3
+ Version: 0.1.0
4
+ Summary: Intelligent Memory System - Persistent memory layer for LLM applications
5
+ Author-email: powermem Team <open_oceanbase@oceanbase.com>
6
+ License: Apache-2.0
7
+ Project-URL: Homepage, https://github.com/powermem/powermem
8
+ Project-URL: Documentation, https://powermem.readthedocs.io
9
+ Project-URL: Repository, https://github.com/powermem/powermem.git
10
+ Project-URL: Issues, https://github.com/powermem/powermem/issues
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: Apache Software License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
19
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
+ Requires-Python: >=3.10
21
+ Description-Content-Type: text/markdown
22
+ License-File: LICENSE
23
+ Requires-Dist: pydantic>=2.0.0
24
+ Requires-Dist: httpx>=0.24.0
25
+ Requires-Dist: sqlalchemy>=2.0.0
26
+ Requires-Dist: numpy>=1.21.0
27
+ Requires-Dist: pytz>=2023.3
28
+ Requires-Dist: python-dotenv>=1.0.0
29
+ Requires-Dist: fastapi>=0.100.0
30
+ Requires-Dist: uvicorn>=0.23.0
31
+ Requires-Dist: rank-bm25>=0.2.2
32
+ Requires-Dist: pyobvector<0.3.0,>=0.2.0
33
+ Requires-Dist: jieba>=0.42.1
34
+ Requires-Dist: azure-identity>=1.24.0
35
+ Requires-Dist: psycopg2-binary>=2.9.0
36
+ Requires-Dist: pgvector>=0.2.0
37
+ Requires-Dist: psycopg>=3.2.8
38
+ Requires-Dist: psycopg-pool<4.0.0,>=3.2.6
39
+ Requires-Dist: together>=0.2.10
40
+ Requires-Dist: openai<1.100.0,>=1.90.0
41
+ Requires-Dist: anthropic>=0.7.0
42
+ Requires-Dist: ollama>=0.1.0
43
+ Requires-Dist: vertexai>=0.1.0
44
+ Requires-Dist: google-generativeai>=0.3.0
45
+ Requires-Dist: google-genai>=1.0.0
46
+ Requires-Dist: dashscope>=1.14.0
47
+ Provides-Extra: dev
48
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
49
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
50
+ Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
51
+ Requires-Dist: black>=23.0.0; extra == "dev"
52
+ Requires-Dist: isort>=5.12.0; extra == "dev"
53
+ Requires-Dist: flake8>=6.0.0; extra == "dev"
54
+ Requires-Dist: mypy>=1.0.0; extra == "dev"
55
+ Provides-Extra: test
56
+ Requires-Dist: pytest>=8.2.2; extra == "test"
57
+ Requires-Dist: pytest-mock>=3.14.0; extra == "test"
58
+ Requires-Dist: pytest-asyncio>=0.23.7; extra == "test"
59
+ Provides-Extra: extras
60
+ Requires-Dist: sentence-transformers>=5.0.0; extra == "extras"
61
+ Dynamic: license-file
62
+
63
+ <p align="center">
64
+ <a href="https://github.com/oceanbase/oceanbase">
65
+ <img alt="OceanBase Logo" src="docs/images/oceanbase_Logo.png" width="50%" />
66
+ </a>
67
+ </p>
68
+
69
+ <p align="center">
70
+ <a href="https://pepy.tech/project/powermem">
71
+ <img src="https://img.shields.io/pypi/dm/powermem" alt="PowerMem PyPI - Downloads">
72
+ </a>
73
+ <a href="https://github.com/oceanbase/powermem">
74
+ <img src="https://img.shields.io/github/commit-activity/m/oceanbase/powermem?style=flat-square" alt="GitHub commit activity">
75
+ </a>
76
+ <a href="https://pypi.org/project/powermem" target="blank">
77
+ <img src="https://img.shields.io/pypi/v/powermem?color=%2334D058&label=pypi%20package" alt="Package version">
78
+ </a>
79
+ <a href="https://github.com/oceanbase/powermem/blob/master/LICENSE">
80
+ <img alt="license" src="https://img.shields.io/badge/license-Apache%202.0-green.svg" />
81
+ </a>
82
+ <a href="https://img.shields.io/badge/python%20-3.10.0%2B-blue.svg">
83
+ <img alt="pyversions" src="https://img.shields.io/badge/python%20-3.10.0%2B-blue.svg" />
84
+ </a>
85
+ <a href="https://deepwiki.com/oceanbase/powermem">
86
+ <img alt="Ask DeepWiki" src="https://deepwiki.com/badge.svg" />
87
+ </a>
88
+ <a href="https://discord.com/invite/74cF8vbNEs">
89
+ <img src="https://img.shields.io/badge/Discord-Join%20Discord-5865F2?logo=discord&logoColor=white" alt="Join Discord">
90
+ </a>
91
+ </p>
92
+
93
+ [English](README.md) | [中文](README_CN.md) | [日本語](README_JP.md)
94
+
95
+ ## ✨ Highlights
96
+
97
+ <div align="center">
98
+
99
+ <img src="docs/images/benchmark_metrics_en.svg" alt="PowerMem LOCOMO Benchmark Metrics" width="900"/>
100
+
101
+ </div>
102
+
103
+ - 🎯 **More Accurate**: **[48.77% Accuracy Improvement]** More accurate than full-context in the LOCOMO benchmark (78.70% VS 52.9%)
104
+ - ⚡ **Faster**: **[91.83% Faster Response]** Significantly reduced p95 latency for retrieval compared to full-context (1.44s VS 17.12s)
105
+ - 💰 **More Economical**: **[96.53% Token Reduction]** Significantly reduced costs compared to full-context without sacrificing performance (0.9k VS 26k)
106
+
107
+ # 🧠 PowerMem - Intelligent Memory System
108
+
109
+ In AI application development, enabling large language models to persistently "remember" historical conversations, user preferences, and contextual information is a core challenge. PowerMem combines a hybrid storage architecture of vector retrieval, full-text search, and graph databases, and introduces the Ebbinghaus forgetting curve theory from cognitive science to build a powerful memory infrastructure for AI applications. The system also provides comprehensive multi-agent support capabilities, including agent memory isolation, cross-agent collaboration and sharing, fine-grained permission control, and privacy protection mechanisms, enabling multiple AI agents to achieve efficient collaboration while maintaining independent memory spaces.
110
+
111
+ ## 🚀 Core Features
112
+
113
+ ### 👨‍💻 Developer Friendly
114
+ - 🔌 **[Lightweight Integration](docs/examples/scenario_1_basic_usage.md)**: Provides a simple Python SDK, automatically loads configuration from `.env` files, enabling developers to quickly integrate into existing projects
115
+
116
+ ### 🧠 Intelligent Memory Management
117
+ - 🔍 **[Intelligent Memory Extraction](docs/examples/scenario_2_intelligent_memory.md)**: Automatically extracts key facts from conversations through LLM, intelligently detects duplicates, updates conflicting information, and merges related memories to ensure accuracy and consistency of the memory database
118
+ - 📉 **[Ebbinghaus Forgetting Curve](docs/examples/scenario_8_ebbinghaus_forgetting_curve.md)**: Based on the memory forgetting patterns from cognitive science, automatically calculates memory retention rates and implements time-decay weighting, prioritizing recent and relevant memories, allowing AI systems to naturally "forget" outdated information like humans
119
+
120
+ ### 🤖 Multi-Agent Support
121
+ - 🔐 **[Agent Shared/Isolated Memory](docs/examples/scenario_3_multi_agent.md)**: Provides independent memory spaces for each agent, supports cross-agent memory sharing and collaboration, and enables flexible permission management through scope control
122
+
123
+ ### 🎨 Multimodal Support
124
+ - 🖼️ **[Text, Image, and Audio Memory](docs/examples/scenario_7_multimodal.md)**: Automatically converts images and audio to text descriptions for storage, supports retrieval of multimodal mixed content (text + image + audio), enabling AI systems to understand richer contextual information
125
+
126
+ ### 💾 Deeply Optimized Data Storage
127
+ - 📦 **[Sub Stores Support](docs/examples/scenario_6_sub_stores.md)**: Implements data partition management through sub stores, supports automatic query routing, significantly improving query performance and resource utilization for ultra-large-scale data
128
+ - 🔗 **[Hybrid Retrieval](docs/examples/scenario_2_intelligent_memory.md)**: Combines multi-channel recall capabilities of vector retrieval, full-text search, and graph retrieval, builds knowledge graphs through LLM and supports multi-hop graph traversal for precise retrieval of complex memory relationships
129
+
130
+ ## 🚀 Quick Start
131
+
132
+ ### 📥 Installation
133
+
134
+ ```bash
135
+ pip install powermem
136
+ ```
137
+
138
+ ### 💡 Basic Usage
139
+
140
+ **✨ Simplest Way**: Create memory from `.env` file automatically! [Configuration Reference](.env.example)
141
+
142
+ ```python
143
+ from powermem import Memory, auto_config
144
+
145
+ # Load configuration (auto-loads from .env)
146
+ config = auto_config()
147
+ # Create memory instance
148
+ memory = Memory(config=config)
149
+
150
+ # Add memory
151
+ memory.add("User likes coffee", user_id="user123")
152
+
153
+ # Search memories
154
+ memories = memory.search("user preferences", user_id="user123")
155
+ for memory in memories:
156
+ print(f"- {memory.get('memory')}")
157
+ ```
158
+
159
+ For more detailed examples and usage patterns, see the [Getting Started Guide](docs/guides/0001-getting_started.md).
160
+
161
+ ## 🔗 Integrations & Demos
162
+
163
+ - 🔗 **LangChain Integration**: Build medical support chatbot using LangChain + PowerMem + OceanBase, [View Example](examples/langchain/README.md)
164
+ - 🔗 **LangGraph Integration**: Build customer service chatbot using LangGraph + PowerMem + OceanBase, [View Example](examples/langgraph/README.md)
165
+
166
+ ## 📚 Documentation
167
+
168
+ - 📖 **[Getting Started](docs/guides/0001-getting_started.md)**: Installation and quick start guide
169
+ - ⚙️ **[Configuration Guide](docs/guides/0003-configuration.md)**: Complete configuration options
170
+ - 🤖 **[Multi-Agent Guide](docs/guides/0005-multi_agent.md)**: Multi-agent scenarios and examples
171
+ - 🔌 **[Integrations Guide](docs/guides/0009-integrations.md)**: Integrations Guide
172
+ - 📦 **[Sub Stores Guide](docs/guides/0006-sub_stores.md)**: Sub stores usage and examples
173
+ - 📋 **[API Documentation](docs/api/overview.md)**: Complete API reference
174
+ - 🏗️ **[Architecture Guide](docs/architecture/overview.md)**: System architecture and design
175
+ - 📓 **[Examples](docs/examples/overview.md)**: Interactive Jupyter notebooks and use cases
176
+ - 👨‍💻 **[Development Documentation](docs/development/overview.md)**: Developer documentation
177
+
178
+ ## 💬 Support
179
+
180
+ - 🐛 **Issue Reporting**: [GitHub Issues](https://github.com/oceanbase/powermem/issues)
181
+ - 💭 **Discussions**: [GitHub Discussions](https://github.com/oceanbase/powermem/discussions)
182
+
183
+ ---
184
+
185
+ ## 📄 License
186
+
187
+ This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
@@ -0,0 +1,123 @@
1
+ powermem/__init__.py,sha256=j-RPfTiAxM9WukagVNi9I9WzAewEyROMryWU4JVwGyI,2744
2
+ powermem/config_loader.py,sha256=Kx34u1tvUasRSwwviCVZz4nMb6vMolMNDPkNzfFXJXE,12389
3
+ powermem/configs.py,sha256=e57LwMjGfGuMFaoF3i1dvwnS878F0wagXXKVQJ5a24w,7838
4
+ powermem/version.py,sha256=RBZH4qt-HI444rLVudlCDXEo-tvAA4Untp30B-5v9ZM,490
5
+ powermem/agent/__init__.py,sha256=45oLKhChItMWJ1eedWkJ0-VkwZksQGhP_-cA-UejoGw,1068
6
+ powermem/agent/agent.py,sha256=9v6V_s927mRaCpliMwUAsJVIKT8X_8Wmy9BBFI7xhNI,30030
7
+ powermem/agent/types.py,sha256=8_WyPOfiaTFuFh9BbIvsMk5csQwDSdyQuLDyQh7XLmE,1127
8
+ powermem/agent/abstract/__init__.py,sha256=VFbLcJhiafvZ1pquL-v9h_4iW_eklOyyXlPnCm-yJmQ,666
9
+ powermem/agent/abstract/collaboration.py,sha256=TzExxTsOBj4O61KQiYAymy6UObgordiib-4O_SG1LYg,6708
10
+ powermem/agent/abstract/context.py,sha256=ESgBjKrr1NKxf3mUkyunFeIW2PC-QylTyCqZvFBJYLA,4778
11
+ powermem/agent/abstract/manager.py,sha256=Vr7A9AMZmDIzWXnVEM2bPDy2Rhd_TmVRERJ8znwzQb8,6131
12
+ powermem/agent/abstract/permission.py,sha256=OoIIZw0lpFcYieQpa_hHotvtd8I1AqusjmXURkNMKxE,5728
13
+ powermem/agent/abstract/privacy.py,sha256=cOBnGlUg32BEZAoR3PO50n92oNB9aFQC7qJAzYL5a1A,6423
14
+ powermem/agent/abstract/scope.py,sha256=4tqMnhMXt9uUMM3gVKop-zSdzyJrZ8YbR8xqJrsllTc,4895
15
+ powermem/agent/components/__init__.py,sha256=XLcUUgSjIHKcROff8yKWy0DIfytI-7bsS1zbG9ZpYnQ,539
16
+ powermem/agent/components/collaboration_coordinator.py,sha256=vftrLkcyixja_75G4LjpEOsI2O0xk-F_7He6EB4oS5A,24265
17
+ powermem/agent/components/permission_controller.py,sha256=uyyg0SoMQzPLLvS7PbsbPb2jIkj23oTInjXYOX_P9QA,21377
18
+ powermem/agent/components/privacy_protector.py,sha256=DDeXiDWXDuEtqi4kOvdT36HNAyz2Dy0zsgi6a1h9rlU,26627
19
+ powermem/agent/components/scope_controller.py,sha256=WXxSor8UdESgaD2L9_XOlDikrm0GsKF_AGxH6vdRxRA,26591
20
+ powermem/agent/factories/__init__.py,sha256=PJZObRmBKF_l3k6RGd2Ewq6ft0FfEgrrdmRNFFu20D4,373
21
+ powermem/agent/factories/agent_factory.py,sha256=ri9VBORr0JC5KjMcoWx9JZdZ_VqARGQcO7BkY7N-sFA,8963
22
+ powermem/agent/factories/config_factory.py,sha256=ELtDNFTFiWlkw0YAet1vz4LjI-7bTnb46qtRFcCHkck,10007
23
+ powermem/agent/factories/memory_factory.py,sha256=t69ACgjzN_Sa0EGmyOqgzkRwGVi-Taz_Ng55rybL_G0,7748
24
+ powermem/agent/implementations/__init__.py,sha256=DzYULksVXzcCOXL84RvssGceTvhQtaTXGAHXhxP-TOA,419
25
+ powermem/agent/implementations/hybrid.py,sha256=D85PaLoI52Jce4qhD0zaeupml-9sTaAQXiwoNOzlNe0,29228
26
+ powermem/agent/implementations/multi_agent.py,sha256=8N626l8Kl5c8W8jopg7deIZ4gH_60tNvQ6Wn_0dO_eE,43178
27
+ powermem/agent/implementations/multi_user.py,sha256=F_TOOsdonRMPNJw49_jmi65x_mioOGqHmsh4hxEyyiU,42245
28
+ powermem/agent/wrappers/__init__.py,sha256=r_cqsHyyPnhabkK2N_p-8EKNfNjSxABlKeJ4I12tMzY,373
29
+ powermem/agent/wrappers/agent_memory_wrapper.py,sha256=6z3gvw3wCpwpZ9N2fccPntuiSe_MTXrdZk1xbqrUCBA,13272
30
+ powermem/agent/wrappers/compatibility_wrapper.py,sha256=q-Uofs100zsQb-YSKMFxvgvQ16GvD1RKCR8Vq-M5yyE,15915
31
+ powermem/core/__init__.py,sha256=-8412T1vOTQa-t6VOhZKYSCZ5F13yi3dcWM7mO1rdKk,386
32
+ powermem/core/async_memory.py,sha256=XrXAD1IkXOyM91zPvh6W2F3r1dWMpvMybvEwy8C4hfU,62758
33
+ powermem/core/audit.py,sha256=siXFAL5nk2HXh656ykNmhmUAjGgQ0otoVtnVr4ekg2g,8340
34
+ powermem/core/base.py,sha256=2BoS9w-hbyllTUQ9RdpdvwNSb86lPKgFQsWfc7HWyR0,4484
35
+ powermem/core/memory.py,sha256=pzsVZWI3SFzcZ5y1Dcqs8bzkmi3NdmvBmMwVjA_R3_E,64932
36
+ powermem/core/setup.py,sha256=a7ek2cIbSWWEAYNtx757LZgzmHiNR0LOivb3yi7E0eg,4484
37
+ powermem/core/telemetry.py,sha256=k0lnd5iprjxtz8SzeYI3JsMAUryWkwWo3vmASCziM_Q,6970
38
+ powermem/integrations/__init__.py,sha256=4u3nWMIfEESrIsi6ie_6jDX2s_kMxMF6dHfGH2j2eVU,399
39
+ powermem/integrations/embeddings/__init__.py,sha256=uQGetfXCOiPgCCMA4yGBMoTU7JX5TWeaA9dtSof1tO8,208
40
+ powermem/integrations/embeddings/aws_bedrock.py,sha256=TogXUm8U2MkEg73KdaepAzdt1150gJ6QS7N-nSOQaJY,3544
41
+ powermem/integrations/embeddings/azure_openai.py,sha256=9KvFsiiC568JqzYSov-jTh0kZ7zVWNfgSf1jkUFe0wI,2349
42
+ powermem/integrations/embeddings/base.py,sha256=pHl7OgcoIYucLFuXouSf85JaUdvNrWl3B5Dbe5xfK6Q,989
43
+ powermem/integrations/embeddings/configs.py,sha256=TDXEKdKmiiUA5Gi2DdGFN49LDLWu72UHZL6WaqZq22w,901
44
+ powermem/integrations/embeddings/factory.py,sha256=dEu8cJ_NmGzNV4hbvGK68OAX2v95vZ6IOeCdy1jHAac,2154
45
+ powermem/integrations/embeddings/gemini.py,sha256=morzR4ITmQooFQLC9-9FHZNdPTvgl4H90nd2R_ehHTc,1542
46
+ powermem/integrations/embeddings/huggingface.py,sha256=irrUyjNKj4W5L6RiOkkmLlYWLdjyxCiNE1vDVTLc5Aw,1689
47
+ powermem/integrations/embeddings/langchain.py,sha256=orE5qhI9XYQv26qdBnZUG5O7A9PL37pS-N5vpv2f4pY,1270
48
+ powermem/integrations/embeddings/lmstudio.py,sha256=zJbhdz546fZO_B2zyEkr_H9G8y9-maayC04OYqI5M84,1272
49
+ powermem/integrations/embeddings/mock.py,sha256=A_xcAyd6iZliwdbJEcqZXWN4KYaiPoZOcxAHlW4f-h4,382
50
+ powermem/integrations/embeddings/ollama.py,sha256=HUmtMyktnOJNblyW6YZ4M9M2IY2S3Hzjv6uvPlfwNZQ,2081
51
+ powermem/integrations/embeddings/openai.py,sha256=0R9nOvsuKXmw3dKnP88PPyUFbt4FJscjextBpTos1Q0,1804
52
+ powermem/integrations/embeddings/qwen.py,sha256=WNl7nmMyS1VWGwbMVbw9Q6m7W4q2C_Li49_Wnbbfn6U,4017
53
+ powermem/integrations/embeddings/together.py,sha256=PZjFVP4PDAlJ_kpzFn30BQHk_RnLzja0DYEklGJybLc,1214
54
+ powermem/integrations/embeddings/vertexai.py,sha256=-4ud6qUc0KJALs86F04DyfQOyvevX_-XVkVkbMtxgGo,2317
55
+ powermem/integrations/embeddings/config/base.py,sha256=-q97Ax5ZfABp6G5G7f64WXGQBMP7lrhVibmnqU3kFrI,6082
56
+ powermem/integrations/llm/__init__.py,sha256=zAF_QH8YU1PYvsfoHKv04Vip4cRjpwTbjXgeEtlXKyw,306
57
+ powermem/integrations/llm/anthropic.py,sha256=4JtzttFdjkj7n4vB66ifVAxwWDCpzTfCRkssY37LP9A,3269
58
+ powermem/integrations/llm/base.py,sha256=0JdW2s-VwwWik03nawfVPXDE_yFUxAr-q_GxLIxDj_k,4437
59
+ powermem/integrations/llm/configs.py,sha256=AfHDYFLidpPB5ntUoPlqzel8mhHJZd5s5jQyRmVX2mY,787
60
+ powermem/integrations/llm/deepseek.py,sha256=r7IN3SmCZ3vfWlZooWVzeiWEWpI4p4W9ZID5g6AoJpk,3905
61
+ powermem/integrations/llm/factory.py,sha256=zJsmXruL0FgWd7H3Bu-73wHtLFfFoKyjHXGF9UWIenw,4784
62
+ powermem/integrations/llm/gemini.py,sha256=1caZ9vUOCFsljOgLTcoS2GkWdGoZoVjAIqTXt4pE4zg,7318
63
+ powermem/integrations/llm/langchain.py,sha256=0JgTSufoh7fRt6t_W8OWG3NHK7MfqkrZuU4IHqTiBcQ,2422
64
+ powermem/integrations/llm/ollama.py,sha256=f5UVITue9PXVg8ohOCRixYqMwCvKTmoKnDchWswUfn0,3877
65
+ powermem/integrations/llm/openai.py,sha256=l5AfkmetZWRMsWhTHOihwPvj4qyB_tGTjVue7LkJSCk,6501
66
+ powermem/integrations/llm/openai_structured.py,sha256=YZOPKgMLU-imG4aEeUByT0SFHdtn3RQMBGXQ-tAOlcA,2718
67
+ powermem/integrations/llm/qwen.py,sha256=7OQIh-_1-WbF1cwZDsUrHuTIEV50eqehZRmG5mOR6aA,7413
68
+ powermem/integrations/llm/qwen_asr.py,sha256=I5lFCeCcakrw9L70RtTCk2hKhy4Xv9s1DG57Xky1QLs,5687
69
+ powermem/integrations/llm/vllm.py,sha256=hvKsuiBATgNDxF7PCr1kQbg7PcJjKNFPxlWLNKpKw6o,3869
70
+ powermem/integrations/llm/config/anthropic.py,sha256=IwlR5HDEWxQjitm9hEqsixKv_gzaImCSO1eM5rNJ75I,2042
71
+ powermem/integrations/llm/config/azure.py,sha256=MbtSxfcQhwpMVL-4cyv2hu48eOTSumyKyHnFSse7rOs,2092
72
+ powermem/integrations/llm/config/base.py,sha256=0sUxYw7up-NNitSXxEHzCxNyRVQicnMDikCfpSZWQSs,2843
73
+ powermem/integrations/llm/config/deepseek.py,sha256=XqpO8NK_p3ZMklKGCJiO7MBxbb8AxLOQb-KzZDXWvHU,2029
74
+ powermem/integrations/llm/config/ollama.py,sha256=UBnCSoXpmCiT3iDlDxxa31nRw5onV-sqyq_HMu4AubY,1999
75
+ powermem/integrations/llm/config/openai.py,sha256=LVizYl-muedr4WywaVGXKIeD3HQjDjWtlqF9cLLehiU,3145
76
+ powermem/integrations/llm/config/qwen.py,sha256=VdCFbtrx9BbXV1vhTmnU3TqryEF55nn66UJ8UCs6htU,2638
77
+ powermem/integrations/llm/config/qwen_asr.py,sha256=D8lVxvxxqwGVYDmjLMhJyxL73rZwBXYokTNW568tTFI,1630
78
+ powermem/integrations/llm/config/vllm.py,sha256=pgtkx7dOhsrkvhyor6MZaNFZ3NftiqwCisKURUPBFro,2003
79
+ powermem/integrations/rerank/__init__.py,sha256=cDUPtKRTypSmndkhX2s7DOKWcy4b9PMKnc9uTp3dCf0,386
80
+ powermem/integrations/rerank/base.py,sha256=cqwGYP57tos0gIIuEPvm_S0CNHNUqt8yKiMAso8e-jw,1214
81
+ powermem/integrations/rerank/configs.py,sha256=pY01LWls_bAQGr29eldpphTySXXeocZgN-eslRlOM8c,580
82
+ powermem/integrations/rerank/factory.py,sha256=BQ4r90FrUk2V10UU81M-1zoeSxmlOEu6uAnLIFwBjZM,2031
83
+ powermem/integrations/rerank/qwen.py,sha256=SvfdJzaUNrJlFCWs3-noIB5FzjYLHiWK6MtwXaj0rFw,5481
84
+ powermem/integrations/rerank/config/__init__.py,sha256=Uc7rHSbIpF5vcolRW2kksM7dVYR80o4PqbH6vhWR7A4,104
85
+ powermem/integrations/rerank/config/base.py,sha256=kHQ6jyW-avhEEKNkB5SusAJjHoWiNpGGgrY6FSPdYUs,595
86
+ powermem/intelligence/__init__.py,sha256=jMAvBjGphatAw5lUebenWwx9gqkVuV7GCe3k68D5dtI,458
87
+ powermem/intelligence/ebbinghaus_algorithm.py,sha256=0GVq4g2VtcaGCSJbeuJenoyF_1Dp2iRkFA1Liv0opBk,13029
88
+ powermem/intelligence/importance_evaluator.py,sha256=Yx8cIfOZ_F2RWRoUle3f0mGqh7X91Y8nbSTXPEqKHME,12032
89
+ powermem/intelligence/intelligent_memory_manager.py,sha256=RzOkjEG5Wj8mJMpiEdEcMvbaW31PY6DIJgV_3m2KN3o,10467
90
+ powermem/intelligence/manager.py,sha256=MFByCLgeIo0I0YnPrNhREpftT-W6ikvzwY2ES1_bmns,4649
91
+ powermem/intelligence/plugin.py,sha256=NjnnFtV1hFg3b0-eFhtPz8_rZpF6a0S6UL9CXguhYCU,9456
92
+ powermem/prompts/__init__.py,sha256=-2KiVQf2ttv2t5eIiZ8xcD7WrI93M_QZKqK7C_2QNEQ,750
93
+ powermem/prompts/importance_evaluation.py,sha256=6h3AtBG4CteMG-9cayxjLDkSptTaR4iPU5H-C5d_Zxk,7983
94
+ powermem/prompts/intelligent_memory_prompts.py,sha256=Gv1GqUr5i5iwJfDGRFbuh6KmeOgS-QeEjDGT2kuo5yU,5945
95
+ powermem/prompts/templates.py,sha256=gBX5kc1_K1kmMJTt_5MLxWW_pp9_BoZVIspBiv8ta7U,6750
96
+ powermem/prompts/graph/graph_prompts.py,sha256=1B9yyIo2FDEQcWAZpCva4xL1ZLY4GJA1bhFdRVpRZEw,10801
97
+ powermem/prompts/graph/graph_tools_prompts.py,sha256=8GnbMyMJOTSsIqi7ZgUxEx426dxkQugim5bBr78HgWg,19747
98
+ powermem/storage/__init__.py,sha256=1eN9yHOkZcQcgWDz2nyKMZCWUw3USq-YZXTb_P0vz0s,295
99
+ powermem/storage/adapter.py,sha256=Fro5cq6N4lGcVE94lieHioWjlFAwn7R4dxd2OqeP7DA,37133
100
+ powermem/storage/base.py,sha256=A4smny_8d8-UliWkFYl2yG7KAA2IbP9QKiyCpe24-qc,2875
101
+ powermem/storage/configs.py,sha256=0VyZ-yzWK3NFTU6kYhjdI81aaJrqVdirvei6UgCCx6A,5860
102
+ powermem/storage/factory.py,sha256=YrCSAyA2lUceCItF1urRLg1fkXebErJFfEndj_OFlaA,2031
103
+ powermem/storage/migration_manager.py,sha256=rtk6-W2B2wS6LhvlUETEIwIk2n1JkvTcoSpgKW5cw7E,16068
104
+ powermem/storage/config/base.py,sha256=zGvvHgwyzsxqtlo7rgjca9y45XTJzB1iilK-YA5PTk4,334
105
+ powermem/storage/config/oceanbase.py,sha256=BIVwEI_rt0VLHY-OA3mxWgFf5vGdQjZxvVLpTBhWEtY,2715
106
+ powermem/storage/config/pgvector.py,sha256=T0HKjFSIyDU-yfdhxBz8oBanAAkvkgHiwGZ_n99nFKk,2924
107
+ powermem/storage/config/sqlite.py,sha256=Mrm1sWhaw1MP9r4ZmZeHcPtZE6P53CALqaajdCPADro,704
108
+ powermem/storage/oceanbase/__init__.py,sha256=z6j5L1fiAXE0cTzuJGKBTlAyy5LOzbkGHfTGjCyCdXo,185
109
+ powermem/storage/oceanbase/constants.py,sha256=EZEHaJLFQybq6moAE9P5lWY3PUvwfV3Ok49atwC2KKA,5400
110
+ powermem/storage/oceanbase/oceanbase.py,sha256=C52JpqK4pC65BG1jvxezTgzSv6jX_VJz_BwuLGeInzI,61024
111
+ powermem/storage/oceanbase/oceanbase_graph.py,sha256=e_XtNF_1-HnFh0yOZG11-1d7Ky2IcGtXdVbmnB3Q8PQ,56655
112
+ powermem/storage/pgvector/__init__.py,sha256=1YGJT5t7k_ipQq9mi_lRXRgeLrxtpLt51hiwtVGzyxI,115
113
+ powermem/storage/pgvector/pgvector.py,sha256=IC2ArtKKkEI4LGR8Qump4Ra9NKxej1R5qaSja4Qkp7k,15684
114
+ powermem/storage/sqlite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
+ powermem/storage/sqlite/sqlite.py,sha256=fMVj0stj9WYszcT-S_hh590qyNuzys3QSZ37GPNcGJA,7675
116
+ powermem/storage/sqlite/sqlite_vector_store.py,sha256=fRUI-YGkNXuuSqrFCWegERrz9eP1AFcANfiwDlG1blc,11234
117
+ powermem/utils/__init__.py,sha256=UvoamicYpGj8YOYq6UMGnzBS2m3heTYkbb2QvwUkc4s,747
118
+ powermem/utils/utils.py,sha256=NzSrhRpFS1dYvoxq2fpmKhmRMGjOI2ydHE8kG11559c,18932
119
+ powermem-0.1.0.dist-info/licenses/LICENSE,sha256=26ZDMBcNk9_kmdOgW1o5OUYPvVv4hz7XcFJl-OKV_kw,11579
120
+ powermem-0.1.0.dist-info/METADATA,sha256=_o98gYAXMxQf9pdAaTzFio59TngXTP6g_HjRCmxI6mY,9821
121
+ powermem-0.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
122
+ powermem-0.1.0.dist-info/top_level.txt,sha256=QUSj080fTDX1Lk6V77a5Z3bkauea7f1LUH-iCj_OeBI,9
123
+ powermem-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,206 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity granting the License.
13
+
14
+ "Legal Entity" shall mean the union of the acting entity and all
15
+ other entities that control, are controlled by, or are under common
16
+ control with that entity. For the purposes of this definition,
17
+ "control" means (i) the power, direct or indirect, to cause the
18
+ direction or management of such entity, whether by contract or
19
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
20
+ outstanding shares, or (iii) beneficial ownership of such entity.
21
+
22
+ "You" (or "Your") shall mean an individual or Legal Entity
23
+ exercising permissions granted by this License.
24
+
25
+ "Source" shall mean the preferred form for making modifications,
26
+ including but not limited to software source code, documentation
27
+ source, and configuration files.
28
+
29
+ "Object" shall mean any form resulting from mechanical
30
+ transformation or translation of a Source form, including but
31
+ not limited to compiled object code, generated documentation,
32
+ and conversions to other media types.
33
+
34
+ "Work" shall mean the work of authorship, whether in Source or
35
+ Object form, made available under the License, as indicated by a
36
+ copyright notice that is included in or attached to the work
37
+ (which shall not include Communications that are conspicuously
38
+ marked or otherwise designated in writing by the copyright owner
39
+ as "Not a Contribution").
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based upon (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and derivative works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control
58
+ systems, and issue tracking systems that are managed by, or on behalf
59
+ of, the Licensor for the purpose of discussing and improving the Work,
60
+ but excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to use, reproduce, modify, merge, publish,
71
+ distribute, sublicense, and/or sell copies of the Work, and to
72
+ permit persons to whom the Work is furnished to do so, subject to
73
+ the following conditions:
74
+
75
+ The above copyright notice and this permission notice shall be
76
+ included in all copies or substantial portions of the Work.
77
+
78
+ 3. Grant of Patent License. Subject to the terms and conditions of
79
+ this License, each Contributor hereby grants to You a perpetual,
80
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
81
+ (except as stated in this section) patent license to make, have made,
82
+ use, offer to sell, sell, import, and otherwise transfer the Work,
83
+ where such license applies only to those patent claims licensable
84
+ by such Contributor that are necessarily infringed by their
85
+ Contribution(s) alone or by combination of their Contribution(s)
86
+ with the Work to which such Contribution(s) was submitted. If You
87
+ institute patent litigation against any entity (including a
88
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
89
+ or a Contribution incorporated within the Work constitutes direct
90
+ or contributory patent infringement, then any patent licenses
91
+ granted to You under this License for that Work shall terminate
92
+ as of the date such litigation is filed.
93
+
94
+ 4. Redistribution. You may reproduce and distribute copies of the
95
+ Work or Derivative Works thereof in any medium, with or without
96
+ modifications, and in Source or Object form, provided that You
97
+ meet the following conditions:
98
+
99
+ (a) You must give any other recipients of the Work or
100
+ Derivative Works a copy of this License; and
101
+
102
+ (b) You must cause any modified files to carry prominent notices
103
+ stating that You changed the files; and
104
+
105
+ (c) You must retain, in the Source form of any Derivative Works
106
+ that You distribute, all copyright, patent, trademark, and
107
+ attribution notices from the Source form of the Work,
108
+ excluding those notices that do not pertain to any part of
109
+ the Derivative Works; and
110
+
111
+ (d) If the Work includes a "NOTICE" text file as part of its
112
+ distribution, then any Derivative Works that You distribute must
113
+ include a readable copy of the attribution notices contained
114
+ within such NOTICE file, excluding those notices that do not
115
+ pertain to any part of the Derivative Works, in at least one
116
+ of the following places: within a NOTICE text file distributed
117
+ as part of the Derivative Works; within the Source form or
118
+ documentation, if provided along with the Derivative Works; or,
119
+ within a display generated by the Derivative Works, if and
120
+ wherever such third-party notices normally appear. The contents
121
+ of the NOTICE file are for informational purposes only and
122
+ do not modify the License. You may add Your own attribution
123
+ notices within Derivative Works that You distribute, alongside
124
+ or as an addendum to the NOTICE text from the Work, provided
125
+ that such additional attribution notices cannot be construed
126
+ as modifying the License.
127
+
128
+ You may add Your own copyright notice to Your modifications and
129
+ may provide additional or different license terms and conditions
130
+ for use, reproduction, or distribution of Your modifications, or
131
+ for any such Derivative Works as a whole, provided Your use,
132
+ reproduction, and distribution of the Work otherwise complies with
133
+ the conditions stated in this License.
134
+
135
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
136
+ any Contribution intentionally submitted for inclusion in the Work
137
+ by You to the Licensor shall be under the terms and conditions of
138
+ this License, without any additional terms or conditions.
139
+ Notwithstanding the above, nothing herein shall supersede or modify
140
+ the terms of any separate license agreement you may have executed
141
+ with Licensor regarding such Contributions.
142
+
143
+ 6. Trademarks. This License does not grant permission to use the trade
144
+ names, trademarks, service marks, or product names of the Licensor,
145
+ except as required for reasonable and customary use in describing the
146
+ origin of the Work and reproducing the content of the NOTICE file.
147
+
148
+ 7. Disclaimer of Warranty. Unless required by applicable law or
149
+ agreed to in writing, Licensor provides the Work (and each
150
+ Contributor provides its Contributions) on an "AS IS" BASIS,
151
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
152
+ implied, including, without limitation, any warranties or conditions
153
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
154
+ PARTICULAR PURPOSE. You are solely responsible for determining the
155
+ appropriateness of using or redistributing the Work and assume any
156
+ risks associated with Your exercise of permissions under this License.
157
+
158
+ 8. Limitation of Liability. In no event and under no legal theory,
159
+ whether in tort (including negligence), contract, or otherwise,
160
+ unless required by applicable law (such as deliberate and grossly
161
+ negligent acts) or agreed to in writing, shall any Contributor be
162
+ liable to You for damages, including any direct, indirect, special,
163
+ incidental, or consequential damages of any character arising as a
164
+ result of this License or out of the use or inability to use the
165
+ Work (including but not limited to damages for loss of goodwill,
166
+ work stoppage, computer failure or malfunction, or any and all
167
+ other commercial damages or losses), even if such Contributor
168
+ has been advised of the possibility of such damages.
169
+
170
+ 9. Accepting Warranty or Additional Liability. When redistributing
171
+ the Work or Derivative Works thereof, You may choose to offer,
172
+ and charge a fee for, acceptance of support, warranty, indemnity,
173
+ or other liability obligations and/or rights consistent with this
174
+ License. However, in accepting such obligations, You may act only
175
+ on Your own behalf and on Your sole responsibility, not on behalf
176
+ of any other Contributor, and only if You agree to indemnify,
177
+ defend, and hold each Contributor harmless for any liability
178
+ incurred by, or claims asserted against, such Contributor by reason
179
+ of your accepting any such warranty or additional liability.
180
+
181
+ END OF TERMS AND CONDITIONS
182
+
183
+ APPENDIX: How to apply the Apache License to your work.
184
+
185
+ To apply the Apache License to your work, attach the following
186
+ boilerplate notice, with the fields enclosed by brackets "[]"
187
+ replaced with your own identifying information. (Don't include
188
+ the brackets!) The text should be enclosed in the comments
189
+ syntax for the appropriate file format. We also recommend that a
190
+ file or class name and description of purpose be included on the
191
+ same page as the copyright notice for easier identification within
192
+ third-party archives.
193
+
194
+ Copyright [yyyy] [name of copyright owner]
195
+
196
+ Licensed under the Apache License, Version 2.0 (the "License");
197
+ you may not use this file except in compliance with the License.
198
+ You may obtain a copy of the License at
199
+
200
+ http://www.apache.org/licenses/LICENSE-2.0
201
+
202
+ Unless required by applicable law or agreed to in writing, software
203
+ distributed under the License is distributed on an "AS IS" BASIS,
204
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
205
+ See the License for the specific language governing permissions and
206
+ limitations under the License.
@@ -0,0 +1 @@
1
+ powermem