remdb 0.3.13__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.
Potentially problematic release.
This version of remdb might be problematic. Click here for more details.
- remdb-0.3.13/.claude/archive/PUBLISH.md +158 -0
- remdb-0.3.13/.claude/archive/QUICKSTART.md +205 -0
- remdb-0.3.13/.claude/archive/publish.sh +47 -0
- remdb-0.3.13/.dockerignore +71 -0
- remdb-0.3.13/.env.example +165 -0
- remdb-0.3.13/.experiments/README.md +412 -0
- remdb-0.3.13/.experiments/RUN_ON_CLUSTER.md +511 -0
- remdb-0.3.13/.experiments/TESTING_GUIDE.md +617 -0
- remdb-0.3.13/.experiments/test-phoenix-integration.sh +346 -0
- remdb-0.3.13/.gitignore +129 -0
- remdb-0.3.13/.kreuzberg/mime/039976f3b4dc7549.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/045e65492b634d11.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/07f5cd0e3fb1d287.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/08f4ae339838b804.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/0a64e58ae1289686.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/0da06e67dd284834.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/0e200bfe2ea523f2.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/10b1925cb6007390.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/11c55125d2be1895.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/12dd62bbe8ee9b6a.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/19a7ff44501eb3f9.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/1db0e7d4ac2443af.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/220746359cef9884.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/24034098fd444b39.msgpack +2 -0
- remdb-0.3.13/.kreuzberg/mime/24acc2df261ae549.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/26a8ed0cdfc0ccab.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/28e3c2bf25dfc659.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/295a37ef869b0a49.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/2a6f58009e01ad65.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/2ab7ae3b2e42644e.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/2b24548c2f91f8b9.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/mime/2bb63e6235d19b40.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/2c74a0f17cde1b0c.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/2d728912eb223a33.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/2de80149b410a676.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/2e1001cbed04103c.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/32d99ccf71d10a38.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/3353ae12a176a9bd.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/3c5bd974fb83b573.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/3e9db2b8a87873c7.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/3ff1b430e0b510d5.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/4035607526c8600d.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/40f0415d564cb996.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/4388f8ee095c9ed8.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/439f422b7f8dc467.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/45f79b5f90a07f0e.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/49be62bf170de12a.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/mime/4b3e165ec4ba87d0.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/51e81cbe7899e310.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/537dea93b57ffce5.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/56a9f1cd9ec05384.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/57ab5fe18c74538b.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/5a11f436d88e89cd.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/5b10dca1c6db6714.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/5eb63bbe412735a4.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/5ebca8549bb3ff2b.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/60f343229f836ab6.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/6488134e7b6dd403.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/6bd93d4fd4cc3893.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/6defbba8bfc76983.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/6e37f5165f71513b.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/6f9130d5f4db8b28.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/6fc0d79c16c59de5.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/774b8c209528323e.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/78c509bc3a9d93c4.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/798017037907ab5f.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/7a4fd9fd84ae6899.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/7b094993adee6e1a.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/819aabcfdf1334af.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/81ea65c652232174.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/84c4f70ba7616566.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/856e8ba75c4d220e.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/8e2e4ab7c05925fa.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/8e89a980bc3b92d8.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/8f6a9b01f15883f5.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/9091b9d61e026046.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/927a028cf723c70d.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/94bda8f2cabc1358.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/954fee40bb61432b.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/9592cc24f2bf0d77.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/9804f3b02bf98e83.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/9936890e55f094f3.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/99405cab6cc35283.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/99e3da57a007bc59.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/9c265a028ee05977.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/9f02e484a5feb3af.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/9fd81ffc0b3282f8.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/a2bcfb3e4cf75d71.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/a3fd1a45a0ef02f1.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/a72acced3b5f0c28.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/a78fa3051259d29c.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/a964045be65be2d2.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/ae8bc0c15954a96a.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/af28c894e94dc85c.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/b0a26c1396c336b2.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/b2f8df0bdc713008.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/b361fc308a3b9ab1.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/b374846290238cd1.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/b4b163b746d0aa53.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/b68845f6e8da9be3.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/b7e677bf8412e9bd.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/b99ba32d31caa65e.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/bc1a967be3c37e18.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/bc89d1801e46fb3c.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/bea4de84b22aebbc.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/c6ca46f28d7798dd.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/c6e2f4ede9282c2f.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/c99399d1889fa84c.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/c9fd297a955f2355.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/ca9a80b78b7aa22c.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/cb9503b8979b185d.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/cbc6cfb0a51ab6bb.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/cc3bda1ed2e95150.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/ceb98745ab5dbe70.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/d1e1e212112ab926.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/d4b766742cf2328a.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/d93262cc2f01da93.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/d977ad06778acf8d.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/da9376a352a900b8.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/db3a782c367dbe28.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/dc96bd8d8ad04ee4.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/dd1562878ff3c0f5.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/de117be85702ebbc.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/e53a6e77d7808ee8.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/ebf2fcb04221173e.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/ebf527595602c7cc.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/ed6a8410124b956b.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/f1801152a72fbdf0.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/f6fe984552a62891.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/f81bbef279fc5018.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/f975369ecf8cfe1b.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/mime/fd21c48c0c429b77.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/0354796dc060829e.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/039f9af1f7851836.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/05e117af5b509bae.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/0bc34e3949fbef01.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/0ce495589c7221d3.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/0dd1cda742544db1.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/0eba31912f25f3eb.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/0f2703145ac02172.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/0fa09530ccf28805.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/0fd8e540615171e8.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/101ff2c4997376a9.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/12c490c06def9488.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/18257c152bba13a6.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/1d4a6a418d2b6a64.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/1e61d3c782893a54.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/1fc92f87c93d4fd9.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/2c9de54bccd13e11.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/2f3ea5c1badef128.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/32aa8c660cf91963.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/35111034d5ad26a6.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/352eb0c7f720c196.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/3a2e224daffb8e3d.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/3ee772a67521e170.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/401e93fa320273da.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/40d9b4294628036d.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/44592db880e5ec3f.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/45870b434cfe0c85.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/458943c95381e6de.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/4ca27bb3cae67ad6.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/4e0d19bea7253cc8.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/4f02317672f3198b.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/56a98d6dbd85ebed.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/5d6b31c824d8741e.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/5f75509e9ed27170.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/5fcfe11a675bac8b.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/61b8b2fc9077f91a.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/642c92672daf5c43.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/655ff32e6cd550bc.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/65bc24178c843052.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/66cd62510980471d.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/681c1dd84a2bdf26.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/6838fe47e511b2b8.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/6a609539ed167213.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/74b6b71e76efb9c9.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/75e719c76477d44f.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/77e0e879c2c95195.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/7a15ef0ba4aa5660.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/7a9dd710389dde99.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/7b783286f80ab872.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/7d1298c12634bc16.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/7ddf2b8e4c6cb2e3.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/7fc2229fcb868522.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/85abdb138905726a.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/884e41282eb896c5.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/8a703994c30b19ea.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/8aca0021ebe63f8e.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/8bc107890e1ab320.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/8c1a66ea86c98f76.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/8dd5ac3207b6ca3b.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/8f898c00eea3a93b.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/931cbc8a4cbebf70.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/932804c1aff4d044.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/94b151c44f8a3588.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/94ce2189385c970f.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/94fa736d741d63be.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/95bd2009772c07fd.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/95f748fee80393ef.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/9b1e26a55ef34ee9.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/9f3159c9912586db.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/a17c34748d867e85.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/a2ca0018b46feabd.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/a60b9031cf48ebba.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/a9be790d1f0ae7ec.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/ac4d6823c4034fe6.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/ad80625c2fe055e2.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/b102691e3c3e4cae.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/b34027c96f8daa30.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/b639b463e04459db.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/b7e540f21b7f0271.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/ba460ba22b61b3ac.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/ba7499ca4c58ff94.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/be2d027b571e9344.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/c1fff30850bb8b6f.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/c3889a8993fc490d.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/c51c4fa6e6b83f7e.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/c57ca30ea53e2d68.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/c64c433f4452d82a.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/c91739ca8dcc39ea.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/c91d5e81eba0d3c9.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/c9fecad2b9f0357c.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/cb7fab9ab7b8c520.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/cbbaeea4c7d24156.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/cc7dd2a0003c03d8.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/ce64ddc6701623a7.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/d19b01ce83c8c71a.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/d5aae4af1fe94a3a.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/d5c47dfe60be1592.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/d7eef627315eeab2.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/d81cb4d0b47db4ae.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/deed4c82c27e2b5d.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/df1c0ed33adf634d.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/e1c2af52b798715b.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/e249b7de89e07bbc.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/e6b6c0b80707ee08.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/e74d1c6e8e950e20.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/e9d2da361090c228.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/ec8c114b8a360379.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/f1772556a9442724.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/f4753f23f51fe441.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/f52c654a914ee356.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/f6187d9353655ff5.msgpack +1 -0
- remdb-0.3.13/.kreuzberg/tables/f766aa4cfdca2770.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/fabcc3a4db082252.msgpack +0 -0
- remdb-0.3.13/.kreuzberg/tables/fec2d3d5372c2bcc.msgpack +0 -0
- remdb-0.3.13/.venv-test/bin/Activate.ps1 +247 -0
- remdb-0.3.13/.venv-test/bin/activate +76 -0
- remdb-0.3.13/.venv-test/bin/activate-global-python-argcomplete +7 -0
- remdb-0.3.13/.venv-test/bin/activate.csh +27 -0
- remdb-0.3.13/.venv-test/bin/activate.fish +69 -0
- remdb-0.3.13/.venv-test/bin/alembic +7 -0
- remdb-0.3.13/.venv-test/bin/arize-phoenix +7 -0
- remdb-0.3.13/.venv-test/bin/cyclopts +7 -0
- remdb-0.3.13/.venv-test/bin/distro +7 -0
- remdb-0.3.13/.venv-test/bin/docutils +7 -0
- remdb-0.3.13/.venv-test/bin/dotenv +7 -0
- remdb-0.3.13/.venv-test/bin/email_validator +7 -0
- remdb-0.3.13/.venv-test/bin/f2py +7 -0
- remdb-0.3.13/.venv-test/bin/fastapi +7 -0
- remdb-0.3.13/.venv-test/bin/fastavro +7 -0
- remdb-0.3.13/.venv-test/bin/fastmcp +7 -0
- remdb-0.3.13/.venv-test/bin/genai-prices +7 -0
- remdb-0.3.13/.venv-test/bin/get_gprof +75 -0
- remdb-0.3.13/.venv-test/bin/get_objgraph +54 -0
- remdb-0.3.13/.venv-test/bin/griffe +7 -0
- remdb-0.3.13/.venv-test/bin/hf +7 -0
- remdb-0.3.13/.venv-test/bin/httpx +7 -0
- remdb-0.3.13/.venv-test/bin/hypercorn +7 -0
- remdb-0.3.13/.venv-test/bin/inv +7 -0
- remdb-0.3.13/.venv-test/bin/invoke +7 -0
- remdb-0.3.13/.venv-test/bin/jp.py +54 -0
- remdb-0.3.13/.venv-test/bin/jsonpath_ng +7 -0
- remdb-0.3.13/.venv-test/bin/jsonschema +7 -0
- remdb-0.3.13/.venv-test/bin/keyring +7 -0
- remdb-0.3.13/.venv-test/bin/kreuzberg +7 -0
- remdb-0.3.13/.venv-test/bin/logfire +7 -0
- remdb-0.3.13/.venv-test/bin/mako-render +7 -0
- remdb-0.3.13/.venv-test/bin/markdown-it +7 -0
- remdb-0.3.13/.venv-test/bin/mcp +7 -0
- remdb-0.3.13/.venv-test/bin/mpire-dashboard +41 -0
- remdb-0.3.13/.venv-test/bin/normalizer +7 -0
- remdb-0.3.13/.venv-test/bin/numpy-config +7 -0
- remdb-0.3.13/.venv-test/bin/openai +7 -0
- remdb-0.3.13/.venv-test/bin/opentelemetry-bootstrap +7 -0
- remdb-0.3.13/.venv-test/bin/opentelemetry-instrument +7 -0
- remdb-0.3.13/.venv-test/bin/pai +7 -0
- remdb-0.3.13/.venv-test/bin/phoenix +7 -0
- remdb-0.3.13/.venv-test/bin/pip +7 -0
- remdb-0.3.13/.venv-test/bin/pip3 +7 -0
- remdb-0.3.13/.venv-test/bin/pip3.12 +7 -0
- remdb-0.3.13/.venv-test/bin/pygmentize +7 -0
- remdb-0.3.13/.venv-test/bin/pyrsa-decrypt +7 -0
- remdb-0.3.13/.venv-test/bin/pyrsa-encrypt +7 -0
- remdb-0.3.13/.venv-test/bin/pyrsa-keygen +7 -0
- remdb-0.3.13/.venv-test/bin/pyrsa-priv2pub +7 -0
- remdb-0.3.13/.venv-test/bin/pyrsa-sign +7 -0
- remdb-0.3.13/.venv-test/bin/pyrsa-verify +7 -0
- remdb-0.3.13/.venv-test/bin/pystache +7 -0
- remdb-0.3.13/.venv-test/bin/pystache-test +7 -0
- remdb-0.3.13/.venv-test/bin/python +1 -0
- remdb-0.3.13/.venv-test/bin/python-argcomplete-check-easy-install-script +7 -0
- remdb-0.3.13/.venv-test/bin/python3 +1 -0
- remdb-0.3.13/.venv-test/bin/python3.12 +1 -0
- remdb-0.3.13/.venv-test/bin/register-python-argcomplete +7 -0
- remdb-0.3.13/.venv-test/bin/rem +7 -0
- remdb-0.3.13/.venv-test/bin/rst2html +7 -0
- remdb-0.3.13/.venv-test/bin/rst2html4 +7 -0
- remdb-0.3.13/.venv-test/bin/rst2html5 +7 -0
- remdb-0.3.13/.venv-test/bin/rst2latex +7 -0
- remdb-0.3.13/.venv-test/bin/rst2man +7 -0
- remdb-0.3.13/.venv-test/bin/rst2odt +7 -0
- remdb-0.3.13/.venv-test/bin/rst2pseudoxml +7 -0
- remdb-0.3.13/.venv-test/bin/rst2s5 +7 -0
- remdb-0.3.13/.venv-test/bin/rst2xetex +7 -0
- remdb-0.3.13/.venv-test/bin/rst2xml +7 -0
- remdb-0.3.13/.venv-test/bin/strawberry +7 -0
- remdb-0.3.13/.venv-test/bin/tiny-agents +7 -0
- remdb-0.3.13/.venv-test/bin/tqdm +7 -0
- remdb-0.3.13/.venv-test/bin/undill +22 -0
- remdb-0.3.13/.venv-test/bin/uvicorn +7 -0
- remdb-0.3.13/.venv-test/bin/watchfiles +7 -0
- remdb-0.3.13/.venv-test/bin/websockets +7 -0
- remdb-0.3.13/.venv-test/pyvenv.cfg +5 -0
- remdb-0.3.13/Dockerfile +123 -0
- remdb-0.3.13/PKG-INFO +1467 -0
- remdb-0.3.13/README.md +1381 -0
- remdb-0.3.13/alembic/README.md +104 -0
- remdb-0.3.13/alembic/env.py +102 -0
- remdb-0.3.13/alembic/script.py.mako +26 -0
- remdb-0.3.13/alembic.ini +75 -0
- remdb-0.3.13/docker-compose.prebuilt.yml +70 -0
- remdb-0.3.13/docker-compose.test-local.yml +70 -0
- remdb-0.3.13/docker-compose.yml +142 -0
- remdb-0.3.13/pyproject.toml +221 -0
- remdb-0.3.13/src/rem/__init__.py +2 -0
- remdb-0.3.13/src/rem/agentic/README.md +650 -0
- remdb-0.3.13/src/rem/agentic/__init__.py +39 -0
- remdb-0.3.13/src/rem/agentic/agents/README.md +155 -0
- remdb-0.3.13/src/rem/agentic/agents/__init__.py +8 -0
- remdb-0.3.13/src/rem/agentic/context.py +150 -0
- remdb-0.3.13/src/rem/agentic/context_builder.py +329 -0
- remdb-0.3.13/src/rem/agentic/mcp/__init__.py +0 -0
- remdb-0.3.13/src/rem/agentic/mcp/tool_wrapper.py +107 -0
- remdb-0.3.13/src/rem/agentic/otel/__init__.py +5 -0
- remdb-0.3.13/src/rem/agentic/otel/setup.py +151 -0
- remdb-0.3.13/src/rem/agentic/providers/phoenix.py +663 -0
- remdb-0.3.13/src/rem/agentic/providers/pydantic_ai.py +572 -0
- remdb-0.3.13/src/rem/agentic/query.py +117 -0
- remdb-0.3.13/src/rem/agentic/query_helper.py +89 -0
- remdb-0.3.13/src/rem/agentic/schema.py +396 -0
- remdb-0.3.13/src/rem/agentic/serialization.py +245 -0
- remdb-0.3.13/src/rem/agentic/tools/__init__.py +5 -0
- remdb-0.3.13/src/rem/agentic/tools/rem_tools.py +231 -0
- remdb-0.3.13/src/rem/api/README.md +420 -0
- remdb-0.3.13/src/rem/api/main.py +329 -0
- remdb-0.3.13/src/rem/api/mcp_router/prompts.py +182 -0
- remdb-0.3.13/src/rem/api/mcp_router/resources.py +536 -0
- remdb-0.3.13/src/rem/api/mcp_router/server.py +213 -0
- remdb-0.3.13/src/rem/api/mcp_router/tools.py +584 -0
- remdb-0.3.13/src/rem/api/middleware/tracking.py +166 -0
- remdb-0.3.13/src/rem/api/routers/auth.py +283 -0
- remdb-0.3.13/src/rem/api/routers/chat/__init__.py +5 -0
- remdb-0.3.13/src/rem/api/routers/chat/completions.py +281 -0
- remdb-0.3.13/src/rem/api/routers/chat/json_utils.py +76 -0
- remdb-0.3.13/src/rem/api/routers/chat/models.py +124 -0
- remdb-0.3.13/src/rem/api/routers/chat/streaming.py +185 -0
- remdb-0.3.13/src/rem/auth/README.md +258 -0
- remdb-0.3.13/src/rem/auth/__init__.py +26 -0
- remdb-0.3.13/src/rem/auth/middleware.py +100 -0
- remdb-0.3.13/src/rem/auth/providers/__init__.py +13 -0
- remdb-0.3.13/src/rem/auth/providers/base.py +376 -0
- remdb-0.3.13/src/rem/auth/providers/google.py +163 -0
- remdb-0.3.13/src/rem/auth/providers/microsoft.py +237 -0
- remdb-0.3.13/src/rem/cli/README.md +455 -0
- remdb-0.3.13/src/rem/cli/__init__.py +8 -0
- remdb-0.3.13/src/rem/cli/commands/README.md +126 -0
- remdb-0.3.13/src/rem/cli/commands/__init__.py +3 -0
- remdb-0.3.13/src/rem/cli/commands/ask.py +569 -0
- remdb-0.3.13/src/rem/cli/commands/configure.py +498 -0
- remdb-0.3.13/src/rem/cli/commands/db.py +507 -0
- remdb-0.3.13/src/rem/cli/commands/dreaming.py +324 -0
- remdb-0.3.13/src/rem/cli/commands/experiments.py +1306 -0
- remdb-0.3.13/src/rem/cli/commands/mcp.py +66 -0
- remdb-0.3.13/src/rem/cli/commands/process.py +246 -0
- remdb-0.3.13/src/rem/cli/commands/schema.py +183 -0
- remdb-0.3.13/src/rem/cli/commands/serve.py +106 -0
- remdb-0.3.13/src/rem/cli/dreaming.py +363 -0
- remdb-0.3.13/src/rem/cli/main.py +96 -0
- remdb-0.3.13/src/rem/config.py +237 -0
- remdb-0.3.13/src/rem/mcp_server.py +41 -0
- remdb-0.3.13/src/rem/models/core/__init__.py +49 -0
- remdb-0.3.13/src/rem/models/core/core_model.py +64 -0
- remdb-0.3.13/src/rem/models/core/engram.py +333 -0
- remdb-0.3.13/src/rem/models/core/experiment.py +628 -0
- remdb-0.3.13/src/rem/models/core/inline_edge.py +132 -0
- remdb-0.3.13/src/rem/models/core/rem_query.py +243 -0
- remdb-0.3.13/src/rem/models/entities/__init__.py +43 -0
- remdb-0.3.13/src/rem/models/entities/file.py +57 -0
- remdb-0.3.13/src/rem/models/entities/image_resource.py +88 -0
- remdb-0.3.13/src/rem/models/entities/message.py +35 -0
- remdb-0.3.13/src/rem/models/entities/moment.py +123 -0
- remdb-0.3.13/src/rem/models/entities/ontology.py +191 -0
- remdb-0.3.13/src/rem/models/entities/ontology_config.py +131 -0
- remdb-0.3.13/src/rem/models/entities/resource.py +95 -0
- remdb-0.3.13/src/rem/models/entities/schema.py +87 -0
- remdb-0.3.13/src/rem/models/entities/user.py +92 -0
- remdb-0.3.13/src/rem/py.typed +0 -0
- remdb-0.3.13/src/rem/schemas/README.md +507 -0
- remdb-0.3.13/src/rem/schemas/__init__.py +6 -0
- remdb-0.3.13/src/rem/schemas/agents/README.md +92 -0
- remdb-0.3.13/src/rem/schemas/agents/core/moment-builder.yaml +178 -0
- remdb-0.3.13/src/rem/schemas/agents/core/rem-query-agent.yaml +226 -0
- remdb-0.3.13/src/rem/schemas/agents/core/resource-affinity-assessor.yaml +99 -0
- remdb-0.3.13/src/rem/schemas/agents/core/simple-assistant.yaml +19 -0
- remdb-0.3.13/src/rem/schemas/agents/core/user-profile-builder.yaml +163 -0
- remdb-0.3.13/src/rem/schemas/agents/examples/contract-analyzer.yaml +317 -0
- remdb-0.3.13/src/rem/schemas/agents/examples/contract-extractor.yaml +134 -0
- remdb-0.3.13/src/rem/schemas/agents/examples/cv-parser.yaml +263 -0
- remdb-0.3.13/src/rem/schemas/agents/examples/hello-world.yaml +37 -0
- remdb-0.3.13/src/rem/schemas/agents/examples/query.yaml +54 -0
- remdb-0.3.13/src/rem/schemas/agents/examples/simple.yaml +21 -0
- remdb-0.3.13/src/rem/schemas/agents/examples/test.yaml +29 -0
- remdb-0.3.13/src/rem/schemas/agents/rem.yaml +128 -0
- remdb-0.3.13/src/rem/schemas/evaluators/hello-world/default.yaml +77 -0
- remdb-0.3.13/src/rem/schemas/evaluators/rem/faithfulness.yaml +219 -0
- remdb-0.3.13/src/rem/schemas/evaluators/rem/lookup-correctness.yaml +182 -0
- remdb-0.3.13/src/rem/schemas/evaluators/rem/retrieval-precision.yaml +199 -0
- remdb-0.3.13/src/rem/schemas/evaluators/rem/retrieval-recall.yaml +211 -0
- remdb-0.3.13/src/rem/schemas/evaluators/rem/search-correctness.yaml +192 -0
- remdb-0.3.13/src/rem/services/__init__.py +16 -0
- remdb-0.3.13/src/rem/services/audio/INTEGRATION.md +308 -0
- remdb-0.3.13/src/rem/services/audio/README.md +376 -0
- remdb-0.3.13/src/rem/services/audio/__init__.py +15 -0
- remdb-0.3.13/src/rem/services/audio/chunker.py +354 -0
- remdb-0.3.13/src/rem/services/audio/transcriber.py +259 -0
- remdb-0.3.13/src/rem/services/content/README.md +1269 -0
- remdb-0.3.13/src/rem/services/content/__init__.py +5 -0
- remdb-0.3.13/src/rem/services/content/providers.py +760 -0
- remdb-0.3.13/src/rem/services/content/service.py +676 -0
- remdb-0.3.13/src/rem/services/dreaming/README.md +230 -0
- remdb-0.3.13/src/rem/services/dreaming/__init__.py +53 -0
- remdb-0.3.13/src/rem/services/dreaming/affinity_service.py +322 -0
- remdb-0.3.13/src/rem/services/dreaming/moment_service.py +251 -0
- remdb-0.3.13/src/rem/services/dreaming/ontology_service.py +54 -0
- remdb-0.3.13/src/rem/services/dreaming/user_model_service.py +297 -0
- remdb-0.3.13/src/rem/services/dreaming/utils.py +39 -0
- remdb-0.3.13/src/rem/services/embeddings/__init__.py +11 -0
- remdb-0.3.13/src/rem/services/embeddings/api.py +127 -0
- remdb-0.3.13/src/rem/services/embeddings/worker.py +421 -0
- remdb-0.3.13/src/rem/services/fs/README.md +662 -0
- remdb-0.3.13/src/rem/services/fs/__init__.py +62 -0
- remdb-0.3.13/src/rem/services/fs/examples.py +206 -0
- remdb-0.3.13/src/rem/services/fs/examples_paths.py +204 -0
- remdb-0.3.13/src/rem/services/fs/git_provider.py +935 -0
- remdb-0.3.13/src/rem/services/fs/local_provider.py +760 -0
- remdb-0.3.13/src/rem/services/fs/parsing-hooks-examples.md +172 -0
- remdb-0.3.13/src/rem/services/fs/paths.py +276 -0
- remdb-0.3.13/src/rem/services/fs/provider.py +460 -0
- remdb-0.3.13/src/rem/services/fs/s3_provider.py +1042 -0
- remdb-0.3.13/src/rem/services/fs/service.py +186 -0
- remdb-0.3.13/src/rem/services/git/README.md +1075 -0
- remdb-0.3.13/src/rem/services/git/__init__.py +17 -0
- remdb-0.3.13/src/rem/services/git/service.py +469 -0
- remdb-0.3.13/src/rem/services/phoenix/EXPERIMENT_DESIGN.md +1146 -0
- remdb-0.3.13/src/rem/services/phoenix/README.md +453 -0
- remdb-0.3.13/src/rem/services/phoenix/__init__.py +46 -0
- remdb-0.3.13/src/rem/services/phoenix/client.py +820 -0
- remdb-0.3.13/src/rem/services/phoenix/config.py +88 -0
- remdb-0.3.13/src/rem/services/phoenix/prompt_labels.py +477 -0
- remdb-0.3.13/src/rem/services/postgres/README.md +575 -0
- remdb-0.3.13/src/rem/services/postgres/__init__.py +23 -0
- remdb-0.3.13/src/rem/services/postgres/migration_service.py +427 -0
- remdb-0.3.13/src/rem/services/postgres/pydantic_to_sqlalchemy.py +232 -0
- remdb-0.3.13/src/rem/services/postgres/register_type.py +352 -0
- remdb-0.3.13/src/rem/services/postgres/repository.py +337 -0
- remdb-0.3.13/src/rem/services/postgres/schema_generator.py +379 -0
- remdb-0.3.13/src/rem/services/postgres/service.py +802 -0
- remdb-0.3.13/src/rem/services/postgres/sql_builder.py +354 -0
- remdb-0.3.13/src/rem/services/rate_limit.py +113 -0
- remdb-0.3.13/src/rem/services/rem/README.md +304 -0
- remdb-0.3.13/src/rem/services/rem/__init__.py +23 -0
- remdb-0.3.13/src/rem/services/rem/exceptions.py +71 -0
- remdb-0.3.13/src/rem/services/rem/executor.py +293 -0
- remdb-0.3.13/src/rem/services/rem/parser.py +145 -0
- remdb-0.3.13/src/rem/services/rem/queries.py +196 -0
- remdb-0.3.13/src/rem/services/rem/query.py +371 -0
- remdb-0.3.13/src/rem/services/rem/service.py +527 -0
- remdb-0.3.13/src/rem/services/session/README.md +374 -0
- remdb-0.3.13/src/rem/services/session/__init__.py +6 -0
- remdb-0.3.13/src/rem/services/session/compression.py +360 -0
- remdb-0.3.13/src/rem/services/session/reload.py +77 -0
- remdb-0.3.13/src/rem/services/user_service.py +98 -0
- remdb-0.3.13/src/rem/settings.py +1255 -0
- remdb-0.3.13/src/rem/sql/002_install_models.sql +1068 -0
- remdb-0.3.13/src/rem/sql/background_indexes.sql +42 -0
- remdb-0.3.13/src/rem/sql/install_models.sql +1051 -0
- remdb-0.3.13/src/rem/sql/migrations/001_install.sql +503 -0
- remdb-0.3.13/src/rem/sql/migrations/002_install_models.sql +1202 -0
- remdb-0.3.13/src/rem/sql/migrations/003_seed_default_user.sql +48 -0
- remdb-0.3.13/src/rem/utils/AGENTIC_CHUNKING.md +597 -0
- remdb-0.3.13/src/rem/utils/README.md +583 -0
- remdb-0.3.13/src/rem/utils/__init__.py +43 -0
- remdb-0.3.13/src/rem/utils/agentic_chunking.py +622 -0
- remdb-0.3.13/src/rem/utils/batch_ops.py +343 -0
- remdb-0.3.13/src/rem/utils/chunking.py +108 -0
- remdb-0.3.13/src/rem/utils/clip_embeddings.py +276 -0
- remdb-0.3.13/src/rem/utils/constants.py +97 -0
- remdb-0.3.13/src/rem/utils/date_utils.py +228 -0
- remdb-0.3.13/src/rem/utils/dict_utils.py +98 -0
- remdb-0.3.13/src/rem/utils/embeddings.py +436 -0
- remdb-0.3.13/src/rem/utils/examples/embeddings_example.py +305 -0
- remdb-0.3.13/src/rem/utils/examples/sql_types_example.py +202 -0
- remdb-0.3.13/src/rem/utils/files.py +167 -0
- remdb-0.3.13/src/rem/utils/markdown.py +16 -0
- remdb-0.3.13/src/rem/utils/mime_types.py +158 -0
- remdb-0.3.13/src/rem/utils/model_helpers.py +236 -0
- remdb-0.3.13/src/rem/utils/schema_loader.py +357 -0
- remdb-0.3.13/src/rem/utils/sql_types.py +348 -0
- remdb-0.3.13/src/rem/utils/user_id.py +81 -0
- remdb-0.3.13/src/rem/utils/vision.py +325 -0
- remdb-0.3.13/src/rem/workers/README.md +506 -0
- remdb-0.3.13/src/rem/workers/__init__.py +5 -0
- remdb-0.3.13/src/rem/workers/db_maintainer.py +74 -0
- remdb-0.3.13/src/rem/workers/dreaming.py +502 -0
- remdb-0.3.13/src/rem/workers/engram_processor.py +312 -0
- remdb-0.3.13/src/rem/workers/sqs_file_processor.py +193 -0
- remdb-0.3.13/test_query_outputs.py +92 -0
- remdb-0.3.13/tests/README.md +398 -0
- remdb-0.3.13/tests/__init__.py +3 -0
- remdb-0.3.13/tests/conftest.py +38 -0
- remdb-0.3.13/tests/data/README.md +173 -0
- remdb-0.3.13/tests/data/audio/README.md +51 -0
- remdb-0.3.13/tests/data/audio/SUMMARY.md +141 -0
- remdb-0.3.13/tests/data/audio/generate_test_audio.py +148 -0
- remdb-0.3.13/tests/data/audio/test_hq_30s.wav +0 -0
- remdb-0.3.13/tests/data/audio/test_long_90s.wav +0 -0
- remdb-0.3.13/tests/data/audio/test_medium_10s.wav +0 -0
- remdb-0.3.13/tests/data/audio/test_short_3s.wav +0 -0
- remdb-0.3.13/tests/data/audio/test_standard_30s.wav +0 -0
- remdb-0.3.13/tests/data/content-examples/pdf/README.md +184 -0
- remdb-0.3.13/tests/data/content-examples/pdf/annual_financial_report.pdf +0 -0
- remdb-0.3.13/tests/data/content-examples/pdf/consulting_agreement.pdf +0 -0
- remdb-0.3.13/tests/data/content-examples/pdf/nda_agreement.pdf +0 -0
- remdb-0.3.13/tests/data/content-examples/pdf/sample_business_plan.pdf +0 -0
- remdb-0.3.13/tests/data/content-examples/pdf/sample_invoice.pdf +0 -0
- remdb-0.3.13/tests/data/content-examples/pdf/sample_research_paper.pdf +0 -0
- remdb-0.3.13/tests/data/content-examples/pdf/sample_resume.pdf +0 -0
- remdb-0.3.13/tests/data/content-examples/pdf/service_contract.pdf +0 -0
- remdb-0.3.13/tests/data/content-examples/test.md +3 -0
- remdb-0.3.13/tests/data/docs/CODE_REVIEW_FIXES.md +226 -0
- remdb-0.3.13/tests/data/docs/TEST_RESULTS.md +128 -0
- remdb-0.3.13/tests/data/docs/cli_verification.md +118 -0
- remdb-0.3.13/tests/data/docs/database-design.md +53 -0
- remdb-0.3.13/tests/data/docs/deep-learning-guide.md +38 -0
- remdb-0.3.13/tests/data/docs/ml-overview.md +21 -0
- remdb-0.3.13/tests/data/docs/python-best-practices.md +85 -0
- remdb-0.3.13/tests/data/docs/test_summary.md +96 -0
- remdb-0.3.13/tests/data/engrams/test-conversation.yaml +98 -0
- remdb-0.3.13/tests/data/engrams/test-diary-entry.yaml +44 -0
- remdb-0.3.13/tests/data/engrams/test-meeting-notes.yaml +102 -0
- remdb-0.3.13/tests/data/engrams/test-observation.yaml +72 -0
- remdb-0.3.13/tests/data/engrams/test-project-note.yaml +106 -0
- remdb-0.3.13/tests/data/graph_seed.yaml +45 -0
- remdb-0.3.13/tests/data/sample-architecture-doc.txt +48 -0
- remdb-0.3.13/tests/data/sample_conversations.yaml +84 -0
- remdb-0.3.13/tests/data/schemas/agents/query_agent.yaml +87 -0
- remdb-0.3.13/tests/data/schemas/agents/summarization_agent.yaml +83 -0
- remdb-0.3.13/tests/data/schemas/agents/test-cv-parser.yaml +120 -0
- remdb-0.3.13/tests/data/schemas/evaluators/accuracy_evaluator.yaml +61 -0
- remdb-0.3.13/tests/data/seed/001_sample_data.yaml +544 -0
- remdb-0.3.13/tests/data/seed/001_sample_data.yaml.bak +544 -0
- remdb-0.3.13/tests/data/seed/README.md +172 -0
- remdb-0.3.13/tests/data/seed/files/documents/api_spec.md +255 -0
- remdb-0.3.13/tests/data/seed/files/documents/meeting_notes.txt +128 -0
- remdb-0.3.13/tests/data/seed/files/engrams/personal_reflection.yaml +83 -0
- remdb-0.3.13/tests/data/seed/files/engrams/product_idea_voice_memo.yaml +63 -0
- remdb-0.3.13/tests/data/seed/files/engrams/team_standup_meeting.yaml +134 -0
- remdb-0.3.13/tests/data/seed/resources.yaml +282 -0
- remdb-0.3.13/tests/data/seed/test-user-data.yaml +159 -0
- remdb-0.3.13/tests/data/seed/test-user-data.yaml.bak +159 -0
- remdb-0.3.13/tests/data/seed/users.yaml +47 -0
- remdb-0.3.13/tests/integration/README.md +418 -0
- remdb-0.3.13/tests/integration/helpers/README.md +216 -0
- remdb-0.3.13/tests/integration/helpers/__init__.py +19 -0
- remdb-0.3.13/tests/integration/helpers/seed_data.py +115 -0
- remdb-0.3.13/tests/integration/phoenix/run_complete_experiment.py +609 -0
- remdb-0.3.13/tests/integration/phoenix/run_hello_world_experiment.py +305 -0
- remdb-0.3.13/tests/integration/phoenix/test_connection.py +26 -0
- remdb-0.3.13/tests/integration/rem-agent-eval-questions.yaml +180 -0
- remdb-0.3.13/tests/integration/rem-query-agent-tests.yaml +393 -0
- remdb-0.3.13/tests/integration/run_rem_agent_eval.py +375 -0
- remdb-0.3.13/tests/integration/sample_data/dreaming/load_sample_data.py +469 -0
- remdb-0.3.13/tests/integration/sample_data/dreaming/resources/api_design_discussion.md +42 -0
- remdb-0.3.13/tests/integration/sample_data/dreaming/resources/database_migration_plan.md +71 -0
- remdb-0.3.13/tests/integration/sample_data/dreaming/resources/morning_standup_notes.md +95 -0
- remdb-0.3.13/tests/integration/sample_data/dreaming/resources/production_incident_postmortem.md +111 -0
- remdb-0.3.13/tests/integration/sample_data/dreaming/resources/quarterly_reflection.md +65 -0
- remdb-0.3.13/tests/integration/services/test_content_providers.py +311 -0
- remdb-0.3.13/tests/integration/services/test_schema_provider.py +249 -0
- remdb-0.3.13/tests/integration/test_agent_end_to_end.py +187 -0
- remdb-0.3.13/tests/integration/test_agent_tool_invocation.py +80 -0
- remdb-0.3.13/tests/integration/test_agent_with_tools.py +164 -0
- remdb-0.3.13/tests/integration/test_batch_upsert.py +268 -0
- remdb-0.3.13/tests/integration/test_completions_with_sessions.py +393 -0
- remdb-0.3.13/tests/integration/test_content_ingest_workflow.py +270 -0
- remdb-0.3.13/tests/integration/test_contract_extractor.py +176 -0
- remdb-0.3.13/tests/integration/test_dreaming_moments.py +171 -0
- remdb-0.3.13/tests/integration/test_embedding_worker.py +249 -0
- remdb-0.3.13/tests/integration/test_embeddings_e2e.py +228 -0
- remdb-0.3.13/tests/integration/test_git_provider.py +215 -0
- remdb-0.3.13/tests/integration/test_graph_traversal.py +161 -0
- remdb-0.3.13/tests/integration/test_mcp_server_loading.py +143 -0
- remdb-0.3.13/tests/integration/test_mcp_tool_loading.py +176 -0
- remdb-0.3.13/tests/integration/test_mcp_tools.py +284 -0
- remdb-0.3.13/tests/integration/test_mcp_tools_layer.py +207 -0
- remdb-0.3.13/tests/integration/test_merge_strategies_demo.py +232 -0
- remdb-0.3.13/tests/integration/test_natural_language_to_rem.py +521 -0
- remdb-0.3.13/tests/integration/test_rem_query.py +368 -0
- remdb-0.3.13/tests/integration/test_rem_query_agent.py +240 -0
- remdb-0.3.13/tests/integration/test_rem_query_agent_structured.py +241 -0
- remdb-0.3.13/tests/integration/test_rem_query_evolution.py +608 -0
- remdb-0.3.13/tests/integration/test_rem_query_functions.py +150 -0
- remdb-0.3.13/tests/integration/test_rem_service_layer.py +118 -0
- remdb-0.3.13/tests/integration/test_session_management.py +397 -0
- remdb-0.3.13/tests/integration/test_user_session_reloads.py +313 -0
- remdb-0.3.13/tests/integration/test_verify_setup.py +191 -0
- remdb-0.3.13/tests/integration/test_yaml_export.py +117 -0
- remdb-0.3.13/tests/integration/validate_rem_agent_schema.py +253 -0
- remdb-0.3.13/tests/scripts/__init__.py +1 -0
- remdb-0.3.13/tests/scripts/demo_session_recovery.py +233 -0
- remdb-0.3.13/tests/scripts/seed_sample_sessions.py +251 -0
- remdb-0.3.13/tests/scripts/simple_session_demo.py +160 -0
- remdb-0.3.13/tests/unit/__init__.py +3 -0
- remdb-0.3.13/tests/unit/agentic/__init__.py +3 -0
- remdb-0.3.13/tests/unit/agentic/agents/__init__.py +1 -0
- remdb-0.3.13/tests/unit/agentic/providers/__init__.py +3 -0
- remdb-0.3.13/tests/unit/agentic/providers/test_pydantic_ai.py +330 -0
- remdb-0.3.13/tests/unit/agentic/test_schema.py +238 -0
- remdb-0.3.13/tests/unit/agentic/test_schema_integration.py +172 -0
- remdb-0.3.13/tests/unit/test_sql_security.py +74 -0
- remdb-0.3.13/tests/unit/utils/test_agentic_chunking.py +589 -0
- remdb-0.3.13/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,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=anthropic:claude-sonnet-4-5-20250929
|
|
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
|