laser-sdk 0.8.2__tar.gz → 0.9.0.dev2__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.
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/Cargo.toml +12 -11
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/PKG-INFO +15 -9
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/README.md +14 -8
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/Cargo.lock +56 -30
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/Cargo.toml +3 -3
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/README.md +14 -8
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/iggy_test_server.py +218 -19
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/laser_sdk.pyi +120 -52
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/agent_runtime.rs +8 -5
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/client.rs +21 -2
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/consumer_group.rs +98 -48
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/context.rs +1 -1
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/errors.rs +40 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/filters.rs +136 -74
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/lib.rs +1 -1
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/session_reads.rs +1 -1
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/stream.rs +31 -9
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/transport.rs +53 -17
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_addressed_calls.py +1 -1
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_agdx_envelope.py +7 -0
- laser_sdk-0.9.0.dev2/foreign/python/tests/test_cluster.py +467 -0
- laser_sdk-0.9.0.dev2/foreign/python/tests/test_cluster_filters.py +348 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_coordination_client.py +7 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_filter_surface.py +12 -2
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_filters.py +219 -30
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_integration.py +227 -32
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_parity.py +68 -3
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_pause.py +0 -1
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_publish_failures.py +7 -1
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_smoke.py +31 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_workflow_callbacks.py +0 -3
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/laser_sdk.pyi +120 -52
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/Cargo.toml +2 -2
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/README.md +15 -9
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/agdx.rs +1 -1
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/builder.rs +53 -42
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/consumer.rs +336 -68
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/laser.rs +17 -9
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/mod.rs +1 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/pause.rs +96 -79
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/registry.rs +33 -12
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/replies.rs +199 -120
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/session.rs +1 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/session_reads.rs +42 -5
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/capabilities.rs +5 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/context.rs +35 -7
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/control.rs +2 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/cursor.rs +34 -10
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/error.rs +2 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/filters/client.rs +70 -26
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/filters/group.rs +94 -25
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/filters/guard.rs +3 -4
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/filters/mod.rs +11 -15
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/filters/progress.rs +68 -14
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/filters/reader.rs +1143 -239
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/graph.rs +2 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/kv/client.rs +4 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/laser.rs +281 -331
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/lib.rs +2 -1
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/memory.rs +29 -5
- laser_sdk-0.9.0.dev2/sdk/src/nodes.rs +387 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/poll.rs +104 -12
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/prelude.rs +0 -1
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/projections.rs +65 -1
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/publish_options.rs +19 -89
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/query/client.rs +28 -10
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/snapshot.rs +31 -33
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/stream/consumer_group.rs +44 -67
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/stream/transport.rs +1064 -246
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/stream.rs +20 -3
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/types/ids.rs +57 -24
- laser_sdk-0.9.0.dev2/sdk/tests/future_depth.rs +121 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/contract.rs +18 -0
- laser_sdk-0.9.0.dev2/sdk/tests/integration/filtered_wait.rs +317 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/filters.rs +2 -3
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/filters_group.rs +986 -769
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/governance.rs +1 -1
- laser_sdk-0.9.0.dev2/sdk/tests/integration/harness.rs +379 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/main.rs +1 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/memory.rs +1 -1
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/pause.rs +151 -4
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/reconnect.rs +10 -70
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/reliable.rs +2 -2
- laser_sdk-0.9.0.dev2/sdk/tests/integration/request.rs +380 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/session.rs +10 -6
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/signing.rs +5 -5
- laser_sdk-0.9.0.dev2/sdk/tests/integration/streaming.rs +1900 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/typed_topics.rs +6 -2
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/workflow.rs +1 -1
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/support/test_iggy.rs +177 -26
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/README.md +6 -6
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/checkpoint_public_mutation_discriminants.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/destination_checkpoint_status.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/destination_issue.json +1 -1
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/destination_page.json +1 -1
- laser_sdk-0.9.0.dev2/wire/fixtures/filter_ack.bin +0 -0
- laser_sdk-0.9.0.dev2/wire/fixtures/filter_ack_unfiltered.bin +0 -0
- laser_sdk-0.9.0.dev2/wire/fixtures/filter_mutation_configure_group.bin +0 -0
- laser_sdk-0.9.0.dev2/wire/fixtures/filter_mutation_configure_group.json +120 -0
- laser_sdk-0.9.0.dev2/wire/fixtures/filter_poll_request.bin +0 -0
- laser_sdk-0.9.0.dev2/wire/fixtures/filter_poll_request_group_auto.bin +0 -0
- laser_sdk-0.9.0.dev2/wire/fixtures/filter_poll_request_group_id.bin +0 -0
- laser_sdk-0.9.0.dev2/wire/fixtures/filter_reply_acknowledged.bin +0 -0
- laser_sdk-0.9.0.dev2/wire/fixtures/filter_reply_cancelled.bin +1 -0
- laser_sdk-0.9.0.dev2/wire/fixtures/filter_reply_error.bin +1 -0
- laser_sdk-0.9.0.dev2/wire/fixtures/filter_reply_page.bin +0 -0
- laser_sdk-0.9.0.dev2/wire/fixtures/filter_reply_page_unfiltered.bin +0 -0
- laser_sdk-0.9.0.dev2/wire/fixtures/filter_reply_ready.bin +1 -0
- laser_sdk-0.9.0.dev2/wire/fixtures/filter_wait_cancel.bin +1 -0
- laser_sdk-0.9.0.dev2/wire/fixtures/filter_wait_request.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/start_policy_discriminants.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/agent.rs +15 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/checkpoint.rs +1 -1
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/codes.rs +8 -2
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/control.rs +286 -4
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/destination.rs +2 -4
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/dispatch.rs +4 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/filter/catalog.rs +201 -13
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/filter/mod.rs +9 -8
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/filter/read.rs +252 -57
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/fixtures.rs +7 -3
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/hello.rs +8 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/http.rs +77 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/kv.rs +1 -1
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/lib.rs +1 -1
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/limits.rs +22 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/session.rs +97 -6
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/source.rs +5 -7
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/validate.rs +193 -5
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/tests/constants.rs +15 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/tests/wire_fixtures.rs +191 -73
- laser_sdk-0.8.2/sdk/src/filters/route.rs +0 -578
- laser_sdk-0.8.2/sdk/src/managed_route.rs +0 -178
- laser_sdk-0.8.2/sdk/tests/integration/harness.rs +0 -116
- laser_sdk-0.8.2/sdk/tests/integration/request.rs +0 -165
- laser_sdk-0.8.2/sdk/tests/integration/streaming.rs +0 -779
- laser_sdk-0.8.2/wire/fixtures/filter_ack.bin +0 -0
- laser_sdk-0.8.2/wire/fixtures/filter_ack_unfiltered.bin +0 -0
- laser_sdk-0.8.2/wire/fixtures/filter_mutation_configure_group.bin +0 -0
- laser_sdk-0.8.2/wire/fixtures/filter_mutation_configure_group.json +0 -117
- laser_sdk-0.8.2/wire/fixtures/filter_poll_request.bin +0 -0
- laser_sdk-0.8.2/wire/fixtures/filter_poll_request_group_auto.bin +0 -0
- laser_sdk-0.8.2/wire/fixtures/filter_poll_request_group_id.bin +0 -0
- laser_sdk-0.8.2/wire/fixtures/filter_reply_acknowledged.bin +0 -0
- laser_sdk-0.8.2/wire/fixtures/filter_reply_error.bin +0 -1
- laser_sdk-0.8.2/wire/fixtures/filter_reply_page.bin +0 -0
- laser_sdk-0.8.2/wire/fixtures/filter_reply_page_unfiltered.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/.gitignore +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/agdx.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/agent.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/async_bridge.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/batching.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/bin/stub_gen.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/blob.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/chunks.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/codecs.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/control.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/convert.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/coordination.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/crash_context.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/destinations.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/fork.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/govern.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/graph.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/ids.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/intent.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/interop.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/kv.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/memory.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/memory_handler.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/parity_helpers.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/projections.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/publish.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/query.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/rbac.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/reader.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/registry.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/schema.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/session.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/session_ops.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/sign.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/snapshot.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/state_store.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/swarm.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/typed.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/watch.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/src/workflow.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/conftest.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_agent_surface.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_callback_bridge.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_close_logging.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_connect_timeout.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_control_builders.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_data_surface.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_errors.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_parity_helpers.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_query_wire.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_rbac.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_readme_snippets.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_reconnect.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_record_helpers.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_resource_naming.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_resume_parity.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_snapshot_callbacks.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/tests/test_trait_hooks.py +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/foreign/python/uv.lock +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/pyproject.toml +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/LICENSE +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/NOTICE +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/certs/laserdata.crt +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/a2a.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/assembler.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/budget.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/clock.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/contract.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/control.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/ctx.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/lease.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/memory_handler.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/partitioning.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/router.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/scope.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/session_ops.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/state.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agent/workflow.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/agui.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/batching.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/blob.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/bridge_hops.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/connect_options.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/context_scope.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/crash_context.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/destinations.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/edge_auth.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/fork/client.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/fork/mod.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/govern.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/intent.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/kv/coordination.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/kv/mod.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/managed.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/mcp.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/message.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/provenance/keys.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/provenance/mod.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/provenance/runtime.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/provenance/topic.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/query/mod.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/rbac/mod.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/retry.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/schema_codecs.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/sign.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/state_store.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/stream/producer_statistics.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/stream/publish.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/stream/record.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/swarm.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/testing.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/typed.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/types/mod.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/src/watch.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/alloc.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/fixtures/retry-table.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/fixtures/typescript_signature.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/a2a.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/agdx_consume.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/agdx_stream.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/agui.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/budget.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/context.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/deadletter.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/decomposition.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/fanout.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/handoff.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/human_input.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/managed_unsupported.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/mcp.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/provenance.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/queue_pressure.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/replay.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/runtime.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/shutdown.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/state.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/integration/warm_dedup.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/signature_interop.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/sdk/tests/support/owned_server.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/Cargo.toml +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/LICENSE +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/NOTICE +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/accepted_operation.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_body_ref.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_card.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_chunk.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_chunk_open.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_chunk_terminal.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_command.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_command_signed.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_dead_letter.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_error.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_error_body.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_event.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_invalid_chunk_late_deadline.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_invalid_chunk_no_sequence.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_invalid_chunk_open_no_operation.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_invalid_command_no_correlation.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_invalid_error_last.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_invalid_event_task_state.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_invalid_response_channel.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_invalid_status_bad_operation.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_invalid_status_no_operation.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_must_understand.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_presence.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_record.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_response.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_session_end.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_session_parking.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_session_start.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_session_status.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_session_transition.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_signature.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_status_card.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_status_session.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_status_task.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/agent_usage_cost.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/arrow_ipc_metadata.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/arrow_ipc_policy.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/authz_bind_roles.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/authz_get_role_reply.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/authz_history_reply.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/authz_history_request.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/authz_role.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/authz_whoami_reply.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/backend_announce.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/backend_announce_topology.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/backend_announce_unavailable.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/batch_reply.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/batch_request.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/browse_projections.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/browse_reply_decoded.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/browse_reply_projections.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/browse_reply_schema_registered.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/browse_reply_schemas.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/browse_schemas.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/capabilities.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/change_record.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/checkpoint_mutation_replicated.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/checkpoint_reply_destination.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/checkpoint_reply_query_route.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/checkpoint_request_public.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/client_metadata_list.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/client_metadata_query.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/context_compaction.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/context_manifest.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/context_retrieval.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/control_accept_gap.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/control_apply_binding.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/control_drop_schema.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/control_filter_catalog.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/control_register_projection.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/control_register_schema_avro.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/control_register_schema_json.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/control_register_schema_protobuf.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/control_register_session_source_all.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/control_register_session_source_named.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/control_remove_binding.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/control_remove_session_source.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/control_skip_record.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/control_stamped_remove_binding.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/data_stack_string_discriminants.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/decode_record.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/dispatch_cases.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/error_body.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_catalog_reply_bound.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_catalog_reply_configured.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_catalog_reply_registered.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_catalog_reply_revision_state.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_catalog_reply_revisions.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_catalog_reply_unbound.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_codec_cases.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_consumer_filter.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_consumer_filter.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_eval_cases.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_mutation_register.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_mutation_register.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_mutation_revision_state.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_mutation_revision_state.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_mutation_unbind_exact.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_mutation_unbind_exact.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_reply_revision_disabled.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/filter_validation.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/fold_snapshot.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/fork_create.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/fork_info.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/fork_put.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/fork_reply_created.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/forwarded_command.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/forwarded_command_positioned.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/forwarded_command_scoped.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/forwarded_query.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/forwarded_query_scoped.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/graph_edge.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/graph_edge_conversation.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/graph_edge_producer.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/graph_edge_sourced.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/graph_neighbors.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/graph_neighbors_conversation.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/graph_node.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/graph_node_conversation.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/graph_node_producer.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/graph_node_sourced.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/graph_query.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/graph_query_conversation.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/graph_reply.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/graph_upsert.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/graph_upsert_session.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/header_block_envelope.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/header_block_generic.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/hello_reply.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/hello_reply_agent.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/hello_reply_features.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/json_patch/cases.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/key_record.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_cas.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_cas_fenced.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_cas_session.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_copy.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_delete_session.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_entry_memory_scope.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_get_barriered.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_lease.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_lease_renew.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_move.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_namespaces.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_page_view.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_patch_session.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_release.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_reply_committed.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_reply_leased.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_reply_namespaces.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_reply_page.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_reply_renewed.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_reply_stale.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_reply_version_conflict.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_scan.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_set.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/kv_set_session.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/logical_schema.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/logical_type_discriminants.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/managed_read.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/managed_reply.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/managed_request.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/materialization_destination.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/memory_feedback_scoped.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/memory_forget_scoped.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/memory_item_origin.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/mutation_command.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/mutation_command_scoped.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/producer_presence.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_cancel.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_envelope.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_envelope_aggregate.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_envelope_raw_sql.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_envelope_read_your_writes.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_envelope_text.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_error_discriminants.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_execution.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_page.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_reply_err_stale.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_reply_err_too_large.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_reply_ok.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_result.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_route.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_route_page.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_status.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_status_reply.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/query_target_discriminants.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/register_schema_managed.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/schema_def.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_changes.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_events.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_get.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_heartbeat.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_http_changes_empty.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_http_changes_gap.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_http_changes_legacy.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_http_changes_no_retained_rows.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_http_changes_origins.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_http_changes_page.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_http_changes_start.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_http_changes_start_new.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_http_changes_truncated.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_http_error.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_http_events.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_http_info.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_http_links.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_http_page.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_http_page_rebuilding.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_http_sources.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_http_state.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_link_relation.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_link_surface.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_links.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_list.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_ref.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_reply_changes.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_reply_error.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_reply_events.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_reply_info.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_reply_links.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_reply_page.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_reply_page_rebuilding.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_reply_sources.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_reply_state.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_sources.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_sources_lane_only.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/session_state.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/snapshot_page.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/source_ref_generation.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/state_delta.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/state_snapshot.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/table_file_page.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/table_metrics.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/table_schema_view.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/table_view.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/token_estimates.json +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/fixtures/typed_value_discriminants.bin +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/arrow.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/authz.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/batch.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/browse.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/change.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/clients.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/codecs.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/commands.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/content.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/encoding.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/error.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/filter/cbor.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/filter/codecs.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/filter/coerce.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/filter/eval.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/filter/expr.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/filter/headers.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/filter/path.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/filter/text.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/fork.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/forward.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/framing.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/graph.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/hashing.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/headers.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/http_client.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/keys.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/memory.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/mutation.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/query.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/result.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/schema.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/snapshot.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/topics.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/src/topology.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/tests/dispatch.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/tests/filter_eval_corpus.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/tests/headers.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/tests/json_patch.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/tests/producer_presence.rs +0 -0
- {laser_sdk-0.8.2 → laser_sdk-0.9.0.dev2}/wire/tests/robustness.rs +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[workspace]
|
|
2
2
|
exclude = ["bdd/rust", "bench", "foreign/python", "fuzz"]
|
|
3
|
-
members = ["examples/rust", "sdk", "wire"]
|
|
3
|
+
members = ["examples/rust", "sdk", "test-support", "wire"]
|
|
4
4
|
resolver = "2"
|
|
5
5
|
|
|
6
6
|
[workspace.package]
|
|
@@ -8,14 +8,14 @@ edition = "2024"
|
|
|
8
8
|
license = "Apache-2.0"
|
|
9
9
|
repository = "https://github.com/laserdata/laser-sdk"
|
|
10
10
|
rust-version = "1.98.0"
|
|
11
|
-
version = "0.
|
|
11
|
+
version = "0.9.0-dev.2"
|
|
12
12
|
|
|
13
13
|
[workspace.dependencies]
|
|
14
14
|
apache-avro = { version = "0.22.0" }
|
|
15
15
|
async-trait = { version = "0.1.92" }
|
|
16
16
|
axum = { version = "0.8.9" }
|
|
17
17
|
blake3 = { version = "1.8.7" }
|
|
18
|
-
bon = { version = "3.10.
|
|
18
|
+
bon = { version = "3.10.3" }
|
|
19
19
|
bson = { version = "3.1.0", features = ["serde"] }
|
|
20
20
|
bytes = { version = "1.12.1" }
|
|
21
21
|
ciborium = { version = "0.2.2" }
|
|
@@ -23,18 +23,19 @@ colored = { version = "3.1.1" }
|
|
|
23
23
|
dashmap = { version = "6.2.1" }
|
|
24
24
|
ed25519-dalek = { version = "3.0.0" }
|
|
25
25
|
futures = { version = "0.3.34" }
|
|
26
|
-
iggy = { version = "0.11.
|
|
27
|
-
iggy_binary_protocol = { version = "0.11.
|
|
28
|
-
iggy_common = { version = "0.11.
|
|
26
|
+
iggy = { version = "0.11.1-edge.9" }
|
|
27
|
+
iggy_binary_protocol = { version = "0.11.1-edge.8" }
|
|
28
|
+
iggy_common = { version = "0.11.1-edge.10" }
|
|
29
29
|
json-patch = { version = "4.2.0" }
|
|
30
|
-
jsonschema = { version = "0.
|
|
30
|
+
jsonschema = { version = "0.60.1", default-features = false }
|
|
31
31
|
laser-sdk = { path = "sdk" }
|
|
32
|
-
laser-
|
|
32
|
+
laser-test-support = { path = "test-support" }
|
|
33
|
+
laser-wire = { path = "wire", version = "0.9.0-dev.2" }
|
|
33
34
|
memchr = { version = "2.8.3" }
|
|
34
35
|
ouroboros = { version = "0.18.5" }
|
|
35
36
|
prost = { version = "0.14.4" }
|
|
36
37
|
prost-reflect = { version = "0.16.5", features = ["serde"] }
|
|
37
|
-
protox = { version = "0.
|
|
38
|
+
protox = { version = "0.10.0" }
|
|
38
39
|
regex = { version = "1.13.1" }
|
|
39
40
|
reqwest = { version = "0.13.5", default-features = false, features = ["json", "rustls"] }
|
|
40
41
|
rmp-serde = { version = "1.3.1" }
|
|
@@ -43,12 +44,12 @@ serde = { version = "1.0", features = ["derive"] }
|
|
|
43
44
|
serde_json = { version = "1.0" }
|
|
44
45
|
serde_urlencoded = { version = "0.7.1" }
|
|
45
46
|
serial_test = { version = "4.0.1" }
|
|
46
|
-
sha2 = { version = "0.11.
|
|
47
|
+
sha2 = { version = "0.11.1" }
|
|
47
48
|
strum = { version = "0.28.0", features = ["derive"] }
|
|
48
49
|
tempfile = { version = "3.27.0" }
|
|
49
50
|
thiserror = { version = "2.0.21" }
|
|
50
51
|
time = { version = "0.3.55", default-features = false }
|
|
51
|
-
tokio = { version = "1.
|
|
52
|
+
tokio = { version = "1.54.1", features = ["fs", "macros", "process", "rt", "rt-multi-thread", "sync", "time"] }
|
|
52
53
|
tracing = { version = "0.1.44" }
|
|
53
54
|
tracing-subscriber = { version = "0.3.23", features = ["env-filter"] }
|
|
54
55
|
trait-variant = { version = "0.1.3" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: laser-sdk
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.0.dev2
|
|
4
4
|
Classifier: Programming Language :: Rust
|
|
5
5
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
6
6
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
@@ -32,7 +32,7 @@ This package provides the Python Laser SDK for Apache Iggy. [LaserData, Inc.](ht
|
|
|
32
32
|
|
|
33
33
|
Rust and Python share the data contract and Rust implementation. The bindings expose Python forms of the SDK operations, configuration, and errors. Shared examples and behavior scenarios cover language-neutral behavior.
|
|
34
34
|
|
|
35
|
-
> This source tree targets `0.
|
|
35
|
+
> This source tree targets `0.9.0-dev.2`. The wire contract and public API use semantic versioning. Before `1.0.0`, minor releases can contain breaking changes.
|
|
36
36
|
|
|
37
37
|
`spawn_agent(agent_id, ..., consumer_group=None)` separates agent identity from its consumer group. The default group uses the agent ID spelling. Set `consumer_group` when the deployment needs a different group.
|
|
38
38
|
|
|
@@ -74,7 +74,7 @@ Python uses the Rust client reconnect policy. TCP connections retry a failed dia
|
|
|
74
74
|
|
|
75
75
|
`Laser.connect` calls Rust `Laser::connect`. Hosts under `*.laserdata.cloud` and `*.laserdata.com` use TLS with the bundled LaserData root CA. `LASER_TLS_CERT=<path>` selects an explicit certificate. `LASER_NO_TLS=1` disables automatic TLS. Other hosts retain their connection-string configuration.
|
|
76
76
|
|
|
77
|
-
LaserData Cloud and Laser Stack enable managed surfaces only when their backend announcement reports ready. `await laser.refresh_capabilities()` re-probes a long-lived connection after startup or a backend restart. The returned `Capabilities` groups each managed surface: `caps.query` is a `QueryCaps` (`available`, `consistency`), `caps.kv` a `KvCaps` (`available`, `cas`, `fenced_leases`), `caps.filters` a `FilterCaps`, and `caps.destinations` a `DestinationCaps`. It also carries `versions: OpVersions | None` and the advertised backends. Apache Iggy keeps every managed surface off and reports no operation versions.
|
|
77
|
+
LaserData Cloud and Laser Stack enable managed surfaces only when their backend announcement reports ready. `await laser.refresh_capabilities()` re-probes a long-lived connection after startup or a backend restart. The returned `Capabilities` groups each managed surface: `caps.query` is a `QueryCaps` (`available`, `consistency`), `caps.kv` a `KvCaps` (`available`, `cas`, `fenced_leases`), `caps.filters` a `FilterCaps` (`native`, `catalog`, `group_policy_reads`, `evaluation`, and `max_wait_ms`, the longest filtered wait the server holds, zero when it holds none), and `caps.destinations` a `DestinationCaps`. It also carries `versions: OpVersions | None` and the advertised backends. Apache Iggy keeps every managed surface off and reports no operation versions.
|
|
78
78
|
|
|
79
79
|
## Connect timeout
|
|
80
80
|
|
|
@@ -101,6 +101,8 @@ print(committed.confirmations)
|
|
|
101
101
|
|
|
102
102
|
Producers and publish builders return `SendMessagesResponse`. Each `SendMessagesConfirmationResponse` identifies a committed batch by stream, topic, partition, and first offset. The list can be empty when the server does not report offsets. Completion follows the topic durability policy.
|
|
103
103
|
|
|
104
|
+
On a cluster, `replication_factor` sets how many nodes store each partition of a topic the call creates, as in `readings.ensure(4, replication_factor=2)` or `readings.producer(partitions=4, replication_factor=2)`. It must be 1 to `MAX_REPLICATION_FACTOR` (32) and at most the node count. Without it the server's default applies, and an existing topic keeps its own. A factor outside 1 to 32 raises `InvalidError` before anything is sent, and the server's refusal of a factor above its node count raises `TransportError`.
|
|
105
|
+
|
|
104
106
|
## Batch and any payload
|
|
105
107
|
|
|
106
108
|
`publish_batch` groups records for sending. A `topic(..).replay()` cursor reads retained records and saves the next offset for each partition. Each poll reads at most 10,000 messages per partition. Later polls resume from the saved offsets. Failed or canceled polls leave those offsets unchanged.
|
|
@@ -135,7 +137,7 @@ batch_committed = await producer.send_batch(
|
|
|
135
137
|
|
|
136
138
|
consumer = topic.consumer_group("workers").consumer(
|
|
137
139
|
batch_length=1000,
|
|
138
|
-
|
|
140
|
+
max_wait_ms=5000,
|
|
139
141
|
auto_commit="disabled",
|
|
140
142
|
)
|
|
141
143
|
await consumer.init()
|
|
@@ -148,7 +150,9 @@ finally:
|
|
|
148
150
|
await consumer.shutdown()
|
|
149
151
|
```
|
|
150
152
|
|
|
151
|
-
Header values accept ordinary Python scalar values. For an exact Apache Iggy numeric type, pass `(kind, value)`. `ConsumerMessage.header_kinds` reports the received types. The default `auto_commit="polling"` with `commit_interval_ms=0` matches the Rust default `Polling` policy. The other modes are `"all"`, `"each"`, `"every"` with `commit_every=`, `"interval"`, and `"disabled"`. A `commit_interval_ms` above zero adds a timer to the chosen mode, so `auto_commit="each"` with `commit_interval_ms=1000` stores on each message or each second. `"interval"` requires `commit_interval_ms` above zero. `next_within(wait_secs)` waits a bounded time and raises `TimeoutError` when nothing arrives, like Rust `next_within`.
|
|
153
|
+
Header values accept ordinary Python scalar values. For an exact Apache Iggy numeric type, pass `(kind, value)`. `ConsumerMessage.header_kinds` reports the received types. The default `auto_commit="polling"` with `commit_interval_ms=0` matches the Rust default `Polling` policy. The other modes are `"all"`, `"each"`, `"every"` with `commit_every=`, `"interval"`, and `"disabled"`. A `commit_interval_ms` above zero adds a timer to the chosen mode, so `auto_commit="each"` with `commit_interval_ms=1000` stores on each message or each second. `"interval"` requires `commit_interval_ms` above zero. `next_within(wait_secs)` waits a bounded time and raises `TimeoutError` when nothing arrives, like Rust `next_within`. A group consumer always resumes after the group's stored offset. Its `polling`, `offset` or `timestamp_micros` start only seeds a partition the group never stored, before its first read, and the native consumer of a server without group policy reads seeds only the partitions it holds when it joins, as [client behavior](../../docs/client-behavior.md#consumers-and-polling) describes.
|
|
154
|
+
|
|
155
|
+
Polls are held on the server. `max_wait_ms` (default 5000, 0 to 600000) is how long the server holds a poll that finds fewer than `min_count` new records (default 1, at most `batch_length`), and `max_bytes` (default 1048576) caps the record bytes of one reply. A new record ends the wait at once, so a caught-up consumer sees it without client-side polling. A group consumer always joins its group.
|
|
152
156
|
|
|
153
157
|
With automatic commits disabled, call `commit(message)` after successful handling. `shutdown()` does not advance the offset past that commit. `Consumer` waits for new records. A `replay()` cursor reads retained records in bounded polls and stops its iterator when caught up.
|
|
154
158
|
|
|
@@ -354,7 +358,7 @@ safe_mode = ls.ConsumerFilter.json(
|
|
|
354
358
|
)
|
|
355
359
|
topic = laser.stream("orbit").topic("fleet_changes")
|
|
356
360
|
group = topic.consumer_group("anomaly-desk")
|
|
357
|
-
info = await group.create(filter=safe_mode) # Run once during setup.
|
|
361
|
+
info = await group.create(filter=safe_mode, filter_name="safe-mode") # Run once during setup.
|
|
358
362
|
|
|
359
363
|
# Every consumer instance needs only the group name or info.id.
|
|
360
364
|
consumer = group.consumer(batch_length=100, auto_commit="disabled")
|
|
@@ -368,13 +372,13 @@ finally:
|
|
|
368
372
|
|
|
369
373
|
`batch_length=100` examines at most 100 source records per partition request. It may deliver fewer matches, including none. An empty scan advances over rejected records and does not mean end of stream. The consumer continues bounded scans and waits only when caught up. Manual `commit(record)` stores safe contiguous progress after processing. Automatic policies commit the delivered prefix at their configured cadence and at shutdown. The native Apache Iggy path retains its own documented commit timing.
|
|
370
374
|
|
|
371
|
-
For batch handling, build `await group.reader(count=100, max_examined=1000)`, then use `next_page()` and `ack_page()`. `start=` takes `"next"`, `"first"`, `"last"`, `{"offset": n}`, or `{"timestamp": micros}`. Here `count` limits returned records, while `max_examined` independently limits the scan. Each reader joins as a member, and Iggy distributes partitions across instances. Acknowledgments preserve pending earlier work and reject stale source or policy generations. A reader keeps at most 1024 unacknowledged record-bearing pages per partition by default, so a reader that never acknowledges stops at that bound instead of growing without limit. Set `max_unacked_pages=` to change it.
|
|
375
|
+
For batch handling, build `await group.reader(count=100, max_examined=1000)`, then use `next_page()` and `ack_page()`. `start=` takes `"next"`, `"first"`, `"last"`, `{"offset": n}`, or `{"timestamp": micros}`. Here `count` limits returned records, while `max_examined` independently limits the scan. Each reader joins as a member, and Iggy distributes partitions across instances. Acknowledgments preserve pending earlier work and reject stale source or policy generations. A reader keeps at most 1024 unacknowledged record-bearing pages per partition by default, so a reader that never acknowledges stops at that bound instead of growing without limit. Set `max_unacked_pages=` to change it. After a round that found nothing new, the reader waits in a filtered wait the server holds until one of its partitions has a new record, at most `max_wait_ms` (default 5000) and the server's `caps.filters.max_wait_ms`. On a server that holds no filtered wait it sleeps `idle_interval_ms` instead. `ack`, `close` and the other reader calls end that wait, so they never wait for the server.
|
|
372
376
|
|
|
373
377
|
For an application checkpoint inside a filtered page, call `await reader.ack_through(record)` after persisting the checkpoint and processing all preceding records on that partition. Later records in the same page stay pending. Use `ack_page` when the whole page is complete.
|
|
374
378
|
|
|
375
379
|
Use separate groups for A/B revisions so their offsets remain independent, and pause or resume a revision with `set_revision_enabled`. A fresh named consumer with the default `polling="next"` starts at the first retained record, and a stable name resumes durable progress. On the native Apache Iggy path the default `auto_commit="polling"` commits each polled batch before delivery, so a later consumer can resume after records the application did not process. Disable auto-commit and commit after successful processing when that matters.
|
|
376
380
|
|
|
377
|
-
`group.filter()` provides `configure`, `get`, `revisions`, `revise`, `set_revision_enabled`, `release`, `delete`, `preview` and `test`. `delete()` removes the group's own filter with every revision and releases the group first. Pass `operation_id` to configuration when setup must resume with the same operation ID after a lost reply. `topic.consumer_group_id(id)` addresses the saved group by numeric ID. Catalog failures, denied reads and paused revisions never broaden into unfiltered delivery. Original Apache Iggy uses native group consumption, while an older managed server without group-aware reads returns an explicit upgrade error.
|
|
381
|
+
`filter_name` is required with `filter`. It names the group's own filter in the catalog, follows the registered filter name rule (1 to 128 bytes of ASCII letters, digits, `-`, `_` and `.`) and need not be unique. `group.filter()` provides `configure(name, filter)`, `configure_with` and `configure_as` (`filter=` with `filter_name=`, or `filter_id=` with `revision=`), `get`, `summary`, `revisions`, `revise`, `set_revision_enabled`, `release`, `delete`, `preview` and `test`. Configuring the same digest under another name keeps the binding and renames the filter. `summary()` returns the group's own filter as a catalog row dict with the caller's `name` and the owning group under `owner`, or `None`. `delete()` removes the group's own filter with every revision and releases the group first. Pass `operation_id` to configuration when setup must resume with the same operation ID after a lost reply. `topic.consumer_group_id(id)` addresses the saved group by numeric ID. Catalog failures, denied reads and paused revisions never broaden into unfiltered delivery. Original Apache Iggy uses native group consumption, while an older managed server without group-aware reads returns an explicit upgrade error.
|
|
378
382
|
|
|
379
383
|
Filters support JSON, CBOR, Avro, Protobuf and typed headers. Avro and Protobuf filters use registered writer schemas, immutable schema IDs in the filter, and the `agdx.sid` header on each record. Headers-only filters work with any payload format and never decode the payload. `CompiledFilter.compile(filter).evaluate(payload)` runs the evaluator locally, and `explain(payload)` returns its verdict tree. `FilterExpr.text(field, kind, pattern)` matches case-sensitively, and chaining `.case_insensitive()` ignores case. `with_fault_policy`, `with_foreign_policy` and `with_mismatch_policy` control invalid records. Passed invalid records and unfiltered records have `evaluated` false. Failures raise `FilterError` with a `reason`, and every `LaserError` carries `filter_reason`. A fault or oversized stop also sets `partition_id` and `offset`. Unknown header value kinds remain raw bytes. Malformed entries set `headers_malformed` while valid headers and the payload remain readable. A structurally truncated block has empty headers. A `next_record` call cancelled after it read a record yields that record again on the next call.
|
|
380
384
|
|
|
@@ -434,6 +438,8 @@ print(bytes(reply.payload).decode())
|
|
|
434
438
|
await handle_agent.shutdown()
|
|
435
439
|
```
|
|
436
440
|
|
|
441
|
+
The agent's reads are held on the server: `max_wait_ms` (default 5000) is how long a read that finds nothing new waits before it answers, and a record ends the wait at once.
|
|
442
|
+
|
|
437
443
|
Keep the handle until `shutdown()` or `join()`. Dropping it signals a graceful stop and cancels periodic consolidation, and `abort()` stops the agent immediately. `async with laser.spawn_agent(...) as handle:` waits for readiness and stops the agent on exit.
|
|
438
444
|
|
|
439
445
|
Each agent id reads through its own consumer group, named after the agent id unless `consumer_group=` names another, so every instance of one agent shares its work. The handler only sees work for this agent: commands addressed to it or to every agent. Replies, status records, and records for other agents are committed without calling it. On `agent.sessions` and `agent.control`, when the server resolves group policies and serves filtered reads and the filter catalog, the group is bound to the addressee filter `agdx.to In [<agent id>, "*"]` before the first read, so the server sends only those records. Otherwise the agent reads every record and sorts them itself. [Agents, groups, and layouts](../../docs/building-agents.md#agents-groups-and-layouts) explains how to pick a layout.
|
|
@@ -779,7 +785,7 @@ later = await session.turns_since(ls.Checkpoint.from_json(saved))
|
|
|
779
785
|
|
|
780
786
|
`laser.context(conversation)` returns a `ContextScope`. Its `fetch(n=50, token_budget=)` and `block` read `agent.sessions` unless `topics=` names others, and return `ContextMessage` records (`id`, `provenance`, `payload`, `envelope`, `topic`). `fetch_with(topics, Chain([LastN(20), TokenBudget(4_000)]))` takes the policy objects `LastN`, `TokenBudget(max_tokens, estimator=None)`, `RoleFilter(agents)`, and `Chain`. `state(topics, init, fold, last_n=|from_offsets=|from_checkpoint=|at=|full=True)`, `state_with(store, topics, init, fold)`, and `checkpoint(topics)` fold the conversation log like Rust. `context_checkpoint(laser, topics)` captures a checkpoint without a conversation, and `ConversationState.load(laser, conversation, topics, init, fold)` folds one directly with the same bounds. Each read covers at most the newest `CONTEXT_READ_WINDOW` (10,000) messages per partition.
|
|
781
787
|
|
|
782
|
-
`ContextMessage` also carries `timestamp_micros`, the
|
|
788
|
+
`ContextMessage` also carries `timestamp_micros`, the server append time, and the numeric `stream_id` and `topic_id`. `LastN`, `TokenBudget`, `RoleFilter`, and `Chain` report `name`, `version`, and `selection(history)`, which a context manifest records. A custom policy can set `name` and `version` attributes. Every SDK estimates tokens the same way: the byte count divided by four, rounded up.
|
|
783
789
|
|
|
784
790
|
## Memory and state
|
|
785
791
|
|
|
@@ -4,7 +4,7 @@ This package provides the Python Laser SDK for Apache Iggy. [LaserData, Inc.](ht
|
|
|
4
4
|
|
|
5
5
|
Rust and Python share the data contract and Rust implementation. The bindings expose Python forms of the SDK operations, configuration, and errors. Shared examples and behavior scenarios cover language-neutral behavior.
|
|
6
6
|
|
|
7
|
-
> This source tree targets `0.
|
|
7
|
+
> This source tree targets `0.9.0-dev.2`. The wire contract and public API use semantic versioning. Before `1.0.0`, minor releases can contain breaking changes.
|
|
8
8
|
|
|
9
9
|
`spawn_agent(agent_id, ..., consumer_group=None)` separates agent identity from its consumer group. The default group uses the agent ID spelling. Set `consumer_group` when the deployment needs a different group.
|
|
10
10
|
|
|
@@ -46,7 +46,7 @@ Python uses the Rust client reconnect policy. TCP connections retry a failed dia
|
|
|
46
46
|
|
|
47
47
|
`Laser.connect` calls Rust `Laser::connect`. Hosts under `*.laserdata.cloud` and `*.laserdata.com` use TLS with the bundled LaserData root CA. `LASER_TLS_CERT=<path>` selects an explicit certificate. `LASER_NO_TLS=1` disables automatic TLS. Other hosts retain their connection-string configuration.
|
|
48
48
|
|
|
49
|
-
LaserData Cloud and Laser Stack enable managed surfaces only when their backend announcement reports ready. `await laser.refresh_capabilities()` re-probes a long-lived connection after startup or a backend restart. The returned `Capabilities` groups each managed surface: `caps.query` is a `QueryCaps` (`available`, `consistency`), `caps.kv` a `KvCaps` (`available`, `cas`, `fenced_leases`), `caps.filters` a `FilterCaps`, and `caps.destinations` a `DestinationCaps`. It also carries `versions: OpVersions | None` and the advertised backends. Apache Iggy keeps every managed surface off and reports no operation versions.
|
|
49
|
+
LaserData Cloud and Laser Stack enable managed surfaces only when their backend announcement reports ready. `await laser.refresh_capabilities()` re-probes a long-lived connection after startup or a backend restart. The returned `Capabilities` groups each managed surface: `caps.query` is a `QueryCaps` (`available`, `consistency`), `caps.kv` a `KvCaps` (`available`, `cas`, `fenced_leases`), `caps.filters` a `FilterCaps` (`native`, `catalog`, `group_policy_reads`, `evaluation`, and `max_wait_ms`, the longest filtered wait the server holds, zero when it holds none), and `caps.destinations` a `DestinationCaps`. It also carries `versions: OpVersions | None` and the advertised backends. Apache Iggy keeps every managed surface off and reports no operation versions.
|
|
50
50
|
|
|
51
51
|
## Connect timeout
|
|
52
52
|
|
|
@@ -73,6 +73,8 @@ print(committed.confirmations)
|
|
|
73
73
|
|
|
74
74
|
Producers and publish builders return `SendMessagesResponse`. Each `SendMessagesConfirmationResponse` identifies a committed batch by stream, topic, partition, and first offset. The list can be empty when the server does not report offsets. Completion follows the topic durability policy.
|
|
75
75
|
|
|
76
|
+
On a cluster, `replication_factor` sets how many nodes store each partition of a topic the call creates, as in `readings.ensure(4, replication_factor=2)` or `readings.producer(partitions=4, replication_factor=2)`. It must be 1 to `MAX_REPLICATION_FACTOR` (32) and at most the node count. Without it the server's default applies, and an existing topic keeps its own. A factor outside 1 to 32 raises `InvalidError` before anything is sent, and the server's refusal of a factor above its node count raises `TransportError`.
|
|
77
|
+
|
|
76
78
|
## Batch and any payload
|
|
77
79
|
|
|
78
80
|
`publish_batch` groups records for sending. A `topic(..).replay()` cursor reads retained records and saves the next offset for each partition. Each poll reads at most 10,000 messages per partition. Later polls resume from the saved offsets. Failed or canceled polls leave those offsets unchanged.
|
|
@@ -107,7 +109,7 @@ batch_committed = await producer.send_batch(
|
|
|
107
109
|
|
|
108
110
|
consumer = topic.consumer_group("workers").consumer(
|
|
109
111
|
batch_length=1000,
|
|
110
|
-
|
|
112
|
+
max_wait_ms=5000,
|
|
111
113
|
auto_commit="disabled",
|
|
112
114
|
)
|
|
113
115
|
await consumer.init()
|
|
@@ -120,7 +122,9 @@ finally:
|
|
|
120
122
|
await consumer.shutdown()
|
|
121
123
|
```
|
|
122
124
|
|
|
123
|
-
Header values accept ordinary Python scalar values. For an exact Apache Iggy numeric type, pass `(kind, value)`. `ConsumerMessage.header_kinds` reports the received types. The default `auto_commit="polling"` with `commit_interval_ms=0` matches the Rust default `Polling` policy. The other modes are `"all"`, `"each"`, `"every"` with `commit_every=`, `"interval"`, and `"disabled"`. A `commit_interval_ms` above zero adds a timer to the chosen mode, so `auto_commit="each"` with `commit_interval_ms=1000` stores on each message or each second. `"interval"` requires `commit_interval_ms` above zero. `next_within(wait_secs)` waits a bounded time and raises `TimeoutError` when nothing arrives, like Rust `next_within`.
|
|
125
|
+
Header values accept ordinary Python scalar values. For an exact Apache Iggy numeric type, pass `(kind, value)`. `ConsumerMessage.header_kinds` reports the received types. The default `auto_commit="polling"` with `commit_interval_ms=0` matches the Rust default `Polling` policy. The other modes are `"all"`, `"each"`, `"every"` with `commit_every=`, `"interval"`, and `"disabled"`. A `commit_interval_ms` above zero adds a timer to the chosen mode, so `auto_commit="each"` with `commit_interval_ms=1000` stores on each message or each second. `"interval"` requires `commit_interval_ms` above zero. `next_within(wait_secs)` waits a bounded time and raises `TimeoutError` when nothing arrives, like Rust `next_within`. A group consumer always resumes after the group's stored offset. Its `polling`, `offset` or `timestamp_micros` start only seeds a partition the group never stored, before its first read, and the native consumer of a server without group policy reads seeds only the partitions it holds when it joins, as [client behavior](../../docs/client-behavior.md#consumers-and-polling) describes.
|
|
126
|
+
|
|
127
|
+
Polls are held on the server. `max_wait_ms` (default 5000, 0 to 600000) is how long the server holds a poll that finds fewer than `min_count` new records (default 1, at most `batch_length`), and `max_bytes` (default 1048576) caps the record bytes of one reply. A new record ends the wait at once, so a caught-up consumer sees it without client-side polling. A group consumer always joins its group.
|
|
124
128
|
|
|
125
129
|
With automatic commits disabled, call `commit(message)` after successful handling. `shutdown()` does not advance the offset past that commit. `Consumer` waits for new records. A `replay()` cursor reads retained records in bounded polls and stops its iterator when caught up.
|
|
126
130
|
|
|
@@ -326,7 +330,7 @@ safe_mode = ls.ConsumerFilter.json(
|
|
|
326
330
|
)
|
|
327
331
|
topic = laser.stream("orbit").topic("fleet_changes")
|
|
328
332
|
group = topic.consumer_group("anomaly-desk")
|
|
329
|
-
info = await group.create(filter=safe_mode) # Run once during setup.
|
|
333
|
+
info = await group.create(filter=safe_mode, filter_name="safe-mode") # Run once during setup.
|
|
330
334
|
|
|
331
335
|
# Every consumer instance needs only the group name or info.id.
|
|
332
336
|
consumer = group.consumer(batch_length=100, auto_commit="disabled")
|
|
@@ -340,13 +344,13 @@ finally:
|
|
|
340
344
|
|
|
341
345
|
`batch_length=100` examines at most 100 source records per partition request. It may deliver fewer matches, including none. An empty scan advances over rejected records and does not mean end of stream. The consumer continues bounded scans and waits only when caught up. Manual `commit(record)` stores safe contiguous progress after processing. Automatic policies commit the delivered prefix at their configured cadence and at shutdown. The native Apache Iggy path retains its own documented commit timing.
|
|
342
346
|
|
|
343
|
-
For batch handling, build `await group.reader(count=100, max_examined=1000)`, then use `next_page()` and `ack_page()`. `start=` takes `"next"`, `"first"`, `"last"`, `{"offset": n}`, or `{"timestamp": micros}`. Here `count` limits returned records, while `max_examined` independently limits the scan. Each reader joins as a member, and Iggy distributes partitions across instances. Acknowledgments preserve pending earlier work and reject stale source or policy generations. A reader keeps at most 1024 unacknowledged record-bearing pages per partition by default, so a reader that never acknowledges stops at that bound instead of growing without limit. Set `max_unacked_pages=` to change it.
|
|
347
|
+
For batch handling, build `await group.reader(count=100, max_examined=1000)`, then use `next_page()` and `ack_page()`. `start=` takes `"next"`, `"first"`, `"last"`, `{"offset": n}`, or `{"timestamp": micros}`. Here `count` limits returned records, while `max_examined` independently limits the scan. Each reader joins as a member, and Iggy distributes partitions across instances. Acknowledgments preserve pending earlier work and reject stale source or policy generations. A reader keeps at most 1024 unacknowledged record-bearing pages per partition by default, so a reader that never acknowledges stops at that bound instead of growing without limit. Set `max_unacked_pages=` to change it. After a round that found nothing new, the reader waits in a filtered wait the server holds until one of its partitions has a new record, at most `max_wait_ms` (default 5000) and the server's `caps.filters.max_wait_ms`. On a server that holds no filtered wait it sleeps `idle_interval_ms` instead. `ack`, `close` and the other reader calls end that wait, so they never wait for the server.
|
|
344
348
|
|
|
345
349
|
For an application checkpoint inside a filtered page, call `await reader.ack_through(record)` after persisting the checkpoint and processing all preceding records on that partition. Later records in the same page stay pending. Use `ack_page` when the whole page is complete.
|
|
346
350
|
|
|
347
351
|
Use separate groups for A/B revisions so their offsets remain independent, and pause or resume a revision with `set_revision_enabled`. A fresh named consumer with the default `polling="next"` starts at the first retained record, and a stable name resumes durable progress. On the native Apache Iggy path the default `auto_commit="polling"` commits each polled batch before delivery, so a later consumer can resume after records the application did not process. Disable auto-commit and commit after successful processing when that matters.
|
|
348
352
|
|
|
349
|
-
`group.filter()` provides `configure`, `get`, `revisions`, `revise`, `set_revision_enabled`, `release`, `delete`, `preview` and `test`. `delete()` removes the group's own filter with every revision and releases the group first. Pass `operation_id` to configuration when setup must resume with the same operation ID after a lost reply. `topic.consumer_group_id(id)` addresses the saved group by numeric ID. Catalog failures, denied reads and paused revisions never broaden into unfiltered delivery. Original Apache Iggy uses native group consumption, while an older managed server without group-aware reads returns an explicit upgrade error.
|
|
353
|
+
`filter_name` is required with `filter`. It names the group's own filter in the catalog, follows the registered filter name rule (1 to 128 bytes of ASCII letters, digits, `-`, `_` and `.`) and need not be unique. `group.filter()` provides `configure(name, filter)`, `configure_with` and `configure_as` (`filter=` with `filter_name=`, or `filter_id=` with `revision=`), `get`, `summary`, `revisions`, `revise`, `set_revision_enabled`, `release`, `delete`, `preview` and `test`. Configuring the same digest under another name keeps the binding and renames the filter. `summary()` returns the group's own filter as a catalog row dict with the caller's `name` and the owning group under `owner`, or `None`. `delete()` removes the group's own filter with every revision and releases the group first. Pass `operation_id` to configuration when setup must resume with the same operation ID after a lost reply. `topic.consumer_group_id(id)` addresses the saved group by numeric ID. Catalog failures, denied reads and paused revisions never broaden into unfiltered delivery. Original Apache Iggy uses native group consumption, while an older managed server without group-aware reads returns an explicit upgrade error.
|
|
350
354
|
|
|
351
355
|
Filters support JSON, CBOR, Avro, Protobuf and typed headers. Avro and Protobuf filters use registered writer schemas, immutable schema IDs in the filter, and the `agdx.sid` header on each record. Headers-only filters work with any payload format and never decode the payload. `CompiledFilter.compile(filter).evaluate(payload)` runs the evaluator locally, and `explain(payload)` returns its verdict tree. `FilterExpr.text(field, kind, pattern)` matches case-sensitively, and chaining `.case_insensitive()` ignores case. `with_fault_policy`, `with_foreign_policy` and `with_mismatch_policy` control invalid records. Passed invalid records and unfiltered records have `evaluated` false. Failures raise `FilterError` with a `reason`, and every `LaserError` carries `filter_reason`. A fault or oversized stop also sets `partition_id` and `offset`. Unknown header value kinds remain raw bytes. Malformed entries set `headers_malformed` while valid headers and the payload remain readable. A structurally truncated block has empty headers. A `next_record` call cancelled after it read a record yields that record again on the next call.
|
|
352
356
|
|
|
@@ -406,6 +410,8 @@ print(bytes(reply.payload).decode())
|
|
|
406
410
|
await handle_agent.shutdown()
|
|
407
411
|
```
|
|
408
412
|
|
|
413
|
+
The agent's reads are held on the server: `max_wait_ms` (default 5000) is how long a read that finds nothing new waits before it answers, and a record ends the wait at once.
|
|
414
|
+
|
|
409
415
|
Keep the handle until `shutdown()` or `join()`. Dropping it signals a graceful stop and cancels periodic consolidation, and `abort()` stops the agent immediately. `async with laser.spawn_agent(...) as handle:` waits for readiness and stops the agent on exit.
|
|
410
416
|
|
|
411
417
|
Each agent id reads through its own consumer group, named after the agent id unless `consumer_group=` names another, so every instance of one agent shares its work. The handler only sees work for this agent: commands addressed to it or to every agent. Replies, status records, and records for other agents are committed without calling it. On `agent.sessions` and `agent.control`, when the server resolves group policies and serves filtered reads and the filter catalog, the group is bound to the addressee filter `agdx.to In [<agent id>, "*"]` before the first read, so the server sends only those records. Otherwise the agent reads every record and sorts them itself. [Agents, groups, and layouts](../../docs/building-agents.md#agents-groups-and-layouts) explains how to pick a layout.
|
|
@@ -751,7 +757,7 @@ later = await session.turns_since(ls.Checkpoint.from_json(saved))
|
|
|
751
757
|
|
|
752
758
|
`laser.context(conversation)` returns a `ContextScope`. Its `fetch(n=50, token_budget=)` and `block` read `agent.sessions` unless `topics=` names others, and return `ContextMessage` records (`id`, `provenance`, `payload`, `envelope`, `topic`). `fetch_with(topics, Chain([LastN(20), TokenBudget(4_000)]))` takes the policy objects `LastN`, `TokenBudget(max_tokens, estimator=None)`, `RoleFilter(agents)`, and `Chain`. `state(topics, init, fold, last_n=|from_offsets=|from_checkpoint=|at=|full=True)`, `state_with(store, topics, init, fold)`, and `checkpoint(topics)` fold the conversation log like Rust. `context_checkpoint(laser, topics)` captures a checkpoint without a conversation, and `ConversationState.load(laser, conversation, topics, init, fold)` folds one directly with the same bounds. Each read covers at most the newest `CONTEXT_READ_WINDOW` (10,000) messages per partition.
|
|
753
759
|
|
|
754
|
-
`ContextMessage` also carries `timestamp_micros`, the
|
|
760
|
+
`ContextMessage` also carries `timestamp_micros`, the server append time, and the numeric `stream_id` and `topic_id`. `LastN`, `TokenBudget`, `RoleFilter`, and `Chain` report `name`, `version`, and `selection(history)`, which a context manifest records. A custom policy can set `name` and `version` attributes. Every SDK estimates tokens the same way: the byte count divided by four, rounded up.
|
|
755
761
|
|
|
756
762
|
## Memory and state
|
|
757
763
|
|
|
@@ -27,6 +27,7 @@ dependencies = [
|
|
|
27
27
|
"cipher",
|
|
28
28
|
"cpubits",
|
|
29
29
|
"cpufeatures",
|
|
30
|
+
"zeroize",
|
|
30
31
|
]
|
|
31
32
|
|
|
32
33
|
[[package]]
|
|
@@ -41,6 +42,22 @@ dependencies = [
|
|
|
41
42
|
"ctr",
|
|
42
43
|
"ctutils",
|
|
43
44
|
"ghash",
|
|
45
|
+
"zeroize",
|
|
46
|
+
]
|
|
47
|
+
|
|
48
|
+
[[package]]
|
|
49
|
+
name = "aes-gcm-siv"
|
|
50
|
+
version = "0.12.1"
|
|
51
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
52
|
+
checksum = "4c32325128cb24de2a2d14d92da7569dae7073f9e47334521d494747fa94d902"
|
|
53
|
+
dependencies = [
|
|
54
|
+
"aead",
|
|
55
|
+
"aes",
|
|
56
|
+
"cipher",
|
|
57
|
+
"ctr",
|
|
58
|
+
"ctutils",
|
|
59
|
+
"polyval",
|
|
60
|
+
"zeroize",
|
|
44
61
|
]
|
|
45
62
|
|
|
46
63
|
[[package]]
|
|
@@ -379,18 +396,18 @@ dependencies = [
|
|
|
379
396
|
|
|
380
397
|
[[package]]
|
|
381
398
|
name = "bon"
|
|
382
|
-
version = "3.10.
|
|
399
|
+
version = "3.10.3"
|
|
383
400
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
384
|
-
checksum = "
|
|
401
|
+
checksum = "a05442cd7005532d0cfedec676b5b9333d2b4c7c3afabe2b1a9ce2742fbe2ee6"
|
|
385
402
|
dependencies = [
|
|
386
403
|
"bon-macros",
|
|
387
404
|
]
|
|
388
405
|
|
|
389
406
|
[[package]]
|
|
390
407
|
name = "bon-macros"
|
|
391
|
-
version = "3.10.
|
|
408
|
+
version = "3.10.3"
|
|
392
409
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
393
|
-
checksum = "
|
|
410
|
+
checksum = "93833e97ac7c46ba97045afcf247238c27057538fcf2f06344662ddd5f567be6"
|
|
394
411
|
dependencies = [
|
|
395
412
|
"darling 0.24.1",
|
|
396
413
|
"ident_case",
|
|
@@ -1334,6 +1351,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
1334
1351
|
checksum = "2eecf2d5dc9b66b732b97707a0210906b1d30523eb773193ab777c0c84b3e8d5"
|
|
1335
1352
|
dependencies = [
|
|
1336
1353
|
"polyval",
|
|
1354
|
+
"zeroize",
|
|
1337
1355
|
]
|
|
1338
1356
|
|
|
1339
1357
|
[[package]]
|
|
@@ -1637,9 +1655,9 @@ dependencies = [
|
|
|
1637
1655
|
|
|
1638
1656
|
[[package]]
|
|
1639
1657
|
name = "iggy"
|
|
1640
|
-
version = "0.11.
|
|
1658
|
+
version = "0.11.1-edge.9"
|
|
1641
1659
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1642
|
-
checksum = "
|
|
1660
|
+
checksum = "2c9b83c24f73c6cd17f0b2a364dbfe0cad895eba5bb32b32fc2c5e1df2d84aee"
|
|
1643
1661
|
dependencies = [
|
|
1644
1662
|
"async-broadcast",
|
|
1645
1663
|
"async-dropper",
|
|
@@ -1653,11 +1671,14 @@ dependencies = [
|
|
|
1653
1671
|
"futures-util",
|
|
1654
1672
|
"iggy_binary_protocol",
|
|
1655
1673
|
"iggy_common",
|
|
1674
|
+
"percent-encoding",
|
|
1656
1675
|
"quinn",
|
|
1676
|
+
"rand 0.10.3",
|
|
1657
1677
|
"reqwest",
|
|
1658
1678
|
"reqwest-middleware",
|
|
1659
1679
|
"reqwest-retry",
|
|
1660
1680
|
"reqwest-tracing",
|
|
1681
|
+
"ring",
|
|
1661
1682
|
"rustls",
|
|
1662
1683
|
"secrecy",
|
|
1663
1684
|
"serde",
|
|
@@ -1672,25 +1693,28 @@ dependencies = [
|
|
|
1672
1693
|
|
|
1673
1694
|
[[package]]
|
|
1674
1695
|
name = "iggy_binary_protocol"
|
|
1675
|
-
version = "0.11.
|
|
1696
|
+
version = "0.11.1-edge.8"
|
|
1676
1697
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1677
|
-
checksum = "
|
|
1698
|
+
checksum = "100cfadd4d45558876544a8eed23a86d730c66d550deef18a42d239d3c7e03bb"
|
|
1678
1699
|
dependencies = [
|
|
1679
1700
|
"bytemuck",
|
|
1680
1701
|
"bytes",
|
|
1681
1702
|
"enumset",
|
|
1703
|
+
"ring",
|
|
1682
1704
|
"secrecy",
|
|
1705
|
+
"serde",
|
|
1683
1706
|
"thiserror",
|
|
1684
1707
|
"twox-hash",
|
|
1685
1708
|
]
|
|
1686
1709
|
|
|
1687
1710
|
[[package]]
|
|
1688
1711
|
name = "iggy_common"
|
|
1689
|
-
version = "0.11.
|
|
1712
|
+
version = "0.11.1-edge.10"
|
|
1690
1713
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1691
|
-
checksum = "
|
|
1714
|
+
checksum = "788e55b79b0a750f0a1326937ce34b51828dda3cc7fbf09f81a9b99cce1e24a1"
|
|
1692
1715
|
dependencies = [
|
|
1693
1716
|
"aes-gcm",
|
|
1717
|
+
"aes-gcm-siv",
|
|
1694
1718
|
"async-broadcast",
|
|
1695
1719
|
"async-trait",
|
|
1696
1720
|
"base64 0.23.1",
|
|
@@ -1705,6 +1729,7 @@ dependencies = [
|
|
|
1705
1729
|
"humantime",
|
|
1706
1730
|
"iggy_binary_protocol",
|
|
1707
1731
|
"papaya",
|
|
1732
|
+
"pin-project-lite",
|
|
1708
1733
|
"ring",
|
|
1709
1734
|
"secrecy",
|
|
1710
1735
|
"serde",
|
|
@@ -1958,9 +1983,9 @@ dependencies = [
|
|
|
1958
1983
|
|
|
1959
1984
|
[[package]]
|
|
1960
1985
|
name = "jsonschema"
|
|
1961
|
-
version = "0.
|
|
1986
|
+
version = "0.60.1"
|
|
1962
1987
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1963
|
-
checksum = "
|
|
1988
|
+
checksum = "65de752665c4a06528af6759955eecf60ba73ae7442d35349963a09c8031cd71"
|
|
1964
1989
|
dependencies = [
|
|
1965
1990
|
"ahash",
|
|
1966
1991
|
"bytecount",
|
|
@@ -1986,23 +2011,24 @@ dependencies = [
|
|
|
1986
2011
|
|
|
1987
2012
|
[[package]]
|
|
1988
2013
|
name = "jsonschema-regex"
|
|
1989
|
-
version = "0.
|
|
2014
|
+
version = "0.60.1"
|
|
1990
2015
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1991
|
-
checksum = "
|
|
2016
|
+
checksum = "6f8a848331614144c03e815fb931f238c9e342bd7ab501b29e35d647e7cd5688"
|
|
1992
2017
|
dependencies = [
|
|
1993
2018
|
"regex-syntax",
|
|
1994
2019
|
]
|
|
1995
2020
|
|
|
1996
2021
|
[[package]]
|
|
1997
2022
|
name = "jsonschema-value"
|
|
1998
|
-
version = "0.
|
|
2023
|
+
version = "0.60.1"
|
|
1999
2024
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2000
|
-
checksum = "
|
|
2025
|
+
checksum = "5a5a947ef798eeacacb43edf29b1d0ab64bdf5e2c9fbcaad10ee8663d922b544"
|
|
2001
2026
|
dependencies = [
|
|
2002
2027
|
"ahash",
|
|
2003
2028
|
"bytecount",
|
|
2004
2029
|
"fraction",
|
|
2005
2030
|
"getrandom 0.3.4",
|
|
2031
|
+
"memchr",
|
|
2006
2032
|
"num-cmp",
|
|
2007
2033
|
"num-traits",
|
|
2008
2034
|
"serde_json",
|
|
@@ -2017,7 +2043,7 @@ checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553"
|
|
|
2017
2043
|
|
|
2018
2044
|
[[package]]
|
|
2019
2045
|
name = "laser-sdk"
|
|
2020
|
-
version = "0.
|
|
2046
|
+
version = "0.9.0-dev.2"
|
|
2021
2047
|
dependencies = [
|
|
2022
2048
|
"apache-avro",
|
|
2023
2049
|
"async-trait",
|
|
@@ -2033,7 +2059,6 @@ dependencies = [
|
|
|
2033
2059
|
"jsonschema",
|
|
2034
2060
|
"laser-wire",
|
|
2035
2061
|
"prost-reflect",
|
|
2036
|
-
"secrecy",
|
|
2037
2062
|
"serde",
|
|
2038
2063
|
"serde_json",
|
|
2039
2064
|
"sha2",
|
|
@@ -2047,7 +2072,7 @@ dependencies = [
|
|
|
2047
2072
|
|
|
2048
2073
|
[[package]]
|
|
2049
2074
|
name = "laser-sdk-python"
|
|
2050
|
-
version = "0.
|
|
2075
|
+
version = "0.9.0-dev.2"
|
|
2051
2076
|
dependencies = [
|
|
2052
2077
|
"async-trait",
|
|
2053
2078
|
"bytes",
|
|
@@ -2066,7 +2091,7 @@ dependencies = [
|
|
|
2066
2091
|
|
|
2067
2092
|
[[package]]
|
|
2068
2093
|
name = "laser-wire"
|
|
2069
|
-
version = "0.
|
|
2094
|
+
version = "0.9.0-dev.2"
|
|
2070
2095
|
dependencies = [
|
|
2071
2096
|
"apache-avro",
|
|
2072
2097
|
"bon",
|
|
@@ -2497,6 +2522,7 @@ dependencies = [
|
|
|
2497
2522
|
"cpubits",
|
|
2498
2523
|
"cpufeatures",
|
|
2499
2524
|
"universal-hash",
|
|
2525
|
+
"zeroize",
|
|
2500
2526
|
]
|
|
2501
2527
|
|
|
2502
2528
|
[[package]]
|
|
@@ -2983,9 +3009,9 @@ dependencies = [
|
|
|
2983
3009
|
|
|
2984
3010
|
[[package]]
|
|
2985
3011
|
name = "referencing"
|
|
2986
|
-
version = "0.
|
|
3012
|
+
version = "0.60.1"
|
|
2987
3013
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2988
|
-
checksum = "
|
|
3014
|
+
checksum = "922268812b6f9e20b4ab0f1efe8e07036958eed7346ceddb31c777b5531fd11f"
|
|
2989
3015
|
dependencies = [
|
|
2990
3016
|
"ahash",
|
|
2991
3017
|
"fluent-uri",
|
|
@@ -3511,9 +3537,9 @@ dependencies = [
|
|
|
3511
3537
|
|
|
3512
3538
|
[[package]]
|
|
3513
3539
|
name = "serde_json"
|
|
3514
|
-
version = "1.0.
|
|
3540
|
+
version = "1.0.154"
|
|
3515
3541
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3516
|
-
checksum = "
|
|
3542
|
+
checksum = "e7e9cc8b1b85264074fbcc02a88680c4096b1e47df8f739dceb03bf482f04bd6"
|
|
3517
3543
|
dependencies = [
|
|
3518
3544
|
"itoa",
|
|
3519
3545
|
"memchr",
|
|
@@ -3589,9 +3615,9 @@ dependencies = [
|
|
|
3589
3615
|
|
|
3590
3616
|
[[package]]
|
|
3591
3617
|
name = "sha2"
|
|
3592
|
-
version = "0.11.
|
|
3618
|
+
version = "0.11.1"
|
|
3593
3619
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3594
|
-
checksum = "
|
|
3620
|
+
checksum = "47d7069beb7d6ac7b9acd1039986e73443f24234f41074da099d6f994ac9ad19"
|
|
3595
3621
|
dependencies = [
|
|
3596
3622
|
"cfg-if",
|
|
3597
3623
|
"cpufeatures",
|
|
@@ -3859,9 +3885,9 @@ checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee"
|
|
|
3859
3885
|
|
|
3860
3886
|
[[package]]
|
|
3861
3887
|
name = "tokio"
|
|
3862
|
-
version = "1.
|
|
3888
|
+
version = "1.54.1"
|
|
3863
3889
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3864
|
-
checksum = "
|
|
3890
|
+
checksum = "b52fd3255258d26fac7264ab5a76b53c13367136dc011d3d6ad4f8ed070396a3"
|
|
3865
3891
|
dependencies = [
|
|
3866
3892
|
"bytes",
|
|
3867
3893
|
"libc",
|
|
@@ -4251,9 +4277,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
|
|
|
4251
4277
|
|
|
4252
4278
|
[[package]]
|
|
4253
4279
|
name = "uuid"
|
|
4254
|
-
version = "1.
|
|
4280
|
+
version = "1.29.0"
|
|
4255
4281
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4256
|
-
checksum = "
|
|
4282
|
+
checksum = "4a0e2d11620c50695fe12bbbfde96b3477fe606e7284c22d505c12ce51214514"
|
|
4257
4283
|
dependencies = [
|
|
4258
4284
|
"getrandom 0.4.3",
|
|
4259
4285
|
"js-sys",
|
|
@@ -6,7 +6,7 @@ name = "laser-sdk-python"
|
|
|
6
6
|
# The Python package version tracks the Rust workspace release train (one
|
|
7
7
|
# version across laser-wire, laser-sdk, and the Python SDK), and the dependency
|
|
8
8
|
# below tracks the Rust laser-sdk it wraps.
|
|
9
|
-
version = "0.
|
|
9
|
+
version = "0.9.0-dev.2"
|
|
10
10
|
edition = "2024"
|
|
11
11
|
license = "Apache-2.0"
|
|
12
12
|
repository = "https://github.com/laserdata/laser-sdk"
|
|
@@ -34,11 +34,11 @@ extension-module = ["pyo3/extension-module"]
|
|
|
34
34
|
[dependencies]
|
|
35
35
|
async-trait = "0.1.92"
|
|
36
36
|
bytes = "1.12.1"
|
|
37
|
-
iggy = { version = "0.11.
|
|
37
|
+
iggy = { version = "0.11.1-edge.9" }
|
|
38
38
|
# Path wins for the in-monorepo wheel build. The version lets a source build (an
|
|
39
39
|
# sdist on a platform with no prebuilt wheel) fetch laser-sdk from crates.io once
|
|
40
40
|
# it is published. Wheels carry it compiled in and pull nothing at install.
|
|
41
|
-
laser-sdk = { path = "../../sdk", version = "0.
|
|
41
|
+
laser-sdk = { path = "../../sdk", version = "0.9.0-dev.2", features = ["a2a-bridge", "agent", "agui", "managed", "mcp-bridge", "provenance", "schema-codecs", "sign", "streaming"] }
|
|
42
42
|
log = "0.4"
|
|
43
43
|
pyo3 = { version = "0.29.3", features = ["abi3-py310", "experimental-async", "multiple-pymethods"] }
|
|
44
44
|
pyo3-async-runtimes = { version = "0.29.0", features = ["attributes", "tokio-runtime"] }
|