@elizaos/plugin-linear 1.2.11 → 1.2.13
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 +70 -10
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1154 -205
- package/dist/index.js.map +1 -1
- package/package.json +24 -1
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
|
-
####
|
|
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
|
-
//
|
|
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[]>;
|