feat(embedding,vision): candle embeddings with offline fallback, on-demand clipboard vision capture, and concurrency audit
This commit is contained in:
1 parent
5bd8b1587a
commit
e4a0fe72df
47 files changed
+6292
-3503
No files matched your search
+259
-17
@@ -26,7 +26,7 @@ pub struct CreateEntitiesTool {
|
||||
}
|
||||
|
||||
/// Create new relations between entities in the knowledge graph.
|
||||
/// CRITICAL SCHEMA REQUIREMENT: Each relation item MUST strictly contain fields 'from' (source entity name string), 'to' (target entity name string), and 'relation_type' (snake_case string, e.g., 'depends_on', 'calls', 'implements'). Do NOT use 'source', 'target', or 'relationType'.
|
||||
/// Create new relations between entities in the knowledge graph (accepts 'from' or 'source', 'to' or 'target', and 'relation_type' or 'type').
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema)]
|
||||
pub struct CreateRelationsTool {
|
||||
/// Array of relations to create. Each relation item MUST use 'from', 'to', and 'relation_type'.
|
||||
@@ -73,13 +73,17 @@ pub struct DeleteRelationsTool {
|
||||
pub relations: Vec<crate::models::Relation>,
|
||||
}
|
||||
|
||||
/// Read the entire knowledge graph. WARNING: For large graphs, use search_nodes instead to avoid context limits.
|
||||
/// Read the entire knowledge graph. WARNING: For large graphs, use search_nodes or pagination (limit, offset) to avoid context limits.
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema)]
|
||||
pub struct ReadGraphTool {
|
||||
/// Optional namespace to restrict the read to.
|
||||
pub namespace: Option<String>,
|
||||
/// Optional token budget cap. Truncates graph outputs to fit within the specified token budget.
|
||||
pub max_tokens: Option<usize>,
|
||||
/// Optional maximum number of entities to return (pagination).
|
||||
pub limit: Option<usize>,
|
||||
/// Optional entity offset for pagination.
|
||||
pub offset: Option<usize>,
|
||||
}
|
||||
|
||||
/// Search specifically for Knowledge Graph entities and nodes by name or type.
|
||||
@@ -118,11 +122,40 @@ pub struct LogCodeChangeTool {
|
||||
pub symbol_references: Option<Vec<String>>,
|
||||
/// Optional line range (e.g. 'L123-L145') modified in the target file.
|
||||
pub line_range: Option<String>,
|
||||
/// Optional repository name (e.g. 'mcp-memory', 'ai-pr-review').
|
||||
pub repo_name: Option<String>,
|
||||
/// Optional repository remote origin URL (e.g. 'git@bitbucket.org:org/repo.git' or 'svn://...').
|
||||
pub repo_url: Option<String>,
|
||||
/// Optional project namespace (defaults to repo_name or 'global').
|
||||
pub namespace: Option<String>,
|
||||
/// Optional change kind: 'added', 'modified', 'deleted', 'renamed'. Defaults to 'modified'.
|
||||
pub change_kind: Option<String>,
|
||||
/// Optional author or subagent attribution (e.g. 'user', 'MemoryLibrarian', SVN author).
|
||||
pub author: Option<String>,
|
||||
/// Optional conversation or session ID.
|
||||
pub session_id: Option<String>,
|
||||
/// Optional VCS system type: 'git', 'svn', 'hg', etc. Auto-detected if omitted.
|
||||
pub vcs_type: Option<String>,
|
||||
/// Optional VCS revision identifier (e.g. SVN 'r14829' or Git commit SHA).
|
||||
pub revision: Option<String>,
|
||||
/// Optional VCS branch (e.g. SVN 'trunk', 'branches/v1.0' or Git branch).
|
||||
pub branch: Option<String>,
|
||||
/// Optional repository root URL or path.
|
||||
pub repository_root: Option<String>,
|
||||
}
|
||||
|
||||
/// Query recently logged code changes.
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema)]
|
||||
pub struct QueryRecentChangesTool {}
|
||||
pub struct QueryRecentChangesTool {
|
||||
/// Optional namespace to filter changes by project/workspace.
|
||||
pub namespace: Option<String>,
|
||||
/// Optional repository name to filter changes.
|
||||
pub repo_name: Option<String>,
|
||||
/// Optional VCS type to filter changes ('git', 'svn', etc.).
|
||||
pub vcs_type: Option<String>,
|
||||
/// Maximum number of records to return (defaults to 50).
|
||||
pub limit: Option<usize>,
|
||||
}
|
||||
|
||||
/// Generate a visual representation of the knowledge graph.
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema)]
|
||||
@@ -167,7 +200,6 @@ pub struct StickyNotesTool {
|
||||
pub session_only: Option<bool>,
|
||||
}
|
||||
|
||||
|
||||
/// Condense or summarize an entity's observations to reduce size.
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema)]
|
||||
pub struct CondenseEntityTool {
|
||||
@@ -190,6 +222,16 @@ pub struct AddTaskTool {
|
||||
pub parent_id: Option<String>,
|
||||
/// Optional list of task IDs this task depends on.
|
||||
pub dependencies: Option<Vec<String>>,
|
||||
/// Optional namespace (defaults to 'default').
|
||||
pub namespace: Option<String>,
|
||||
/// Optional repository name.
|
||||
pub repo_name: Option<String>,
|
||||
/// Optional task priority: 'low', 'medium', 'high', 'urgent'.
|
||||
pub priority: Option<String>,
|
||||
/// Optional assigned subagent role or identifier.
|
||||
pub assigned_agent: Option<String>,
|
||||
/// Optional verification command to validate criteria completion.
|
||||
pub verification_command: Option<String>,
|
||||
}
|
||||
|
||||
/// Delete a task and all its children.
|
||||
@@ -233,6 +275,14 @@ pub struct StoreSnippetTool {
|
||||
pub description: String,
|
||||
/// Optional classification tags (e.g. ['rust', 'async', 'mcp']).
|
||||
pub tags: Option<Vec<String>>,
|
||||
/// Optional project namespace.
|
||||
pub namespace: Option<String>,
|
||||
/// Optional repository name.
|
||||
pub repo_name: Option<String>,
|
||||
/// Optional origin file path where the snippet was extracted from.
|
||||
pub origin_file: Option<String>,
|
||||
/// Optional line range in origin file (e.g. 'L10-L45').
|
||||
pub line_range: Option<String>,
|
||||
}
|
||||
|
||||
/// Add classification tags to an existing code snippet.
|
||||
@@ -362,6 +412,16 @@ pub struct LogDecisionTool {
|
||||
pub consequence: String,
|
||||
/// The ID of an older ADR this decision supersedes, if any.
|
||||
pub supersedes: Option<String>,
|
||||
/// Optional project namespace.
|
||||
pub namespace: Option<String>,
|
||||
/// Optional repository name.
|
||||
pub repo_name: Option<String>,
|
||||
/// Optional author or architect behind the decision.
|
||||
pub author: Option<String>,
|
||||
/// Optional affected system components or crates.
|
||||
pub affected_components: Option<Vec<String>>,
|
||||
/// Optional alternative designs or libraries considered.
|
||||
pub alternatives_considered: Option<Vec<String>>,
|
||||
}
|
||||
|
||||
/// Query architectural decision records.
|
||||
@@ -448,6 +508,12 @@ pub struct PinFileTool {
|
||||
pub file_path: String,
|
||||
/// The associated git branch, if any.
|
||||
pub git_branch: Option<String>,
|
||||
/// Optional reason for pinning this file.
|
||||
pub pin_reason: Option<String>,
|
||||
/// Optional symbol focus or line range.
|
||||
pub symbol_or_line: Option<String>,
|
||||
/// Optional repository name.
|
||||
pub repo_name: Option<String>,
|
||||
}
|
||||
|
||||
/// Unpin a file from the context workspace.
|
||||
@@ -551,6 +617,14 @@ pub struct AddMilestoneTool {
|
||||
/// The namespace for the milestone.
|
||||
#[serde(default = "crate::models::default_namespace")]
|
||||
pub namespace: String,
|
||||
/// Optional target completion date.
|
||||
pub target_date: Option<String>,
|
||||
/// Optional description of milestone scope.
|
||||
pub description: Option<String>,
|
||||
/// Optional deliverables or task checklist.
|
||||
pub deliverables: Option<Vec<String>>,
|
||||
/// Optional repository name.
|
||||
pub repo_name: Option<String>,
|
||||
}
|
||||
|
||||
/// Update the status of a milestone.
|
||||
@@ -611,6 +685,14 @@ pub struct AddPrChecklistItemTool {
|
||||
pub namespace: String,
|
||||
/// The description of the checklist item.
|
||||
pub description: String,
|
||||
/// Optional checklist category (e.g. 'Security', 'Testing', 'Formatting').
|
||||
pub category: Option<String>,
|
||||
/// Optional automated verification command or script.
|
||||
pub automated_check: Option<String>,
|
||||
/// Optional checked state.
|
||||
pub is_checked: Option<bool>,
|
||||
/// Optional repository name.
|
||||
pub repo_name: Option<String>,
|
||||
}
|
||||
|
||||
/// Get the PR checklist.
|
||||
@@ -647,6 +729,16 @@ pub struct LogTechDebtTool {
|
||||
pub symbol_references: Option<Vec<String>>,
|
||||
/// Optional line range (e.g. 'L123-L145') associated with the tech debt.
|
||||
pub line_range: Option<String>,
|
||||
/// Optional debt severity: 'low', 'medium', 'high', 'critical'.
|
||||
pub severity: Option<String>,
|
||||
/// Optional repository name.
|
||||
pub repo_name: Option<String>,
|
||||
/// Optional file path where debt exists.
|
||||
pub file_path: Option<String>,
|
||||
/// Optional workaround currently in place.
|
||||
pub workaround: Option<String>,
|
||||
/// Optional effort estimate to fix (e.g. '1 hour', '2 days').
|
||||
pub effort_estimate: Option<String>,
|
||||
}
|
||||
|
||||
/// Resolve a technical debt record.
|
||||
@@ -682,6 +774,14 @@ pub struct SaveContextWorkspaceTool {
|
||||
pub pinned_files: Vec<String>,
|
||||
/// Array of active task IDs.
|
||||
pub active_task_ids: Vec<String>,
|
||||
/// Optional description of the context workspace purpose.
|
||||
pub description: Option<String>,
|
||||
/// Optional git branch associated with this workspace.
|
||||
pub git_branch: Option<String>,
|
||||
/// Optional repository name.
|
||||
pub repo_name: Option<String>,
|
||||
/// Optional VCS revision or commit hash.
|
||||
pub vcs_revision: Option<String>,
|
||||
}
|
||||
|
||||
/// Load a saved context workspace.
|
||||
@@ -864,11 +964,6 @@ pub struct GetRecentLogsTool {
|
||||
pub file_path: String,
|
||||
}
|
||||
|
||||
/// Enable or disable clipboard watch mode (auto-ingesting into StickyNotes).
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema)]
|
||||
pub struct ToggleClipboardWatchModeTool {
|
||||
pub enable: bool,
|
||||
}
|
||||
/// Read a file and return only its AST skeleton (Imports, Structs, Enums, Traits, Functions)
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema)]
|
||||
pub struct ReadFileSkeletonTool {
|
||||
@@ -947,6 +1042,9 @@ pub struct FindSymbolReferencesTool {
|
||||
pub symbol: String,
|
||||
/// Optional maximum number of reference locations to return. Defaults to 10.
|
||||
pub limit: Option<usize>,
|
||||
/// Optional workspace or directory path to scan. If omitted, falls back to active pinned files or current working directory.
|
||||
#[serde(default, alias = "directory", alias = "path")]
|
||||
pub workspace_dir: Option<String>,
|
||||
}
|
||||
|
||||
/// Find all caller functions or methods that invoke a specified target function or method name.
|
||||
@@ -956,6 +1054,9 @@ pub struct GetCallersTool {
|
||||
pub function_name: String,
|
||||
/// Optional maximum number of callers to return. Defaults to 10.
|
||||
pub limit: Option<usize>,
|
||||
/// Optional workspace or directory path to scan. If omitted, falls back to active pinned files or current working directory.
|
||||
#[serde(default, alias = "directory", alias = "path")]
|
||||
pub workspace_dir: Option<String>,
|
||||
}
|
||||
|
||||
/// Query git commit history, diffs, and change ledger entries using keyword or semantic search.
|
||||
@@ -1079,8 +1180,11 @@ pub struct SearchSnippetsHybridTool {
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema, PartialEq)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum HandoffMemoAction {
|
||||
#[serde(alias = "leave", alias = "LEAVE", alias = "Leave")]
|
||||
Leave,
|
||||
#[serde(alias = "read", alias = "READ", alias = "Read")]
|
||||
Read,
|
||||
#[serde(alias = "clear", alias = "CLEAR", alias = "Clear")]
|
||||
Clear,
|
||||
}
|
||||
|
||||
@@ -1105,11 +1209,22 @@ pub struct HandoffMemosTool {
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema, PartialEq)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum TaskAction {
|
||||
#[serde(alias = "add", alias = "ADD", alias = "Add")]
|
||||
Add,
|
||||
#[serde(alias = "update", alias = "UPDATE", alias = "Update")]
|
||||
Update,
|
||||
#[serde(alias = "delete", alias = "DELETE", alias = "Delete")]
|
||||
Delete,
|
||||
#[serde(alias = "list", alias = "LIST", alias = "List")]
|
||||
List,
|
||||
#[serde(
|
||||
alias = "set_criteria",
|
||||
alias = "setCriteria",
|
||||
alias = "SET_CRITERIA",
|
||||
alias = "SetCriteria"
|
||||
)]
|
||||
SetCriteria,
|
||||
#[serde(alias = "verify", alias = "VERIFY", alias = "Verify")]
|
||||
Verify,
|
||||
}
|
||||
|
||||
@@ -1127,20 +1242,27 @@ pub struct TasksTool {
|
||||
/// Action to perform: 'add', 'update', 'delete', 'list', 'set_criteria', or 'verify'.
|
||||
pub action: TaskAction,
|
||||
/// Task ID (required for 'update', 'delete', 'set_criteria', 'verify').
|
||||
#[serde(alias = "task_id", alias = "taskId")]
|
||||
pub id: Option<String>,
|
||||
/// Task title (required for 'add').
|
||||
#[serde(alias = "name")]
|
||||
pub title: Option<String>,
|
||||
/// Task description (optional for 'add').
|
||||
#[serde(alias = "desc")]
|
||||
pub description: Option<String>,
|
||||
/// New status: 'pending', 'completed', or 'cancelled' (for 'update').
|
||||
pub status: Option<String>,
|
||||
/// Parent task ID (optional for 'add').
|
||||
#[serde(alias = "parentId", alias = "parent")]
|
||||
pub parent_id: Option<String>,
|
||||
/// List of dependency task IDs (optional for 'add').
|
||||
#[serde(alias = "deps")]
|
||||
pub dependencies: Option<Vec<String>>,
|
||||
/// Git branch filter or assignment.
|
||||
#[serde(alias = "branch")]
|
||||
pub git_branch: Option<String>,
|
||||
/// Acceptance criteria (required for 'set_criteria').
|
||||
#[serde(alias = "acceptance_criteria", alias = "acceptanceCriteria")]
|
||||
pub criteria: Option<Vec<String>>,
|
||||
/// Verification proof or details (optional for 'verify').
|
||||
pub proof: Option<String>,
|
||||
@@ -1148,13 +1270,26 @@ pub struct TasksTool {
|
||||
pub summary_level: Option<String>,
|
||||
/// Maximum tokens budget cap (for 'list').
|
||||
pub max_tokens: Option<usize>,
|
||||
/// Optional namespace filter or assignment (defaults to 'default').
|
||||
pub namespace: Option<String>,
|
||||
/// Optional repository name.
|
||||
pub repo_name: Option<String>,
|
||||
/// Optional task priority: 'low', 'medium', 'high', 'urgent'.
|
||||
pub priority: Option<String>,
|
||||
/// Optional assigned subagent role or identifier.
|
||||
pub assigned_agent: Option<String>,
|
||||
/// Optional verification command to validate criteria completion.
|
||||
pub verification_command: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema, PartialEq)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum MilestoneAction {
|
||||
#[serde(alias = "add", alias = "ADD", alias = "Add")]
|
||||
Add,
|
||||
#[serde(alias = "update", alias = "UPDATE", alias = "Update")]
|
||||
Update,
|
||||
#[serde(alias = "list", alias = "LIST", alias = "List")]
|
||||
List,
|
||||
}
|
||||
|
||||
@@ -1169,20 +1304,33 @@ pub struct MilestonesTool {
|
||||
/// Action to perform: 'add', 'update', or 'list'.
|
||||
pub action: MilestoneAction,
|
||||
/// Milestone ID (required for 'update').
|
||||
#[serde(alias = "milestone_id", alias = "milestoneId")]
|
||||
pub id: Option<String>,
|
||||
/// Milestone title (required for 'add').
|
||||
#[serde(alias = "name")]
|
||||
pub title: Option<String>,
|
||||
/// New status (for 'update').
|
||||
pub status: Option<String>,
|
||||
/// Optional namespace filter or assignment.
|
||||
pub namespace: Option<String>,
|
||||
/// Optional target completion date.
|
||||
pub target_date: Option<String>,
|
||||
/// Optional description of milestone scope.
|
||||
pub description: Option<String>,
|
||||
/// Optional deliverables or task checklist.
|
||||
pub deliverables: Option<Vec<String>>,
|
||||
/// Optional repository name.
|
||||
pub repo_name: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema, PartialEq)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum PinnedFileAction {
|
||||
#[serde(alias = "pin", alias = "PIN", alias = "Pin")]
|
||||
Pin,
|
||||
#[serde(alias = "unpin", alias = "UNPIN", alias = "Unpin")]
|
||||
Unpin,
|
||||
#[serde(alias = "list", alias = "LIST", alias = "List")]
|
||||
List,
|
||||
}
|
||||
|
||||
@@ -1200,15 +1348,28 @@ pub struct PinnedFilesTool {
|
||||
pub path: Option<String>,
|
||||
/// Optional namespace.
|
||||
pub namespace: Option<String>,
|
||||
/// Optional reason for pinning this file.
|
||||
pub pin_reason: Option<String>,
|
||||
/// Optional symbol focus or line range.
|
||||
pub symbol_or_line: Option<String>,
|
||||
/// Optional repository name.
|
||||
pub repo_name: Option<String>,
|
||||
/// Optional git branch.
|
||||
pub git_branch: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema, PartialEq)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum ContextWorkspaceAction {
|
||||
#[serde(alias = "save", alias = "SAVE", alias = "Save")]
|
||||
Save,
|
||||
#[serde(alias = "load", alias = "LOAD", alias = "Load")]
|
||||
Load,
|
||||
#[serde(alias = "list", alias = "LIST", alias = "List")]
|
||||
List,
|
||||
#[serde(alias = "delete", alias = "DELETE", alias = "Delete")]
|
||||
Delete,
|
||||
#[serde(alias = "diff", alias = "DIFF", alias = "Diff")]
|
||||
Diff,
|
||||
}
|
||||
|
||||
@@ -1234,13 +1395,24 @@ pub struct ContextWorkspacesTool {
|
||||
pub active_task_ids: Option<Vec<String>>,
|
||||
/// Optional namespace.
|
||||
pub namespace: Option<String>,
|
||||
/// Optional description of the context workspace purpose.
|
||||
pub description: Option<String>,
|
||||
/// Optional git branch associated with this workspace.
|
||||
pub git_branch: Option<String>,
|
||||
/// Optional repository name.
|
||||
pub repo_name: Option<String>,
|
||||
/// Optional VCS revision or commit hash.
|
||||
pub vcs_revision: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema, PartialEq)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum PrChecklistAction {
|
||||
#[serde(alias = "add", alias = "ADD", alias = "Add")]
|
||||
Add,
|
||||
#[serde(alias = "get", alias = "GET", alias = "Get")]
|
||||
Get,
|
||||
#[serde(alias = "clear", alias = "CLEAR", alias = "Clear")]
|
||||
Clear,
|
||||
}
|
||||
|
||||
@@ -1258,14 +1430,26 @@ pub struct PrChecklistTool {
|
||||
pub description: Option<String>,
|
||||
/// Optional namespace.
|
||||
pub namespace: Option<String>,
|
||||
/// Optional checklist category (e.g. 'Security', 'Testing', 'Formatting').
|
||||
pub category: Option<String>,
|
||||
/// Optional automated verification command or script.
|
||||
pub automated_check: Option<String>,
|
||||
/// Optional checked state.
|
||||
pub is_checked: Option<bool>,
|
||||
/// Optional repository name.
|
||||
pub repo_name: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema, PartialEq)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum SnippetAction {
|
||||
#[serde(alias = "store", alias = "STORE", alias = "Store")]
|
||||
Store,
|
||||
#[serde(alias = "search", alias = "SEARCH", alias = "Search")]
|
||||
Search,
|
||||
#[serde(alias = "delete", alias = "DELETE", alias = "Delete")]
|
||||
Delete,
|
||||
#[serde(alias = "tag", alias = "TAG", alias = "Tag")]
|
||||
Tag,
|
||||
}
|
||||
|
||||
@@ -1296,13 +1480,24 @@ pub struct SnippetsTool {
|
||||
pub tags: Option<Vec<String>>,
|
||||
/// Enable hybrid lexical + semantic vector ranking (for 'search').
|
||||
pub hybrid: Option<bool>,
|
||||
/// Optional project namespace.
|
||||
pub namespace: Option<String>,
|
||||
/// Optional repository name.
|
||||
pub repo_name: Option<String>,
|
||||
/// Optional origin file path where the snippet was extracted from.
|
||||
pub origin_file: Option<String>,
|
||||
/// Optional line range in origin file (e.g. 'L10-L45').
|
||||
pub line_range: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema, PartialEq)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum DecisionAction {
|
||||
#[serde(alias = "log", alias = "LOG", alias = "Log")]
|
||||
Log,
|
||||
#[serde(alias = "query", alias = "QUERY", alias = "Query")]
|
||||
Query,
|
||||
#[serde(alias = "delete", alias = "DELETE", alias = "Delete")]
|
||||
Delete,
|
||||
}
|
||||
|
||||
@@ -1332,13 +1527,24 @@ pub struct DecisionsTool {
|
||||
pub query: Option<String>,
|
||||
/// Optional namespace.
|
||||
pub namespace: Option<String>,
|
||||
/// Optional repository name.
|
||||
pub repo_name: Option<String>,
|
||||
/// Optional author or architect behind the decision.
|
||||
pub author: Option<String>,
|
||||
/// Optional affected system components or crates.
|
||||
pub affected_components: Option<Vec<String>>,
|
||||
/// Optional alternative designs or libraries considered.
|
||||
pub alternatives_considered: Option<Vec<String>>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema, PartialEq)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum TechDebtAction {
|
||||
#[serde(alias = "log", alias = "LOG", alias = "Log")]
|
||||
Log,
|
||||
#[serde(alias = "resolve", alias = "RESOLVE", alias = "Resolve")]
|
||||
Resolve,
|
||||
#[serde(alias = "list", alias = "LIST", alias = "List")]
|
||||
List,
|
||||
}
|
||||
|
||||
@@ -1353,16 +1559,21 @@ pub struct TechDebtTool {
|
||||
/// Action to perform: 'log', 'resolve', or 'list'.
|
||||
pub action: TechDebtAction,
|
||||
/// Tech debt ID (required for 'resolve').
|
||||
#[serde(alias = "tech_debt_id", alias = "debt_id")]
|
||||
pub id: Option<String>,
|
||||
/// Tech debt description (required for 'log').
|
||||
#[serde(alias = "desc", alias = "title")]
|
||||
pub description: Option<String>,
|
||||
/// Ideal solution (optional for 'log').
|
||||
#[serde(alias = "solution", alias = "fix")]
|
||||
pub ideal_solution: Option<String>,
|
||||
/// Include resolved tech debt items (for 'list').
|
||||
pub include_resolved: Option<bool>,
|
||||
/// Associated git commit hash.
|
||||
#[serde(alias = "commit")]
|
||||
pub git_commit: Option<String>,
|
||||
/// Associated git branch.
|
||||
#[serde(alias = "branch")]
|
||||
pub git_branch: Option<String>,
|
||||
/// Symbol references associated with the tech debt.
|
||||
pub symbol_references: Option<Vec<String>>,
|
||||
@@ -1370,15 +1581,50 @@ pub struct TechDebtTool {
|
||||
pub line_range: Option<String>,
|
||||
/// Optional namespace.
|
||||
pub namespace: Option<String>,
|
||||
/// Optional debt severity: 'low', 'medium', 'high', 'critical'.
|
||||
pub severity: Option<String>,
|
||||
/// Optional repository name.
|
||||
pub repo_name: Option<String>,
|
||||
/// Optional file path where debt exists.
|
||||
pub file_path: Option<String>,
|
||||
/// Optional workaround currently in place.
|
||||
pub workaround: Option<String>,
|
||||
/// Optional effort estimate to fix.
|
||||
pub effort_estimate: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema, PartialEq)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum EnvAction {
|
||||
#[serde(
|
||||
alias = "update_fingerprint",
|
||||
alias = "updateFingerprint",
|
||||
alias = "UPDATE_FINGERPRINT",
|
||||
alias = "UpdateFingerprint"
|
||||
)]
|
||||
UpdateFingerprint,
|
||||
#[serde(
|
||||
alias = "read_fingerprint",
|
||||
alias = "readFingerprint",
|
||||
alias = "READ_FINGERPRINT",
|
||||
alias = "ReadFingerprint"
|
||||
)]
|
||||
ReadFingerprint,
|
||||
#[serde(
|
||||
alias = "log_requirement",
|
||||
alias = "logRequirement",
|
||||
alias = "LOG_REQUIREMENT",
|
||||
alias = "LogRequirement"
|
||||
)]
|
||||
LogRequirement,
|
||||
#[serde(alias = "register", alias = "REGISTER", alias = "Register")]
|
||||
Register,
|
||||
#[serde(
|
||||
alias = "get_details",
|
||||
alias = "getDetails",
|
||||
alias = "GET_DETAILS",
|
||||
alias = "GetDetails"
|
||||
)]
|
||||
GetDetails,
|
||||
}
|
||||
|
||||
@@ -1415,20 +1661,19 @@ pub struct EnvironmentTool {
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema, PartialEq)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum ClipboardAction {
|
||||
#[serde(alias = "read", alias = "READ", alias = "Read")]
|
||||
Read,
|
||||
#[serde(alias = "write", alias = "WRITE", alias = "Write")]
|
||||
Write,
|
||||
ToggleWatch,
|
||||
}
|
||||
|
||||
/// OS Clipboard management (read, write, toggle_watch).
|
||||
/// OS Clipboard management (read, write).
|
||||
/// Actions:
|
||||
/// - 'read': Read current clipboard contents.
|
||||
/// - 'write': Write content to OS clipboard. Optional: text, html, files, image_path.
|
||||
/// - 'toggle_watch': Enable or disable auto-clipboard ingestion. Optional: enabled (bool).
|
||||
/// Next steps on error: Provide text/html/files/image_path when calling 'write'.
|
||||
#[derive(Debug, Deserialize, Serialize, JsonSchema)]
|
||||
pub struct ClipboardTool {
|
||||
/// Action to perform: 'read', 'write', or 'toggle_watch'.
|
||||
/// Action to perform: 'read' or 'write'.
|
||||
pub action: ClipboardAction,
|
||||
/// Plain text content (for 'write').
|
||||
pub text: Option<String>,
|
||||
@@ -1438,7 +1683,4 @@ pub struct ClipboardTool {
|
||||
pub files: Option<Vec<String>>,
|
||||
/// Image path (for 'write').
|
||||
pub image_path: Option<String>,
|
||||
/// Enable watch mode flag (for 'toggle_watch').
|
||||
pub enabled: Option<bool>,
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user