remdb 0.3.122__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.
- remdb-0.3.122/.claude/archive/PUBLISH.md +158 -0
- remdb-0.3.122/.claude/archive/QUICKSTART.md +205 -0
- remdb-0.3.122/.claude/archive/publish.sh +47 -0
- remdb-0.3.122/.claude/settings.local.json +18 -0
- remdb-0.3.122/.dockerignore +71 -0
- remdb-0.3.122/.env.example +165 -0
- remdb-0.3.122/.experiments/README.md +412 -0
- remdb-0.3.122/.experiments/RUN_ON_CLUSTER.md +511 -0
- remdb-0.3.122/.experiments/TESTING_GUIDE.md +617 -0
- remdb-0.3.122/.experiments/test-phoenix-integration.sh +346 -0
- remdb-0.3.122/.gitignore +129 -0
- remdb-0.3.122/.kreuzberg/mime/039976f3b4dc7549.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/045e65492b634d11.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/07f5cd0e3fb1d287.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/08f4ae339838b804.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/0a64e58ae1289686.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/0da06e67dd284834.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/0e200bfe2ea523f2.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/10b1925cb6007390.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/11c55125d2be1895.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/12dd62bbe8ee9b6a.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/18f78825b8e302a8.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/19a7ff44501eb3f9.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/1c9cec1b6f266e8d.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/1db0e7d4ac2443af.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/1f32d592b118d944.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/20db05a60f4c6ce3.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/220746359cef9884.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/24034098fd444b39.msgpack +2 -0
- remdb-0.3.122/.kreuzberg/mime/24acc2df261ae549.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/26a8ed0cdfc0ccab.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/28e3c2bf25dfc659.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/295a37ef869b0a49.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/2a6f58009e01ad65.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/2ab7ae3b2e42644e.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/2b24548c2f91f8b9.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/mime/2bb63e6235d19b40.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/2c74a0f17cde1b0c.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/2d728912eb223a33.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/2de80149b410a676.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/2e1001cbed04103c.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/32d99ccf71d10a38.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/3353ae12a176a9bd.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/3c5bd974fb83b573.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/3ca9da43dd834bca.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/3e9db2b8a87873c7.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/3ff1b430e0b510d5.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/4035607526c8600d.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/40f0415d564cb996.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/4388f8ee095c9ed8.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/439f422b7f8dc467.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/452c56ffd625931f.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/45ee850e300157c8.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/45f79b5f90a07f0e.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/487e56b12d123968.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/49be62bf170de12a.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/mime/4b3e165ec4ba87d0.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/505ff13d9ac8f006.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/51e81cbe7899e310.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/537dea93b57ffce5.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/56a9f1cd9ec05384.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/57ab5fe18c74538b.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/5a11f436d88e89cd.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/5b10dca1c6db6714.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/5eb63bbe412735a4.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/5ebca8549bb3ff2b.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/5fef074c57dd118f.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/60f343229f836ab6.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/6153f83bf3713b32.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/6488134e7b6dd403.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/68e7b00767be2e16.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/6afac5499ef0a938.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/6bd93d4fd4cc3893.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/6defbba8bfc76983.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/6e37f5165f71513b.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/6f9130d5f4db8b28.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/6fc0d79c16c59de5.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/774b8c209528323e.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/78c509bc3a9d93c4.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/798017037907ab5f.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/7a4fd9fd84ae6899.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/7b094993adee6e1a.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/7c3ad418912e7c09.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/7f630276be2a1503.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/80fd68e8a4ac6556.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/819aabcfdf1334af.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/81ea65c652232174.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/84c4f70ba7616566.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/856e8ba75c4d220e.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/8d1ecc30d7d58b41.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/8e2e4ab7c05925fa.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/8e89a980bc3b92d8.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/8f6a9b01f15883f5.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/9091b9d61e026046.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/927a028cf723c70d.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/94bda8f2cabc1358.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/95313ccec52beb53.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/954fee40bb61432b.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/9592cc24f2bf0d77.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/967396ed95832197.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/9804f3b02bf98e83.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/9936890e55f094f3.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/99405cab6cc35283.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/99e3da57a007bc59.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/9c265a028ee05977.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/9f02e484a5feb3af.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/9fd81ffc0b3282f8.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/a2bcfb3e4cf75d71.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/a3fd1a45a0ef02f1.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/a72acced3b5f0c28.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/a78fa3051259d29c.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/a964045be65be2d2.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/ae8bc0c15954a96a.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/af05b5754cd245b5.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/af28c894e94dc85c.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/b0a26c1396c336b2.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/b2f8df0bdc713008.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/b361fc308a3b9ab1.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/b374846290238cd1.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/b4b163b746d0aa53.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/b68845f6e8da9be3.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/b7e677bf8412e9bd.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/b99ba32d31caa65e.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/bc02d7c24ec8eccc.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/bc1a967be3c37e18.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/bc89d1801e46fb3c.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/bce873a224061155.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/bea4de84b22aebbc.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/c5f723dcb1ff4b6f.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/c6ca46f28d7798dd.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/c6e2f4ede9282c2f.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/c761de11e901384a.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/c99399d1889fa84c.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/c9fd297a955f2355.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/ca9a80b78b7aa22c.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/cb9503b8979b185d.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/cbc6cfb0a51ab6bb.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/cc3bda1ed2e95150.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/ceb98745ab5dbe70.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/d1e1e212112ab926.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/d4b766742cf2328a.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/d93262cc2f01da93.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/d977ad06778acf8d.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/da9376a352a900b8.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/db2816895dd01979.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/db3a782c367dbe28.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/db825a17acae232c.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/dc96bd8d8ad04ee4.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/dd1562878ff3c0f5.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/de117be85702ebbc.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/e3aafc52b94d322c.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/e53a6e77d7808ee8.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/e7dc452a2aae9b10.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/ebf2fcb04221173e.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/ebf527595602c7cc.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/ed6a8410124b956b.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/f1801152a72fbdf0.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/f6fe984552a62891.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/f81bbef279fc5018.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/f975369ecf8cfe1b.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/mime/fd21c48c0c429b77.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/0354796dc060829e.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/039f9af1f7851836.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/05e117af5b509bae.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/0bc34e3949fbef01.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/0ce495589c7221d3.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/0dd1cda742544db1.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/0eba31912f25f3eb.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/0f2703145ac02172.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/0fa09530ccf28805.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/0fd8e540615171e8.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/101ff2c4997376a9.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/12c490c06def9488.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/18257c152bba13a6.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/1d4a6a418d2b6a64.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/1e61d3c782893a54.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/1fc92f87c93d4fd9.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/2c9de54bccd13e11.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/2f3ea5c1badef128.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/32aa8c660cf91963.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/35111034d5ad26a6.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/352eb0c7f720c196.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/3a2e224daffb8e3d.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/3ee772a67521e170.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/401e93fa320273da.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/40d9b4294628036d.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/44592db880e5ec3f.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/45870b434cfe0c85.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/458943c95381e6de.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/4ca27bb3cae67ad6.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/4e0d19bea7253cc8.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/4f02317672f3198b.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/56a98d6dbd85ebed.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/5d6b31c824d8741e.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/5f75509e9ed27170.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/5fcfe11a675bac8b.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/61b8b2fc9077f91a.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/642c92672daf5c43.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/655ff32e6cd550bc.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/65bc24178c843052.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/66cd62510980471d.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/681c1dd84a2bdf26.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/6838fe47e511b2b8.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/6a609539ed167213.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/74b6b71e76efb9c9.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/75e719c76477d44f.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/77e0e879c2c95195.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/7a15ef0ba4aa5660.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/7a9dd710389dde99.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/7b783286f80ab872.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/7d1298c12634bc16.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/7ddf2b8e4c6cb2e3.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/7fc2229fcb868522.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/85abdb138905726a.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/884e41282eb896c5.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/8a703994c30b19ea.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/8aca0021ebe63f8e.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/8bc107890e1ab320.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/8c1a66ea86c98f76.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/8dd5ac3207b6ca3b.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/8f898c00eea3a93b.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/931cbc8a4cbebf70.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/932804c1aff4d044.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/94b151c44f8a3588.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/94ce2189385c970f.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/94fa736d741d63be.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/95bd2009772c07fd.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/95f748fee80393ef.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/9b1e26a55ef34ee9.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/9f3159c9912586db.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/a17c34748d867e85.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/a2ca0018b46feabd.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/a60b9031cf48ebba.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/a9be790d1f0ae7ec.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/ac4d6823c4034fe6.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/ad80625c2fe055e2.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/b102691e3c3e4cae.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/b34027c96f8daa30.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/b639b463e04459db.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/b7e540f21b7f0271.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/ba460ba22b61b3ac.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/ba7499ca4c58ff94.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/be2d027b571e9344.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/c1fff30850bb8b6f.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/c3889a8993fc490d.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/c51c4fa6e6b83f7e.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/c57ca30ea53e2d68.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/c64c433f4452d82a.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/c91739ca8dcc39ea.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/c91d5e81eba0d3c9.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/c9fecad2b9f0357c.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/cb7fab9ab7b8c520.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/cbbaeea4c7d24156.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/cc7dd2a0003c03d8.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/ce64ddc6701623a7.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/d19b01ce83c8c71a.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/d5aae4af1fe94a3a.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/d5c47dfe60be1592.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/d7eef627315eeab2.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/d81cb4d0b47db4ae.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/deed4c82c27e2b5d.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/df1c0ed33adf634d.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/e1c2af52b798715b.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/e249b7de89e07bbc.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/e6b6c0b80707ee08.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/e74d1c6e8e950e20.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/e9d2da361090c228.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/ec8c114b8a360379.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/f1772556a9442724.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/f4753f23f51fe441.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/f52c654a914ee356.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/f6187d9353655ff5.msgpack +1 -0
- remdb-0.3.122/.kreuzberg/tables/f766aa4cfdca2770.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/fabcc3a4db082252.msgpack +0 -0
- remdb-0.3.122/.kreuzberg/tables/fec2d3d5372c2bcc.msgpack +0 -0
- remdb-0.3.122/.venv-test/bin/Activate.ps1 +247 -0
- remdb-0.3.122/.venv-test/bin/activate +76 -0
- remdb-0.3.122/.venv-test/bin/activate-global-python-argcomplete +7 -0
- remdb-0.3.122/.venv-test/bin/activate.csh +27 -0
- remdb-0.3.122/.venv-test/bin/activate.fish +69 -0
- remdb-0.3.122/.venv-test/bin/alembic +7 -0
- remdb-0.3.122/.venv-test/bin/arize-phoenix +7 -0
- remdb-0.3.122/.venv-test/bin/cyclopts +7 -0
- remdb-0.3.122/.venv-test/bin/distro +7 -0
- remdb-0.3.122/.venv-test/bin/docutils +7 -0
- remdb-0.3.122/.venv-test/bin/dotenv +7 -0
- remdb-0.3.122/.venv-test/bin/email_validator +7 -0
- remdb-0.3.122/.venv-test/bin/f2py +7 -0
- remdb-0.3.122/.venv-test/bin/fastapi +7 -0
- remdb-0.3.122/.venv-test/bin/fastavro +7 -0
- remdb-0.3.122/.venv-test/bin/fastmcp +7 -0
- remdb-0.3.122/.venv-test/bin/genai-prices +7 -0
- remdb-0.3.122/.venv-test/bin/get_gprof +75 -0
- remdb-0.3.122/.venv-test/bin/get_objgraph +54 -0
- remdb-0.3.122/.venv-test/bin/griffe +7 -0
- remdb-0.3.122/.venv-test/bin/hf +7 -0
- remdb-0.3.122/.venv-test/bin/httpx +7 -0
- remdb-0.3.122/.venv-test/bin/hypercorn +7 -0
- remdb-0.3.122/.venv-test/bin/inv +7 -0
- remdb-0.3.122/.venv-test/bin/invoke +7 -0
- remdb-0.3.122/.venv-test/bin/jp.py +54 -0
- remdb-0.3.122/.venv-test/bin/jsonpath_ng +7 -0
- remdb-0.3.122/.venv-test/bin/jsonschema +7 -0
- remdb-0.3.122/.venv-test/bin/keyring +7 -0
- remdb-0.3.122/.venv-test/bin/kreuzberg +7 -0
- remdb-0.3.122/.venv-test/bin/logfire +7 -0
- remdb-0.3.122/.venv-test/bin/mako-render +7 -0
- remdb-0.3.122/.venv-test/bin/markdown-it +7 -0
- remdb-0.3.122/.venv-test/bin/mcp +7 -0
- remdb-0.3.122/.venv-test/bin/mpire-dashboard +41 -0
- remdb-0.3.122/.venv-test/bin/normalizer +7 -0
- remdb-0.3.122/.venv-test/bin/numpy-config +7 -0
- remdb-0.3.122/.venv-test/bin/openai +7 -0
- remdb-0.3.122/.venv-test/bin/opentelemetry-bootstrap +7 -0
- remdb-0.3.122/.venv-test/bin/opentelemetry-instrument +7 -0
- remdb-0.3.122/.venv-test/bin/pai +7 -0
- remdb-0.3.122/.venv-test/bin/phoenix +7 -0
- remdb-0.3.122/.venv-test/bin/pip +7 -0
- remdb-0.3.122/.venv-test/bin/pip3 +7 -0
- remdb-0.3.122/.venv-test/bin/pip3.12 +7 -0
- remdb-0.3.122/.venv-test/bin/pygmentize +7 -0
- remdb-0.3.122/.venv-test/bin/pyrsa-decrypt +7 -0
- remdb-0.3.122/.venv-test/bin/pyrsa-encrypt +7 -0
- remdb-0.3.122/.venv-test/bin/pyrsa-keygen +7 -0
- remdb-0.3.122/.venv-test/bin/pyrsa-priv2pub +7 -0
- remdb-0.3.122/.venv-test/bin/pyrsa-sign +7 -0
- remdb-0.3.122/.venv-test/bin/pyrsa-verify +7 -0
- remdb-0.3.122/.venv-test/bin/pystache +7 -0
- remdb-0.3.122/.venv-test/bin/pystache-test +7 -0
- remdb-0.3.122/.venv-test/bin/python +1 -0
- remdb-0.3.122/.venv-test/bin/python-argcomplete-check-easy-install-script +7 -0
- remdb-0.3.122/.venv-test/bin/python3 +1 -0
- remdb-0.3.122/.venv-test/bin/python3.12 +1 -0
- remdb-0.3.122/.venv-test/bin/register-python-argcomplete +7 -0
- remdb-0.3.122/.venv-test/bin/rem +7 -0
- remdb-0.3.122/.venv-test/bin/rst2html +7 -0
- remdb-0.3.122/.venv-test/bin/rst2html4 +7 -0
- remdb-0.3.122/.venv-test/bin/rst2html5 +7 -0
- remdb-0.3.122/.venv-test/bin/rst2latex +7 -0
- remdb-0.3.122/.venv-test/bin/rst2man +7 -0
- remdb-0.3.122/.venv-test/bin/rst2odt +7 -0
- remdb-0.3.122/.venv-test/bin/rst2pseudoxml +7 -0
- remdb-0.3.122/.venv-test/bin/rst2s5 +7 -0
- remdb-0.3.122/.venv-test/bin/rst2xetex +7 -0
- remdb-0.3.122/.venv-test/bin/rst2xml +7 -0
- remdb-0.3.122/.venv-test/bin/strawberry +7 -0
- remdb-0.3.122/.venv-test/bin/tiny-agents +7 -0
- remdb-0.3.122/.venv-test/bin/tqdm +7 -0
- remdb-0.3.122/.venv-test/bin/undill +22 -0
- remdb-0.3.122/.venv-test/bin/uvicorn +7 -0
- remdb-0.3.122/.venv-test/bin/watchfiles +7 -0
- remdb-0.3.122/.venv-test/bin/websockets +7 -0
- remdb-0.3.122/.venv-test/pyvenv.cfg +5 -0
- remdb-0.3.122/Dockerfile +129 -0
- remdb-0.3.122/PKG-INFO +1527 -0
- remdb-0.3.122/README.md +1441 -0
- remdb-0.3.122/Tiltfile +169 -0
- remdb-0.3.122/alembic/README.md +104 -0
- remdb-0.3.122/alembic/env.py +102 -0
- remdb-0.3.122/alembic/script.py.mako +26 -0
- remdb-0.3.122/alembic.ini +75 -0
- remdb-0.3.122/dev-setup.sh +76 -0
- remdb-0.3.122/docker-compose.prebuilt.yml +79 -0
- remdb-0.3.122/docker-compose.test.yml +44 -0
- remdb-0.3.122/docker-compose.yml +151 -0
- remdb-0.3.122/pyproject.toml +221 -0
- remdb-0.3.122/src/rem/__init__.py +129 -0
- remdb-0.3.122/src/rem/agentic/README.md +726 -0
- remdb-0.3.122/src/rem/agentic/__init__.py +54 -0
- remdb-0.3.122/src/rem/agentic/agents/README.md +155 -0
- remdb-0.3.122/src/rem/agentic/agents/__init__.py +22 -0
- remdb-0.3.122/src/rem/agentic/agents/sse_simulator.py +502 -0
- remdb-0.3.122/src/rem/agentic/context.py +174 -0
- remdb-0.3.122/src/rem/agentic/context_builder.py +329 -0
- remdb-0.3.122/src/rem/agentic/llm_provider_models.py +301 -0
- remdb-0.3.122/src/rem/agentic/mcp/__init__.py +0 -0
- remdb-0.3.122/src/rem/agentic/mcp/tool_wrapper.py +133 -0
- remdb-0.3.122/src/rem/agentic/otel/__init__.py +5 -0
- remdb-0.3.122/src/rem/agentic/otel/setup.py +240 -0
- remdb-0.3.122/src/rem/agentic/providers/phoenix.py +663 -0
- remdb-0.3.122/src/rem/agentic/providers/pydantic_ai.py +716 -0
- remdb-0.3.122/src/rem/agentic/query.py +117 -0
- remdb-0.3.122/src/rem/agentic/query_helper.py +89 -0
- remdb-0.3.122/src/rem/agentic/schema.py +733 -0
- remdb-0.3.122/src/rem/agentic/serialization.py +245 -0
- remdb-0.3.122/src/rem/agentic/tools/__init__.py +5 -0
- remdb-0.3.122/src/rem/agentic/tools/rem_tools.py +231 -0
- remdb-0.3.122/src/rem/api/README.md +657 -0
- remdb-0.3.122/src/rem/api/deps.py +255 -0
- remdb-0.3.122/src/rem/api/main.py +441 -0
- remdb-0.3.122/src/rem/api/mcp_router/prompts.py +182 -0
- remdb-0.3.122/src/rem/api/mcp_router/resources.py +536 -0
- remdb-0.3.122/src/rem/api/mcp_router/server.py +234 -0
- remdb-0.3.122/src/rem/api/mcp_router/tools.py +1042 -0
- remdb-0.3.122/src/rem/api/middleware/tracking.py +172 -0
- remdb-0.3.122/src/rem/api/routers/admin.py +494 -0
- remdb-0.3.122/src/rem/api/routers/auth.py +353 -0
- remdb-0.3.122/src/rem/api/routers/chat/__init__.py +5 -0
- remdb-0.3.122/src/rem/api/routers/chat/completions.py +663 -0
- remdb-0.3.122/src/rem/api/routers/chat/json_utils.py +76 -0
- remdb-0.3.122/src/rem/api/routers/chat/models.py +202 -0
- remdb-0.3.122/src/rem/api/routers/chat/otel_utils.py +33 -0
- remdb-0.3.122/src/rem/api/routers/chat/sse_events.py +542 -0
- remdb-0.3.122/src/rem/api/routers/chat/streaming.py +782 -0
- remdb-0.3.122/src/rem/api/routers/dev.py +81 -0
- remdb-0.3.122/src/rem/api/routers/feedback.py +268 -0
- remdb-0.3.122/src/rem/api/routers/messages.py +473 -0
- remdb-0.3.122/src/rem/api/routers/models.py +78 -0
- remdb-0.3.122/src/rem/api/routers/query.py +360 -0
- remdb-0.3.122/src/rem/api/routers/shared_sessions.py +406 -0
- remdb-0.3.122/src/rem/auth/README.md +258 -0
- remdb-0.3.122/src/rem/auth/__init__.py +26 -0
- remdb-0.3.122/src/rem/auth/middleware.py +199 -0
- remdb-0.3.122/src/rem/auth/providers/__init__.py +13 -0
- remdb-0.3.122/src/rem/auth/providers/base.py +376 -0
- remdb-0.3.122/src/rem/auth/providers/google.py +163 -0
- remdb-0.3.122/src/rem/auth/providers/microsoft.py +237 -0
- remdb-0.3.122/src/rem/cli/README.md +455 -0
- remdb-0.3.122/src/rem/cli/__init__.py +8 -0
- remdb-0.3.122/src/rem/cli/commands/README.md +299 -0
- remdb-0.3.122/src/rem/cli/commands/__init__.py +3 -0
- remdb-0.3.122/src/rem/cli/commands/ask.py +569 -0
- remdb-0.3.122/src/rem/cli/commands/cluster.py +1808 -0
- remdb-0.3.122/src/rem/cli/commands/configure.py +496 -0
- remdb-0.3.122/src/rem/cli/commands/db.py +750 -0
- remdb-0.3.122/src/rem/cli/commands/dreaming.py +324 -0
- remdb-0.3.122/src/rem/cli/commands/experiments.py +1306 -0
- remdb-0.3.122/src/rem/cli/commands/mcp.py +66 -0
- remdb-0.3.122/src/rem/cli/commands/process.py +252 -0
- remdb-0.3.122/src/rem/cli/commands/scaffold.py +47 -0
- remdb-0.3.122/src/rem/cli/commands/schema.py +230 -0
- remdb-0.3.122/src/rem/cli/commands/serve.py +106 -0
- remdb-0.3.122/src/rem/cli/dreaming.py +363 -0
- remdb-0.3.122/src/rem/cli/main.py +119 -0
- remdb-0.3.122/src/rem/config.py +237 -0
- remdb-0.3.122/src/rem/mcp_server.py +41 -0
- remdb-0.3.122/src/rem/models/core/__init__.py +49 -0
- remdb-0.3.122/src/rem/models/core/core_model.py +70 -0
- remdb-0.3.122/src/rem/models/core/engram.py +333 -0
- remdb-0.3.122/src/rem/models/core/experiment.py +628 -0
- remdb-0.3.122/src/rem/models/core/inline_edge.py +132 -0
- remdb-0.3.122/src/rem/models/core/rem_query.py +246 -0
- remdb-0.3.122/src/rem/models/entities/__init__.py +64 -0
- remdb-0.3.122/src/rem/models/entities/domain_resource.py +38 -0
- remdb-0.3.122/src/rem/models/entities/feedback.py +123 -0
- remdb-0.3.122/src/rem/models/entities/file.py +57 -0
- remdb-0.3.122/src/rem/models/entities/image_resource.py +88 -0
- remdb-0.3.122/src/rem/models/entities/message.py +64 -0
- remdb-0.3.122/src/rem/models/entities/moment.py +123 -0
- remdb-0.3.122/src/rem/models/entities/ontology.py +191 -0
- remdb-0.3.122/src/rem/models/entities/ontology_config.py +131 -0
- remdb-0.3.122/src/rem/models/entities/resource.py +95 -0
- remdb-0.3.122/src/rem/models/entities/schema.py +87 -0
- remdb-0.3.122/src/rem/models/entities/session.py +83 -0
- remdb-0.3.122/src/rem/models/entities/shared_session.py +180 -0
- remdb-0.3.122/src/rem/models/entities/user.py +92 -0
- remdb-0.3.122/src/rem/py.typed +0 -0
- remdb-0.3.122/src/rem/registry.py +373 -0
- remdb-0.3.122/src/rem/schemas/README.md +507 -0
- remdb-0.3.122/src/rem/schemas/__init__.py +6 -0
- remdb-0.3.122/src/rem/schemas/agents/README.md +92 -0
- remdb-0.3.122/src/rem/schemas/agents/core/moment-builder.yaml +178 -0
- remdb-0.3.122/src/rem/schemas/agents/core/rem-query-agent.yaml +226 -0
- remdb-0.3.122/src/rem/schemas/agents/core/resource-affinity-assessor.yaml +99 -0
- remdb-0.3.122/src/rem/schemas/agents/core/simple-assistant.yaml +19 -0
- remdb-0.3.122/src/rem/schemas/agents/core/user-profile-builder.yaml +163 -0
- remdb-0.3.122/src/rem/schemas/agents/examples/contract-analyzer.yaml +317 -0
- remdb-0.3.122/src/rem/schemas/agents/examples/contract-extractor.yaml +134 -0
- remdb-0.3.122/src/rem/schemas/agents/examples/cv-parser.yaml +263 -0
- remdb-0.3.122/src/rem/schemas/agents/examples/hello-world.yaml +37 -0
- remdb-0.3.122/src/rem/schemas/agents/examples/query.yaml +54 -0
- remdb-0.3.122/src/rem/schemas/agents/examples/simple.yaml +21 -0
- remdb-0.3.122/src/rem/schemas/agents/examples/test.yaml +29 -0
- remdb-0.3.122/src/rem/schemas/agents/rem.yaml +132 -0
- remdb-0.3.122/src/rem/schemas/evaluators/hello-world/default.yaml +77 -0
- remdb-0.3.122/src/rem/schemas/evaluators/rem/faithfulness.yaml +219 -0
- remdb-0.3.122/src/rem/schemas/evaluators/rem/lookup-correctness.yaml +182 -0
- remdb-0.3.122/src/rem/schemas/evaluators/rem/retrieval-precision.yaml +199 -0
- remdb-0.3.122/src/rem/schemas/evaluators/rem/retrieval-recall.yaml +211 -0
- remdb-0.3.122/src/rem/schemas/evaluators/rem/search-correctness.yaml +192 -0
- remdb-0.3.122/src/rem/services/__init__.py +16 -0
- remdb-0.3.122/src/rem/services/audio/INTEGRATION.md +308 -0
- remdb-0.3.122/src/rem/services/audio/README.md +376 -0
- remdb-0.3.122/src/rem/services/audio/__init__.py +15 -0
- remdb-0.3.122/src/rem/services/audio/chunker.py +354 -0
- remdb-0.3.122/src/rem/services/audio/transcriber.py +259 -0
- remdb-0.3.122/src/rem/services/content/README.md +1269 -0
- remdb-0.3.122/src/rem/services/content/__init__.py +5 -0
- remdb-0.3.122/src/rem/services/content/providers.py +760 -0
- remdb-0.3.122/src/rem/services/content/service.py +748 -0
- remdb-0.3.122/src/rem/services/dreaming/README.md +230 -0
- remdb-0.3.122/src/rem/services/dreaming/__init__.py +53 -0
- remdb-0.3.122/src/rem/services/dreaming/affinity_service.py +322 -0
- remdb-0.3.122/src/rem/services/dreaming/moment_service.py +251 -0
- remdb-0.3.122/src/rem/services/dreaming/ontology_service.py +54 -0
- remdb-0.3.122/src/rem/services/dreaming/user_model_service.py +297 -0
- remdb-0.3.122/src/rem/services/dreaming/utils.py +39 -0
- remdb-0.3.122/src/rem/services/embeddings/__init__.py +11 -0
- remdb-0.3.122/src/rem/services/embeddings/api.py +127 -0
- remdb-0.3.122/src/rem/services/embeddings/worker.py +421 -0
- remdb-0.3.122/src/rem/services/fs/README.md +662 -0
- remdb-0.3.122/src/rem/services/fs/__init__.py +62 -0
- remdb-0.3.122/src/rem/services/fs/examples.py +206 -0
- remdb-0.3.122/src/rem/services/fs/examples_paths.py +204 -0
- remdb-0.3.122/src/rem/services/fs/git_provider.py +935 -0
- remdb-0.3.122/src/rem/services/fs/local_provider.py +760 -0
- remdb-0.3.122/src/rem/services/fs/parsing-hooks-examples.md +172 -0
- remdb-0.3.122/src/rem/services/fs/paths.py +276 -0
- remdb-0.3.122/src/rem/services/fs/provider.py +460 -0
- remdb-0.3.122/src/rem/services/fs/s3_provider.py +1042 -0
- remdb-0.3.122/src/rem/services/fs/service.py +186 -0
- remdb-0.3.122/src/rem/services/git/README.md +1075 -0
- remdb-0.3.122/src/rem/services/git/__init__.py +17 -0
- remdb-0.3.122/src/rem/services/git/service.py +469 -0
- remdb-0.3.122/src/rem/services/phoenix/EXPERIMENT_DESIGN.md +1146 -0
- remdb-0.3.122/src/rem/services/phoenix/README.md +453 -0
- remdb-0.3.122/src/rem/services/phoenix/__init__.py +46 -0
- remdb-0.3.122/src/rem/services/phoenix/client.py +960 -0
- remdb-0.3.122/src/rem/services/phoenix/config.py +88 -0
- remdb-0.3.122/src/rem/services/phoenix/prompt_labels.py +477 -0
- remdb-0.3.122/src/rem/services/postgres/README.md +719 -0
- remdb-0.3.122/src/rem/services/postgres/__init__.py +24 -0
- remdb-0.3.122/src/rem/services/postgres/diff_service.py +531 -0
- remdb-0.3.122/src/rem/services/postgres/migration_service.py +427 -0
- remdb-0.3.122/src/rem/services/postgres/pydantic_to_sqlalchemy.py +530 -0
- remdb-0.3.122/src/rem/services/postgres/register_type.py +352 -0
- remdb-0.3.122/src/rem/services/postgres/repository.py +469 -0
- remdb-0.3.122/src/rem/services/postgres/schema_generator.py +661 -0
- remdb-0.3.122/src/rem/services/postgres/service.py +802 -0
- remdb-0.3.122/src/rem/services/postgres/sql_builder.py +354 -0
- remdb-0.3.122/src/rem/services/rate_limit.py +113 -0
- remdb-0.3.122/src/rem/services/rem/README.md +318 -0
- remdb-0.3.122/src/rem/services/rem/__init__.py +23 -0
- remdb-0.3.122/src/rem/services/rem/exceptions.py +71 -0
- remdb-0.3.122/src/rem/services/rem/executor.py +293 -0
- remdb-0.3.122/src/rem/services/rem/parser.py +180 -0
- remdb-0.3.122/src/rem/services/rem/queries.py +196 -0
- remdb-0.3.122/src/rem/services/rem/query.py +371 -0
- remdb-0.3.122/src/rem/services/rem/service.py +561 -0
- remdb-0.3.122/src/rem/services/session/README.md +374 -0
- remdb-0.3.122/src/rem/services/session/__init__.py +6 -0
- remdb-0.3.122/src/rem/services/session/compression.py +383 -0
- remdb-0.3.122/src/rem/services/session/reload.py +77 -0
- remdb-0.3.122/src/rem/services/user_service.py +98 -0
- remdb-0.3.122/src/rem/settings.py +1493 -0
- remdb-0.3.122/src/rem/sql/background_indexes.sql +47 -0
- remdb-0.3.122/src/rem/sql/migrations/001_install.sql +836 -0
- remdb-0.3.122/src/rem/sql/migrations/002_install_models.sql +3129 -0
- remdb-0.3.122/src/rem/sql/migrations/003_optional_extensions.sql +326 -0
- remdb-0.3.122/src/rem/sql/migrations/004_cache_system.sql +548 -0
- remdb-0.3.122/src/rem/utils/AGENTIC_CHUNKING.md +597 -0
- remdb-0.3.122/src/rem/utils/README.md +583 -0
- remdb-0.3.122/src/rem/utils/__init__.py +61 -0
- remdb-0.3.122/src/rem/utils/agentic_chunking.py +622 -0
- remdb-0.3.122/src/rem/utils/batch_ops.py +343 -0
- remdb-0.3.122/src/rem/utils/chunking.py +108 -0
- remdb-0.3.122/src/rem/utils/clip_embeddings.py +276 -0
- remdb-0.3.122/src/rem/utils/constants.py +97 -0
- remdb-0.3.122/src/rem/utils/date_utils.py +228 -0
- remdb-0.3.122/src/rem/utils/dict_utils.py +98 -0
- remdb-0.3.122/src/rem/utils/embeddings.py +436 -0
- remdb-0.3.122/src/rem/utils/examples/embeddings_example.py +305 -0
- remdb-0.3.122/src/rem/utils/examples/sql_types_example.py +202 -0
- remdb-0.3.122/src/rem/utils/files.py +167 -0
- remdb-0.3.122/src/rem/utils/markdown.py +16 -0
- remdb-0.3.122/src/rem/utils/mime_types.py +158 -0
- remdb-0.3.122/src/rem/utils/model_helpers.py +391 -0
- remdb-0.3.122/src/rem/utils/schema_loader.py +492 -0
- remdb-0.3.122/src/rem/utils/sql_paths.py +146 -0
- remdb-0.3.122/src/rem/utils/sql_types.py +350 -0
- remdb-0.3.122/src/rem/utils/user_id.py +81 -0
- remdb-0.3.122/src/rem/utils/vision.py +325 -0
- remdb-0.3.122/src/rem/workers/README.md +506 -0
- remdb-0.3.122/src/rem/workers/__init__.py +7 -0
- remdb-0.3.122/src/rem/workers/db_listener.py +579 -0
- remdb-0.3.122/src/rem/workers/db_maintainer.py +74 -0
- remdb-0.3.122/src/rem/workers/dreaming.py +502 -0
- remdb-0.3.122/src/rem/workers/engram_processor.py +312 -0
- remdb-0.3.122/src/rem/workers/sqs_file_processor.py +193 -0
- remdb-0.3.122/src/rem/workers/unlogged_maintainer.py +463 -0
- remdb-0.3.122/tests/README.md +398 -0
- remdb-0.3.122/tests/__init__.py +3 -0
- remdb-0.3.122/tests/conftest.py +38 -0
- remdb-0.3.122/tests/data/README.md +173 -0
- remdb-0.3.122/tests/data/audio/README.md +51 -0
- remdb-0.3.122/tests/data/audio/SUMMARY.md +141 -0
- remdb-0.3.122/tests/data/audio/generate_test_audio.py +148 -0
- remdb-0.3.122/tests/data/audio/test_hq_30s.wav +0 -0
- remdb-0.3.122/tests/data/audio/test_long_90s.wav +0 -0
- remdb-0.3.122/tests/data/audio/test_medium_10s.wav +0 -0
- remdb-0.3.122/tests/data/audio/test_short_3s.wav +0 -0
- remdb-0.3.122/tests/data/audio/test_standard_30s.wav +0 -0
- remdb-0.3.122/tests/data/content-examples/pdf/README.md +184 -0
- remdb-0.3.122/tests/data/content-examples/pdf/annual_financial_report.pdf +0 -0
- remdb-0.3.122/tests/data/content-examples/pdf/consulting_agreement.pdf +0 -0
- remdb-0.3.122/tests/data/content-examples/pdf/nda_agreement.pdf +0 -0
- remdb-0.3.122/tests/data/content-examples/pdf/sample_business_plan.pdf +0 -0
- remdb-0.3.122/tests/data/content-examples/pdf/sample_invoice.pdf +0 -0
- remdb-0.3.122/tests/data/content-examples/pdf/sample_research_paper.pdf +0 -0
- remdb-0.3.122/tests/data/content-examples/pdf/sample_resume.pdf +0 -0
- remdb-0.3.122/tests/data/content-examples/pdf/service_contract.pdf +0 -0
- remdb-0.3.122/tests/data/content-examples/test.md +3 -0
- remdb-0.3.122/tests/data/docs/CODE_REVIEW_FIXES.md +226 -0
- remdb-0.3.122/tests/data/docs/TEST_RESULTS.md +128 -0
- remdb-0.3.122/tests/data/docs/cli_verification.md +118 -0
- remdb-0.3.122/tests/data/docs/database-design.md +53 -0
- remdb-0.3.122/tests/data/docs/deep-learning-guide.md +38 -0
- remdb-0.3.122/tests/data/docs/ml-overview.md +21 -0
- remdb-0.3.122/tests/data/docs/python-best-practices.md +85 -0
- remdb-0.3.122/tests/data/docs/test_summary.md +96 -0
- remdb-0.3.122/tests/data/engrams/test-conversation.yaml +98 -0
- remdb-0.3.122/tests/data/engrams/test-diary-entry.yaml +44 -0
- remdb-0.3.122/tests/data/engrams/test-meeting-notes.yaml +102 -0
- remdb-0.3.122/tests/data/engrams/test-observation.yaml +72 -0
- remdb-0.3.122/tests/data/engrams/test-project-note.yaml +106 -0
- remdb-0.3.122/tests/data/graph_seed.yaml +45 -0
- remdb-0.3.122/tests/data/sample-architecture-doc.txt +48 -0
- remdb-0.3.122/tests/data/sample_conversations.yaml +84 -0
- remdb-0.3.122/tests/data/schemas/agents/query_agent.yaml +87 -0
- remdb-0.3.122/tests/data/schemas/agents/summarization_agent.yaml +83 -0
- remdb-0.3.122/tests/data/schemas/agents/test-cv-parser.yaml +120 -0
- remdb-0.3.122/tests/data/schemas/evaluators/accuracy_evaluator.yaml +61 -0
- remdb-0.3.122/tests/data/seed/001_sample_data.yaml +544 -0
- remdb-0.3.122/tests/data/seed/001_sample_data.yaml.bak +544 -0
- remdb-0.3.122/tests/data/seed/README.md +172 -0
- remdb-0.3.122/tests/data/seed/files/documents/api_spec.md +255 -0
- remdb-0.3.122/tests/data/seed/files/documents/meeting_notes.txt +128 -0
- remdb-0.3.122/tests/data/seed/files/engrams/personal_reflection.yaml +83 -0
- remdb-0.3.122/tests/data/seed/files/engrams/product_idea_voice_memo.yaml +63 -0
- remdb-0.3.122/tests/data/seed/files/engrams/team_standup_meeting.yaml +134 -0
- remdb-0.3.122/tests/data/seed/resources.yaml +282 -0
- remdb-0.3.122/tests/data/seed/shared_sessions_demo.yaml +242 -0
- remdb-0.3.122/tests/data/seed/test-user-data.yaml +159 -0
- remdb-0.3.122/tests/data/seed/test-user-data.yaml.bak +159 -0
- remdb-0.3.122/tests/data/seed/users.yaml +47 -0
- remdb-0.3.122/tests/integration/README.md +418 -0
- remdb-0.3.122/tests/integration/helpers/README.md +216 -0
- remdb-0.3.122/tests/integration/helpers/__init__.py +19 -0
- remdb-0.3.122/tests/integration/helpers/seed_data.py +115 -0
- remdb-0.3.122/tests/integration/phoenix/run_complete_experiment.py +609 -0
- remdb-0.3.122/tests/integration/phoenix/run_hello_world_experiment.py +305 -0
- remdb-0.3.122/tests/integration/phoenix/test_connection.py +26 -0
- remdb-0.3.122/tests/integration/rem-agent-eval-questions.yaml +180 -0
- remdb-0.3.122/tests/integration/rem-query-agent-tests.yaml +393 -0
- remdb-0.3.122/tests/integration/run_rem_agent_eval.py +375 -0
- remdb-0.3.122/tests/integration/sample_data/dreaming/load_sample_data.py +469 -0
- remdb-0.3.122/tests/integration/sample_data/dreaming/resources/api_design_discussion.md +42 -0
- remdb-0.3.122/tests/integration/sample_data/dreaming/resources/database_migration_plan.md +71 -0
- remdb-0.3.122/tests/integration/sample_data/dreaming/resources/morning_standup_notes.md +95 -0
- remdb-0.3.122/tests/integration/sample_data/dreaming/resources/production_incident_postmortem.md +111 -0
- remdb-0.3.122/tests/integration/sample_data/dreaming/resources/quarterly_reflection.md +65 -0
- remdb-0.3.122/tests/integration/services/test_content_providers.py +324 -0
- remdb-0.3.122/tests/integration/services/test_schema_provider.py +249 -0
- remdb-0.3.122/tests/integration/test_agent_end_to_end.py +187 -0
- remdb-0.3.122/tests/integration/test_agent_tool_invocation.py +80 -0
- remdb-0.3.122/tests/integration/test_agent_with_tools.py +164 -0
- remdb-0.3.122/tests/integration/test_api_endpoints.py +269 -0
- remdb-0.3.122/tests/integration/test_batch_upsert.py +268 -0
- remdb-0.3.122/tests/integration/test_completions_with_sessions.py +393 -0
- remdb-0.3.122/tests/integration/test_content_ingest_workflow.py +270 -0
- remdb-0.3.122/tests/integration/test_contract_extractor.py +175 -0
- remdb-0.3.122/tests/integration/test_dreaming_moments.py +171 -0
- remdb-0.3.122/tests/integration/test_dynamic_agents.py +100 -0
- remdb-0.3.122/tests/integration/test_embedding_worker.py +249 -0
- remdb-0.3.122/tests/integration/test_embeddings_e2e.py +228 -0
- remdb-0.3.122/tests/integration/test_feedback_endpoint.py +127 -0
- remdb-0.3.122/tests/integration/test_git_provider.py +215 -0
- remdb-0.3.122/tests/integration/test_graph_traversal.py +161 -0
- remdb-0.3.122/tests/integration/test_mcp_server_loading.py +143 -0
- remdb-0.3.122/tests/integration/test_mcp_tool_loading.py +176 -0
- remdb-0.3.122/tests/integration/test_mcp_tools.py +284 -0
- remdb-0.3.122/tests/integration/test_mcp_tools_layer.py +207 -0
- remdb-0.3.122/tests/integration/test_merge_strategies_demo.py +232 -0
- remdb-0.3.122/tests/integration/test_natural_language_to_rem.py +521 -0
- remdb-0.3.122/tests/integration/test_rem_query.py +368 -0
- remdb-0.3.122/tests/integration/test_rem_query_agent.py +240 -0
- remdb-0.3.122/tests/integration/test_rem_query_agent_structured.py +241 -0
- remdb-0.3.122/tests/integration/test_rem_query_evolution.py +610 -0
- remdb-0.3.122/tests/integration/test_rem_query_functions.py +150 -0
- remdb-0.3.122/tests/integration/test_rem_service_layer.py +118 -0
- remdb-0.3.122/tests/integration/test_schema_introspection.py +495 -0
- remdb-0.3.122/tests/integration/test_session_management.py +397 -0
- remdb-0.3.122/tests/integration/test_shared_sessions.py +734 -0
- remdb-0.3.122/tests/integration/test_unlogged_maintainer.py +249 -0
- remdb-0.3.122/tests/integration/test_user_session_reloads.py +313 -0
- remdb-0.3.122/tests/integration/test_verify_setup.py +191 -0
- remdb-0.3.122/tests/integration/test_yaml_export.py +117 -0
- remdb-0.3.122/tests/integration/validate_rem_agent_schema.py +253 -0
- remdb-0.3.122/tests/scripts/__init__.py +1 -0
- remdb-0.3.122/tests/scripts/demo_session_recovery.py +233 -0
- remdb-0.3.122/tests/scripts/seed_sample_sessions.py +251 -0
- remdb-0.3.122/tests/scripts/simple_session_demo.py +160 -0
- remdb-0.3.122/tests/unit/__init__.py +3 -0
- remdb-0.3.122/tests/unit/agentic/__init__.py +3 -0
- remdb-0.3.122/tests/unit/agentic/agents/__init__.py +1 -0
- remdb-0.3.122/tests/unit/agentic/agents/test_sse_simulator.py +348 -0
- remdb-0.3.122/tests/unit/agentic/providers/__init__.py +3 -0
- remdb-0.3.122/tests/unit/agentic/providers/test_pydantic_ai.py +330 -0
- remdb-0.3.122/tests/unit/agentic/test_schema.py +619 -0
- remdb-0.3.122/tests/unit/agentic/test_schema_integration.py +172 -0
- remdb-0.3.122/tests/unit/agentic/test_tool_description_suffix.py +320 -0
- remdb-0.3.122/tests/unit/api/__init__.py +1 -0
- remdb-0.3.122/tests/unit/api/test_feedback.py +111 -0
- remdb-0.3.122/tests/unit/api/test_models_endpoint.py +112 -0
- remdb-0.3.122/tests/unit/api/test_sessions_messages.py +110 -0
- remdb-0.3.122/tests/unit/api/test_sse_events.py +493 -0
- remdb-0.3.122/tests/unit/conftest.py +48 -0
- remdb-0.3.122/tests/unit/test_admin_internal.py +201 -0
- remdb-0.3.122/tests/unit/test_registry.py +551 -0
- remdb-0.3.122/tests/unit/test_sql_security.py +74 -0
- remdb-0.3.122/tests/unit/utils/test_agentic_chunking.py +589 -0
- remdb-0.3.122/walkthrough.md +828 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Publishing remdb to PyPI
|
|
2
|
+
|
|
3
|
+
## Prerequisites
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
# Install build tools
|
|
7
|
+
pip install build twine
|
|
8
|
+
|
|
9
|
+
# Set up PyPI credentials (use API token)
|
|
10
|
+
# Create ~/.pypirc with your credentials
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Publishing Process
|
|
14
|
+
|
|
15
|
+
### 1. Update Version
|
|
16
|
+
|
|
17
|
+
Edit `pyproject.toml`:
|
|
18
|
+
```toml
|
|
19
|
+
version = "0.1.1" # Increment version
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### 2. Build Distribution
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
cd rem/
|
|
26
|
+
|
|
27
|
+
# Clean old builds
|
|
28
|
+
rm -rf dist/ build/ *.egg-info/
|
|
29
|
+
|
|
30
|
+
# Build wheel and source distribution
|
|
31
|
+
python -m build
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
This creates:
|
|
35
|
+
- `dist/remdb-0.1.1-py3-none-any.whl`
|
|
36
|
+
- `dist/remdb-0.1.1.tar.gz`
|
|
37
|
+
|
|
38
|
+
### 3. Test on TestPyPI (Optional but Recommended)
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# Upload to TestPyPI
|
|
42
|
+
python -m twine upload --repository testpypi dist/*
|
|
43
|
+
|
|
44
|
+
# Test installation from TestPyPI
|
|
45
|
+
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ remdb[all]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 4. Publish to PyPI
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Upload to PyPI (uses credentials from ~/.pypirc or environment)
|
|
52
|
+
python -m twine upload dist/*
|
|
53
|
+
|
|
54
|
+
# Or with explicit token
|
|
55
|
+
python -m twine upload dist/* --username __token__ --password $PYPI_API_KEY
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 5. Verify Installation
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# In a fresh environment
|
|
62
|
+
pip install remdb[all]
|
|
63
|
+
|
|
64
|
+
# Test CLI
|
|
65
|
+
rem --help
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Using PyPI API Token
|
|
69
|
+
|
|
70
|
+
Recommended approach - use an API token instead of username/password:
|
|
71
|
+
|
|
72
|
+
1. Go to https://pypi.org/manage/account/token/
|
|
73
|
+
2. Create a new API token with scope for the `remdb` project
|
|
74
|
+
3. Set environment variable:
|
|
75
|
+
```bash
|
|
76
|
+
export PYPI_API_KEY="pypi-..."
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
4. Publish:
|
|
80
|
+
```bash
|
|
81
|
+
python -m twine upload dist/* --username __token__ --password $PYPI_API_KEY
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Automation with GitHub Actions
|
|
85
|
+
|
|
86
|
+
Create `.github/workflows/publish.yml`:
|
|
87
|
+
|
|
88
|
+
```yaml
|
|
89
|
+
name: Publish to PyPI
|
|
90
|
+
|
|
91
|
+
on:
|
|
92
|
+
release:
|
|
93
|
+
types: [published]
|
|
94
|
+
|
|
95
|
+
jobs:
|
|
96
|
+
publish:
|
|
97
|
+
runs-on: ubuntu-latest
|
|
98
|
+
steps:
|
|
99
|
+
- uses: actions/checkout@v4
|
|
100
|
+
|
|
101
|
+
- name: Set up Python
|
|
102
|
+
uses: actions/setup-python@v5
|
|
103
|
+
with:
|
|
104
|
+
python-version: '3.12'
|
|
105
|
+
|
|
106
|
+
- name: Install build tools
|
|
107
|
+
run: pip install build twine
|
|
108
|
+
|
|
109
|
+
- name: Build package
|
|
110
|
+
run: python -m build
|
|
111
|
+
working-directory: rem
|
|
112
|
+
|
|
113
|
+
- name: Publish to PyPI
|
|
114
|
+
env:
|
|
115
|
+
TWINE_USERNAME: __token__
|
|
116
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
|
|
117
|
+
run: python -m twine upload dist/*
|
|
118
|
+
working-directory: rem
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Add `PYPI_API_TOKEN` to GitHub repository secrets.
|
|
122
|
+
|
|
123
|
+
## Version Naming Convention
|
|
124
|
+
|
|
125
|
+
- **0.1.x** - Alpha releases (breaking changes expected)
|
|
126
|
+
- **0.2.x** - Beta releases (stabilizing API)
|
|
127
|
+
- **1.0.0** - First stable release
|
|
128
|
+
- **1.x.y** - Stable releases (semantic versioning)
|
|
129
|
+
|
|
130
|
+
## Quick Publish Script
|
|
131
|
+
|
|
132
|
+
Save as `publish.sh`:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
#!/bin/bash
|
|
136
|
+
set -e
|
|
137
|
+
|
|
138
|
+
# Load PyPI token from environment
|
|
139
|
+
if [ -z "$PYPI_API_KEY" ]; then
|
|
140
|
+
echo "Error: PYPI_API_KEY not set"
|
|
141
|
+
exit 1
|
|
142
|
+
fi
|
|
143
|
+
|
|
144
|
+
# Clean and build
|
|
145
|
+
rm -rf dist/ build/ *.egg-info/
|
|
146
|
+
python -m build
|
|
147
|
+
|
|
148
|
+
# Upload to PyPI
|
|
149
|
+
python -m twine upload dist/* --username __token__ --password "$PYPI_API_KEY"
|
|
150
|
+
|
|
151
|
+
echo "✓ Published successfully!"
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Make executable and run:
|
|
155
|
+
```bash
|
|
156
|
+
chmod +x publish.sh
|
|
157
|
+
./publish.sh
|
|
158
|
+
```
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# REM Quickstart Guide
|
|
2
|
+
|
|
3
|
+
## 🚀 Published to PyPI!
|
|
4
|
+
|
|
5
|
+
**Package:** `remdb` version 0.1.9
|
|
6
|
+
**PyPI:** https://pypi.org/project/remdb/
|
|
7
|
+
**CLI Command:** `rem`
|
|
8
|
+
|
|
9
|
+
## Installation Options
|
|
10
|
+
|
|
11
|
+
### Option 1: Standalone Docker (Zero Installation)
|
|
12
|
+
|
|
13
|
+
Run everything in containers - no Python installation needed.
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Clone repository
|
|
17
|
+
git clone https://github.com/mr-saoirse/remstack.git
|
|
18
|
+
cd remstack/rem
|
|
19
|
+
|
|
20
|
+
# Set API keys
|
|
21
|
+
export ANTHROPIC_API_KEY="your-key"
|
|
22
|
+
export OPENAI_API_KEY="your-key" # Optional
|
|
23
|
+
|
|
24
|
+
# Start all services
|
|
25
|
+
docker compose up -d
|
|
26
|
+
|
|
27
|
+
# Use CLI via docker exec
|
|
28
|
+
docker exec rem-api rem --help
|
|
29
|
+
docker exec rem-api rem schema generate
|
|
30
|
+
docker exec rem-api rem db migrate --sql-dir sql/migrations
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Access Points:**
|
|
34
|
+
- API: http://localhost:8000
|
|
35
|
+
- Docs: http://localhost:8000/docs
|
|
36
|
+
- MCP: http://localhost:8000/api/v1/mcp
|
|
37
|
+
- PostgreSQL: localhost:5050
|
|
38
|
+
|
|
39
|
+
### Option 2: Hybrid (Recommended for Development)
|
|
40
|
+
|
|
41
|
+
Docker for infrastructure, pip install for CLI/library.
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Clone repository
|
|
45
|
+
git clone https://github.com/mr-saoirse/remstack.git
|
|
46
|
+
cd remstack/rem
|
|
47
|
+
|
|
48
|
+
# Start PostgreSQL only
|
|
49
|
+
docker compose up postgres -d
|
|
50
|
+
|
|
51
|
+
# Install from PyPI
|
|
52
|
+
pip install remdb[all]
|
|
53
|
+
|
|
54
|
+
# Set environment variables
|
|
55
|
+
export ANTHROPIC_API_KEY="your-key"
|
|
56
|
+
export POSTGRES__CONNECTION_STRING="postgresql://rem:rem@localhost:5050/rem"
|
|
57
|
+
export AUTH__ENABLED="false"
|
|
58
|
+
export OTEL__ENABLED="false"
|
|
59
|
+
|
|
60
|
+
# Use CLI directly (no docker exec!)
|
|
61
|
+
rem --help
|
|
62
|
+
rem schema validate
|
|
63
|
+
rem db migrate --sql-dir sql/migrations
|
|
64
|
+
rem ask "What is REM?"
|
|
65
|
+
|
|
66
|
+
# Run API locally with hot reload
|
|
67
|
+
uvicorn rem.api.main:app --reload --port 8000
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Why Hybrid?**
|
|
71
|
+
- ⚡ Faster CLI (no container overhead)
|
|
72
|
+
- 🔥 Hot reload for development
|
|
73
|
+
- 🐛 Native debugging
|
|
74
|
+
- 🐘 Isolated PostgreSQL
|
|
75
|
+
|
|
76
|
+
### Option 3: Library Usage
|
|
77
|
+
|
|
78
|
+
Use REM as a Python library in your projects.
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# Install in your project
|
|
82
|
+
pip install remdb[all]
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
```python
|
|
86
|
+
from rem.services.rem.service import RemService
|
|
87
|
+
from rem.agentic.context import AgentContext
|
|
88
|
+
|
|
89
|
+
# Connect to Docker PostgreSQL
|
|
90
|
+
service = RemService()
|
|
91
|
+
context = AgentContext(
|
|
92
|
+
user_id="demo-user",
|
|
93
|
+
tenant_id="demo-tenant"
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
# Ask questions
|
|
97
|
+
result = await service.ask_rem(
|
|
98
|
+
query="What resources do we have?",
|
|
99
|
+
context=context
|
|
100
|
+
)
|
|
101
|
+
print(result)
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Testing the Installation
|
|
105
|
+
|
|
106
|
+
### Verify CLI Installation
|
|
107
|
+
```bash
|
|
108
|
+
rem --help
|
|
109
|
+
rem schema --help
|
|
110
|
+
rem db --help
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Verify PostgreSQL Connection
|
|
114
|
+
```bash
|
|
115
|
+
docker exec rem-postgres psql -U rem -d rem -c "SELECT version();"
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Verify API Health
|
|
119
|
+
```bash
|
|
120
|
+
curl http://localhost:8000/health
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Environment Configuration
|
|
124
|
+
|
|
125
|
+
All configuration via environment variables:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# LLM Configuration (Required)
|
|
129
|
+
export LLM__ANTHROPIC_API_KEY="sk-ant-..."
|
|
130
|
+
export LLM__OPENAI_API_KEY="sk-..."
|
|
131
|
+
export LLM__DEFAULT_MODEL="anthropic:claude-sonnet-4-5-20250929"
|
|
132
|
+
|
|
133
|
+
# Database (Auto-configured in docker-compose)
|
|
134
|
+
export POSTGRES__CONNECTION_STRING="postgresql://rem:rem@localhost:5050/rem"
|
|
135
|
+
|
|
136
|
+
# Auth & Observability (Disabled for local dev)
|
|
137
|
+
export AUTH__ENABLED="false"
|
|
138
|
+
export OTEL__ENABLED="false"
|
|
139
|
+
|
|
140
|
+
# S3 Storage (Optional)
|
|
141
|
+
export S3__BUCKET_NAME="rem-storage"
|
|
142
|
+
export S3__ENDPOINT_URL="http://minio:9000"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Next Steps
|
|
146
|
+
|
|
147
|
+
1. **Explore API Docs:** http://localhost:8000/docs
|
|
148
|
+
2. **Upload Files:** Use file processing endpoints
|
|
149
|
+
3. **Create Agent Schemas:** Define custom extractors
|
|
150
|
+
4. **Connect MCP Clients:** http://localhost:8000/api/v1/mcp
|
|
151
|
+
5. **Run Evaluations:** `rem experiments --help`
|
|
152
|
+
|
|
153
|
+
## Troubleshooting
|
|
154
|
+
|
|
155
|
+
### CLI Not Found
|
|
156
|
+
```bash
|
|
157
|
+
# Make sure package is installed
|
|
158
|
+
pip list | grep remdb
|
|
159
|
+
|
|
160
|
+
# Check if CLI is in PATH
|
|
161
|
+
which rem
|
|
162
|
+
|
|
163
|
+
# If using venv, make sure it's activated
|
|
164
|
+
source venv/bin/activate
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### PostgreSQL Connection Failed
|
|
168
|
+
```bash
|
|
169
|
+
# Check if container is running
|
|
170
|
+
docker compose ps
|
|
171
|
+
|
|
172
|
+
# Check logs
|
|
173
|
+
docker logs rem-postgres
|
|
174
|
+
|
|
175
|
+
# Verify connection string
|
|
176
|
+
echo $POSTGRES__CONNECTION_STRING
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### API Not Starting
|
|
180
|
+
```bash
|
|
181
|
+
# Check API logs
|
|
182
|
+
docker logs rem-api
|
|
183
|
+
|
|
184
|
+
# Verify environment variables
|
|
185
|
+
docker exec rem-api env | grep LLM
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Uninstall
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
# Stop Docker services
|
|
192
|
+
docker compose down -v
|
|
193
|
+
|
|
194
|
+
# Remove Python package
|
|
195
|
+
pip uninstall remdb
|
|
196
|
+
|
|
197
|
+
# Remove test data
|
|
198
|
+
rm -rf /tmp/test-remdb
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Support
|
|
202
|
+
|
|
203
|
+
- **Issues:** https://github.com/mr-saoirse/remstack/issues
|
|
204
|
+
- **Docs:** https://github.com/mr-saoirse/remstack/blob/main/README.md
|
|
205
|
+
- **PyPI:** https://pypi.org/project/remdb/
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
|
|
4
|
+
echo "🚀 Publishing remdb to PyPI"
|
|
5
|
+
echo "============================="
|
|
6
|
+
|
|
7
|
+
# Check for PyPI token
|
|
8
|
+
if [ -z "$PYPI_API_KEY" ]; then
|
|
9
|
+
echo "❌ Error: PYPI_API_KEY environment variable not set"
|
|
10
|
+
echo " Export your PyPI API token:"
|
|
11
|
+
echo " export PYPI_API_KEY='pypi-...'"
|
|
12
|
+
exit 1
|
|
13
|
+
fi
|
|
14
|
+
|
|
15
|
+
# Get current version from pyproject.toml
|
|
16
|
+
VERSION=$(grep '^version = ' pyproject.toml | cut -d'"' -f2)
|
|
17
|
+
echo "📦 Building version: $VERSION"
|
|
18
|
+
|
|
19
|
+
# Clean previous builds
|
|
20
|
+
echo "🧹 Cleaning old builds..."
|
|
21
|
+
rm -rf dist/ build/
|
|
22
|
+
|
|
23
|
+
# Build package
|
|
24
|
+
echo "🔨 Building package..."
|
|
25
|
+
uv run python -m build
|
|
26
|
+
|
|
27
|
+
# Show built files
|
|
28
|
+
echo ""
|
|
29
|
+
echo "📁 Built files:"
|
|
30
|
+
ls -lh dist/
|
|
31
|
+
|
|
32
|
+
# Confirm before publishing
|
|
33
|
+
echo ""
|
|
34
|
+
read -p "⚠️ Publish remdb $VERSION to PyPI? (y/N) " -n 1 -r
|
|
35
|
+
echo
|
|
36
|
+
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
37
|
+
echo "❌ Publishing cancelled"
|
|
38
|
+
exit 1
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
# Publish to PyPI
|
|
42
|
+
echo "📤 Publishing to PyPI..."
|
|
43
|
+
uv run python -m twine upload dist/* --username __token__ --password "$PYPI_API_KEY"
|
|
44
|
+
|
|
45
|
+
echo ""
|
|
46
|
+
echo "✅ Successfully published remdb $VERSION to PyPI!"
|
|
47
|
+
echo "📦 Install with: pip install remdb[all]"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(curl:*)",
|
|
5
|
+
"Bash(kubectl logs:*)",
|
|
6
|
+
"Bash(kubectl exec:*)",
|
|
7
|
+
"Bash(AWS_PROFILE=siggy kubectl delete:*)",
|
|
8
|
+
"Bash(AWS_PROFILE=siggy kubectl apply:*)",
|
|
9
|
+
"Bash(docker buildx build:*)",
|
|
10
|
+
"WebFetch(domain:gist.githubusercontent.com)",
|
|
11
|
+
"Bash(kubectl kustomize:*)",
|
|
12
|
+
"Bash(yq:*)",
|
|
13
|
+
"Bash(mkdir:*)"
|
|
14
|
+
],
|
|
15
|
+
"deny": [],
|
|
16
|
+
"ask": []
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.so
|
|
6
|
+
.Python
|
|
7
|
+
*.egg-info/
|
|
8
|
+
dist/
|
|
9
|
+
build/
|
|
10
|
+
*.egg
|
|
11
|
+
|
|
12
|
+
# Virtual environments
|
|
13
|
+
.venv/
|
|
14
|
+
venv/
|
|
15
|
+
ENV/
|
|
16
|
+
env/
|
|
17
|
+
|
|
18
|
+
# IDE
|
|
19
|
+
.vscode/
|
|
20
|
+
.idea/
|
|
21
|
+
*.swp
|
|
22
|
+
*.swo
|
|
23
|
+
*~
|
|
24
|
+
|
|
25
|
+
# Testing
|
|
26
|
+
.pytest_cache/
|
|
27
|
+
.coverage
|
|
28
|
+
htmlcov/
|
|
29
|
+
.tox/
|
|
30
|
+
tests/
|
|
31
|
+
|
|
32
|
+
# Environment variables (should be passed via docker-compose)
|
|
33
|
+
.env
|
|
34
|
+
.env.*
|
|
35
|
+
|
|
36
|
+
# Docker
|
|
37
|
+
Dockerfile
|
|
38
|
+
docker-compose.yml
|
|
39
|
+
.dockerignore
|
|
40
|
+
|
|
41
|
+
# Git
|
|
42
|
+
.git/
|
|
43
|
+
.gitignore
|
|
44
|
+
|
|
45
|
+
# Documentation (keep README.md for package metadata)
|
|
46
|
+
CLAUDE.md
|
|
47
|
+
FILE_PROCESSING.md
|
|
48
|
+
docs/
|
|
49
|
+
|
|
50
|
+
# Manifests (separate from application)
|
|
51
|
+
manifests/
|
|
52
|
+
|
|
53
|
+
# SQL migrations (already mounted as volume)
|
|
54
|
+
sql/
|
|
55
|
+
|
|
56
|
+
# Temporary files
|
|
57
|
+
*.log
|
|
58
|
+
*.tmp
|
|
59
|
+
tmp/
|
|
60
|
+
temp/
|
|
61
|
+
|
|
62
|
+
# macOS
|
|
63
|
+
.DS_Store
|
|
64
|
+
|
|
65
|
+
# CI/CD
|
|
66
|
+
.github/
|
|
67
|
+
.gitlab-ci.yml
|
|
68
|
+
|
|
69
|
+
# Development tools
|
|
70
|
+
.mypy_cache/
|
|
71
|
+
.ruff_cache/
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# REM Environment Variables
|
|
2
|
+
# Copy this file to .env and update with your values
|
|
3
|
+
#
|
|
4
|
+
# Quick Start (Minimal Configuration):
|
|
5
|
+
# 1. Copy: cp .env.example .env
|
|
6
|
+
# 2. Set LLM API key: LLM__ANTHROPIC_API_KEY or LLM__OPENAI_API_KEY
|
|
7
|
+
# 3. Database is pre-configured for Docker Compose (port 5050)
|
|
8
|
+
# 4. Run: docker compose up -d
|
|
9
|
+
#
|
|
10
|
+
# Optional Features (Enable as needed):
|
|
11
|
+
# - Vision LLM: Set CONTENT__IMAGE_VLLM_SAMPLE_RATE > 0.0
|
|
12
|
+
# - CLIP Embeddings: Set CONTENT__JINA_API_KEY (free at jina.ai/embeddings)
|
|
13
|
+
# - Authentication: Set AUTH__ENABLED=true + OAuth credentials
|
|
14
|
+
# - Observability: Set OTEL__ENABLED=true / PHOENIX__ENABLED=true
|
|
15
|
+
|
|
16
|
+
# =============================================================================
|
|
17
|
+
# Development Settings
|
|
18
|
+
# =============================================================================
|
|
19
|
+
# Skip loading ~/.rem/config.yaml (use .env only for development)
|
|
20
|
+
# This prevents conflicts between user config and development .env
|
|
21
|
+
REM_SKIP_CONFIG_FILE=true
|
|
22
|
+
|
|
23
|
+
# =============================================================================
|
|
24
|
+
# API Server Settings
|
|
25
|
+
# =============================================================================
|
|
26
|
+
API__HOST=0.0.0.0
|
|
27
|
+
API__PORT=8000
|
|
28
|
+
API__RELOAD=true
|
|
29
|
+
API__LOG_LEVEL=info
|
|
30
|
+
|
|
31
|
+
# =============================================================================
|
|
32
|
+
# LLM Provider Settings
|
|
33
|
+
# =============================================================================
|
|
34
|
+
LLM__DEFAULT_MODEL=openai:gpt-4.1
|
|
35
|
+
LLM__DEFAULT_TEMPERATURE=0.5
|
|
36
|
+
LLM__MAX_RETRIES=10
|
|
37
|
+
|
|
38
|
+
# Optional: Override models for specific tasks
|
|
39
|
+
# LLM__EVALUATOR_MODEL=gpt-4.1
|
|
40
|
+
# LLM__QUERY_AGENT_MODEL=gpt-4o-mini
|
|
41
|
+
|
|
42
|
+
# API Keys (required for LLM providers)
|
|
43
|
+
LLM__OPENAI_API_KEY=
|
|
44
|
+
LLM__ANTHROPIC_API_KEY=
|
|
45
|
+
|
|
46
|
+
# =============================================================================
|
|
47
|
+
# Database Settings (PostgreSQL 18 with pgvector)
|
|
48
|
+
# =============================================================================
|
|
49
|
+
# Docker Compose uses port 5050, change to 5432 for CloudNativePG/RDS
|
|
50
|
+
POSTGRES__CONNECTION_STRING=postgresql://rem:rem@localhost:5050/rem
|
|
51
|
+
POSTGRES__POOL_MIN_SIZE=5
|
|
52
|
+
POSTGRES__POOL_MAX_SIZE=20
|
|
53
|
+
POSTGRES__POOL_TIMEOUT=30
|
|
54
|
+
POSTGRES__STATEMENT_TIMEOUT=30000
|
|
55
|
+
|
|
56
|
+
# =============================================================================
|
|
57
|
+
# Authentication Settings (OAuth 2.1 / OIDC)
|
|
58
|
+
# =============================================================================
|
|
59
|
+
AUTH__ENABLED=false
|
|
60
|
+
AUTH__SESSION_SECRET=
|
|
61
|
+
|
|
62
|
+
# --- Google OAuth ---
|
|
63
|
+
AUTH__GOOGLE__CLIENT_ID=
|
|
64
|
+
AUTH__GOOGLE__CLIENT_SECRET=
|
|
65
|
+
AUTH__GOOGLE__REDIRECT_URI=http://localhost:8000/api/auth/google/callback
|
|
66
|
+
# AUTH__GOOGLE__HOSTED_DOMAIN=example.com
|
|
67
|
+
|
|
68
|
+
# --- Microsoft Entra ID OAuth ---
|
|
69
|
+
AUTH__MICROSOFT__CLIENT_ID=
|
|
70
|
+
AUTH__MICROSOFT__CLIENT_SECRET=
|
|
71
|
+
AUTH__MICROSOFT__REDIRECT_URI=http://localhost:8000/api/auth/microsoft/callback
|
|
72
|
+
AUTH__MICROSOFT__TENANT=common
|
|
73
|
+
|
|
74
|
+
# =============================================================================
|
|
75
|
+
# OpenTelemetry Settings
|
|
76
|
+
# =============================================================================
|
|
77
|
+
OTEL__ENABLED=false
|
|
78
|
+
OTEL__SERVICE_NAME=rem-api
|
|
79
|
+
OTEL__COLLECTOR_ENDPOINT=http://localhost:4318
|
|
80
|
+
OTEL__PROTOCOL=http
|
|
81
|
+
OTEL__EXPORT_TIMEOUT=10000
|
|
82
|
+
|
|
83
|
+
# =============================================================================
|
|
84
|
+
# Arize Phoenix Settings (LLM Observability)
|
|
85
|
+
# =============================================================================
|
|
86
|
+
PHOENIX__ENABLED=false
|
|
87
|
+
PHOENIX__API_KEY=
|
|
88
|
+
PHOENIX__COLLECTOR_ENDPOINT=http://localhost:6006/v1/traces
|
|
89
|
+
PHOENIX__PROJECT_NAME=rem
|
|
90
|
+
|
|
91
|
+
# =============================================================================
|
|
92
|
+
# Filesystem Settings
|
|
93
|
+
# =============================================================================
|
|
94
|
+
# REM_HOME is the base directory for local filesystem storage
|
|
95
|
+
# Defaults to ~/.rem if not set
|
|
96
|
+
# Local paths: $REM_HOME/fs/rem/v1/uploads/...
|
|
97
|
+
REM_HOME=~/.rem
|
|
98
|
+
|
|
99
|
+
# =============================================================================
|
|
100
|
+
# S3 Storage Settings
|
|
101
|
+
# =============================================================================
|
|
102
|
+
# For AWS S3 (production with IRSA)
|
|
103
|
+
S3__BUCKET_NAME=rem-io-staging
|
|
104
|
+
S3__REGION=us-east-1
|
|
105
|
+
|
|
106
|
+
# Path structure version and prefixes
|
|
107
|
+
S3__VERSION=v1
|
|
108
|
+
S3__UPLOADS_PREFIX=uploads
|
|
109
|
+
S3__PARSED_PREFIX=parsed
|
|
110
|
+
|
|
111
|
+
# Convention:
|
|
112
|
+
# Uploads: s3://{bucket}/{version}/uploads/user-123/2025/01/19/file.pdf
|
|
113
|
+
# Parsed: s3://{bucket}/{version}/parsed/user-123/2025/01/19/file.pdf/content.md
|
|
114
|
+
|
|
115
|
+
# For MinIO (local development)
|
|
116
|
+
# S3__ENDPOINT_URL=http://localhost:9000
|
|
117
|
+
# S3__ACCESS_KEY_ID=minioadmin
|
|
118
|
+
# S3__SECRET_ACCESS_KEY=minioadmin
|
|
119
|
+
# S3__USE_SSL=false
|
|
120
|
+
|
|
121
|
+
# =============================================================================
|
|
122
|
+
# Content Processing Settings
|
|
123
|
+
# =============================================================================
|
|
124
|
+
|
|
125
|
+
# --- Document Chunking ---
|
|
126
|
+
CHUNKING__CHUNK_SIZE=1500
|
|
127
|
+
CHUNKING__OVERLAP=200
|
|
128
|
+
CHUNKING__MIN_CHUNK_SIZE=100
|
|
129
|
+
CHUNKING__MAX_CHUNK_SIZE=2500
|
|
130
|
+
|
|
131
|
+
# --- Vision LLM (Image Analysis) ---
|
|
132
|
+
# Expensive - tier-gated or sampled
|
|
133
|
+
CONTENT__IMAGE_VLLM_PROVIDER=anthropic
|
|
134
|
+
CONTENT__IMAGE_VLLM_MODEL=
|
|
135
|
+
CONTENT__IMAGE_VLLM_SAMPLE_RATE=0.0
|
|
136
|
+
|
|
137
|
+
# --- CLIP Embeddings (Image Search) ---
|
|
138
|
+
# Cheap - always-on when key provided (~$0.00008 per image)
|
|
139
|
+
CONTENT__CLIP_PROVIDER=jina
|
|
140
|
+
CONTENT__CLIP_MODEL=jina-clip-v2
|
|
141
|
+
CONTENT__JINA_API_KEY=
|
|
142
|
+
|
|
143
|
+
# =============================================================================
|
|
144
|
+
# SQS Queue Settings (File Processing)
|
|
145
|
+
# =============================================================================
|
|
146
|
+
# Queue URL from Pulumi output (manifests/infra/file-queue)
|
|
147
|
+
SQS__QUEUE_URL=https://sqs.us-east-1.amazonaws.com/ACCOUNT_ID/rem-file-processing
|
|
148
|
+
SQS__REGION=us-east-1
|
|
149
|
+
SQS__MAX_MESSAGES=10
|
|
150
|
+
SQS__WAIT_TIME_SECONDS=20
|
|
151
|
+
SQS__VISIBILITY_TIMEOUT=300
|
|
152
|
+
|
|
153
|
+
# =============================================================================
|
|
154
|
+
# MCP Server Settings
|
|
155
|
+
# =============================================================================
|
|
156
|
+
# MCP_SERVER_TEST=http://localhost:8000/api/v1/mcp
|
|
157
|
+
# MCP_SERVER_PROD=https://api.example.com/api/v1/mcp
|
|
158
|
+
|
|
159
|
+
# =============================================================================
|
|
160
|
+
# Application Settings
|
|
161
|
+
# =============================================================================
|
|
162
|
+
ENVIRONMENT=development
|
|
163
|
+
TEAM=rem
|
|
164
|
+
# DOMAIN=https://api.example.com
|
|
165
|
+
# ROOT_PATH=/rem
|