@elizaos/plugin-linear 1.2.11 → 1.2.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,10 +4,20 @@ A comprehensive Linear integration plugin for ElizaOS that enables issue trackin
4
4
 
5
5
  ## Features
6
6
 
7
+ ### 🤖 Natural Language Understanding
8
+ All actions now support advanced natural language parsing powered by LLM:
9
+ - **Flexible References**: Reference issues by ID, title keywords, assignee, or recency
10
+ - **Smart Filtering**: Use natural language for complex searches and filters
11
+ - **Context Awareness**: Understands relative references like "my issues" or "today's activity"
12
+ - **Graceful Fallbacks**: Falls back to pattern matching when LLM parsing fails
13
+
14
+ ## Core Features
15
+
7
16
  ### 📋 Issue Management
8
17
  - **Create Issues**: Create new issues with title, description, priority, assignees, and labels
9
18
  - **Get Issue Details**: Retrieve comprehensive information about specific issues
10
19
  - **Update Issues**: Modify existing issues with new information
20
+ - **Delete Issues**: Archive issues (move to archived state)
11
21
  - **Search Issues**: Find issues using various filters and search criteria
12
22
  - **Add Comments**: Comment on existing issues
13
23
 
@@ -50,6 +60,20 @@ LINEAR_WORKSPACE_ID=your_workspace_id_here
50
60
  LINEAR_DEFAULT_TEAM_KEY=your_default_team_key_here # e.g., ENG, ELIZA, COM2
51
61
  ```
52
62
 
63
+ ### Default Team Behavior
64
+
65
+ When `LINEAR_DEFAULT_TEAM_KEY` is configured, it affects the following actions:
66
+
67
+ - **Create Issue**: New issues will be assigned to the default team if no team is specified
68
+ - **Search Issues**: Searches will be filtered by the default team unless:
69
+ - A team filter is explicitly provided
70
+ - The user asks for "all" issues
71
+ - **List Projects**: Projects will be filtered by the default team unless:
72
+ - A specific team is mentioned
73
+ - The user asks for "all" projects
74
+
75
+ This helps ensure that actions are scoped to the most relevant team by default while still allowing users to access all data when needed.
76
+
53
77
  ## Usage
54
78
 
55
79
  ### Register the Plugin
@@ -83,8 +107,11 @@ agent.registerPlugin(linearPlugin);
83
107
 
84
108
  #### Get Issue
85
109
  ```typescript
86
- // Natural language
87
- "Show me issue ENG-123"
110
+ // Natural language examples
111
+ "Show me issue ENG-123" // Direct ID
112
+ "What's the status of the login bug?" // Search by title
113
+ "Show me the latest high priority issue assigned to Sarah" // Complex query
114
+ "Get John's most recent task" // Assignee + recency
88
115
 
89
116
  // With options
90
117
  {
@@ -98,7 +125,9 @@ agent.registerPlugin(linearPlugin);
98
125
  #### Search Issues
99
126
  ```typescript
100
127
  // Natural language
101
- "Show me all high priority bugs assigned to me"
128
+ "Show me all high priority bugs assigned to me" // Uses default team if configured
129
+ "Show me all issues across all teams" // Searches all teams
130
+ "Show me issues in the ELIZA team" // Searches specific team
102
131
 
103
132
  // With options
104
133
  {
@@ -107,6 +136,7 @@ agent.registerPlugin(linearPlugin);
107
136
  query: "bug",
108
137
  priority: [1, 2], // Urgent and High
109
138
  state: ["in-progress", "todo"],
139
+ team: "ELIZA", // Override default team
110
140
  limit: 20
111
141
  }
112
142
  }
@@ -136,10 +166,31 @@ agent.registerPlugin(linearPlugin);
136
166
  }
137
167
  ```
138
168
 
139
- #### Add Comment
169
+ #### Delete Issue
140
170
  ```typescript
141
171
  // Natural language
172
+ "Delete issue ENG-123"
173
+ "Remove COM2-7 from Linear"
174
+ "Archive the bug report BUG-456"
175
+
176
+ // With options
177
+ {
178
+ action: "DELETE_LINEAR_ISSUE",
179
+ options: {
180
+ issueId: "issue-id-or-identifier"
181
+ }
182
+ }
183
+ ```
184
+
185
+ > **Note**: Linear doesn't support permanent deletion. This action archives the issue, moving it to an archived state where it won't appear in active views.
186
+
187
+ #### Add Comment
188
+ ```typescript
189
+ // Natural language examples
142
190
  "Comment on ENG-123: This has been fixed in the latest release"
191
+ "Tell the login bug that we need more information from QA"
192
+ "Reply to COM2-7: Thanks for the update"
193
+ "Add a note to the payment issue saying it's blocked by API changes"
143
194
 
144
195
  // With options
145
196
  {
@@ -153,16 +204,21 @@ agent.registerPlugin(linearPlugin);
153
204
 
154
205
  #### List Teams
155
206
  ```typescript
156
- // Natural language
157
- "Show me all teams"
207
+ // Natural language examples
208
+ "Show me all teams" // Lists all teams
209
+ "Which engineering teams do we have?" // Filter by name
210
+ "Show me the teams I'm part of" // Personal teams
211
+ "Show me the ELIZA team details" // Specific team lookup
158
212
  ```
159
213
 
160
214
  #### List Projects
161
215
  ```typescript
162
216
  // Natural language
163
- "Show me all projects"
217
+ "Show me all projects" // Uses default team filter if configured
218
+ "Show me all projects across all teams" // Lists all projects
219
+ "Show me projects for the engineering team" // Lists projects for specific team
164
220
 
165
- // Filter by team
221
+ // With options
166
222
  {
167
223
  action: "LIST_LINEAR_PROJECTS",
168
224
  options: {
@@ -173,8 +229,12 @@ agent.registerPlugin(linearPlugin);
173
229
 
174
230
  #### Get Activity
175
231
  ```typescript
176
- // Natural language
177
- "Show me recent Linear activity"
232
+ // Natural language examples
233
+ "Show me recent Linear activity" // All recent activity
234
+ "What happened in Linear today?" // Time-based filter
235
+ "Show me what issues John created this week" // User + action + time
236
+ "Activity on ENG-123" // Resource-specific activity
237
+ "Show me failed operations" // Filter by success status
178
238
 
179
239
  // With options
180
240
  {
package/dist/index.d.ts CHANGED
@@ -73,6 +73,7 @@ declare class LinearService extends Service {
73
73
  createIssue(input: LinearIssueInput): Promise<Issue>;
74
74
  getIssue(issueId: string): Promise<Issue>;
75
75
  updateIssue(issueId: string, updates: Partial<LinearIssueInput>): Promise<Issue>;
76
+ deleteIssue(issueId: string): Promise<void>;
76
77
  searchIssues(filters: LinearSearchFilters): Promise<Issue[]>;
77
78
  createComment(input: LinearCommentInput): Promise<Comment>;
78
79
  getProjects(teamId?: string): Promise<Project[]>;