Expand description
Core traits, types, and error handling for devboy-tools.
This crate provides the foundational abstractions used across all devboy components:
- Provider traits:
IssueProvider,MergeRequestProvider,KnowledgeBaseProvider,MessengerProvider,Provider - Unified types:
Issue,MergeRequest,KbSpace,KbPage,MessengerChat,MessengerMessage,Discussion,Comment,FileDiff - Configuration:
Config,GitHubConfig,GitLabConfig - Error handling:
Error,Result
§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::IssueLink;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::FollowUpLink;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.