L'assistant IA d'édition de ticket éditait les fichiers du ticket en direct, hors de tout contrôle. Il passe désormais par les tools MCP idea_ticket_* : préparation d'un environnement structuré dédié et policy d'enforcement scopée au ticket courant, de sorte que l'assistant ne peut agir que sur son ticket via la surface MCP plutôt que sur le système de fichiers. Couvert par de nouveaux tests QA (mcp_server, assistant_context_store). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
104 lines
3.8 KiB
Rust
104 lines
3.8 KiB
Rust
//! # IdeA — Infrastructure layer
|
|
//!
|
|
//! Concrete **adapters** implementing the domain ports (ARCHITECTURE §5). All
|
|
//! real-world I/O (`tokio::fs`, broadcast channels, system clock, UUIDs) lives
|
|
//! here, never in `domain` or `application`.
|
|
//!
|
|
//! L1 shipped the DI/event-relay adapters: [`LocalFileSystem`],
|
|
//! [`TokioBroadcastEventBus`], [`SystemClock`], [`UuidGenerator`]. L2 adds the
|
|
//! project persistence adapter [`FsProjectStore`]. L3 adds the local PTY adapter
|
|
//! [`PortablePtyAdapter`]. Git/remote/template adapters arrive in later lots.
|
|
|
|
#![forbid(unsafe_code)]
|
|
#![warn(missing_docs)]
|
|
|
|
pub mod assistant;
|
|
pub mod background_task;
|
|
pub mod clock;
|
|
pub mod conversation;
|
|
pub mod conversation_log;
|
|
pub mod eventbus;
|
|
pub mod fileguard;
|
|
pub mod fs;
|
|
pub mod git;
|
|
pub mod id;
|
|
pub mod input;
|
|
pub mod inspector;
|
|
pub mod issues;
|
|
pub mod mailbox;
|
|
pub mod model_server;
|
|
pub mod orchestrator;
|
|
pub mod permission;
|
|
pub mod process;
|
|
pub mod pty;
|
|
pub mod ratelimit;
|
|
pub mod remote;
|
|
pub mod runtime;
|
|
pub mod sandbox;
|
|
pub mod scheduler;
|
|
pub mod session;
|
|
pub mod sprints;
|
|
pub mod store;
|
|
pub mod timeparse;
|
|
|
|
pub use assistant::{FsAssistantContextStore, TicketAssistantEnvironmentPreparer};
|
|
pub use background_task::{
|
|
bounded_tail, start_background_ready_inbox_bridge, tail_cap_bytes, BackgroundCompletionSink,
|
|
BackgroundCompletionSinkError, BackgroundCompletionSinkOutcome,
|
|
BackgroundReadyInboxBridgeHandle, BackgroundTaskReadyToDeliver, BoundedTail,
|
|
CommandBackgroundRunner,
|
|
};
|
|
pub use clock::SystemClock;
|
|
pub use conversation::InMemoryConversationRegistry;
|
|
pub use conversation_log::{
|
|
FsConversationLog, FsHandoffStore, FsProviderSessionStore, HeuristicHandoffSummarizer,
|
|
TURN_LINE_MAX_CHARS, WINDOW,
|
|
};
|
|
pub use eventbus::TokioBroadcastEventBus;
|
|
pub use fileguard::RwFileGuard;
|
|
pub use fs::LocalFileSystem;
|
|
pub use git::Git2Repository;
|
|
pub use id::UuidGenerator;
|
|
pub use input::{MediatedInbox, MillisClock, SystemMillisClock};
|
|
pub use inspector::{
|
|
transcript_activity_token, ClaudeTranscriptInspector, ClaudeTranscriptTurnWatcher,
|
|
};
|
|
pub use issues::{FsIssueNumberAllocator, FsIssueStore};
|
|
pub use mailbox::InMemoryMailbox;
|
|
pub use model_server::{
|
|
FsModelServerRegistry, HttpOpenAiCompatibleProbe, LlamaCppRuntime, LocalManagedProcess,
|
|
};
|
|
pub use orchestrator::mcp::{
|
|
McpServer, MemoryTransport, StdioTransport, TicketToolError, TicketToolProvider,
|
|
ToolPolicyRegistry,
|
|
};
|
|
pub use orchestrator::{
|
|
process_request_file, FsOrchestratorWatcher, OrchestratorResponse, OrchestratorWatchHandle,
|
|
REQUESTS_SUBDIR,
|
|
};
|
|
pub use permission::{ClaudePermissionProjector, CodexPermissionProjector};
|
|
pub use process::LocalProcessSpawner;
|
|
pub use pty::PortablePtyAdapter;
|
|
pub use ratelimit::RateLimitParser;
|
|
pub use remote::{remote_host, LocalHost};
|
|
pub use runtime::CliAgentRuntime;
|
|
#[cfg(target_os = "linux")]
|
|
pub use sandbox::LandlockSandbox;
|
|
pub use sandbox::{default_enforcer, NoopSandbox};
|
|
pub use scheduler::TokioScheduler;
|
|
pub use session::{ClaudeSdkSession, CodexExecSession, FakeCli, StructuredSessionFactory};
|
|
pub use sprints::FsSprintStore;
|
|
#[cfg(feature = "vector-onnx")]
|
|
pub use store::OnnxEmbedder;
|
|
#[cfg(feature = "vector-http")]
|
|
pub use store::{detect_ollama, HttpEmbedder, DEFAULT_LOCAL_EMBED_ENDPOINT};
|
|
pub use store::{
|
|
embedder_from_profile, index_token_size, onnx_model_is_cached, should_use_vector,
|
|
AdaptiveMemoryRecall, BackgroundTaskReconcileReport, EmbedderEnvProbe, FsBackgroundTaskStore,
|
|
FsEmbedderProfileStore, FsEmbedderPromptStore, FsLiveStateStore, FsMemoryStore,
|
|
FsPermissionStore, FsProfileStore, FsProjectStore, FsSkillStore, FsTemplateStore,
|
|
FsWindowStateStore, HashEmbedder, IdeaiContextStore, NaiveMemoryRecall, OnnxModelInfo,
|
|
StubEmbedder, VectorMemoryRecall, DEFAULT_OLLAMA_BASE_URL, ONNX_CACHE_SUBDIR,
|
|
RECOMMENDED_ONNX_MODELS, VECTOR_HTTP_ENABLED, VECTOR_ONNX_ENABLED,
|
|
};
|