Skip to main content

Crate devboy_core

Crate devboy_core 

Source
Expand description

Core traits, types, and error handling for devboy-tools.

This crate provides the foundational abstractions used across all devboy components:

§Example

use devboy_core::{IssueProvider, IssueFilter, Issue, ProviderResult, Result};

async fn list_open_issues(provider: &dyn IssueProvider) -> Result<ProviderResult<Issue>> {
    let filter = IssueFilter {
        state: Some("opened".to_string()),
        limit: Some(10),
        ..Default::default()
    };
    provider.get_issues(filter).await
}

Re-exports§

pub use error::Error;
pub use error::Result;
pub use provider::IssueProvider;
pub use provider::KnowledgeBaseProvider;
pub use provider::MeetingNotesProvider;
pub use provider::MergeRequestProvider;
pub use provider::MessengerProvider;
pub use provider::PipelineProvider;
pub use provider::Provider;
pub use provider::UserProvider;
pub use types::AddStructureGeneratorInput;
pub use types::AddStructureRowsInput;
pub use types::AssignToSprintInput;
pub use types::CodePosition;
pub use types::Comment;
pub use types::CreateCommentInput;
pub use types::CreateIssueInput;
pub use types::CreateMergeRequestInput;
pub use types::CreatePageParams;
pub use types::CreateStructureInput;
pub use types::Discussion;
pub use types::FailedJob;
pub use types::FileDiff;
pub use types::ForestModifyResult;
pub use types::GetChatsParams;
pub use types::GetForestOptions;
pub use types::GetMessagesParams;
pub use types::GetPipelineInput;
pub use types::GetStructureValuesInput;
pub use types::GetUsersOptions;
pub use types::Issue;
pub use types::IssueFilter;
pub use types::IssueRelations;
pub use types::IssueStatus;
pub use types::JobLogMode;
pub use types::JobLogOptions;
pub use types::JobLogOutput;
pub use types::KbComment;
pub use types::KbPage;
pub use types::KbPageContent;
pub use types::KbSpace;
pub use types::ListPagesParams;
pub use types::ListProjectVersionsParams;
pub use types::MeetingFilter;
pub use types::MeetingNote;
pub use types::MeetingSpeaker;
pub use types::MeetingTranscript;
pub use types::MergeRequest;
pub use types::MessageAttachment;
pub use types::MessageAuthor;
pub use types::MessengerChat;
pub use types::MessengerMessage;
pub use types::MoveStructureRowsInput;
pub use types::MrFilter;
pub use types::Pagination;
pub use types::PipelineInfo;
pub use types::PipelineJob;
pub use types::PipelineStage;
pub use types::PipelineStatus;
pub use types::PipelineSummary;
pub use types::ProjectVersion;
pub use types::ProviderResult;
pub use types::Release;
pub use types::ReleaseAsset;
pub use types::SaveStructureViewInput;
pub use types::SearchKbParams;
pub use types::SearchMessagesParams;
pub use types::SendMessageParams;
pub use types::SortInfo;
pub use types::SortOrder;
pub use types::Sprint;
pub use types::SprintState;
pub use types::Structure;
pub use types::StructureColumnValue;
pub use types::StructureForest;
pub use types::StructureGenerator;
pub use types::StructureNode;
pub use types::StructureRowItem;
pub use types::StructureRowValues;
pub use types::StructureValues;
pub use types::StructureView;
pub use types::StructureViewColumn;
pub use types::SyncStructureGeneratorInput;
pub use types::TranscriptSentence;
pub use types::UpdateIssueInput;
pub use types::UpdateMergeRequestInput;
pub use types::UpdatePageParams;
pub use types::UpdateStructureAutomationInput;
pub use types::UpsertProjectVersionInput;
pub use types::User;
pub use enricher::PropertySchema;
pub use enricher::ToolEnricher;
pub use enricher::ToolSchema;
pub use enricher::sanitize_field_name;
pub use tool_category::ToolCategory;
pub use tool_value_model::CostModel;
pub use tool_value_model::FieldGroup;
pub use tool_value_model::SideEffectClass;
pub use tool_value_model::ToolValueModel;
pub use tool_value_model::ValueClass;
pub use asset::AssetAnalysis;
pub use asset::AssetCapabilities;
pub use asset::AssetContext;
pub use asset::AssetContextKind;
pub use asset::AssetInput;
pub use asset::AssetMeta;
pub use asset::ContentKind;
pub use asset::ContextCapabilities;
pub use asset::MarkdownAttachment;
pub use asset::SemanticAnalysis;
pub use asset::filename_from_url;
pub use asset::parse_markdown_attachments;
pub use config::BuiltinToolsConfig;
pub use config::ClickUpConfig;
pub use config::Config;
pub use config::ConfluenceConfig;
pub use config::ContextConfig;
pub use config::FirefliesConfig;
pub use config::FormatPipelineConfig;
pub use config::GitHubConfig;
pub use config::GitLabConfig;
pub use config::JiraConfig;
pub use config::ProxyConfig;
pub use config::ProxyMatchingConfig;
pub use config::ProxyMcpServerConfig;
pub use config::ProxyRoutingConfig;
pub use config::ProxyRoutingOverride;
pub use config::ProxySecretsConfig;
pub use config::ProxyTelemetryConfig;
pub use config::ProxyToolRule;
pub use config::RemoteConfigSettings;
pub use config::RoutingStrategy;
pub use config::SentryConfig;
pub use config::SlackConfig;
pub use config::default_slack_required_scopes;
pub use config::matches_glob;
pub use config::routing_strategy_slug;

Modules§

agents
Agent detection.
asset
Asset management types for file attachments and content analysis.
config
Configuration management for devboy-tools.
enricher
Tool enrichment traits and schema utilities.
error
Error types for devboy-tools.
provider
Provider traits for external services.
remote_config
Remote configuration fetching.
sentry_integration
Sentry error reporting integration.
tool_category
Tool categories for capability-based filtering.
tool_value_model
Tool value model — Paper 3 §“how to build tools right”.
types
Common types used across providers.