[package]
edition = "2021"
name = "apcore"
version = "0.22.0"
authors = ["aiperceivable <tercel.yi@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Schema-driven module standard for AI-perceivable interfaces"
homepage = "https://aiperceivable.com"
documentation = "https://apcore.aiperceivable.com/"
readme = "README.md"
keywords = [
"ai",
"llm",
"module",
"middleware",
"schema",
]
categories = [
"api-bindings",
"asynchronous",
"development-tools",
"web-programming",
"config",
]
license = "Apache-2.0"
repository = "https://github.com/aiperceivable/apcore-rust"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
default = []
events = ["reqwest"]
opentelemetry = []
[lib]
name = "apcore"
path = "src/lib.rs"
[[example]]
name = "cancel_token"
path = "examples/cancel_token.rs"
[[example]]
name = "decorated_add"
path = "examples/decorated_add.rs"
[[example]]
name = "get_user"
path = "examples/get_user.rs"
[[example]]
name = "global_client"
path = "examples/global_client.rs"
[[example]]
name = "greet"
path = "examples/greet.rs"
[[example]]
name = "pipeline_demo"
path = "examples/pipeline_demo.rs"
[[example]]
name = "send_email"
path = "examples/send_email.rs"
[[example]]
name = "simple_client"
path = "examples/simple_client.rs"
[[test]]
name = "config_bus"
path = "tests/config_bus.rs"
[[test]]
name = "config_discovery"
path = "tests/config_discovery.rs"
[[test]]
name = "conformance_high_drift"
path = "tests/conformance_high_drift.rs"
[[test]]
name = "conformance_test"
path = "tests/conformance_test.rs"
[[test]]
name = "context_serialization_test"
path = "tests/context_serialization_test.rs"
[[test]]
name = "error_formatter_registry"
path = "tests/error_formatter_registry.rs"
[[test]]
name = "identity_immutable_test"
path = "tests/identity_immutable_test.rs"
[[test]]
name = "integration_test"
path = "tests/integration_test.rs"
[[test]]
name = "sys_modules_control"
path = "tests/sys_modules_control.rs"
[[test]]
name = "test_acl"
path = "tests/test_acl.rs"
[[test]]
name = "test_acl_conditions"
path = "tests/test_acl_conditions.rs"
[[test]]
name = "test_acl_handler_error_conformance"
path = "tests/test_acl_handler_error_conformance.rs"
[[test]]
name = "test_acl_panic_boundary"
path = "tests/test_acl_panic_boundary.rs"
[[test]]
name = "test_acl_sync_handler_error"
path = "tests/test_acl_sync_handler_error.rs"
[[test]]
name = "test_approval"
path = "tests/test_approval.rs"
[[test]]
name = "test_async_task"
path = "tests/test_async_task.rs"
[[test]]
name = "test_async_task_cancellation_conformance"
path = "tests/test_async_task_cancellation_conformance.rs"
[[test]]
name = "test_async_task_evolution_conformance"
path = "tests/test_async_task_evolution_conformance.rs"
[[test]]
name = "test_async_task_hardening"
path = "tests/test_async_task_hardening.rs"
[[test]]
name = "test_bindings"
path = "tests/test_bindings.rs"
[[test]]
name = "test_builtin_steps"
path = "tests/test_builtin_steps.rs"
[[test]]
name = "test_call_chain_guard"
path = "tests/test_call_chain_guard.rs"
[[test]]
name = "test_cancel"
path = "tests/test_cancel.rs"
[[test]]
name = "test_chunk_shape"
path = "tests/test_chunk_shape.rs"
[[test]]
name = "test_client"
path = "tests/test_client.rs"
[[test]]
name = "test_compute_delay_ms"
path = "tests/test_compute_delay_ms.rs"
[[test]]
name = "test_config_key_restricted"
path = "tests/test_config_key_restricted.rs"
[[test]]
name = "test_config_reload_from_disk"
path = "tests/test_config_reload_from_disk.rs"
[[test]]
name = "test_context"
path = "tests/test_context.rs"
[[test]]
name = "test_context_key"
path = "tests/test_context_key.rs"
[[test]]
name = "test_context_key_promotion"
path = "tests/test_context_key_promotion.rs"
[[test]]
name = "test_context_keys"
path = "tests/test_context_keys.rs"
[[test]]
name = "test_context_logger_schema"
path = "tests/test_context_logger_schema.rs"
[[test]]
name = "test_crate_root_exports"
path = "tests/test_crate_root_exports.rs"
[[test]]
name = "test_decorator"
path = "tests/test_decorator.rs"
[[test]]
name = "test_error_fingerprinting"
path = "tests/test_error_fingerprinting.rs"
[[test]]
name = "test_error_history_heap"
path = "tests/test_error_history_heap.rs"
[[test]]
name = "test_error_serialization_conformance"
path = "tests/test_error_serialization_conformance.rs"
[[test]]
name = "test_errors"
path = "tests/test_errors.rs"
[[test]]
name = "test_event_delivery_conformance"
path = "tests/test_event_delivery_conformance.rs"
[[test]]
name = "test_event_delivery_semantics"
path = "tests/test_event_delivery_semantics.rs"
[[test]]
name = "test_event_management_hardening_conformance"
path = "tests/test_event_management_hardening_conformance.rs"
[[test]]
name = "test_event_naming_canonical"
path = "tests/test_event_naming_canonical.rs"
[[test]]
name = "test_events"
path = "tests/test_events.rs"
[[test]]
name = "test_executor"
path = "tests/test_executor.rs"
[[test]]
name = "test_executor_hardening"
path = "tests/test_executor_hardening.rs"
[[test]]
name = "test_executor_trace_cancellation_conformance"
path = "tests/test_executor_trace_cancellation_conformance.rs"
[[test]]
name = "test_extensions"
path = "tests/test_extensions.rs"
[[test]]
name = "test_inject_inbound_flags"
path = "tests/test_inject_inbound_flags.rs"
[[test]]
name = "test_inject_malformed_parent_id"
path = "tests/test_inject_malformed_parent_id.rs"
[[test]]
name = "test_middleware"
path = "tests/test_middleware.rs"
[[test]]
name = "test_middleware_duplicate_detection"
path = "tests/test_middleware_duplicate_detection.rs"
[[test]]
name = "test_middleware_hardening_conformance"
path = "tests/test_middleware_hardening_conformance.rs"
[[test]]
name = "test_module"
path = "tests/test_module.rs"
[[test]]
name = "test_multi_module_discovery_conformance"
path = "tests/test_multi_module_discovery_conformance.rs"
[[test]]
name = "test_observability"
path = "tests/test_observability.rs"
[[test]]
name = "test_observability_hardening_conformance"
path = "tests/test_observability_hardening_conformance.rs"
[[test]]
name = "test_overrides_store_trait"
path = "tests/test_overrides_store_trait.rs"
[[test]]
name = "test_pipeline_configuration_error"
path = "tests/test_pipeline_configuration_error.rs"
[[test]]
name = "test_pipeline_failfast"
path = "tests/test_pipeline_failfast.rs"
[[test]]
name = "test_pipeline_hardening_conformance"
path = "tests/test_pipeline_hardening_conformance.rs"
[[test]]
name = "test_pipeline_step_middleware"
path = "tests/test_pipeline_step_middleware.rs"
[[test]]
name = "test_pipeline_tasks"
path = "tests/test_pipeline_tasks.rs"
[[test]]
name = "test_pipeline_types"
path = "tests/test_pipeline_types.rs"
[[test]]
name = "test_redaction_config"
path = "tests/test_redaction_config.rs"
[[test]]
name = "test_redaction_default_keys"
path = "tests/test_redaction_default_keys.rs"
[[test]]
name = "test_registry"
path = "tests/test_registry.rs"
[[test]]
name = "test_registry_load_ordering"
path = "tests/test_registry_load_ordering.rs"
[[test]]
name = "test_registry_ordering_conformance"
path = "tests/test_registry_ordering_conformance.rs"
[[test]]
name = "test_reload_path_filter"
path = "tests/test_reload_path_filter.rs"
[[test]]
name = "test_retry_config_default"
path = "tests/test_retry_config_default.rs"
[[test]]
name = "test_retry_signal"
path = "tests/test_retry_signal.rs"
[[test]]
name = "test_schema_exporter"
path = "tests/test_schema_exporter.rs"
[[test]]
name = "test_schema_hardening_conformance"
path = "tests/test_schema_hardening_conformance.rs"
[[test]]
name = "test_schema_loader"
path = "tests/test_schema_loader.rs"
[[test]]
name = "test_schema_resolver"
path = "tests/test_schema_resolver.rs"
[[test]]
name = "test_schema_validator"
path = "tests/test_schema_validator.rs"
[[test]]
name = "test_serde_wire_format"
path = "tests/test_serde_wire_format.rs"
[[test]]
name = "test_storage_backend"
path = "tests/test_storage_backend.rs"
[[test]]
name = "test_stream_chunk_reject"
path = "tests/test_stream_chunk_reject.rs"
[[test]]
name = "test_stream_phase1_on_error"
path = "tests/test_stream_phase1_on_error.rs"
[[test]]
name = "test_streaming_interface"
path = "tests/test_streaming_interface.rs"
[[test]]
name = "test_suspend_resume"
path = "tests/test_suspend_resume.rs"
[[test]]
name = "test_system_modules_hardening_conformance"
path = "tests/test_system_modules_hardening_conformance.rs"
[[test]]
name = "test_trace_context"
path = "tests/test_trace_context.rs"
[[test]]
name = "test_true_streaming"
path = "tests/test_true_streaming.rs"
[[test]]
name = "test_unified_registry"
path = "tests/test_unified_registry.rs"
[[test]]
name = "test_usage_collector_trend_period"
path = "tests/test_usage_collector_trend_period.rs"
[[test]]
name = "test_usage_exporter"
path = "tests/test_usage_exporter.rs"
[[test]]
name = "test_v0_21_preview_and_ephemeral"
path = "tests/test_v0_21_preview_and_ephemeral.rs"
[dependencies.async-stream]
version = "0.3"
[dependencies.async-trait]
version = "0.1"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.dashmap]
version = "6"
[dependencies.futures-core]
version = "0.3"
[dependencies.futures-util]
version = "0.3"
[dependencies.glob]
version = "0.3"
[dependencies.jsonschema]
version = "0.28"
[dependencies.notify]
version = "8"
features = ["macos_fsevent"]
default-features = false
[dependencies.parking_lot]
version = "0.12"
[dependencies.regex]
version = "1"
[dependencies.reqwest]
version = "0.12"
features = ["json"]
optional = true
[dependencies.schemars]
version = "0.8"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.serde_yaml_ng]
version = "0.10"
[dependencies.sha2]
version = "0.10"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
"sync",
"time",
"fs",
"io-util",
]
[dependencies.tracing]
version = "0.1"
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["fmt"]
default-features = false
[dev-dependencies.trybuild]
version = "1"
[lints.clippy]
doc_markdown = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
[lints.clippy.pedantic]
level = "warn"
priority = -1