cocoindex 0.1.55__tar.gz → 0.1.56__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. {cocoindex-0.1.55 → cocoindex-0.1.56}/Cargo.lock +1 -1
  2. {cocoindex-0.1.55 → cocoindex-0.1.56}/Cargo.toml +1 -1
  3. {cocoindex-0.1.55 → cocoindex-0.1.56}/PKG-INFO +1 -1
  4. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/code_embedding/main.py +1 -0
  5. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/execution/live_updater.rs +8 -12
  6. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/lib_context.rs +35 -3
  7. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/targets/postgres.rs +12 -8
  8. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/py/mod.rs +1 -1
  9. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/service/flows.rs +2 -2
  10. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/setup/driver.rs +1 -1
  11. {cocoindex-0.1.55 → cocoindex-0.1.56}/.cargo/config.toml +0 -0
  12. {cocoindex-0.1.55 → cocoindex-0.1.56}/.env.lib_debug +0 -0
  13. {cocoindex-0.1.55 → cocoindex-0.1.56}/.github/ISSUE_TEMPLATE//360/237/220/233-bug-report.md" +0 -0
  14. {cocoindex-0.1.55 → cocoindex-0.1.56}/.github/ISSUE_TEMPLATE//360/237/222/241-feature-request.md" +0 -0
  15. {cocoindex-0.1.55 → cocoindex-0.1.56}/.github/scripts/update_version.sh +0 -0
  16. {cocoindex-0.1.55 → cocoindex-0.1.56}/.github/workflows/CI.yml +0 -0
  17. {cocoindex-0.1.55 → cocoindex-0.1.56}/.github/workflows/_doc_release.yml +0 -0
  18. {cocoindex-0.1.55 → cocoindex-0.1.56}/.github/workflows/_test.yml +0 -0
  19. {cocoindex-0.1.55 → cocoindex-0.1.56}/.github/workflows/docs.yml +0 -0
  20. {cocoindex-0.1.55 → cocoindex-0.1.56}/.github/workflows/release.yml +0 -0
  21. {cocoindex-0.1.55 → cocoindex-0.1.56}/.gitignore +0 -0
  22. {cocoindex-0.1.55 → cocoindex-0.1.56}/.pre-commit-config.yaml +0 -0
  23. {cocoindex-0.1.55 → cocoindex-0.1.56}/.vscode/settings.json +0 -0
  24. {cocoindex-0.1.55 → cocoindex-0.1.56}/CODE_OF_CONDUCT.md +0 -0
  25. {cocoindex-0.1.55 → cocoindex-0.1.56}/CONTRIBUTING.md +0 -0
  26. {cocoindex-0.1.55 → cocoindex-0.1.56}/LICENSE +0 -0
  27. {cocoindex-0.1.55 → cocoindex-0.1.56}/README.md +0 -0
  28. {cocoindex-0.1.55 → cocoindex-0.1.56}/dev/neo4j.yaml +0 -0
  29. {cocoindex-0.1.55 → cocoindex-0.1.56}/dev/postgres.yaml +0 -0
  30. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/.gitignore +0 -0
  31. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/README.md +0 -0
  32. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/about/community.md +0 -0
  33. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/about/contributing.md +0 -0
  34. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/ai/llm.mdx +0 -0
  35. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/core/basics.md +0 -0
  36. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/core/cli.mdx +0 -0
  37. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/core/custom_function.mdx +0 -0
  38. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/core/data_example.svg +0 -0
  39. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/core/data_types.mdx +0 -0
  40. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/core/flow_def.mdx +0 -0
  41. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/core/flow_example.svg +0 -0
  42. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/core/flow_methods.mdx +0 -0
  43. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/core/settings.mdx +0 -0
  44. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/getting_started/installation.md +0 -0
  45. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/getting_started/markdown_files.zip +0 -0
  46. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/getting_started/overview.md +0 -0
  47. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/getting_started/quickstart.md +0 -0
  48. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/ops/functions.md +0 -0
  49. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/ops/sources.md +0 -0
  50. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/ops/targets.md +0 -0
  51. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docs/query.mdx +0 -0
  52. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/docusaurus.config.ts +0 -0
  53. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/package.json +0 -0
  54. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/sidebars.ts +0 -0
  55. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/src/components/HomepageFeatures/index.tsx +0 -0
  56. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/src/components/HomepageFeatures/styles.module.css +0 -0
  57. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/src/css/custom.css +0 -0
  58. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/src/theme/Root.js +0 -0
  59. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/static/.nojekyll +0 -0
  60. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/static/img/docusaurus.png +0 -0
  61. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/static/img/favicon.ico +0 -0
  62. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/static/img/icon.svg +0 -0
  63. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/static/img/incremental-etl.gif +0 -0
  64. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/static/robots.txt +0 -0
  65. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/tsconfig.json +0 -0
  66. {cocoindex-0.1.55 → cocoindex-0.1.56}/docs/yarn.lock +0 -0
  67. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/amazon_s3_embedding/.env.example +0 -0
  68. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/amazon_s3_embedding/.gitignore +0 -0
  69. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/amazon_s3_embedding/README.md +0 -0
  70. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/amazon_s3_embedding/main.py +0 -0
  71. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/amazon_s3_embedding/pyproject.toml +0 -0
  72. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/code_embedding/.env +0 -0
  73. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/code_embedding/README.md +0 -0
  74. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/code_embedding/pyproject.toml +0 -0
  75. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/docs_to_knowledge_graph/.env +0 -0
  76. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/docs_to_knowledge_graph/README.md +0 -0
  77. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/docs_to_knowledge_graph/main.py +0 -0
  78. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/docs_to_knowledge_graph/pyproject.toml +0 -0
  79. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/fastapi_server_docker/.dockerignore +0 -0
  80. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/fastapi_server_docker/.env +0 -0
  81. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/fastapi_server_docker/README.md +0 -0
  82. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/fastapi_server_docker/compose.yaml +0 -0
  83. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/fastapi_server_docker/dockerfile +0 -0
  84. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/fastapi_server_docker/files/1810.04805v2.md +0 -0
  85. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/fastapi_server_docker/main.py +0 -0
  86. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/fastapi_server_docker/requirements.txt +0 -0
  87. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/gdrive_text_embedding/.env.example +0 -0
  88. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/gdrive_text_embedding/.gitignore +0 -0
  89. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/gdrive_text_embedding/README.md +0 -0
  90. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/gdrive_text_embedding/main.py +0 -0
  91. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/gdrive_text_embedding/pyproject.toml +0 -0
  92. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/image_search/.env +0 -0
  93. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/image_search/README.md +0 -0
  94. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/image_search/frontend/.gitignore +0 -0
  95. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/image_search/frontend/index.html +0 -0
  96. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/image_search/frontend/package-lock.json +0 -0
  97. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/image_search/frontend/package.json +0 -0
  98. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/image_search/frontend/src/App.jsx +0 -0
  99. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/image_search/frontend/src/main.jsx +0 -0
  100. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/image_search/frontend/src/style.css +0 -0
  101. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/image_search/frontend/vite.config.js +0 -0
  102. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/image_search/img/cat1.jpeg +0 -0
  103. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/image_search/img/dog1.jpeg +0 -0
  104. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/image_search/img/elephant1.jpg +0 -0
  105. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/image_search/img/giraffe.jpg +0 -0
  106. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/image_search/main.py +0 -0
  107. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/image_search/pyproject.toml +0 -0
  108. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/image_search/requirements.txt +0 -0
  109. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/manuals_llm_extraction/.env +0 -0
  110. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/manuals_llm_extraction/README.md +0 -0
  111. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/manuals_llm_extraction/main.py +0 -0
  112. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/manuals_llm_extraction/manuals/array.pdf +0 -0
  113. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/manuals_llm_extraction/manuals/base64.pdf +0 -0
  114. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/manuals_llm_extraction/manuals/copy.pdf +0 -0
  115. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/manuals_llm_extraction/manuals/glob.pdf +0 -0
  116. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/manuals_llm_extraction/pyproject.toml +0 -0
  117. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/pdf_embedding/.env +0 -0
  118. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/pdf_embedding/README.md +0 -0
  119. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/pdf_embedding/main.py +0 -0
  120. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/pdf_embedding/pdf_files/1706.03762v7.pdf +0 -0
  121. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/pdf_embedding/pdf_files/1810.04805v2.pdf +0 -0
  122. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/pdf_embedding/pdf_files/rfc8259.pdf +0 -0
  123. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/pdf_embedding/pyproject.toml +0 -0
  124. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/product_recommendation/.env +0 -0
  125. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/product_recommendation/README.md +0 -0
  126. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/product_recommendation/img/cocoinsight.png +0 -0
  127. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/product_recommendation/img/neo4j.png +0 -0
  128. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/product_recommendation/main.py +0 -0
  129. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/product_recommendation/products/p1.json +0 -0
  130. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/product_recommendation/products/p2.json +0 -0
  131. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/product_recommendation/products/p3.json +0 -0
  132. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/product_recommendation/products/p4.json +0 -0
  133. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/product_recommendation/products/p5.json +0 -0
  134. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/product_recommendation/products/p6.json +0 -0
  135. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/product_recommendation/products/p7.json +0 -0
  136. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/product_recommendation/products/p8.json +0 -0
  137. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/product_recommendation/products/p9.json +0 -0
  138. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/product_recommendation/pyproject.toml +0 -0
  139. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/text_embedding/.env +0 -0
  140. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/text_embedding/README.md +0 -0
  141. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/text_embedding/Text_Embedding.ipynb +0 -0
  142. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/text_embedding/main.py +0 -0
  143. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/text_embedding/markdown_files/1706.03762v7.md +0 -0
  144. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/text_embedding/markdown_files/1810.04805v2.md +0 -0
  145. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/text_embedding/markdown_files/rfc8259.md +0 -0
  146. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/text_embedding/pyproject.toml +0 -0
  147. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/text_embedding_qdrant/.env +0 -0
  148. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/text_embedding_qdrant/README.md +0 -0
  149. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/text_embedding_qdrant/main.py +0 -0
  150. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/text_embedding_qdrant/markdown_files/rfc8259.md +0 -0
  151. {cocoindex-0.1.55 → cocoindex-0.1.56}/examples/text_embedding_qdrant/pyproject.toml +0 -0
  152. {cocoindex-0.1.55 → cocoindex-0.1.56}/pyproject.toml +0 -0
  153. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/__init__.py +0 -0
  154. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/auth_registry.py +0 -0
  155. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/cli.py +0 -0
  156. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/convert.py +0 -0
  157. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/flow.py +0 -0
  158. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/functions.py +0 -0
  159. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/index.py +0 -0
  160. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/lib.py +0 -0
  161. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/llm.py +0 -0
  162. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/op.py +0 -0
  163. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/py.typed +0 -0
  164. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/runtime.py +0 -0
  165. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/setting.py +0 -0
  166. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/setup.py +0 -0
  167. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/sources.py +0 -0
  168. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/targets.py +0 -0
  169. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/tests/__init__.py +0 -0
  170. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/tests/test_convert.py +0 -0
  171. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/tests/test_optional_database.py +0 -0
  172. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/tests/test_typing.py +0 -0
  173. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/typing.py +0 -0
  174. {cocoindex-0.1.55 → cocoindex-0.1.56}/python/cocoindex/utils.py +0 -0
  175. {cocoindex-0.1.55 → cocoindex-0.1.56}/ruff.toml +0 -0
  176. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/base/duration.rs +0 -0
  177. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/base/field_attrs.rs +0 -0
  178. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/base/json_schema.rs +0 -0
  179. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/base/mod.rs +0 -0
  180. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/base/schema.rs +0 -0
  181. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/base/spec.rs +0 -0
  182. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/base/value.rs +0 -0
  183. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/builder/analyzed_flow.rs +0 -0
  184. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/builder/analyzer.rs +0 -0
  185. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/builder/exec_ctx.rs +0 -0
  186. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/builder/flow_builder.rs +0 -0
  187. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/builder/mod.rs +0 -0
  188. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/builder/plan.rs +0 -0
  189. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/execution/db_tracking.rs +0 -0
  190. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/execution/db_tracking_setup.rs +0 -0
  191. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/execution/dumper.rs +0 -0
  192. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/execution/evaluator.rs +0 -0
  193. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/execution/indexing_status.rs +0 -0
  194. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/execution/memoization.rs +0 -0
  195. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/execution/mod.rs +0 -0
  196. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/execution/row_indexer.rs +0 -0
  197. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/execution/source_indexer.rs +0 -0
  198. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/execution/stats.rs +0 -0
  199. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/lib.rs +0 -0
  200. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/llm/anthropic.rs +0 -0
  201. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/llm/gemini.rs +0 -0
  202. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/llm/litellm.rs +0 -0
  203. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/llm/mod.rs +0 -0
  204. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/llm/ollama.rs +0 -0
  205. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/llm/openai.rs +0 -0
  206. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/llm/openrouter.rs +0 -0
  207. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/llm/voyage.rs +0 -0
  208. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/factory_bases.rs +0 -0
  209. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/functions/embed_text.rs +0 -0
  210. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/functions/extract_by_llm.rs +0 -0
  211. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/functions/mod.rs +0 -0
  212. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/functions/parse_json.rs +0 -0
  213. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/functions/split_recursively.rs +0 -0
  214. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/interface.rs +0 -0
  215. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/mod.rs +0 -0
  216. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/py_factory.rs +0 -0
  217. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/registration.rs +0 -0
  218. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/registry.rs +0 -0
  219. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/sdk.rs +0 -0
  220. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/sources/amazon_s3.rs +0 -0
  221. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/sources/google_drive.rs +0 -0
  222. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/sources/local_file.rs +0 -0
  223. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/sources/mod.rs +0 -0
  224. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/targets/kuzu.rs +0 -0
  225. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/targets/mod.rs +0 -0
  226. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/targets/neo4j.rs +0 -0
  227. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/targets/qdrant.rs +0 -0
  228. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/targets/shared/mod.rs +0 -0
  229. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/targets/shared/property_graph.rs +0 -0
  230. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/ops/targets/shared/table_columns.rs +0 -0
  231. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/prelude.rs +0 -0
  232. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/py/convert.rs +0 -0
  233. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/server.rs +0 -0
  234. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/service/error.rs +0 -0
  235. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/service/mod.rs +0 -0
  236. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/settings.rs +0 -0
  237. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/setup/auth_registry.rs +0 -0
  238. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/setup/components.rs +0 -0
  239. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/setup/db_metadata.rs +0 -0
  240. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/setup/mod.rs +0 -0
  241. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/setup/states.rs +0 -0
  242. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/utils/db.rs +0 -0
  243. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/utils/fingerprint.rs +0 -0
  244. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/utils/immutable.rs +0 -0
  245. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/utils/mod.rs +0 -0
  246. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/utils/retryable.rs +0 -0
  247. {cocoindex-0.1.55 → cocoindex-0.1.56}/src/utils/yaml_ser.rs +0 -0
@@ -1040,7 +1040,7 @@ dependencies = [
1040
1040
 
1041
1041
  [[package]]
1042
1042
  name = "cocoindex"
1043
- version = "0.1.55"
1043
+ version = "0.1.56"
1044
1044
  dependencies = [
1045
1045
  "anyhow",
1046
1046
  "async-openai",
@@ -2,7 +2,7 @@
2
2
  name = "cocoindex"
3
3
  # Version used for local development is always higher than others to take precedence.
4
4
  # Will be overridden for specific release versions.
5
- version = "0.1.55"
5
+ version = "0.1.56"
6
6
  edition = "2024"
7
7
  rust-version = "1.86"
8
8
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cocoindex
3
- Version: 0.1.55
3
+ Version: 0.1.56
4
4
  Requires-Dist: sentence-transformers>=3.3.1
5
5
  Requires-Dist: click>=8.1.8
6
6
  Requires-Dist: rich>=14.0.0
@@ -67,6 +67,7 @@ def code_embedding_flow(
67
67
  location=chunk["location"],
68
68
  code=chunk["text"],
69
69
  embedding=chunk["embedding"],
70
+ start=chunk["start"],
70
71
  )
71
72
 
72
73
  code_embeddings.export(
@@ -60,16 +60,16 @@ impl SharedAckFn {
60
60
  }
61
61
 
62
62
  async fn update_source(
63
- flow_ctx: Arc<FlowContext>,
63
+ flow: Arc<builder::AnalyzedFlow>,
64
64
  plan: Arc<plan::ExecutionPlan>,
65
+ execution_ctx: Arc<tokio::sync::OwnedRwLockReadGuard<crate::lib_context::ExecutionContext>>,
65
66
  source_update_stats: Arc<stats::UpdateStats>,
66
67
  source_idx: usize,
67
68
  pool: PgPool,
68
69
  options: FlowLiveUpdaterOptions,
69
70
  ) -> Result<()> {
70
- let execution_ctx = flow_ctx.execution_ctx.read().await;
71
71
  let source_context = execution_ctx
72
- .get_source_indexing_context(&flow_ctx.flow, source_idx, &pool)
72
+ .get_source_indexing_context(&flow, source_idx, &pool)
73
73
  .await?;
74
74
 
75
75
  let import_op = &plan.import_ops[source_idx];
@@ -97,15 +97,9 @@ async fn update_source(
97
97
  delta
98
98
  };
99
99
  if options.print_stats {
100
- println!(
101
- "{}.{}: {}",
102
- flow_ctx.flow.flow_instance.name, import_op.name, delta
103
- );
100
+ println!("{}.{}: {}", flow.flow_instance.name, import_op.name, delta);
104
101
  } else {
105
- trace!(
106
- "{}.{}: {}",
107
- flow_ctx.flow.flow_instance.name, import_op.name, delta
108
- );
102
+ trace!("{}.{}: {}", flow.flow_instance.name, import_op.name, delta);
109
103
  }
110
104
  };
111
105
 
@@ -219,14 +213,16 @@ impl FlowLiveUpdater {
219
213
  options: FlowLiveUpdaterOptions,
220
214
  ) -> Result<Self> {
221
215
  let plan = flow_ctx.flow.get_execution_plan().await?;
216
+ let execution_ctx = Arc::new(flow_ctx.use_owned_execution_ctx().await?);
222
217
 
223
218
  let mut tasks = JoinSet::new();
224
219
  let sources_update_stats = (0..plan.import_ops.len())
225
220
  .map(|source_idx| {
226
221
  let source_update_stats = Arc::new(stats::UpdateStats::default());
227
222
  tasks.spawn(update_source(
228
- flow_ctx.clone(),
223
+ flow_ctx.flow.clone(),
229
224
  plan.clone(),
225
+ execution_ctx.clone(),
230
226
  source_update_stats.clone(),
231
227
  source_idx,
232
228
  pool.clone(),
@@ -4,6 +4,7 @@ use crate::builder::AnalyzedFlow;
4
4
  use crate::execution::source_indexer::SourceIndexingContext;
5
5
  use crate::service::error::ApiError;
6
6
  use crate::settings;
7
+ use crate::setup::ObjectSetupStatus;
7
8
  use axum::http::StatusCode;
8
9
  use sqlx::PgPool;
9
10
  use sqlx::postgres::PgConnectOptions;
@@ -67,7 +68,7 @@ impl ExecutionContext {
67
68
  }
68
69
  pub struct FlowContext {
69
70
  pub flow: Arc<AnalyzedFlow>,
70
- pub execution_ctx: tokio::sync::RwLock<ExecutionContext>,
71
+ execution_ctx: Arc<tokio::sync::RwLock<ExecutionContext>>,
71
72
  }
72
73
 
73
74
  impl FlowContext {
@@ -75,13 +76,44 @@ impl FlowContext {
75
76
  flow: Arc<AnalyzedFlow>,
76
77
  existing_flow_ss: Option<&setup::FlowSetupState<setup::ExistingMode>>,
77
78
  ) -> Result<Self> {
78
- let execution_ctx =
79
- tokio::sync::RwLock::new(ExecutionContext::new(&flow, existing_flow_ss).await?);
79
+ let execution_ctx = Arc::new(tokio::sync::RwLock::new(
80
+ ExecutionContext::new(&flow, existing_flow_ss).await?,
81
+ ));
80
82
  Ok(Self {
81
83
  flow,
82
84
  execution_ctx,
83
85
  })
84
86
  }
87
+
88
+ pub async fn use_execution_ctx(
89
+ &self,
90
+ ) -> Result<tokio::sync::RwLockReadGuard<ExecutionContext>> {
91
+ let execution_ctx = self.execution_ctx.read().await;
92
+ if !execution_ctx.flow_setup_status.is_up_to_date() {
93
+ api_bail!(
94
+ "Flow setup is not up-to-date. Please run `cocoindex setup` to update the setup."
95
+ );
96
+ }
97
+ Ok(execution_ctx)
98
+ }
99
+
100
+ pub async fn use_owned_execution_ctx(
101
+ &self,
102
+ ) -> Result<tokio::sync::OwnedRwLockReadGuard<ExecutionContext>> {
103
+ let execution_ctx = self.execution_ctx.clone().read_owned().await;
104
+ if !execution_ctx.flow_setup_status.is_up_to_date() {
105
+ api_bail!(
106
+ "Flow setup is not up-to-date. Please run `cocoindex setup` to update the setup."
107
+ );
108
+ }
109
+ Ok(execution_ctx)
110
+ }
111
+
112
+ pub async fn get_execution_ctx_for_setup(
113
+ &self,
114
+ ) -> tokio::sync::RwLockReadGuard<ExecutionContext> {
115
+ self.execution_ctx.read().await
116
+ }
85
117
  }
86
118
 
87
119
  static TOKIO_RUNTIME: LazyLock<Runtime> = LazyLock::new(|| Runtime::new().unwrap());
@@ -194,17 +194,17 @@ impl ExportContext {
194
194
  ) -> Result<Self> {
195
195
  let key_fields = key_fields_schema
196
196
  .iter()
197
- .map(|f| f.name.as_str())
197
+ .map(|f| format!("\"{}\"", f.name))
198
198
  .collect::<Vec<_>>()
199
199
  .join(", ");
200
200
  let value_fields = value_fields_schema
201
201
  .iter()
202
- .map(|f| f.name.as_str())
202
+ .map(|f| format!("\"{}\"", f.name))
203
203
  .collect::<Vec<_>>()
204
204
  .join(", ");
205
205
  let set_value_fields = value_fields_schema
206
206
  .iter()
207
- .map(|f| format!("{} = EXCLUDED.{}", f.name, f.name))
207
+ .map(|f| format!("\"{}\" = EXCLUDED.\"{}\"", f.name, f.name))
208
208
  .collect::<Vec<_>>()
209
209
  .join(", ");
210
210
 
@@ -288,7 +288,9 @@ impl ExportContext {
288
288
  if i > 0 {
289
289
  query_builder.push(" AND ");
290
290
  }
291
+ query_builder.push("\"");
291
292
  query_builder.push(schema.name.as_str());
293
+ query_builder.push("\"");
292
294
  query_builder.push("=");
293
295
  bind_key_field(&mut query_builder, value)?;
294
296
  }
@@ -547,14 +549,16 @@ impl SetupStatus {
547
549
  .await?;
548
550
  }
549
551
  for index_name in self.actions.indexes_to_delete.iter() {
550
- let sql = format!("DROP INDEX IF EXISTS {}", index_name);
552
+ let sql = format!("DROP INDEX IF EXISTS {index_name}");
551
553
  sqlx::query(&sql).execute(db_pool).await?;
552
554
  }
553
555
  if let Some(table_upsertion) = &self.actions.table_action.table_upsertion {
554
556
  match table_upsertion {
555
557
  TableUpsertionAction::Create { keys, values } => {
556
- let mut fields = (keys.iter().map(|(k, v)| format!("{k} {v} NOT NULL")))
557
- .chain(values.iter().map(|(k, v)| format!("{k} {v}")));
558
+ let mut fields = (keys
559
+ .iter()
560
+ .map(|(name, typ)| format!("\"{name}\" {typ} NOT NULL")))
561
+ .chain(values.iter().map(|(name, typ)| format!("\"{name}\" {typ}")));
558
562
  let sql = format!(
559
563
  "CREATE TABLE IF NOT EXISTS {table_name} ({}, PRIMARY KEY ({}))",
560
564
  fields.join(", "),
@@ -568,13 +572,13 @@ impl SetupStatus {
568
572
  } => {
569
573
  for column_name in columns_to_delete.iter() {
570
574
  let sql = format!(
571
- "ALTER TABLE {table_name} DROP COLUMN IF EXISTS {column_name}",
575
+ "ALTER TABLE {table_name} DROP COLUMN IF EXISTS \"{column_name}\"",
572
576
  );
573
577
  sqlx::query(&sql).execute(db_pool).await?;
574
578
  }
575
579
  for (column_name, column_type) in columns_to_upsert.iter() {
576
580
  let sql = format!(
577
- "ALTER TABLE {table_name} DROP COLUMN IF EXISTS {column_name}, ADD COLUMN {column_name} {column_type}"
581
+ "ALTER TABLE {table_name} DROP COLUMN IF EXISTS \"{column_name}\", ADD COLUMN \"{column_name}\" {column_type}"
578
582
  );
579
583
  sqlx::query(&sql).execute(db_pool).await?;
580
584
  }
@@ -202,7 +202,7 @@ impl Flow {
202
202
  .block_on(async {
203
203
  let exec_plan = self.0.flow.get_execution_plan().await?;
204
204
  let lib_context = get_lib_context()?;
205
- let execution_ctx = self.0.execution_ctx.read().await;
205
+ let execution_ctx = self.0.use_execution_ctx().await?;
206
206
  execution::dumper::evaluate_and_dump(
207
207
  &exec_plan,
208
208
  &execution_ctx.setup_execution_context,
@@ -189,7 +189,7 @@ pub async fn evaluate_data(
189
189
  ) -> Result<Json<EvaluateDataResponse>, ApiError> {
190
190
  let flow_ctx = lib_context.get_flow_context(&flow_name)?;
191
191
  let source_row_key_ctx = SourceRowKeyContextHolder::create(&flow_ctx, query).await?;
192
- let execution_ctx = flow_ctx.execution_ctx.read().await;
192
+ let execution_ctx = flow_ctx.use_execution_ctx().await?;
193
193
  let evaluate_output = row_indexer::evaluate_source_entry_with_memory(
194
194
  &source_row_key_ctx.as_context(),
195
195
  &execution_ctx.setup_execution_context,
@@ -239,7 +239,7 @@ pub async fn get_row_indexing_status(
239
239
  let flow_ctx = lib_context.get_flow_context(&flow_name)?;
240
240
  let source_row_key_ctx = SourceRowKeyContextHolder::create(&flow_ctx, query).await?;
241
241
 
242
- let execution_ctx = flow_ctx.execution_ctx.read().await;
242
+ let execution_ctx = flow_ctx.use_execution_ctx().await?;
243
243
  let indexing_status = indexing_status::get_source_row_indexing_status(
244
244
  &source_row_key_ctx.as_context(),
245
245
  &execution_ctx.setup_execution_context,
@@ -366,7 +366,7 @@ pub async fn sync_setup(
366
366
  let mut flow_setup_status = BTreeMap::new();
367
367
  for (flow_name, flow_context) in flows {
368
368
  let existing_state = all_setup_state.flows.get(flow_name);
369
- let execution_ctx = flow_context.execution_ctx.read().await;
369
+ let execution_ctx = flow_context.get_execution_ctx_for_setup().await;
370
370
  flow_setup_status.insert(
371
371
  flow_name.clone(),
372
372
  check_flow_setup_status(
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes