flowcept 0.9.12__tar.gz → 0.9.16__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 (218) hide show
  1. {flowcept-0.9.12 → flowcept-0.9.16}/.github/workflows/checks.yml +1 -1
  2. {flowcept-0.9.12 → flowcept-0.9.16}/.github/workflows/run-llm-tests.yml +1 -1
  3. {flowcept-0.9.12 → flowcept-0.9.16}/.github/workflows/run-tests-all-dbs.yml +1 -1
  4. {flowcept-0.9.12 → flowcept-0.9.16}/.github/workflows/run-tests-kafka.yml +1 -1
  5. {flowcept-0.9.12 → flowcept-0.9.16}/.github/workflows/run-tests-py313.yml +1 -1
  6. {flowcept-0.9.12 → flowcept-0.9.16}/.github/workflows/run-tests-simple.yml +1 -1
  7. {flowcept-0.9.12 → flowcept-0.9.16}/.github/workflows/run-tests.yml +1 -1
  8. {flowcept-0.9.12 → flowcept-0.9.16}/PKG-INFO +1 -1
  9. {flowcept-0.9.12 → flowcept-0.9.16}/docs/publications/README.md +47 -4
  10. flowcept-0.9.16/resources/ontology/catalog-v001.xml +4 -0
  11. flowcept-0.9.16/resources/ontology/prov_agent.owl +102 -0
  12. {flowcept-0.9.12 → flowcept-0.9.16}/resources/sample_settings.yaml +1 -1
  13. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/agents_utils.py +15 -0
  14. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/cli.py +1 -1
  15. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/version.py +1 -1
  16. {flowcept-0.9.12 → flowcept-0.9.16}/.github/workflows/create-release-n-publish.yml +0 -0
  17. {flowcept-0.9.12 → flowcept-0.9.16}/.github/workflows/run-tests-in-container.yml +0 -0
  18. {flowcept-0.9.12 → flowcept-0.9.16}/.github/workflows/run_examples.sh +0 -0
  19. {flowcept-0.9.12 → flowcept-0.9.16}/.github/workflows/version_bumper.py +0 -0
  20. {flowcept-0.9.12 → flowcept-0.9.16}/.gitignore +0 -0
  21. {flowcept-0.9.12 → flowcept-0.9.16}/.readthedocs.yaml +0 -0
  22. {flowcept-0.9.12 → flowcept-0.9.16}/CONTRIBUTING.md +0 -0
  23. {flowcept-0.9.12 → flowcept-0.9.16}/LICENSE +0 -0
  24. {flowcept-0.9.12 → flowcept-0.9.16}/Makefile +0 -0
  25. {flowcept-0.9.12 → flowcept-0.9.16}/README.md +0 -0
  26. {flowcept-0.9.12 → flowcept-0.9.16}/deployment/Dockerfile +0 -0
  27. {flowcept-0.9.12 → flowcept-0.9.16}/deployment/compose-grafana.yml +0 -0
  28. {flowcept-0.9.12 → flowcept-0.9.16}/deployment/compose-kafka.yml +0 -0
  29. {flowcept-0.9.12 → flowcept-0.9.16}/deployment/compose-mofka.yml +0 -0
  30. {flowcept-0.9.12 → flowcept-0.9.16}/deployment/compose-mongo.yml +0 -0
  31. {flowcept-0.9.12 → flowcept-0.9.16}/deployment/compose.yml +0 -0
  32. {flowcept-0.9.12 → flowcept-0.9.16}/docs/api-reference.rst +0 -0
  33. {flowcept-0.9.12 → flowcept-0.9.16}/docs/architecture.rst +0 -0
  34. {flowcept-0.9.12 → flowcept-0.9.16}/docs/cli-reference.rst +0 -0
  35. {flowcept-0.9.12 → flowcept-0.9.16}/docs/conf.py +0 -0
  36. {flowcept-0.9.12 → flowcept-0.9.16}/docs/contributing.rst +0 -0
  37. {flowcept-0.9.12 → flowcept-0.9.16}/docs/img/PROV-AGENT.svg +0 -0
  38. {flowcept-0.9.12 → flowcept-0.9.16}/docs/img/architecture-diagram.png +0 -0
  39. {flowcept-0.9.12 → flowcept-0.9.16}/docs/img/flowcept-logo-dark.png +0 -0
  40. {flowcept-0.9.12 → flowcept-0.9.16}/docs/img/flowcept-logo.png +0 -0
  41. {flowcept-0.9.12 → flowcept-0.9.16}/docs/index.rst +0 -0
  42. {flowcept-0.9.12 → flowcept-0.9.16}/docs/large_data.rst +0 -0
  43. {flowcept-0.9.12 → flowcept-0.9.16}/docs/prov_capture.rst +0 -0
  44. {flowcept-0.9.12 → flowcept-0.9.16}/docs/prov_query.rst +0 -0
  45. {flowcept-0.9.12 → flowcept-0.9.16}/docs/prov_storage.rst +0 -0
  46. {flowcept-0.9.12 → flowcept-0.9.16}/docs/quick_start.rst +0 -0
  47. {flowcept-0.9.12 → flowcept-0.9.16}/docs/schemas.rst +0 -0
  48. {flowcept-0.9.12 → flowcept-0.9.16}/docs/setup.rst +0 -0
  49. {flowcept-0.9.12 → flowcept-0.9.16}/docs/task_schema.rst +0 -0
  50. {flowcept-0.9.12 → flowcept-0.9.16}/docs/telemetry_capture.rst +0 -0
  51. {flowcept-0.9.12 → flowcept-0.9.16}/docs/workflow_schema.rst +0 -0
  52. {flowcept-0.9.12 → flowcept-0.9.16}/examples/agents/a2a/README.md +0 -0
  53. {flowcept-0.9.12 → flowcept-0.9.16}/examples/agents/a2a/agent1.py +0 -0
  54. {flowcept-0.9.12 → flowcept-0.9.16}/examples/agents/a2a/agent2.py +0 -0
  55. {flowcept-0.9.12 → flowcept-0.9.16}/examples/agents/aec_agent_context_manager.py +0 -0
  56. {flowcept-0.9.12 → flowcept-0.9.16}/examples/agents/aec_agent_mock.py +0 -0
  57. {flowcept-0.9.12 → flowcept-0.9.16}/examples/agents/aec_prompts.py +0 -0
  58. {flowcept-0.9.12 → flowcept-0.9.16}/examples/agents/opt_driver_mock.py +0 -0
  59. {flowcept-0.9.12 → flowcept-0.9.16}/examples/consumers/ping_pong_example.py +0 -0
  60. {flowcept-0.9.12 → flowcept-0.9.16}/examples/consumers/simple_consumer.py +0 -0
  61. {flowcept-0.9.12 → flowcept-0.9.16}/examples/consumers/simple_publisher.py +0 -0
  62. {flowcept-0.9.12 → flowcept-0.9.16}/examples/convergence_loop_example.py +0 -0
  63. {flowcept-0.9.12 → flowcept-0.9.16}/examples/dask_example.py +0 -0
  64. {flowcept-0.9.12 → flowcept-0.9.16}/examples/distributed_consumer_example.py +0 -0
  65. {flowcept-0.9.12 → flowcept-0.9.16}/examples/instrumented_loop_example.py +0 -0
  66. {flowcept-0.9.12 → flowcept-0.9.16}/examples/instrumented_simple_example.py +0 -0
  67. {flowcept-0.9.12 → flowcept-0.9.16}/examples/llm_complex/README.md +0 -0
  68. {flowcept-0.9.12 → flowcept-0.9.16}/examples/llm_complex/custom_provenance_id_mapping.yaml +0 -0
  69. {flowcept-0.9.12 → flowcept-0.9.16}/examples/llm_complex/llm_dataprep.py +0 -0
  70. {flowcept-0.9.12 → flowcept-0.9.16}/examples/llm_complex/llm_main_example.py +0 -0
  71. {flowcept-0.9.12 → flowcept-0.9.16}/examples/llm_complex/llm_model.py +0 -0
  72. {flowcept-0.9.12 → flowcept-0.9.16}/examples/llm_complex/llm_test_runner.py +0 -0
  73. {flowcept-0.9.12 → flowcept-0.9.16}/examples/llm_tutorial/README.md +0 -0
  74. {flowcept-0.9.12 → flowcept-0.9.16}/examples/llm_tutorial/analysis.ipynb +0 -0
  75. {flowcept-0.9.12 → flowcept-0.9.16}/examples/llm_tutorial/llm_dataprep.py +0 -0
  76. {flowcept-0.9.12 → flowcept-0.9.16}/examples/llm_tutorial/llm_model.py +0 -0
  77. {flowcept-0.9.12 → flowcept-0.9.16}/examples/llm_tutorial/llm_train_campaign.py +0 -0
  78. {flowcept-0.9.12 → flowcept-0.9.16}/examples/mlflow_example.py +0 -0
  79. {flowcept-0.9.12 → flowcept-0.9.16}/examples/mqtt_example.py +0 -0
  80. {flowcept-0.9.12 → flowcept-0.9.16}/examples/single_layer_perceptron_example.py +0 -0
  81. {flowcept-0.9.12 → flowcept-0.9.16}/examples/start_here.py +0 -0
  82. {flowcept-0.9.12 → flowcept-0.9.16}/examples/tensorboard_example.py +0 -0
  83. {flowcept-0.9.12 → flowcept-0.9.16}/examples/unmanaged/main.py +0 -0
  84. {flowcept-0.9.12 → flowcept-0.9.16}/examples/unmanaged/simple_task.py +0 -0
  85. {flowcept-0.9.12 → flowcept-0.9.16}/notebooks/analytics.ipynb +0 -0
  86. {flowcept-0.9.12 → flowcept-0.9.16}/notebooks/dask.ipynb +0 -0
  87. {flowcept-0.9.12 → flowcept-0.9.16}/notebooks/dask_from_CLI.ipynb +0 -0
  88. {flowcept-0.9.12 → flowcept-0.9.16}/notebooks/mlflow.ipynb +0 -0
  89. {flowcept-0.9.12 → flowcept-0.9.16}/notebooks/reset_dask_nb_exec_counts.py +0 -0
  90. {flowcept-0.9.12 → flowcept-0.9.16}/notebooks/tensorboard.ipynb +0 -0
  91. {flowcept-0.9.12 → flowcept-0.9.16}/pyproject.toml +0 -0
  92. {flowcept-0.9.12 → flowcept-0.9.16}/resources/mofka/bedrock_setup.sh +0 -0
  93. {flowcept-0.9.12 → flowcept-0.9.16}/resources/mofka/consumer.py +0 -0
  94. {flowcept-0.9.12 → flowcept-0.9.16}/resources/mofka/mofka-requirements.yaml +0 -0
  95. {flowcept-0.9.12 → flowcept-0.9.16}/resources/mofka/mofka_config.json +0 -0
  96. {flowcept-0.9.12 → flowcept-0.9.16}/resources/simple_redis_consumer.py +0 -0
  97. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/__init__.py +0 -0
  98. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/__init__.py +0 -0
  99. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/agent_client.py +0 -0
  100. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/dynamic_schema_tracker.py +0 -0
  101. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/flowcept_agent.py +0 -0
  102. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/flowcept_ctx_manager.py +0 -0
  103. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/gui/__init__.py +0 -0
  104. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/gui/agent_gui.py +0 -0
  105. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/gui/audio_utils.py +0 -0
  106. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/gui/gui_utils.py +0 -0
  107. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/llms/__init__.py +0 -0
  108. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/llms/claude_gcp.py +0 -0
  109. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/llms/gemini25.py +0 -0
  110. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/prompts/__init__.py +0 -0
  111. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/prompts/general_prompts.py +0 -0
  112. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/prompts/in_memory_query_prompts.py +0 -0
  113. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/tools/__init__.py +0 -0
  114. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/tools/general_tools.py +0 -0
  115. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/tools/in_memory_queries/__init__.py +0 -0
  116. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/tools/in_memory_queries/in_memory_queries_tools.py +0 -0
  117. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/agents/tools/in_memory_queries/pandas_agent_utils.py +0 -0
  118. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/analytics/__init__.py +0 -0
  119. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/analytics/analytics_utils.py +0 -0
  120. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/analytics/data_augmentation.py +0 -0
  121. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/analytics/plot.py +0 -0
  122. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/__init__.py +0 -0
  123. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/autoflush_buffer.py +0 -0
  124. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/daos/__init__.py +0 -0
  125. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/daos/docdb_dao/__init__.py +0 -0
  126. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/daos/docdb_dao/docdb_dao_base.py +0 -0
  127. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/daos/docdb_dao/lmdb_dao.py +0 -0
  128. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/daos/docdb_dao/mongodb_dao.py +0 -0
  129. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/daos/keyvalue_dao.py +0 -0
  130. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/daos/mq_dao/__init__.py +0 -0
  131. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/daos/mq_dao/mq_dao_base.py +0 -0
  132. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/daos/mq_dao/mq_dao_kafka.py +0 -0
  133. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/daos/mq_dao/mq_dao_mofka.py +0 -0
  134. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/daos/mq_dao/mq_dao_redis.py +0 -0
  135. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/daos/redis_conn.py +0 -0
  136. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/flowcept_dataclasses/__init__.py +0 -0
  137. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/flowcept_dataclasses/base_settings_dataclasses.py +0 -0
  138. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/flowcept_dataclasses/task_object.py +0 -0
  139. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/flowcept_dataclasses/telemetry.py +0 -0
  140. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/flowcept_dataclasses/workflow_object.py +0 -0
  141. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/flowcept_logger.py +0 -0
  142. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/query_utils.py +0 -0
  143. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/settings_factory.py +0 -0
  144. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/task_data_preprocess.py +0 -0
  145. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/utils.py +0 -0
  146. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/commons/vocabulary.py +0 -0
  147. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/configs.py +0 -0
  148. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowcept_api/__init__.py +0 -0
  149. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowcept_api/db_api.py +0 -0
  150. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowcept_api/flowcept_controller.py +0 -0
  151. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowcept_api/task_query_api.py +0 -0
  152. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowcept_webserver/__init__.py +0 -0
  153. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowcept_webserver/app.py +0 -0
  154. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowcept_webserver/resources/__init__.py +0 -0
  155. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowcept_webserver/resources/query_rsrc.py +0 -0
  156. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowcept_webserver/resources/task_messages_rsrc.py +0 -0
  157. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/__init__.py +0 -0
  158. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/__init__.py +0 -0
  159. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/base_interceptor.py +0 -0
  160. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/brokers/__init__.py +0 -0
  161. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/brokers/mqtt_interceptor.py +0 -0
  162. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/dask/__init__.py +0 -0
  163. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/dask/dask_dataclasses.py +0 -0
  164. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/dask/dask_interceptor.py +0 -0
  165. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/dask/dask_plugins.py +0 -0
  166. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/instrumentation_interceptor.py +0 -0
  167. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/interceptor_state_manager.py +0 -0
  168. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/mlflow/__init__.py +0 -0
  169. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/mlflow/interception_event_handler.py +0 -0
  170. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/mlflow/mlflow_dao.py +0 -0
  171. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/mlflow/mlflow_dataclasses.py +0 -0
  172. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/mlflow/mlflow_interceptor.py +0 -0
  173. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/tensorboard/__init__.py +0 -0
  174. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/tensorboard/tensorboard_dataclasses.py +0 -0
  175. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/adapters/tensorboard/tensorboard_interceptor.py +0 -0
  176. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/consumers/__init__.py +0 -0
  177. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/consumers/agent/__init__.py +0 -0
  178. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/consumers/agent/base_agent_context_manager.py +0 -0
  179. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/consumers/base_consumer.py +0 -0
  180. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/consumers/consumer_utils.py +0 -0
  181. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/consumers/document_inserter.py +0 -0
  182. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/flowceptor/telemetry_capture.py +0 -0
  183. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/instrumentation/__init__.py +0 -0
  184. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/instrumentation/flowcept_agent_task.py +0 -0
  185. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/instrumentation/flowcept_decorator.py +0 -0
  186. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/instrumentation/flowcept_loop.py +0 -0
  187. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/instrumentation/flowcept_task.py +0 -0
  188. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/instrumentation/flowcept_torch.py +0 -0
  189. {flowcept-0.9.12 → flowcept-0.9.16}/src/flowcept/instrumentation/task_capture.py +0 -0
  190. {flowcept-0.9.12 → flowcept-0.9.16}/tests/__init__.py +0 -0
  191. {flowcept-0.9.12 → flowcept-0.9.16}/tests/adapters/__init__.py +0 -0
  192. {flowcept-0.9.12 → flowcept-0.9.16}/tests/adapters/dask_test_utils.py +0 -0
  193. {flowcept-0.9.12 → flowcept-0.9.16}/tests/adapters/test_broker.py +0 -0
  194. {flowcept-0.9.12 → flowcept-0.9.16}/tests/adapters/test_dask.py +0 -0
  195. {flowcept-0.9.12 → flowcept-0.9.16}/tests/adapters/test_dask_with_context_mgmt.py +0 -0
  196. {flowcept-0.9.12 → flowcept-0.9.16}/tests/adapters/test_file_observer.py +0 -0
  197. {flowcept-0.9.12 → flowcept-0.9.16}/tests/adapters/test_mlflow.py +0 -0
  198. {flowcept-0.9.12 → flowcept-0.9.16}/tests/adapters/test_tensorboard.py +0 -0
  199. {flowcept-0.9.12 → flowcept-0.9.16}/tests/api/__init__.py +0 -0
  200. {flowcept-0.9.12 → flowcept-0.9.16}/tests/api/db_api_test.py +0 -0
  201. {flowcept-0.9.12 → flowcept-0.9.16}/tests/api/flowcept_api_test.py +0 -0
  202. {flowcept-0.9.12 → flowcept-0.9.16}/tests/api/sample_data.json +0 -0
  203. {flowcept-0.9.12 → flowcept-0.9.16}/tests/api/sample_data_with_telemetry_and_rai.json +0 -0
  204. {flowcept-0.9.12 → flowcept-0.9.16}/tests/api/task_query_api_test.py +0 -0
  205. {flowcept-0.9.12 → flowcept-0.9.16}/tests/doc_db_inserter/__init__.py +0 -0
  206. {flowcept-0.9.12 → flowcept-0.9.16}/tests/doc_db_inserter/doc_db_inserter_test.py +0 -0
  207. {flowcept-0.9.12 → flowcept-0.9.16}/tests/instrumentation_tests/__init__.py +0 -0
  208. {flowcept-0.9.12 → flowcept-0.9.16}/tests/instrumentation_tests/flowcept_explicit_tasks.py +0 -0
  209. {flowcept-0.9.12 → flowcept-0.9.16}/tests/instrumentation_tests/flowcept_loop_test.py +0 -0
  210. {flowcept-0.9.12 → flowcept-0.9.16}/tests/instrumentation_tests/flowcept_task_decorator_test.py +0 -0
  211. {flowcept-0.9.12 → flowcept-0.9.16}/tests/instrumentation_tests/ml_tests/__init__.py +0 -0
  212. {flowcept-0.9.12 → flowcept-0.9.16}/tests/instrumentation_tests/ml_tests/dl_trainer.py +0 -0
  213. {flowcept-0.9.12 → flowcept-0.9.16}/tests/instrumentation_tests/ml_tests/ml_decorator_dask_test.py +0 -0
  214. {flowcept-0.9.12 → flowcept-0.9.16}/tests/instrumentation_tests/ml_tests/ml_decorator_test.py +0 -0
  215. {flowcept-0.9.12 → flowcept-0.9.16}/tests/misc_tests/__init__.py +0 -0
  216. {flowcept-0.9.12 → flowcept-0.9.16}/tests/misc_tests/log_test.py +0 -0
  217. {flowcept-0.9.12 → flowcept-0.9.16}/tests/misc_tests/singleton_test.py +0 -0
  218. {flowcept-0.9.12 → flowcept-0.9.16}/tests/misc_tests/telemetry_test.py +0 -0
@@ -14,7 +14,7 @@ jobs:
14
14
  uses: actions/setup-python@v5
15
15
  with:
16
16
  python-version: "3.12"
17
- cache: "pip"
17
+ # cache: "pip"
18
18
 
19
19
  - name: Install package and dependencies
20
20
  run: |
@@ -23,7 +23,7 @@ jobs:
23
23
  uses: actions/setup-python@v5
24
24
  with:
25
25
  python-version: ${{ matrix.python-version }}
26
- cache: "pip"
26
+ # cache: "pip"
27
27
 
28
28
  - name: Show OS Info
29
29
  run: '[[ "$OSTYPE" == "linux-gnu"* ]] && { echo "OS Type: Linux"; (command -v lsb_release &> /dev/null && lsb_release -a) || cat /etc/os-release; uname -r; } || [[ "$OSTYPE" == "darwin"* ]] && { echo "OS Type: macOS"; sw_vers; uname -r; } || echo "Unsupported OS type: $OSTYPE"'
@@ -24,7 +24,7 @@ jobs:
24
24
  uses: actions/setup-python@v5
25
25
  with:
26
26
  python-version: ${{ matrix.python-version }}
27
- cache: "pip"
27
+ # cache: "pip"
28
28
 
29
29
  - name: Show OS Info
30
30
  run: '[[ "$OSTYPE" == "linux-gnu"* ]] && { echo "OS Type: Linux"; (command -v lsb_release &> /dev/null && lsb_release -a) || cat /etc/os-release; uname -r; } || [[ "$OSTYPE" == "darwin"* ]] && { echo "OS Type: macOS"; sw_vers; uname -r; } || echo "Unsupported OS type: $OSTYPE"'
@@ -28,7 +28,7 @@ jobs:
28
28
  uses: actions/setup-python@v5
29
29
  with:
30
30
  python-version: ${{ matrix.python-version }}
31
- cache: "pip"
31
+ # cache: "pip"
32
32
 
33
33
  - name: Run docker compose
34
34
  run: docker compose -f deployment/compose-kafka.yml up -d
@@ -23,7 +23,7 @@ jobs:
23
23
  uses: actions/setup-python@v5
24
24
  with:
25
25
  python-version: ${{ matrix.python-version }}
26
- cache: "pip"
26
+ # cache: "pip"
27
27
 
28
28
  - name: Show OS Info
29
29
  run: '[[ "$OSTYPE" == "linux-gnu"* ]] && { echo "OS Type: Linux"; (command -v lsb_release &> /dev/null && lsb_release -a) || cat /etc/os-release; uname -r; } || [[ "$OSTYPE" == "darwin"* ]] && { echo "OS Type: macOS"; sw_vers; uname -r; } || echo "Unsupported OS type: $OSTYPE"'
@@ -26,7 +26,7 @@ jobs:
26
26
  uses: actions/setup-python@v5
27
27
  with:
28
28
  python-version: ${{ matrix.python-version }}
29
- cache: "pip"
29
+ # cache: "pip"
30
30
 
31
31
  - name: Show OS Info
32
32
  run: '[[ "$OSTYPE" == "linux-gnu"* ]] && { echo "OS Type: Linux"; (command -v lsb_release &> /dev/null && lsb_release -a) || cat /etc/os-release; uname -r; } || [[ "$OSTYPE" == "darwin"* ]] && { echo "OS Type: macOS"; sw_vers; uname -r; } || echo "Unsupported OS type: $OSTYPE"'
@@ -26,7 +26,7 @@ jobs:
26
26
  uses: actions/setup-python@v5
27
27
  with:
28
28
  python-version: ${{ matrix.python-version }}
29
- cache: "pip"
29
+ # cache: "pip"
30
30
 
31
31
  - name: Show OS Info
32
32
  run: 'case "${OSTYPE:-}" in linux*) echo "OS Type: Linux"; (command -v lsb_release >/dev/null 2>&1 && lsb_release -a || cat /etc/os-release); uname -r ;; darwin*) echo "OS Type: macOS"; sw_vers || true; uname -r ;; *) echo "Unsupported OS type: ${OSTYPE:-unknown}" ;; esac'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flowcept
3
- Version: 0.9.12
3
+ Version: 0.9.16
4
4
  Summary: Capture and query workflow provenance data using data observability
5
5
  Author: Oak Ridge National Laboratory
6
6
  License-Expression: MIT
@@ -15,8 +15,7 @@ PDF: https://arxiv.org/pdf/2308.09004.pdf
15
15
 
16
16
  **PROV-AGENT: Unified Provenance for Tracking AI Agent Interactions in Agentic Workflows**
17
17
  R. Souza, A. Gueroudji, S. DeWitt, D. Rosendo, T. Ghosal, R. Ross, P. Balaprakash, and R. Ferreira da Silva,
18
- *IEEE International Conference on e-Science*, Chicago, USA., 2025.
19
- Publisher: IEEE.
18
+ *IEEE International Conference on e-Science*, Chicago, USA., 2025.
20
19
  PDF: https://arxiv.org/pdf/2508.02866
21
20
 
22
21
  ---
@@ -34,7 +33,26 @@ R. Souza, T. Poteet, B. Etz, D. Rosendo, A. Gueroudji, W. Shin, P. Balaprakash,
34
33
  *Workflows in Support of Large-Scale Science (WORKS) co-located with the ACM/IEEE International Conference for High Performance Computing, Networking, Storage, and Analysis (SC)*, St. Louis, USA, 2025.
35
34
  doi: [10.1145/3731599.3767582](https://doi.org/10.1145/3731599.3767582)
36
35
 
37
- ### Bixtex
36
+
37
+ ### Papers that used Flowcept
38
+
39
+
40
+ **Toward a Persistent Event-Streaming System for High-Performance Computing Applications**
41
+ M. Dorier, A. Gueroudji, V. Hayot-Sasson, H. Nguyen, S. Ockerman, R. Souza, T. Bicer, H. Pan, P. Carns, K. Chard, and others
42
+ *Frontiers in High Performance Computing*, 2025.
43
+ doi: [10.3389/fhpcp.2025.1638203](https://doi.org/10.3389/fhpcp.2025.1638203)
44
+ PDF: https://web.cels.anl.gov/~woz/papers/Mofka_2025.pdf
45
+
46
+ ---
47
+
48
+ **AI Agents for Enabling Autonomous Experiments at ORNL’s HPC and Manufacturing User Facilities**
49
+ D. Rosendo, S. DeWitt, R. Souza, P. Austria, T. Ghosal, M. McDonnell, R. Miller, T. Skluzacek, J. Haley, B. Turcksin, and others
50
+ *Extreme-Scale Experiment-in-the-Loop Computing (XLOOP) co-located with the ACM/IEEE International Conference for High Performance Computing, Networking, Storage, and Analysis (SC)*, 2025.
51
+ PDF: https://rafaelsilva.com/files/publications/rosendo2025xloop.pdf
52
+
53
+ ---
54
+
55
+ ### Bibtex
38
56
 
39
57
  ```
40
58
  @inproceedings{souza2023towards,
@@ -47,7 +65,6 @@ doi: [10.1145/3731599.3767582](https://doi.org/10.1145/3731599.3767582)
47
65
  year={2023},
48
66
  abstract={Modern large-scale scientific discovery requires multidisciplinary collaboration across diverse computing facilities, including High Performance Computing (HPC) machines and the Edge-to-Cloud continuum. Integrated data analysis plays a crucial role in scientific discovery, especially in the current AI era, by enabling Responsible AI development, FAIR, Reproducibility, and User Steering. However, the heterogeneous nature of science poses challenges such as dealing with multiple supporting tools, cross-facility environments, and efficient HPC execution. Building on data observability, adapter system design, and provenance, we propose MIDA: an approach for lightweight runtime Multi-workflow Integrated Data Analysis. MIDA defines data observability strategies and adaptability methods for various parallel systems and machine learning tools. With observability, it intercepts the dataflows in the background without requiring instrumentation while integrating domain, provenance, and telemetry data at runtime into a unified database ready for user steering queries. We conduct experiments showing end-to-end multi-workflow analysis integrating data from Dask and MLFlow in a real distributed deep learning use case for materials science that runs on multiple environments with up to 276 GPUs in parallel. We show near-zero overhead running up to 100,000 tasks on 1,680 CPU cores on the Summit supercomputer.}
49
67
  }
50
-
51
68
  ```
52
69
 
53
70
  ```latex
@@ -89,3 +106,29 @@ doi: [10.1145/3731599.3767582](https://doi.org/10.1145/3731599.3767582)
89
106
  keywords = {scientific workflows, provenance, LLM agents, Large language models, AI agents, agentic workflows, agentic provenance}
90
107
  }
91
108
  ```
109
+
110
+ ```latex
111
+ @article{dorier2025toward,
112
+ author = {Dorier, Matthieu and Gueroudji, Amal and Hayot-Sasson, Valerie and Nguyen, Hai and Ockerman, Seth and Souza, Renan and Bicer, Tekin and Pan, Haochen and Carns, Philip and Chard, Kyle and others},
113
+ doi = {10.3389/fhpcp.2025.1638203},
114
+ journal = {Frontiers in High Performance Computing},
115
+ keyword = {HPC, I/O, Streaming, Mochi, Mofka, Kafka, Redpanda},
116
+ link = {https://www.frontiersin.org/journals/high-performance-computing/articles/10.3389/fhpcp.2025.1638203/abstract},
117
+ publisher = {Frontiers in High Performance Computing},
118
+ title = {Toward a Persistent Event-Streaming System for High-Performance Computing Applications},
119
+ volume = {3},
120
+ year = {2025}
121
+ }
122
+ ```
123
+
124
+ ```latex
125
+ @inproceedings{rosendo2025ai,
126
+ address = {St Louis, MO, USA},
127
+ author = {Rosendo, Daniel and DeWitt, Stephen and Souza, Renan and Austria, Phillipe and Ghosal, Tirthankar and McDonnell, Marshall and Miller, Ross and Skluzacek, Tyler J and Haley, James and Turcksin, Bruno and others},
128
+ booktitle = {Extreme-Scale Experiment-in-the-Loop Computing ({XLOOP}) co-located with the {ACM}/{IEEE} International Conference for High Performance Computing, Networking, Storage, and Analysis ({SC})},
129
+ pdf = {https://rafaelsilva.com/files/publications/rosendo2025xloop.pdf},
130
+ publisher = {ACM},
131
+ title = {AI Agents for Enabling Autonomous Experiments at ORNL’s HPC and Manufacturing User Facilities},
132
+ year = {2025}
133
+ }
134
+ ```
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <catalog prefer="public" xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
3
+ <group id="Folder Repository, directory=, recursive=true, Auto-Update=true, version=2" prefer="public" xml:base=""/>
4
+ </catalog>
@@ -0,0 +1,102 @@
1
+ @prefix prov_ag <http://example.org/aiprov#> .
2
+ @prefix prov: <http://www.w3.org/ns/prov#> .
3
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
4
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
5
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
6
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
7
+
8
+ prov_ag a owl:Ontology ;
9
+ rdfs:label "AI Agent Provenance Ontology (PROV-AGENT)" ;
10
+ rdfs:comment "Extends PROV-O to model agentic workflows, LLM calls, tools, and data per the given graph." ;
11
+ owl:imports <http://www.w3.org/ns/prov-o#> .
12
+
13
+ ### Core classes
14
+ prov_agDataObject a owl:Class ;
15
+ rdfs:subClassOf prov:Entity ;
16
+ rdfs:label "DataObject" .
17
+
18
+ prov_agDomainData a owl:Class ;
19
+ rdfs:subClassOf prov_agDataObject ,
20
+ [ a owl:Restriction ; owl:onProperty prov:wasGeneratedBy ; owl:someValuesFrom prov_agTask ] ;
21
+ rdfs:label "DomainData" .
22
+
23
+ prov_agTelemetryData a owl:Class ;
24
+ rdfs:subClassOf prov_agDataObject ,
25
+ [ a owl:Restriction ; owl:onProperty prov:wasGeneratedBy ; owl:someValuesFrom prov_agTask ] ;
26
+ rdfs:label "TelemetryData" .
27
+
28
+ prov_agSchedulingData a owl:Class ;
29
+ rdfs:subClassOf prov_agDataObject ,
30
+ [ a owl:Restriction ; owl:onProperty prov:wasGeneratedBy ; owl:someValuesFrom prov_agTask ] ;
31
+ rdfs:label "SchedulingData" .
32
+
33
+ prov_agPrompt a owl:Class ;
34
+ rdfs:subClassOf prov_agDataObject ;
35
+ rdfs:label "Prompt" .
36
+
37
+ prov_agResponseData a owl:Class ;
38
+ rdfs:subClassOf prov_agDataObject ,
39
+ [ a owl:Restriction ; owl:onProperty prov:wasGeneratedBy ; owl:someValuesFrom prov_agAIModelInvocation ] ;
40
+ rdfs:label "ResponseData" .
41
+
42
+ prov_agModel a owl:Class ;
43
+ rdfs:subClassOf prov:Entity ;
44
+ rdfs:label "AI Model" .
45
+
46
+ ### Activities
47
+ prov_agCampaign a owl:Class ;
48
+ rdfs:subClassOf prov:Activity ,
49
+ [ a owl:Restriction ; owl:onProperty prov_aghasMemberActivity ; owl:someValuesFrom prov_agWorkflow ] ;
50
+ rdfs:label "Campaign" .
51
+
52
+ prov_agWorkflow a owl:Class ;
53
+ rdfs:subClassOf prov:Activity ,
54
+ [ a owl:Restriction ; owl:onProperty prov_aghasMemberActivity ; owl:someValuesFrom prov_agTask ] ,
55
+ [ a owl:Restriction ; owl:onProperty prov_aghasMemberActivity ; owl:someValuesFrom prov_agAgentTool ] ;
56
+ rdfs:label "Workflow" .
57
+
58
+ prov_agTask a owl:Class ;
59
+ rdfs:subClassOf prov:Activity ,
60
+ [ a owl:Restriction ; owl:onProperty prov:used ; owl:someValuesFrom prov_agDomainData ] ,
61
+ [ a owl:Restriction ; owl:onProperty prov:generated ; owl:someValuesFrom prov_agDomainData ] ,
62
+ [ a owl:Restriction ; owl:onProperty prov:generated ; owl:someValuesFrom prov_agTelemetryData ] ,
63
+ [ a owl:Restriction ; owl:onProperty prov:generated ; owl:someValuesFrom prov_agSchedulingData ] ;
64
+ rdfs:label "Task" .
65
+
66
+ prov_agAgentTool a owl:Class ;
67
+ rdfs:subClassOf prov:Activity ,
68
+ [ a owl:Restriction ; owl:onProperty prov:used ; owl:someValuesFrom prov_agDataObject ] ,
69
+ [ a owl:Restriction ; owl:onProperty prov:wasAssociatedWith ; owl:someValuesFrom prov_agAIAgent ] ,
70
+ [ a owl:Restriction ; owl:onProperty prov:wasInformedBy ; owl:someValuesFrom prov_agAIModelInvocation ] ;
71
+ rdfs:label "AgentTool" .
72
+
73
+ prov_agAIModelInvocation a owl:Class ;
74
+ rdfs:subClassOf prov:Activity ,
75
+ [ a owl:Restriction ; owl:onProperty prov:used ; owl:someValuesFrom prov_agPrompt ] ,
76
+ [ a owl:Restriction ; owl:onProperty prov:used ; owl:someValuesFrom prov_agModel ] ;
77
+ rdfs:label "AI Model Invocation" .
78
+
79
+ ### Agent
80
+ prov_agAIAgent a owl:Class ;
81
+ rdfs:subClassOf prov:SoftwareAgent ;
82
+ rdfs:label "AIAgent" .
83
+
84
+ ### Custom property to mirror diagram’s hadMember (Activity-to-Activity)
85
+ prov_aghasMemberActivity a owl:ObjectProperty ;
86
+ rdfs:label "hadMember" ;
87
+ rdfs:comment "Structural membership of sub-activities within an activity, e.g., a workflow containing tasks or tools." ;
88
+ rdfs:domain prov:Activity ;
89
+ rdfs:range prov:Activity ;
90
+ rdfs:subPropertyOf rdfs:member .
91
+
92
+ ### Useful PROV-aware inferences
93
+ # If an entity wasGeneratedBy an activity that wasAssociatedWith an agent,
94
+ # then attribute the entity to that agent.
95
+ prov:wasAttributedTo owl:propertyChainAxiom ( prov:wasGeneratedBy prov:wasAssociatedWith ) .
96
+
97
+ ### Optional naming for convenience individuals (URIs to mint in data)
98
+ # Classes above define the schema. Instances can use PROV-O relations directly, e.g.:
99
+ # :t1 a prov_agTask ; prov:used :d_in .
100
+ # :d_out a prov_agDomainData ; prov:wasGeneratedBy :t1 .
101
+ # :tool1 a prov_agAgentTool ; prov:wasAssociatedWith :agent1 ; prov:wasInformedBy :llmCall1 .
102
+ # :llmCall1 a prov_agAIModelInvocation ; prov:used :prompt1, :modelX .
@@ -1,4 +1,4 @@
1
- flowcept_version: 0.9.12 # Version of the Flowcept package. This setting file is compatible with this version.
1
+ flowcept_version: 0.9.16 # Version of the Flowcept package. This setting file is compatible with this version.
2
2
 
3
3
  project:
4
4
  debug: true # Toggle debug mode. This will add a property `debug: true` to all saved data, making it easier to retrieve/delete them later.
@@ -166,6 +166,21 @@ def build_llm_model(
166
166
  from flowcept.agents.llms.gemini25 import Gemini25LLM
167
167
 
168
168
  llm = Gemini25LLM(**_model_kwargs)
169
+ elif _service_provider == "openai":
170
+ from langchain_openai import ChatOpenAI
171
+
172
+ api_key = os.environ.get("OPENAI_API_KEY", AGENT.get("api_key"))
173
+ base_url = os.environ.get("OPENAI_BASE_URL", AGENT.get("llm_server_url") or None) # optional
174
+ org = os.environ.get("OPENAI_ORG_ID", AGENT.get("organization", None)) # optional
175
+
176
+ init_kwargs = {"api_key": api_key}
177
+ if base_url:
178
+ init_kwargs["base_url"] = base_url
179
+ if org:
180
+ init_kwargs["organization"] = org
181
+
182
+ # IMPORTANT: use the merged kwargs so `model` and temps flow through
183
+ llm = ChatOpenAI(**init_kwargs, **_model_kwargs)
169
184
 
170
185
  else:
171
186
  raise Exception("Currently supported providers are sambanova, openai, azure, and google.")
@@ -66,7 +66,7 @@ def init_settings(full: bool = False):
66
66
  settings_path_env = os.getenv("FLOWCEPT_SETTINGS_PATH", None)
67
67
  if settings_path_env is not None:
68
68
  print(f"FLOWCEPT_SETTINGS_PATH environment variable is set to {settings_path_env}.")
69
- dest_path = settings_path_env
69
+ dest_path = Path(settings_path_env)
70
70
  else:
71
71
  dest_path = Path(os.path.join(configs._SETTINGS_DIR, "settings.yaml"))
72
72
 
@@ -4,4 +4,4 @@
4
4
  # The expected format is: <Major>.<Minor>.<Patch>
5
5
  # This file is supposed to be automatically modified by the CI Bot.
6
6
  # See .github/workflows/version_bumper.py
7
- __version__ = "0.9.12"
7
+ __version__ = "0.9.16"
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
File without changes
File without changes