opencode-semantic-memory 0.8.2__tar.gz → 0.8.4__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.
- opencode_semantic_memory-0.8.4/.cache/pip/http-v2/0/0/d/f/d/00dfda658f2fcde6926308004100798ad2247e2f45d1313ebfef973d +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/9/e/d/3/7/9ed377a761861346a483546ee4ebbe92a83f2d3a40e917849c2eb140 → opencode_semantic_memory-0.8.4/.cache/pip/http-v2/1/a/a/9/3/1aa93177f63584761c951c731336f631596e12d3b4e0b67c5c164470 +0 -0
- opencode_semantic_memory-0.8.4/.cache/pip/http-v2/1/f/d/9/a/1fd9ade2b751542e96db097082f121ecac23098b3cd95c8a877f0716 +0 -0
- opencode_semantic_memory-0.8.4/.cache/pip/http-v2/2/a/8/c/5/2a8c5a56aa7e75a42e474464b0e75e78380050445086fa2e6626b678 +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/e/d/2/5/d/ed25d1bb38edf83d84e0a08c7e2111da8cb788eddb019df7a96d3213 → opencode_semantic_memory-0.8.4/.cache/pip/http-v2/2/e/5/b/6/2e5b6ced06806dcc8a76919087cfc0d76c4240a8acb8d34511ad15d6 +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/9/8/8/9/3/98893f0b227721063df57aa66878132bb1592344007b1842b6681340 → opencode_semantic_memory-0.8.4/.cache/pip/http-v2/3/2/7/f/0/327f0380de23010729d12b6a8a48f24b952353d527064c8bf3cfd875 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/3/9/7/4/33974f84394d9a943f68359da08431dab4af9f86c33962982ea21b5f +0 -0
- opencode_semantic_memory-0.8.4/.cache/pip/http-v2/3/6/1/b/f/361bf053ab706a1212f013301d35a0c4b0af9cd8cc559d24c73d6a6f +0 -0
- opencode_semantic_memory-0.8.4/.cache/pip/http-v2/3/8/4/d/c/384dc122488f965cecab29f1722d1db789313763e22373f38c7fbbef +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/4/b/e/0/7/4be07d3ac353e38d2c9e3a257cad36ee2a758fc88b4cd5f0d479a5a9 → opencode_semantic_memory-0.8.4/.cache/pip/http-v2/4/4/e/5/b/44e5b11a6caa92636d8ccfe658d420ba4ed8f67f7f4e835b214255aa +0 -0
- opencode_semantic_memory-0.8.4/.cache/pip/http-v2/4/b/e/0/7/4be07d3ac353e38d2c9e3a257cad36ee2a758fc88b4cd5f0d479a5a9 +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/3/8/4/d/c/384dc122488f965cecab29f1722d1db789313763e22373f38c7fbbef → opencode_semantic_memory-0.8.4/.cache/pip/http-v2/5/b/5/7/6/5b576ddc69cb2cda42f61333b85f066e4990a5eab5c96e0670cbb445 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/b/d/8/9/5bd894eeb3dfe1c8aaee1daecdfb74bbb314293813a730238621f077 +0 -0
- opencode_semantic_memory-0.8.4/.cache/pip/http-v2/5/b/e/1/1/5be1135dcb7a68de4427c71119ff80f66b671ae16db019966320bd6b +0 -0
- opencode_semantic_memory-0.8.4/.cache/pip/http-v2/6/2/e/2/c/62e2caaadb9fd2d0a88b65a7d2043b2c343936491ef44dc753aa91e0 +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/3/2/7/f/0/327f0380de23010729d12b6a8a48f24b952353d527064c8bf3cfd875 → opencode_semantic_memory-0.8.4/.cache/pip/http-v2/6/c/3/7/f/6c37fbfdf697cce77ac3a3add5b61c639e47de9b9b9d1eb63cf429d5 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/6/e/b/6/c/6eb6c130f2e60d2739ddb376352e395a8d86e4f80b402f5f7854d07d +0 -0
- opencode_semantic_memory-0.8.4/.cache/pip/http-v2/7/a/5/f/7/7a5f717e7b3fb99ec006f4d173aad55224eb063005c662c586ba0518 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/b/2/4/2/8b24226e2da88df4abeee0d8ca6bce79b19ca2bcd5f94b543939c66c +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/2/a/8/c/5/2a8c5a56aa7e75a42e474464b0e75e78380050445086fa2e6626b678 → opencode_semantic_memory-0.8.4/.cache/pip/http-v2/8/c/5/4/2/8c54213ac80b2536d9dbc88d24229468300e07d0d4883935e180e4d8 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/d/0/e/1/8d0e104919449355aedb55b5b546bb9fd53f0e1a8ca1b082109464e9 +0 -0
- opencode_semantic_memory-0.8.4/.cache/pip/http-v2/9/8/8/9/3/98893f0b227721063df57aa66878132bb1592344007b1842b6681340 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/8/a/a/c/98aaccf247f7044601019ac72b3323db416a60a3b922e914db3b02bc +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/e/2/9/3/9e293f5a39d8466e2b362aa21216c5e4bc32898b0a39bfff792d145e +0 -0
- opencode_semantic_memory-0.8.4/.cache/pip/http-v2/9/e/d/3/7/9ed377a761861346a483546ee4ebbe92a83f2d3a40e917849c2eb140 +0 -0
- opencode_semantic_memory-0.8.4/.cache/pip/http-v2/9/f/9/3/7/9f937e100a133ace0f86a717e0ada066b9e9d82f4d2982affb4e0344 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/4/6/b/7/a46b74c1407dd55ebf9eeb7eb2c73000028b7639a6ed9edc7981950c +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/6/f/4/d/b6f4dcb64ca093b3c3ae363be21ccc40760e60e58f24e7541ab876c7 +0 -0
- opencode_semantic_memory-0.8.4/.cache/pip/http-v2/b/b/a/d/c/bbadc07fc383ff650474f2a8246a59ba64776ab6b35809d02400a398 +0 -0
- opencode_semantic_memory-0.8.4/.cache/pip/http-v2/c/6/3/0/6/c6306d205b48faecb62eb823053e850df036f38e59b11523829f5c31 +0 -0
- opencode_semantic_memory-0.8.4/.cache/pip/http-v2/c/d/2/3/6/cd2366d413a2e8e87377cfadece7d8173562ece48b2be25218d5714a +0 -0
- opencode_semantic_memory-0.8.4/.cache/pip/http-v2/d/c/b/6/1/dcb61fa48ca00e206822fed148e38d1d4494a0b43064c07dcadec607 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/a/c/6/1/eac61126daf80149d2a016f12a54eab5e3b5c1dbc77410ff1a97edc4 +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/6/2/e/2/c/62e2caaadb9fd2d0a88b65a7d2043b2c343936491ef44dc753aa91e0 → opencode_semantic_memory-0.8.4/.cache/pip/http-v2/e/d/2/5/d/ed25d1bb38edf83d84e0a08c7e2111da8cb788eddb019df7a96d3213 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/3/6/d/5/f36d58c71164036f2cff3c9d0bb0c2b4d1d94bd0814c26b9cbe036b2 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/9/6/5/9/f9659e50df363f8369e6abe4c4008418f9de6a660e264dbba624109f +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/CHANGELOG.md +34 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/PKG-INFO +1 -1
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/pyproject.toml +3 -1
- opencode_semantic_memory-0.8.4/scripts/memory-mcp.sh +65 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/background_worker.py +26 -2
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/config.py +4 -1
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/keywords.py +10 -2
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/http_server.py +30 -8
- opencode_semantic_memory-0.8.4/src/opencode_memory/jobs/__init__.py +64 -0
- opencode_semantic_memory-0.8.4/src/opencode_memory/jobs/circuit_breaker.py +237 -0
- opencode_semantic_memory-0.8.4/src/opencode_memory/jobs/executor.py +297 -0
- opencode_semantic_memory-0.8.4/src/opencode_memory/jobs/handlers.py +465 -0
- opencode_semantic_memory-0.8.4/src/opencode_memory/jobs/queue.py +424 -0
- opencode_semantic_memory-0.8.4/src/opencode_memory/jobs/scheduler.py +265 -0
- opencode_semantic_memory-0.8.4/src/opencode_memory/jobs/worker.py +237 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/models.py +149 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/server.py +186 -1
- opencode_semantic_memory-0.8.4/src/opencode_memory/storage/migrations.py +318 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/storage/sqlite.py +1099 -2
- opencode_semantic_memory-0.8.4/tests/test_bulk_keyword_boost.py +37 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_http_server.py +43 -7
- opencode_semantic_memory-0.8.4/tests/test_jobs.py +768 -0
- opencode_semantic_memory-0.8.4/tests/test_migrations.py +268 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_server.py +102 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_storage.py +582 -14
- opencode_semantic_memory-0.8.4/tests/test_worker_integration.py +310 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/0/0/d/f/d/00dfda658f2fcde6926308004100798ad2247e2f45d1313ebfef973d +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/1/a/a/9/3/1aa93177f63584761c951c731336f631596e12d3b4e0b67c5c164470 +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/1/f/d/9/a/1fd9ade2b751542e96db097082f121ecac23098b3cd95c8a877f0716 +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/2/e/5/b/6/2e5b6ced06806dcc8a76919087cfc0d76c4240a8acb8d34511ad15d6 +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/3/6/1/b/f/361bf053ab706a1212f013301d35a0c4b0af9cd8cc559d24c73d6a6f +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/4/4/e/5/b/44e5b11a6caa92636d8ccfe658d420ba4ed8f67f7f4e835b214255aa +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/5/b/5/7/6/5b576ddc69cb2cda42f61333b85f066e4990a5eab5c96e0670cbb445 +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/5/b/e/1/1/5be1135dcb7a68de4427c71119ff80f66b671ae16db019966320bd6b +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/6/c/3/7/f/6c37fbfdf697cce77ac3a3add5b61c639e47de9b9b9d1eb63cf429d5 +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/7/a/5/f/7/7a5f717e7b3fb99ec006f4d173aad55224eb063005c662c586ba0518 +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/8/c/5/4/2/8c54213ac80b2536d9dbc88d24229468300e07d0d4883935e180e4d8 +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/9/f/9/3/7/9f937e100a133ace0f86a717e0ada066b9e9d82f4d2982affb4e0344 +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/b/b/a/d/c/bbadc07fc383ff650474f2a8246a59ba64776ab6b35809d02400a398 +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/c/6/3/0/6/c6306d205b48faecb62eb823053e850df036f38e59b11523829f5c31 +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/c/d/2/3/6/cd2366d413a2e8e87377cfadece7d8173562ece48b2be25218d5714a +0 -0
- opencode_semantic_memory-0.8.2/.cache/pip/http-v2/d/c/b/6/1/dcb61fa48ca00e206822fed148e38d1d4494a0b43064c07dcadec607 +0 -0
- opencode_semantic_memory-0.8.2/scripts/memory-mcp.sh +0 -37
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/0/d/f/d/00dfda658f2fcde6926308004100798ad2247e2f45d1313ebfef973d.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/2/1/0/5/02105206f60ee8a62c7d923e21bb4bd2d8f3db94c5bb87bd806d5e74 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/2/1/0/5/02105206f60ee8a62c7d923e21bb4bd2d8f3db94c5bb87bd806d5e74.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/4/3/c/5/043c5436ab58fe00f4947e073da46878751ec535f5fb37ee31d056d4 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/4/3/c/5/043c5436ab58fe00f4947e073da46878751ec535f5fb37ee31d056d4.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/6/e/f/6/06ef6c69cac06b70bc0c72267a631e29bc34b67d12daa0467e642f68 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/6/e/f/6/06ef6c69cac06b70bc0c72267a631e29bc34b67d12daa0467e642f68.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/a/6/b/7/0a6b76df38e61ac4e1f757a1132d2c6424dcb9c23751423afee448ac +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/a/6/b/7/0a6b76df38e61ac4e1f757a1132d2c6424dcb9c23751423afee448ac.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/d/0/c/8/0d0c8773df337e6f9e71ac49b74b6022225cab83efe9780dbf45afd6 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/d/0/c/8/0d0c8773df337e6f9e71ac49b74b6022225cab83efe9780dbf45afd6.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/e/0/5/5/0e055813e840b7b873253f9f5c1cd4a7b06e0256c8de713dec25b93d +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/e/0/5/5/0e055813e840b7b873253f9f5c1cd4a7b06e0256c8de713dec25b93d.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/e/d/3/3/0ed336d749e009fe1267c844e36c442e5b3dc645d5eb9865c545b81a +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/0/e/d/3/3/0ed336d749e009fe1267c844e36c442e5b3dc645d5eb9865c545b81a.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/0/b/2/a/10b2a8b62ea67a4cd49d0d353a09c43832fb02ba7b3a804e29c73417 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/0/b/2/a/10b2a8b62ea67a4cd49d0d353a09c43832fb02ba7b3a804e29c73417.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/1/4/a/4/114a432b2bd8b6284c600aa9e3f2bd6b180cacf11a94027a1a3ebafd +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/1/4/a/4/114a432b2bd8b6284c600aa9e3f2bd6b180cacf11a94027a1a3ebafd.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/1/5/8/4/11584f31ec41215071940705e8c92c248476c2eb9f8321e581bc327d +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/1/5/8/4/11584f31ec41215071940705e8c92c248476c2eb9f8321e581bc327d.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/2/1/8/1/121816d8cda4aebb8eef187064632e8ae9502de5f2c95b48f84a7404 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/2/1/8/1/121816d8cda4aebb8eef187064632e8ae9502de5f2c95b48f84a7404.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/5/9/c/5/159c56e4ec3c8e71dacef647c600365ad192876d095dd29b5b5c8ace +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/5/9/c/5/159c56e4ec3c8e71dacef647c600365ad192876d095dd29b5b5c8ace.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/7/1/4/7/1714748212f1de43b155667695179ce5864620d5dacb8cf4aed74142 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/7/1/4/7/1714748212f1de43b155667695179ce5864620d5dacb8cf4aed74142.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/a/a/9/3/1aa93177f63584761c951c731336f631596e12d3b4e0b67c5c164470.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/c/8/1/b/1c81b93817f31aa9418642808feaab487be448dbe0773e4bd01b9229 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/c/8/1/b/1c81b93817f31aa9418642808feaab487be448dbe0773e4bd01b9229.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/c/c/f/2/1ccf222879210db389c3a9cad286511f6d242e8f0f9678f4322d324c +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/c/c/f/2/1ccf222879210db389c3a9cad286511f6d242e8f0f9678f4322d324c.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/e/d/5/5/1ed556defd2a8ab2cc731547ac075b6d45780b497beca6fbad1e4b42 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/e/d/5/5/1ed556defd2a8ab2cc731547ac075b6d45780b497beca6fbad1e4b42.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/1/f/d/9/a/1fd9ade2b751542e96db097082f121ecac23098b3cd95c8a877f0716.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/4/d/b/9/24db9366753b8559a96fe294a29ebf32f13c5cff54739e41b20a46e8 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/4/d/b/9/24db9366753b8559a96fe294a29ebf32f13c5cff54739e41b20a46e8.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/6/e/b/e/26ebeea7399d8249c69cb68cb12dd2c21339342ab0b9493ab076d6e8 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/6/e/b/e/26ebeea7399d8249c69cb68cb12dd2c21339342ab0b9493ab076d6e8.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/8/3/9/a/2839a1e60014c8f0cdf9453a6036b2fef7bf06342761e3d37258b029 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/8/3/9/a/2839a1e60014c8f0cdf9453a6036b2fef7bf06342761e3d37258b029.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/8/9/c/6/289c6f7419360f0297e671f8a8d5f9af72c5243124e001a3663cac72 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/8/9/c/6/289c6f7419360f0297e671f8a8d5f9af72c5243124e001a3663cac72.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/a/8/c/5/2a8c5a56aa7e75a42e474464b0e75e78380050445086fa2e6626b678.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/b/0/a/4/2b0a4fda1a2c912a5a1c5245a8b34b5da87876e311f607befabc98ee +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/b/0/a/4/2b0a4fda1a2c912a5a1c5245a8b34b5da87876e311f607befabc98ee.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/b/4/a/8/2b4a8461b0c542cab777b0b365023942af997bbb25607ac8b3782391 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/b/4/a/8/2b4a8461b0c542cab777b0b365023942af997bbb25607ac8b3782391.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/b/a/1/c/2ba1cd6fadf1cd59b11c7feb8b68f1b786ade023c8f2ebe0f752e45e +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/b/a/1/c/2ba1cd6fadf1cd59b11c7feb8b68f1b786ade023c8f2ebe0f752e45e.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/e/5/b/6/2e5b6ced06806dcc8a76919087cfc0d76c4240a8acb8d34511ad15d6.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/e/b/6/a/2eb6afae3ceaa5367896f67f058455efab497b680ac114e94caa3e10 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/e/b/6/a/2eb6afae3ceaa5367896f67f058455efab497b680ac114e94caa3e10.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/e/e/f/c/2eefc290e650f410245e06439d9986a9e086c5e8b61f232f1e12891f +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/2/e/e/f/c/2eefc290e650f410245e06439d9986a9e086c5e8b61f232f1e12891f.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/2/7/f/0/327f0380de23010729d12b6a8a48f24b952353d527064c8bf3cfd875.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/3/5/e/4/335e4fae780121b49f966edba3e2b1f1f00b06637723db2e7e731f26 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/3/5/e/4/335e4fae780121b49f966edba3e2b1f1f00b06637723db2e7e731f26.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/3/9/7/4/33974f84394d9a943f68359da08431dab4af9f86c33962982ea21b5f.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/4/f/3/5/34f35e68224a7918339af3f1e6f6dfcfd5192fd17c6ebb73cd6dd91a +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/4/f/3/5/34f35e68224a7918339af3f1e6f6dfcfd5192fd17c6ebb73cd6dd91a.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/6/1/b/f/361bf053ab706a1212f013301d35a0c4b0af9cd8cc559d24c73d6a6f.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/6/7/8/5/36785bb40858912d7449d47de604d597609db89b1962e5e1e238542b +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/6/7/8/5/36785bb40858912d7449d47de604d597609db89b1962e5e1e238542b.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/6/a/5/d/36a5d6132567ff173f730ddcc6ab65962d399aaa9f302927ca97b3eb +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/6/a/5/d/36a5d6132567ff173f730ddcc6ab65962d399aaa9f302927ca97b3eb.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/8/4/d/c/384dc122488f965cecab29f1722d1db789313763e22373f38c7fbbef.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/9/8/1/3/398134aaeacada9feb8b12654a25e878c4f41490786622fc606a7a1c +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/9/8/1/3/398134aaeacada9feb8b12654a25e878c4f41490786622fc606a7a1c.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/f/e/c/3/3fec34894257a80934e9246a0a3053a6a96740587f3ddbf5b4fa6f02 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/3/f/e/c/3/3fec34894257a80934e9246a0a3053a6a96740587f3ddbf5b4fa6f02.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/1/e/3/c/41e3c68bb5038e20a3418971e070f9076b9eaa6e2c345d3e7f55e6b3 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/1/e/3/c/41e3c68bb5038e20a3418971e070f9076b9eaa6e2c345d3e7f55e6b3.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/3/6/8/4/436846b847c9c90a13539a872e2084e3f9ca23eb93b4b1cc44b55964 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/3/6/8/4/436846b847c9c90a13539a872e2084e3f9ca23eb93b4b1cc44b55964.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/3/9/4/0/43940c1ffa291a23244e10de06849b33fae6638badc063f4ade3cc1a +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/3/9/4/0/43940c1ffa291a23244e10de06849b33fae6638badc063f4ade3cc1a.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/4/e/5/b/44e5b11a6caa92636d8ccfe658d420ba4ed8f67f7f4e835b214255aa.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/5/8/c/7/458c7a7721c5d95619ebccea457715f5b1720258d02ce8362016a55c +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/5/8/c/7/458c7a7721c5d95619ebccea457715f5b1720258d02ce8362016a55c.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/7/7/4/2/47742615f5189ebbf61bb31c8c50f7f39cc38c5173f10ec7146e3989 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/7/7/4/2/47742615f5189ebbf61bb31c8c50f7f39cc38c5173f10ec7146e3989.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/8/3/8/e/4838e51432c6c88a78b5234e817caf0cf3bf1c3fc933f4861329b80f +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/8/3/8/e/4838e51432c6c88a78b5234e817caf0cf3bf1c3fc933f4861329b80f.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/b/e/0/7/4be07d3ac353e38d2c9e3a257cad36ee2a758fc88b4cd5f0d479a5a9.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/c/7/5/1/4c751248c578c4b8d67722e607a019d0909438b8cbe82066c393dfde +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/c/7/5/1/4c751248c578c4b8d67722e607a019d0909438b8cbe82066c393dfde.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/e/7/a/c/4e7ac19406cd6f20bb5f8145cca2f74c5f704ef378b0f4334628b440 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/4/e/7/a/c/4e7ac19406cd6f20bb5f8145cca2f74c5f704ef378b0f4334628b440.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/5/9/a/2/559a28d2d50a6d0988e3c56e5d0d411789da84005e4420f1a26bb23e +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/5/9/a/2/559a28d2d50a6d0988e3c56e5d0d411789da84005e4420f1a26bb23e.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/8/f/2/8/58f285f2173a5d23a2aa46ffc8e8b1bc64b6c3da91902d4ebd85c64d +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/8/f/2/8/58f285f2173a5d23a2aa46ffc8e8b1bc64b6c3da91902d4ebd85c64d.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/b/5/7/6/5b576ddc69cb2cda42f61333b85f066e4990a5eab5c96e0670cbb445.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/b/d/8/9/5bd894eeb3dfe1c8aaee1daecdfb74bbb314293813a730238621f077.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/b/e/1/1/5be1135dcb7a68de4427c71119ff80f66b671ae16db019966320bd6b.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/d/5/7/5/5d575692ffb3194739604e9e1622e2fa8c882afc9517932bd2ce40df +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/5/d/5/7/5/5d575692ffb3194739604e9e1622e2fa8c882afc9517932bd2ce40df.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/6/2/e/2/c/62e2caaadb9fd2d0a88b65a7d2043b2c343936491ef44dc753aa91e0.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/6/c/3/7/f/6c37fbfdf697cce77ac3a3add5b61c639e47de9b9b9d1eb63cf429d5.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/6/e/b/6/c/6eb6c130f2e60d2739ddb376352e395a8d86e4f80b402f5f7854d07d.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/6/e/f/c/7/6efc76a8ab292a15bc9bca02c950f72e1ce263d0a701323e9af5a358 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/6/e/f/c/7/6efc76a8ab292a15bc9bca02c950f72e1ce263d0a701323e9af5a358.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/0/b/9/c/70b9c022893d41f3d2b5cd47c3935b21f2c02945201dbf0acd4f302c +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/0/b/9/c/70b9c022893d41f3d2b5cd47c3935b21f2c02945201dbf0acd4f302c.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/2/f/6/0/72f60d542675f65a9677981499f07ae27fe97e3ac82f8e2224d72113 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/2/f/6/0/72f60d542675f65a9677981499f07ae27fe97e3ac82f8e2224d72113.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/3/3/0/8/73308e5c1402c6bb3b38e3b0f1deabe3b20b6248ed18126597a2a901 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/3/3/0/8/73308e5c1402c6bb3b38e3b0f1deabe3b20b6248ed18126597a2a901.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/6/f/a/7/76fa74418db194f57a03dff1a0900e3bb30fca5fcb07e76f411cd937 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/6/f/a/7/76fa74418db194f57a03dff1a0900e3bb30fca5fcb07e76f411cd937.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/7/4/6/9/77469a77c0c5007f8e0ef36b73b2bdb8cbe7d9c8be102fd7d4efaf35 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/7/4/6/9/77469a77c0c5007f8e0ef36b73b2bdb8cbe7d9c8be102fd7d4efaf35.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/7/a/5/f/7/7a5f717e7b3fb99ec006f4d173aad55224eb063005c662c586ba0518.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/2/6/f/6/826f657d92b77c09dc5003a2b07bdbf9bb82259638dc4579ee230b4d +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/2/6/f/6/826f657d92b77c09dc5003a2b07bdbf9bb82259638dc4579ee230b4d.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/3/a/9/9/83a99ac063795cf6d06df343c06449f8777237c8c3ad06917c4344ef +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/3/a/9/9/83a99ac063795cf6d06df343c06449f8777237c8c3ad06917c4344ef.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/3/d/e/5/83de5cc65dfecf3a6e4c4c0025f0873b77d3c9243e6a038bd0ca39b9 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/3/d/e/5/83de5cc65dfecf3a6e4c4c0025f0873b77d3c9243e6a038bd0ca39b9.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/6/c/3/3/86c33a8b2bab9735c4478352d670d16d3abe4f1a006f7c8e395d413f +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/6/c/3/3/86c33a8b2bab9735c4478352d670d16d3abe4f1a006f7c8e395d413f.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/8/f/0/6/88f06a944c734c3736badbb02d887cddfeb74de4f837c06db79e749c +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/8/f/0/6/88f06a944c734c3736badbb02d887cddfeb74de4f837c06db79e749c.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/9/6/5/1/896514be855e753c50f0e30b1a0e384a9a68b4db7b2ad62e28f4f6c0 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/9/6/5/1/896514be855e753c50f0e30b1a0e384a9a68b4db7b2ad62e28f4f6c0.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/9/b/7/2/89b72b053e1e45d15f7f77bd17b706e1b4010f0d87afb98ea49c07e1 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/9/b/7/2/89b72b053e1e45d15f7f77bd17b706e1b4010f0d87afb98ea49c07e1.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/a/9/8/c/8a98cf67dec8a2d33fd9e0b916651e7664ecf9dac97e99bcebb334f9 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/a/9/8/c/8a98cf67dec8a2d33fd9e0b916651e7664ecf9dac97e99bcebb334f9.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/b/2/4/2/8b24226e2da88df4abeee0d8ca6bce79b19ca2bcd5f94b543939c66c.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/c/5/4/2/8c54213ac80b2536d9dbc88d24229468300e07d0d4883935e180e4d8.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/d/0/e/1/8d0e104919449355aedb55b5b546bb9fd53f0e1a8ca1b082109464e9.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/f/0/2/c/8f02ceda6b874413150afa5cd29cd5b10e2fcba552cc363083b9d073 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/8/f/0/2/c/8f02ceda6b874413150afa5cd29cd5b10e2fcba552cc363083b9d073.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/2/8/c/7/928c755db48c17282ed7a16aa7cbf0ae7aa370d2e20d939a3292aa75 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/2/8/c/7/928c755db48c17282ed7a16aa7cbf0ae7aa370d2e20d939a3292aa75.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/4/d/0/2/94d022fb6c12e6dc453f3090252f397a80e9c2dbb7341fb45c1b150f +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/4/d/0/2/94d022fb6c12e6dc453f3090252f397a80e9c2dbb7341fb45c1b150f.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/8/8/9/3/98893f0b227721063df57aa66878132bb1592344007b1842b6681340.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/8/a/a/c/98aaccf247f7044601019ac72b3323db416a60a3b922e914db3b02bc.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/9/6/4/b/9964b58defdc05f741bfcb3abd6a4eebcb73af9497c5e6d1c828971c +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/9/6/4/b/9964b58defdc05f741bfcb3abd6a4eebcb73af9497c5e6d1c828971c.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/a/a/7/5/9aa7515b527eee59a0b02e85169b5a03e55bdc51dd9ff5255db0c90b +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/a/a/7/5/9aa7515b527eee59a0b02e85169b5a03e55bdc51dd9ff5255db0c90b.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/d/0/1/f/9d01f27365759b718ef77536f4a3d30fd989884b0e53418e1275a79d +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/d/0/1/f/9d01f27365759b718ef77536f4a3d30fd989884b0e53418e1275a79d.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/d/5/d/f/9d5dfb0dedf17094821c37079d37c9f4a1256a7dc457c1192cfa1573 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/d/5/d/f/9d5dfb0dedf17094821c37079d37c9f4a1256a7dc457c1192cfa1573.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/d/7/3/1/9d731f2c786de32b646a4a55c324f4853068bfd6c6f1fd7f9a0e296b +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/d/7/3/1/9d731f2c786de32b646a4a55c324f4853068bfd6c6f1fd7f9a0e296b.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/e/2/9/3/9e293f5a39d8466e2b362aa21216c5e4bc32898b0a39bfff792d145e.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/e/d/3/7/9ed377a761861346a483546ee4ebbe92a83f2d3a40e917849c2eb140.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/9/f/9/3/7/9f937e100a133ace0f86a717e0ada066b9e9d82f4d2982affb4e0344.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/1/9/5/3/a19537d3cf37c122db841d6fe4cd322bc10d1a558bb00d146b85cb9a +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/1/9/5/3/a19537d3cf37c122db841d6fe4cd322bc10d1a558bb00d146b85cb9a.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/4/6/b/7/a46b74c1407dd55ebf9eeb7eb2c73000028b7639a6ed9edc7981950c.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/6/9/f/7/a69f7807d8670d33b4a34f2be06cdd5812c8d0da9ec20e9dea88a6b5 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/6/9/f/7/a69f7807d8670d33b4a34f2be06cdd5812c8d0da9ec20e9dea88a6b5.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/c/b/4/e/acb4e40f64eef2a73d680e437d7e413b10909b60941ff39f0528cce7 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/c/b/4/e/acb4e40f64eef2a73d680e437d7e413b10909b60941ff39f0528cce7.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/c/f/5/f/acf5f0d5e5d9c652369524c1aa52bc12c871949618d42c9cf23f3425 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/c/f/5/f/acf5f0d5e5d9c652369524c1aa52bc12c871949618d42c9cf23f3425.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/d/0/9/9/ad0993b61e45706eeae6cade19b9ea76c815f37701089250e72421e5 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/d/0/9/9/ad0993b61e45706eeae6cade19b9ea76c815f37701089250e72421e5.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/d/f/d/a/adfdac1a71358ae7b47b92917f8a6af8c5acecccb52b186c45372c03 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/d/f/d/a/adfdac1a71358ae7b47b92917f8a6af8c5acecccb52b186c45372c03.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/e/4/3/7/ae4373cec48f7725665273a898a1c1c6bb89464ae81e2d57d920fc2e +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/e/4/3/7/ae4373cec48f7725665273a898a1c1c6bb89464ae81e2d57d920fc2e.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/f/9/2/4/af924cace590eaa7f5a948286460f4a79ae9e083cd5843c70be7bcdc +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/a/f/9/2/4/af924cace590eaa7f5a948286460f4a79ae9e083cd5843c70be7bcdc.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/0/c/3/0/b0c304a2d0d2dd17cd2e818948220da223f52dfe26c6e170a35508ec +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/0/c/3/0/b0c304a2d0d2dd17cd2e818948220da223f52dfe26c6e170a35508ec.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/2/b/3/5/b2b35b24e6fe74c8ffc02d1a4a1ddbd75ba2a82f3623471ee047b2ed +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/2/b/3/5/b2b35b24e6fe74c8ffc02d1a4a1ddbd75ba2a82f3623471ee047b2ed.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/3/6/c/0/b36c03663a3f9be503a38ab3381e55a1c5e2392e9271c976f5e2b956 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/3/6/c/0/b36c03663a3f9be503a38ab3381e55a1c5e2392e9271c976f5e2b956.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/6/f/4/d/b6f4dcb64ca093b3c3ae363be21ccc40760e60e58f24e7541ab876c7.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/9/3/9/c/b939c4552b20c2f2a36204f6bb1d2e526af7e96070b43b1d2e2e9ae4 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/9/3/9/c/b939c4552b20c2f2a36204f6bb1d2e526af7e96070b43b1d2e2e9ae4.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/b/a/d/c/bbadc07fc383ff650474f2a8246a59ba64776ab6b35809d02400a398.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/c/5/b/a/bc5baf40560ff46e68ca4c99692ddaaf9ca29f999555e36e150ea6f1 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/c/5/b/a/bc5baf40560ff46e68ca4c99692ddaaf9ca29f999555e36e150ea6f1.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/e/d/4/e/bed4e7c2b407105e5c80f6f3c9c9ce06074cd1bc90409700e4489759 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/b/e/d/4/e/bed4e7c2b407105e5c80f6f3c9c9ce06074cd1bc90409700e4489759.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/4/1/9/b/c419b5211317322d2f929c4249b25fb3a2a5deaac5ca898ef2889e82 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/4/1/9/b/c419b5211317322d2f929c4249b25fb3a2a5deaac5ca898ef2889e82.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/5/5/1/6/c5516052911272854847b94d1c7e5dcdda18d04768795c313b9958bc +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/5/5/1/6/c5516052911272854847b94d1c7e5dcdda18d04768795c313b9958bc.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/6/3/0/6/c6306d205b48faecb62eb823053e850df036f38e59b11523829f5c31.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/6/e/e/4/c6ee4aaa63f8847bfbe25565d073b6c57d624c7f7c4708994746c09c +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/6/e/e/4/c6ee4aaa63f8847bfbe25565d073b6c57d624c7f7c4708994746c09c.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/7/0/c/6/c70c631b8d2fff6b4f7fd6ebc7fad8e500b50f8fa7da0af627bf1f0b +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/7/0/c/6/c70c631b8d2fff6b4f7fd6ebc7fad8e500b50f8fa7da0af627bf1f0b.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/7/7/1/f/c771f1dbbe2a60b07758757a5e715103105323f69596e50cebedebeb +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/7/7/1/f/c771f1dbbe2a60b07758757a5e715103105323f69596e50cebedebeb.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/9/4/a/e/c94ae1695304888e79191be0f465ad0b2a85880ee474d189ee9126ed +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/9/4/a/e/c94ae1695304888e79191be0f465ad0b2a85880ee474d189ee9126ed.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/d/2/3/6/cd2366d413a2e8e87377cfadece7d8173562ece48b2be25218d5714a.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/d/e/c/3/cdec3d0140a615c153130a37691576ea1707e32a1ab5e60ae5a540f4 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/d/e/c/3/cdec3d0140a615c153130a37691576ea1707e32a1ab5e60ae5a540f4.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/e/6/7/6/ce6762d91f1e7c3c4bece64762122d18df14d8f8e7532d5f15dfdb37 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/e/6/7/6/ce6762d91f1e7c3c4bece64762122d18df14d8f8e7532d5f15dfdb37.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/e/8/f/d/ce8fd146fb2bb37feff63c8f224f1a8b178c26a332d13562e417fead +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/e/8/f/d/ce8fd146fb2bb37feff63c8f224f1a8b178c26a332d13562e417fead.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/f/e/5/3/cfe53db609feaba2efb2139916693c3ff859e7f1e6e6e557fbd82ae0 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/c/f/e/5/3/cfe53db609feaba2efb2139916693c3ff859e7f1e6e6e557fbd82ae0.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/0/9/f/6/d09f6ac5e031c49248311012191c6416673b97ee2e299116b629ff88 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/0/9/f/6/d09f6ac5e031c49248311012191c6416673b97ee2e299116b629ff88.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/3/7/f/1/d37f17c4b7b25f8b5df752972b9c2301f59d0c55586cac7f15268689 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/3/7/f/1/d37f17c4b7b25f8b5df752972b9c2301f59d0c55586cac7f15268689.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/5/4/b/b/d54bb21df9a8549867c7c0c30dcdda927be8994b07f4c933db9a04ab +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/5/4/b/b/d54bb21df9a8549867c7c0c30dcdda927be8994b07f4c933db9a04ab.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/5/9/0/b/d590bdf80aa5f6230e0e49a9f10b63aa0c44f77ccd99f25a6ad7841a +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/5/9/0/b/d590bdf80aa5f6230e0e49a9f10b63aa0c44f77ccd99f25a6ad7841a.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/6/b/d/f/d6bdf32d1c16362f083791f397046d0fa2aa6875fb754c605afbef26 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/6/b/d/f/d6bdf32d1c16362f083791f397046d0fa2aa6875fb754c605afbef26.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/8/f/6/6/d8f6658f33493176286485c04b4350d8cca524052cba0aea8d4cb82e +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/8/f/6/6/d8f6658f33493176286485c04b4350d8cca524052cba0aea8d4cb82e.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/a/4/3/1/da431bf4bec8d6d3c8eda94dac7a309e829b61d10ffd31c5d846f4d5 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/a/4/3/1/da431bf4bec8d6d3c8eda94dac7a309e829b61d10ffd31c5d846f4d5.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/c/b/6/1/dcb61fa48ca00e206822fed148e38d1d4494a0b43064c07dcadec607.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/f/1/1/f/df11f101ff0165c7df447aaf1ab175fcd1af98711e498eef0c3d0dfa +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/d/f/1/1/f/df11f101ff0165c7df447aaf1ab175fcd1af98711e498eef0c3d0dfa.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/1/2/c/b/e12cb67639406869a81116005289318bf75720fc4d58ce1eff838d0c +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/1/2/c/b/e12cb67639406869a81116005289318bf75720fc4d58ce1eff838d0c.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/1/6/2/5/e16255f8dfb39b0298f7cb7edd062dd0d3f7ae4c5014de5fc4e17070 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/1/6/2/5/e16255f8dfb39b0298f7cb7edd062dd0d3f7ae4c5014de5fc4e17070.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/a/c/6/1/eac61126daf80149d2a016f12a54eab5e3b5c1dbc77410ff1a97edc4.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/d/2/5/d/ed25d1bb38edf83d84e0a08c7e2111da8cb788eddb019df7a96d3213.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/d/3/a/c/ed3acad79bebd48e93f9254a4702825f833ffd8119c8d2cbff43abfc +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/e/d/3/a/c/ed3acad79bebd48e93f9254a4702825f833ffd8119c8d2cbff43abfc.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/2/d/a/b/f2dabcdf97e445f98036aadbe7dddc4c9ecb47a8a60783427f548b2c +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/2/d/a/b/f2dabcdf97e445f98036aadbe7dddc4c9ecb47a8a60783427f548b2c.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/3/0/6/9/f3069b463c09d30c7cc1996d8b8a3423c70ff01f7a9e7a62d31aca05 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/3/0/6/9/f3069b463c09d30c7cc1996d8b8a3423c70ff01f7a9e7a62d31aca05.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/3/6/d/5/f36d58c71164036f2cff3c9d0bb0c2b4d1d94bd0814c26b9cbe036b2.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/9/6/5/9/f9659e50df363f8369e6abe4c4008418f9de6a660e264dbba624109f.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/9/9/b/3/f99b3487d2b9c55edcd311aeafa35cbf852ab2cc5c3f5d1a1a08e2b5 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/9/9/b/3/f99b3487d2b9c55edcd311aeafa35cbf852ab2cc5c3f5d1a1a08e2b5.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/c/c/6/f/fcc6fbc30e8c9f7e5cfd4f86edead21005705c18238a90d9673eeb47 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/c/c/6/f/fcc6fbc30e8c9f7e5cfd4f86edead21005705c18238a90d9673eeb47.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/d/b/e/3/fdbe380932457c2da0b68a223546fd0f6b84c31a8f4a6b63757becce +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/d/b/e/3/fdbe380932457c2da0b68a223546fd0f6b84c31a8f4a6b63757becce.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/f/6/3/f/ff63f8aee48f79bb6d2cdeff8f7863b5820a3c507a2623f007846bb0 +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/http-v2/f/f/6/3/f/ff63f8aee48f79bb6d2cdeff8f7863b5820a3c507a2623f007846bb0.body +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.cache/pip/selfcheck/fe300af6f7d708c14827daac3afc81fbb8306b73de8dd6e3f1f8ea3b +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.gitignore +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/.gitlab-ci.yml +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/AGENTS.md +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/ARCHITECTURE.md +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/BOOTSTRAP.md +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/README.md +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/backfill.log +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/com.opencode.memory.plist +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/docs/BOOTSTRAP_MEMORIES.md +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/docs/GITLAB_WORKFLOW_MEMORIES.md +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/docs/TIPS_FOR_HUMANS.md +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/flake.lock +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/flake.nix +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/lefthook.yml +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/nix/model.nix +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/nix/module.nix +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/nix/package.nix +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/opencode-mcp-config.json +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/opencode-memory-daemon.service +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/opencode-memory-reload.path +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/opencode-memory-worker.service +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/opencode-memory.service +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/opencode.json +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/.gitignore +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/README.md +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/package-lock.json +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/package.json +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/src/boot-context-formatter.ts +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/src/context-formatter.ts +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/src/entity-extractor.ts +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/src/index.ts +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/src/memory-client.ts +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/plugin/tsconfig.json +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/scripts/backfill_extraction.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/scripts/check-version-sync.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/scripts/reingest_insights.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/scripts/setup.sh +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/scripts/sync-version.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/slack-post-memory-effectiveness.md +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/__init__.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/activity_log.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/analysis/__init__.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/analysis/effectiveness.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/backfill_introspection.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/__init__.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/cli.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/daemon.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/fetcher.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/query.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/storage.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/summarizer.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/tiering.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/bulk_ingest/vectors.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/cache.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/cli.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/config.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/daemon.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/enrichment/__init__.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/enrichment/gitlab.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/enrichment/orbit.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/enrichment_worker.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/extraction.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/historical_ingest.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/indexing/__init__.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/indexing/code_structure.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/ingestion/__init__.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/ingestion/embeddings.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/ingestion/extractors.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/ingestion/opencode_db.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/ingestion/parser.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/ingestion/watcher.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/linking/__init__.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/linking/linker.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/llm.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/metrics.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/proactive_context.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/project.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/query/__init__.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/query/hybrid.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/session/__init__.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/session/registry.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/spider/__init__.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/spider/crawler.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/spider/references.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/storage/__init__.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/storage/vectors.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/__init__.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_cache.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_concept_propagation.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_config.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_daemon.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_extraction.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_extractors.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_linking.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_llm.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_opencode_db.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_orbit.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_parser.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/tests/test_proactive_context.py +0 -0
- {opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/uv.lock +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -7,6 +7,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.8.4] - 2026-06-03
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **`get_by_id` tool** - Retrieve a single memory by its ID, returning the full record
|
|
15
|
+
(content, category, what/why/learned, project, entities, timestamps) plus a link summary.
|
|
16
|
+
Lets static procedures and directives be fetched directly instead of via search, which is
|
|
17
|
+
unreliable for exact retrieval. Closes #83.
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- **Recall relevance** - Bulk-ingested GitLab entities could drown out genuinely relevant
|
|
22
|
+
procedures and directives. The keyword-overlap boost was unbounded
|
|
23
|
+
(`overlap_count * 0.1`), so a verbose issue/MR sharing many keywords could add an
|
|
24
|
+
arbitrarily large score. The boost is now capped at `0.2`, and the bulk-ingest
|
|
25
|
+
`relevance_weight` default is lowered `0.8` -> `0.6` to discount bulk results further
|
|
26
|
+
versus personal memories.
|
|
27
|
+
|
|
28
|
+
## [0.8.3] - 2026-06-03
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- **Concurrent subagent MCP connections** - Background tasks that spawned multiple
|
|
33
|
+
subagents at once could fail silently with `MCP error -32000: Connection closed`
|
|
34
|
+
when their `mcp-remote` clients all performed their startup handshake against the
|
|
35
|
+
shared HTTP server simultaneously. Two fixes:
|
|
36
|
+
- `scripts/memory-mcp.sh` now retries `mcp-remote` with exponential backoff
|
|
37
|
+
(up to 5 attempts) so a transient startup-time connection drop recovers instead
|
|
38
|
+
of leaving the subagent without memory access.
|
|
39
|
+
- The HTTP server's rate limiter now exempts loopback addresses (all local
|
|
40
|
+
sessions are trusted) and keys non-local clients by the `X-OpenCode-Session`
|
|
41
|
+
header, so concurrent sessions no longer share a single localhost bucket whose
|
|
42
|
+
limit a startup burst could trip.
|
|
43
|
+
|
|
10
44
|
## [0.8.0] - 2026-06-02
|
|
11
45
|
|
|
12
46
|
### Added
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "opencode-semantic-memory"
|
|
7
|
-
version = "0.8.
|
|
7
|
+
version = "0.8.4"
|
|
8
8
|
description = "Persistent semantic memory system for OpenCode sessions"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
@@ -52,6 +52,8 @@ opencode-memory = "opencode_memory.cli:main"
|
|
|
52
52
|
opencode-memory-server = "opencode_memory.http_server:main"
|
|
53
53
|
opencode-memory-daemon = "opencode_memory.daemon:main"
|
|
54
54
|
opencode-memory-worker = "opencode_memory.background_worker:main"
|
|
55
|
+
# New job-based worker (Sidekiq-like)
|
|
56
|
+
opencode-memory-job-worker = "opencode_memory.jobs.worker:main"
|
|
55
57
|
# Bulk ingestion commands
|
|
56
58
|
opencode-memory-bulk-ingest = "opencode_memory.bulk_ingest.cli:main"
|
|
57
59
|
opencode-memory-bulk-ingest-daemon = "opencode_memory.bulk_ingest.daemon:main"
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Wrapper script for opencode-memory MCP server
|
|
3
|
+
# Connects to the HTTP server via mcp-remote
|
|
4
|
+
#
|
|
5
|
+
# Prerequisites:
|
|
6
|
+
# Linux: systemctl --user enable --now opencode-memory
|
|
7
|
+
# macOS: launchctl load ~/Library/LaunchAgents/com.opencode.memory.plist
|
|
8
|
+
|
|
9
|
+
set -e
|
|
10
|
+
|
|
11
|
+
SERVER_URL="http://localhost:9824"
|
|
12
|
+
|
|
13
|
+
# Quick health check (fail fast if server not running)
|
|
14
|
+
if ! curl -s --max-time 1 "$SERVER_URL/health" >/dev/null 2>&1; then
|
|
15
|
+
OS="$(uname -s)"
|
|
16
|
+
case "$OS" in
|
|
17
|
+
Linux*)
|
|
18
|
+
echo "Memory server not running. Start it with: systemctl --user start opencode-memory" >&2
|
|
19
|
+
;;
|
|
20
|
+
Darwin*)
|
|
21
|
+
echo "Memory server not running. Start it with: launchctl load ~/Library/LaunchAgents/com.opencode.memory.plist" >&2
|
|
22
|
+
;;
|
|
23
|
+
*)
|
|
24
|
+
echo "Memory server not running at $SERVER_URL" >&2
|
|
25
|
+
;;
|
|
26
|
+
esac
|
|
27
|
+
exit 1
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
# Resolve the mcp-remote command (locally installed is faster than npx)
|
|
31
|
+
if [ -x "$HOME/.local/bin/mcp-remote" ]; then
|
|
32
|
+
MCP_REMOTE=("$HOME/.local/bin/mcp-remote")
|
|
33
|
+
elif command -v mcp-remote >/dev/null 2>&1; then
|
|
34
|
+
MCP_REMOTE=(mcp-remote)
|
|
35
|
+
else
|
|
36
|
+
MCP_REMOTE=(npx --yes mcp-remote)
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
# Start mcp-remote with retry/backoff to absorb transient "Connection closed"
|
|
40
|
+
# failures that occur when many subagents start concurrently (thundering herd
|
|
41
|
+
# against the shared HTTP server). A clean long-running proxy never returns 0
|
|
42
|
+
# here, so a fast non-zero exit means a startup-time connection drop worth retrying.
|
|
43
|
+
MAX_ATTEMPTS=5
|
|
44
|
+
attempt=1
|
|
45
|
+
while true; do
|
|
46
|
+
start_ts=$(date +%s)
|
|
47
|
+
# Disable errexit around the proxy call; we handle its exit code explicitly.
|
|
48
|
+
set +e
|
|
49
|
+
"${MCP_REMOTE[@]}" "$SERVER_URL/mcp"
|
|
50
|
+
exit_code=$?
|
|
51
|
+
set -e
|
|
52
|
+
elapsed=$(( $(date +%s) - start_ts ))
|
|
53
|
+
|
|
54
|
+
# Exited cleanly, or ran long enough to be a real session (not a startup
|
|
55
|
+
# collision): propagate the exit code and stop.
|
|
56
|
+
if [ "$exit_code" -eq 0 ] || [ "$elapsed" -ge 10 ] || [ "$attempt" -ge "$MAX_ATTEMPTS" ]; then
|
|
57
|
+
exit "$exit_code"
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
# Transient startup failure: back off (2s, 4s, 6s, 8s) and retry.
|
|
61
|
+
backoff=$(( attempt * 2 ))
|
|
62
|
+
echo "memory-mcp: mcp-remote exited ($exit_code) after ${elapsed}s on attempt ${attempt}; retrying in ${backoff}s" >&2
|
|
63
|
+
sleep "$backoff"
|
|
64
|
+
attempt=$(( attempt + 1 ))
|
|
65
|
+
done
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
"""Unified background worker for all memory processing.
|
|
2
2
|
|
|
3
|
+
DEPRECATED: This module is superseded by the new job-based system in
|
|
4
|
+
opencode_memory.jobs.worker. The new system provides:
|
|
5
|
+
- Proper job queue with claim/timeout/retry
|
|
6
|
+
- Circuit breaker protection for external APIs
|
|
7
|
+
- Dead job tracking and alerting
|
|
8
|
+
- Metrics collection for all job types
|
|
9
|
+
|
|
10
|
+
Use instead: python -m opencode_memory.jobs.worker
|
|
11
|
+
|
|
12
|
+
This file is kept for backwards compatibility and will be removed in v0.10.0.
|
|
13
|
+
|
|
14
|
+
Legacy documentation:
|
|
3
15
|
This runs as a separate process from the MCP server, handling:
|
|
4
16
|
- Embedding computation and vector storage
|
|
5
17
|
- Semantic deduplication
|
|
@@ -8,8 +20,6 @@ This runs as a separate process from the MCP server, handling:
|
|
|
8
20
|
- Memory cleanup
|
|
9
21
|
- LLM-based knowledge extraction
|
|
10
22
|
- Concept extraction
|
|
11
|
-
|
|
12
|
-
Run with: python -m opencode_memory.background_worker
|
|
13
23
|
"""
|
|
14
24
|
|
|
15
25
|
import asyncio
|
|
@@ -979,6 +989,20 @@ Your response (one line only):"""
|
|
|
979
989
|
|
|
980
990
|
def main():
|
|
981
991
|
"""Entry point for the background worker."""
|
|
992
|
+
import warnings
|
|
993
|
+
|
|
994
|
+
warnings.warn(
|
|
995
|
+
"background_worker is deprecated and will be removed in v0.10.0. "
|
|
996
|
+
"Use 'python -m opencode_memory.jobs.worker' or the 'opencode-memory-job-worker' "
|
|
997
|
+
"command instead. The new system provides job queuing, retries, and metrics.",
|
|
998
|
+
DeprecationWarning,
|
|
999
|
+
stacklevel=2,
|
|
1000
|
+
)
|
|
1001
|
+
logger.warning(
|
|
1002
|
+
"DEPRECATION: background_worker is deprecated. "
|
|
1003
|
+
"Use 'opencode-memory-job-worker' instead for the new job-based system."
|
|
1004
|
+
)
|
|
1005
|
+
|
|
982
1006
|
worker = BackgroundWorker()
|
|
983
1007
|
|
|
984
1008
|
def handle_signal(signum, frame):
|
|
@@ -47,7 +47,10 @@ class QueryConfig(BaseModel):
|
|
|
47
47
|
"""Query integration configuration."""
|
|
48
48
|
|
|
49
49
|
enabled: bool = True # Include in memory_recall searches
|
|
50
|
-
|
|
50
|
+
# Discount bulk-ingested GitLab entities vs personal memories. Kept well
|
|
51
|
+
# below 1.0 so that procedures, directives, and decisions are not drowned
|
|
52
|
+
# out by weakly-matching bulk issues/MRs in recall results.
|
|
53
|
+
relevance_weight: float = 0.6
|
|
51
54
|
|
|
52
55
|
|
|
53
56
|
class BulkIngestConfig(BaseModel):
|
|
@@ -274,6 +274,14 @@ def compute_keyword_overlap(keywords1: list[str], keywords2: list[str]) -> int:
|
|
|
274
274
|
return len(set(keywords1) & set(keywords2))
|
|
275
275
|
|
|
276
276
|
|
|
277
|
+
# Maximum additive keyword-overlap boost. Without a cap the boost is
|
|
278
|
+
# unbounded (overlap_count * boost_factor), so a verbose bulk-ingested GitLab
|
|
279
|
+
# entity sharing many keywords with the query could outscore a genuinely
|
|
280
|
+
# relevant personal procedure/directive. Cap it so the boost only nudges
|
|
281
|
+
# ranking rather than dominating it.
|
|
282
|
+
MAX_KEYWORD_BOOST = 0.2
|
|
283
|
+
|
|
284
|
+
|
|
277
285
|
def keyword_boost(query_keywords: list[str], entity_keywords: list[str], boost_factor: float = 0.1) -> float:
|
|
278
286
|
"""Calculate keyword overlap boost for search scoring.
|
|
279
287
|
|
|
@@ -283,7 +291,7 @@ def keyword_boost(query_keywords: list[str], entity_keywords: list[str], boost_f
|
|
|
283
291
|
boost_factor: Multiplier per overlapping keyword
|
|
284
292
|
|
|
285
293
|
Returns:
|
|
286
|
-
Boost value to add to search score
|
|
294
|
+
Boost value to add to search score, capped at MAX_KEYWORD_BOOST.
|
|
287
295
|
"""
|
|
288
296
|
overlap = compute_keyword_overlap(query_keywords, entity_keywords)
|
|
289
|
-
return overlap * boost_factor
|
|
297
|
+
return min(overlap * boost_factor, MAX_KEYWORD_BOOST)
|
{opencode_semantic_memory-0.8.2 → opencode_semantic_memory-0.8.4}/src/opencode_memory/http_server.py
RENAMED
|
@@ -60,6 +60,10 @@ DEFAULT_PORT = int(os.environ.get("OPENCODE_MEMORY_PORT", "9824"))
|
|
|
60
60
|
API_KEY = os.environ.get("OPENCODE_MEMORY_API_KEY") # Optional auth
|
|
61
61
|
RATE_LIMIT = int(os.environ.get("OPENCODE_MEMORY_RATE_LIMIT", "60")) # per minute
|
|
62
62
|
|
|
63
|
+
# Loopback addresses are exempt from rate limiting: all local opencode sessions
|
|
64
|
+
# and their subagents connect over loopback and are trusted.
|
|
65
|
+
_LOCAL_IPS = frozenset({"127.0.0.1", "::1", "localhost"})
|
|
66
|
+
|
|
63
67
|
|
|
64
68
|
class RateLimiter:
|
|
65
69
|
"""Simple in-memory rate limiter using sliding window."""
|
|
@@ -69,20 +73,38 @@ class RateLimiter:
|
|
|
69
73
|
self.window_seconds = 60
|
|
70
74
|
self._requests: dict[str, list[float]] = defaultdict(list)
|
|
71
75
|
|
|
72
|
-
def
|
|
73
|
-
"""Get
|
|
74
|
-
# Use X-Forwarded-For if behind proxy, otherwise use client IP
|
|
76
|
+
def _get_client_ip(self, scope: dict) -> str:
|
|
77
|
+
"""Get the originating IP for a request."""
|
|
75
78
|
headers = dict(scope.get("headers", []))
|
|
76
79
|
forwarded = headers.get(b"x-forwarded-for", b"").decode()
|
|
77
80
|
if forwarded:
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
return forwarded.split(",")[0].strip()
|
|
82
|
+
client = scope.get("client", ("unknown", 0))
|
|
83
|
+
return client[0] if client else "unknown"
|
|
84
|
+
|
|
85
|
+
def _get_client_id(self, scope: dict) -> str:
|
|
86
|
+
"""Get client identifier for rate limiting.
|
|
87
|
+
|
|
88
|
+
Prefers the opencode session header so that multiple concurrent
|
|
89
|
+
sessions/subagents on the same host get independent rate-limit
|
|
90
|
+
buckets rather than all sharing a single localhost IP bucket
|
|
91
|
+
(which caused startup bursts to trip the limit and drop the
|
|
92
|
+
mcp-remote connection). Falls back to client IP.
|
|
93
|
+
"""
|
|
94
|
+
headers = dict(scope.get("headers", []))
|
|
95
|
+
session_id = headers.get(b"x-opencode-session", b"").decode()
|
|
96
|
+
if session_id:
|
|
97
|
+
return f"session:{session_id[:16]}"
|
|
98
|
+
return self._get_client_ip(scope)
|
|
83
99
|
|
|
84
100
|
def is_allowed(self, scope: dict) -> tuple[bool, int]:
|
|
85
101
|
"""Check if request is allowed. Returns (allowed, retry_after_seconds)."""
|
|
102
|
+
# Local traffic is trusted and must not be rate limited: all opencode
|
|
103
|
+
# sessions and subagents connect over loopback, and throttling them
|
|
104
|
+
# only serves to break legitimate concurrent usage.
|
|
105
|
+
if self._get_client_ip(scope) in _LOCAL_IPS:
|
|
106
|
+
return True, 0
|
|
107
|
+
|
|
86
108
|
client_id = self._get_client_id(scope)
|
|
87
109
|
now = time.time()
|
|
88
110
|
window_start = now - self.window_seconds
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"""Background job queue system (Sidekiq-like)."""
|
|
2
|
+
|
|
3
|
+
from opencode_memory.jobs.circuit_breaker import (
|
|
4
|
+
CircuitBreakerManager,
|
|
5
|
+
CircuitBreakerOpenError,
|
|
6
|
+
)
|
|
7
|
+
from opencode_memory.jobs.executor import (
|
|
8
|
+
JobExecutor,
|
|
9
|
+
JobExecutorBuilder,
|
|
10
|
+
ResourceLimits,
|
|
11
|
+
)
|
|
12
|
+
from opencode_memory.jobs.handlers import JobHandlers
|
|
13
|
+
from opencode_memory.jobs.queue import (
|
|
14
|
+
DEFAULT_CONFIGS,
|
|
15
|
+
JobConfigRegistry,
|
|
16
|
+
JobQueue,
|
|
17
|
+
)
|
|
18
|
+
from opencode_memory.jobs.scheduler import (
|
|
19
|
+
DEFAULT_SCHEDULES,
|
|
20
|
+
JobScheduler,
|
|
21
|
+
ScheduleConfig,
|
|
22
|
+
)
|
|
23
|
+
from opencode_memory.jobs.worker import BackgroundJobWorker
|
|
24
|
+
from opencode_memory.models import (
|
|
25
|
+
BackgroundJob,
|
|
26
|
+
CircuitBreaker,
|
|
27
|
+
CircuitBreakerState,
|
|
28
|
+
DeadJob,
|
|
29
|
+
JobConfig,
|
|
30
|
+
JobMetrics,
|
|
31
|
+
JobStatus,
|
|
32
|
+
ResourceType,
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
__all__ = [
|
|
36
|
+
# Queue
|
|
37
|
+
"JobQueue",
|
|
38
|
+
"JobConfigRegistry",
|
|
39
|
+
"DEFAULT_CONFIGS",
|
|
40
|
+
# Scheduler
|
|
41
|
+
"JobScheduler",
|
|
42
|
+
"ScheduleConfig",
|
|
43
|
+
"DEFAULT_SCHEDULES",
|
|
44
|
+
# Executor
|
|
45
|
+
"JobExecutor",
|
|
46
|
+
"JobExecutorBuilder",
|
|
47
|
+
"ResourceLimits",
|
|
48
|
+
# Handlers
|
|
49
|
+
"JobHandlers",
|
|
50
|
+
# Worker
|
|
51
|
+
"BackgroundJobWorker",
|
|
52
|
+
# Circuit Breaker
|
|
53
|
+
"CircuitBreakerManager",
|
|
54
|
+
"CircuitBreakerOpenError",
|
|
55
|
+
# Models
|
|
56
|
+
"BackgroundJob",
|
|
57
|
+
"CircuitBreaker",
|
|
58
|
+
"CircuitBreakerState",
|
|
59
|
+
"DeadJob",
|
|
60
|
+
"JobConfig",
|
|
61
|
+
"JobMetrics",
|
|
62
|
+
"JobStatus",
|
|
63
|
+
"ResourceType",
|
|
64
|
+
]
|