gsm_core/
lib.rs

1//! Greentic Messaging core contracts and value types.
2//!
3//! This crate exposes the shared data structures exchanged between ingress, runner, and egress
4//! components. It also provides validation helpers and small utilities for subject naming and
5//! idempotency tracking.
6pub mod adapter_registry;
7#[cfg(feature = "adaptive-cards")]
8pub mod adaptivecards;
9pub mod cards;
10#[cfg(feature = "component-host")]
11pub mod component_host;
12pub mod context;
13pub mod default_packs;
14pub mod egress;
15pub mod http;
16pub mod idempotency;
17pub mod ingress;
18pub mod interfaces;
19#[cfg(feature = "adaptive-cards")]
20pub mod messaging_card;
21pub mod oauth;
22pub mod outbound;
23pub mod path_safety;
24pub mod platforms;
25pub mod prelude;
26pub mod provider;
27pub mod provider_capabilities;
28pub mod provider_registry;
29pub mod registry;
30pub mod render_mode;
31pub mod render_plan;
32pub mod render_planner;
33pub mod runner_client;
34pub mod secrets_paths;
35pub mod subjects;
36pub mod telemetry;
37#[cfg(any(test, feature = "testkit"))]
38pub mod testkit;
39pub mod types;
40pub mod validate;
41pub mod worker;
42
43pub use adapter_registry::*;
44#[cfg(feature = "adaptive-cards")]
45pub use adaptivecards::*;
46pub use cards::*;
47#[cfg(feature = "component-host")]
48pub use component_host::*;
49pub use context::*;
50pub use default_packs::*;
51pub use greentic_pack::messaging::MessagingAdapterKind;
52pub use http::*;
53pub use idempotency::*;
54pub use ingress::*;
55pub use interfaces::*;
56#[cfg(feature = "adaptive-cards")]
57pub use messaging_card::types::{
58    Action as AdaptiveAction, ImageRef as AdaptiveImageRef, MessageCard as AdaptiveMessageCard,
59    MessageCardKind as AdaptiveMessageCardKind, OauthCard as AdaptiveOauthCard,
60    OauthPrompt as AdaptiveOauthPrompt, OauthProvider as AdaptiveOauthProvider,
61};
62#[cfg(feature = "adaptive-cards")]
63pub use messaging_card::{
64    MessageCardEngine,
65    adaptive::{AdaptiveCardPayload, AdaptiveCardVersion, ValidateError, normalizer},
66    downgrade::{CapabilityProfile, DowngradeContext, DowngradeEngine, PolicyDowngradeEngine},
67    ir::{AppLink, Element, InputChoice, MessageCardIr, MessageCardIrBuilder},
68    renderers::{
69        NullRenderer, PlatformRenderer, RendererRegistry, SlackRenderer, TeamsRenderer,
70        TelegramRenderer, WebChatRenderer, WebexRenderer,
71    },
72    spec::{AuthRenderSpec, FallbackButton, RenderIntent, RenderSpec},
73    telemetry::{CardTelemetry, NullTelemetry, TelemetryEvent, TelemetryHook},
74    tier::{Tier, TierPolicy},
75};
76pub use outbound::*;
77pub use platforms::*;
78pub use prelude::*;
79pub use provider::*;
80pub use provider_capabilities::*;
81pub use provider_registry::{CapsSource, ProviderCapsRegistry, ProviderRecord};
82pub use registry::*;
83pub use render_mode::*;
84pub use render_plan::*;
85pub use render_planner::*;
86pub use runner_client::*;
87pub use secrets_paths::*;
88pub use subjects::*;
89pub use telemetry::*;
90#[cfg(any(test, feature = "testkit"))]
91pub use testkit::*;
92pub use types::*;
93pub use validate::*;
94pub use worker::*;
95
96/// Returns the semantic version advertised by this crate.
97///
98/// ```
99/// assert_eq!(gsm_core::version(), "0.1.0");
100/// ```
101pub fn version() -> &'static str {
102    "0.1.0"
103}