@task-shepherd/agent 1.0.6 → 1.0.8

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.
Files changed (80) hide show
  1. package/dist/cli/index.js +1054 -86
  2. package/dist/index.js +1 -1
  3. package/dist/meta.json +358 -67
  4. package/package.json +2 -2
  5. package/shared/dist/index.d.ts +15 -0
  6. package/shared/dist/index.js +12 -0
  7. package/shared/dist/mcp-client/client.d.ts +18 -0
  8. package/shared/dist/mcp-client/client.js +49 -0
  9. package/shared/dist/mcp-client/index.d.ts +7 -0
  10. package/shared/dist/mcp-client/index.js +7 -0
  11. package/shared/dist/mcp-client/types.d.ts +822 -0
  12. package/shared/dist/mcp-client/types.js +193 -0
  13. package/shared/dist/schema/index.d.ts +189 -0
  14. package/shared/dist/schema/index.js +142 -0
  15. package/shared/dist/schema/mcp-mappings.d.ts +50 -0
  16. package/shared/dist/schema/mcp-mappings.js +563 -0
  17. package/shared/dist/schema/validation.d.ts +91 -0
  18. package/shared/dist/schema/validation.js +282 -0
  19. package/shared/dist/work-queue/index.d.ts +7 -0
  20. package/shared/dist/work-queue/index.js +7 -0
  21. package/shared/dist/work-queue/types.d.ts +147 -0
  22. package/shared/dist/work-queue/types.js +4 -0
  23. package/shared/dist/work-queue/validation.d.ts +24 -0
  24. package/shared/dist/work-queue/validation.js +160 -0
  25. package/shared/dist/workspace/constants.d.ts +148 -0
  26. package/shared/dist/workspace/constants.js +432 -0
  27. package/shared/dist/workspace/index.d.ts +10 -0
  28. package/shared/dist/workspace/index.js +10 -0
  29. package/shared/dist/workspace/types.d.ts +477 -0
  30. package/shared/dist/workspace/types.js +9 -0
  31. package/shared/dist/workspace/utils.d.ts +79 -0
  32. package/shared/dist/workspace/utils.js +334 -0
  33. package/shared/dist/workspace/validation.d.ts +1312 -0
  34. package/shared/dist/workspace/validation.js +467 -0
  35. package/shared/graphql/generated-internal.ts +3629 -0
  36. package/shared/graphql/generated-public.ts +773 -0
  37. package/shared/graphql/generated.d.ts +7456 -0
  38. package/shared/graphql/generated.js +11799 -0
  39. package/shared/graphql/generated.ts +27569 -0
  40. package/shared/graphql/generated.ts.backup +16531 -0
  41. package/shared/graphql/generated.ts.working +4828 -0
  42. package/shared/graphql/introspection-internal.json +15845 -0
  43. package/shared/graphql/introspection-public.json +9658 -0
  44. package/shared/graphql/introspection.json +44263 -0
  45. package/shared/graphql/operations/ai-service.graphql +131 -0
  46. package/shared/graphql/operations/ai-work-queue.graphql +31 -0
  47. package/shared/graphql/operations/analytics.graphql +283 -0
  48. package/shared/graphql/operations/analytics.ts +3 -0
  49. package/shared/graphql/operations/api-keys.graphql +126 -0
  50. package/shared/graphql/operations/attachments.graphql +53 -0
  51. package/shared/graphql/operations/attachments.ts +39 -0
  52. package/shared/graphql/operations/audit.graphql +46 -0
  53. package/shared/graphql/operations/auth.graphql +83 -0
  54. package/shared/graphql/operations/claude-usage.graphql +178 -0
  55. package/shared/graphql/operations/comments.graphql +4 -0
  56. package/shared/graphql/operations/dashboard.graphql +29 -0
  57. package/shared/graphql/operations/development-plans.graphql +408 -0
  58. package/shared/graphql/operations/early-access.graphql.disabled +21 -0
  59. package/shared/graphql/operations/errors.graphql.disabled +83 -0
  60. package/shared/graphql/operations/internal-api.graphql +931 -0
  61. package/shared/graphql/operations/notifications.graphql +4 -0
  62. package/shared/graphql/operations/organization-invites.graphql.disabled +32 -0
  63. package/shared/graphql/operations/performance.graphql +4 -0
  64. package/shared/graphql/operations/project-reviews.graphql +610 -0
  65. package/shared/graphql/operations/projects.graphql +98 -0
  66. package/shared/graphql/operations/settings.graphql +4 -0
  67. package/shared/graphql/operations/stories.graphql +113 -0
  68. package/shared/graphql/operations/subscriptions.graphql +235 -0
  69. package/shared/graphql/operations/subscriptions.graphql.disabled +96 -0
  70. package/shared/graphql/operations/tasks.graphql +257 -0
  71. package/shared/graphql/operations/team.graphql +111 -0
  72. package/shared/graphql/operations/team.ts +226 -0
  73. package/shared/graphql/operations/time-tracking.graphql.disabled +96 -0
  74. package/shared/graphql/operations/work-queue.graphql +210 -0
  75. package/shared/graphql/operations/work-queue.graphql.disabled +474 -0
  76. package/shared/graphql/operations/workspace.graphql +146 -0
  77. package/shared/graphql/schema-internal.graphql +1085 -0
  78. package/shared/graphql/schema-public.graphql +709 -0
  79. package/shared/graphql/schema.graphql +3473 -0
  80. package/shared/package.json +23 -0
@@ -0,0 +1,257 @@
1
+ # Task operations for Task Shepherd
2
+ # Tasks are accessed through Story queries
3
+
4
+ # Mutations
5
+
6
+ # Claim a task for implementation
7
+ mutation ClaimTask($id: String!) {
8
+ claimTask(id: $id) {
9
+ id
10
+ title
11
+ status
12
+ state
13
+ claimedAt
14
+ startedAt
15
+ assignedToUser {
16
+ id
17
+ fullName
18
+ email
19
+ }
20
+ }
21
+ }
22
+
23
+ # Update task properties
24
+ mutation UpdateTask($id: String!, $input: UpdateTaskInput!) {
25
+ updateTask(id: $id, input: $input) {
26
+ id
27
+ title
28
+ description
29
+ status
30
+ state
31
+ implementationSummary
32
+ keyFiles
33
+ updatedAt
34
+ }
35
+ }
36
+
37
+ # Complete a task
38
+ mutation CompleteTask($id: String!, $implementationSummary: String) {
39
+ completeTask(id: $id, implementationSummary: $implementationSummary) {
40
+ id
41
+ title
42
+ status
43
+ state
44
+ implementationSummary
45
+ completedAt
46
+ updatedAt
47
+ }
48
+ }
49
+
50
+ # Delete a task
51
+ mutation DeleteTask($id: String!) {
52
+ deleteTask(id: $id)
53
+ }
54
+
55
+ # Create a new task
56
+ mutation CreateTask($input: CreateTaskInput!) {
57
+ createTask(input: $input) {
58
+ id
59
+ title
60
+ description
61
+ status
62
+ state
63
+ priority
64
+ areas
65
+ type
66
+ estimate
67
+ createdAt
68
+ updatedAt
69
+ story {
70
+ id
71
+ title
72
+ status
73
+ }
74
+ assignedToUser {
75
+ id
76
+ fullName
77
+ email
78
+ }
79
+ }
80
+ }
81
+
82
+ # Queries
83
+
84
+ # Get a single task by ID
85
+ query Task($id: String!) {
86
+ task(id: $id) {
87
+ id
88
+ title
89
+ description
90
+ status
91
+ state
92
+ priority
93
+ areas
94
+ type
95
+ estimate
96
+ implementationSummary
97
+ keyFiles
98
+ createdAt
99
+ updatedAt
100
+ claimedAt
101
+ startedAt
102
+ completedAt
103
+ story {
104
+ id
105
+ title
106
+ status
107
+ project {
108
+ id
109
+ name
110
+ }
111
+ }
112
+ assignedToUser {
113
+ id
114
+ fullName
115
+ email
116
+ }
117
+ isComplete
118
+ isPending
119
+ isInProgress
120
+ isBlocked
121
+ isPlanned
122
+ isFollowup
123
+ isAsk
124
+ canBeClaimed
125
+ }
126
+ }
127
+
128
+ # Query tasks for a specific story
129
+ query TasksByStory($storyId: String!) {
130
+ story(id: $storyId) {
131
+ id
132
+ title
133
+ tasks {
134
+ id
135
+ title
136
+ description
137
+ status
138
+ state
139
+ priority
140
+ areas
141
+ implementationSummary
142
+ keyFiles
143
+ createdAt
144
+ updatedAt
145
+ claimedAt
146
+ startedAt
147
+ completedAt
148
+ assignedToUser {
149
+ id
150
+ fullName
151
+ email
152
+ }
153
+ isComplete
154
+ isPending
155
+ isInProgress
156
+ isBlocked
157
+ }
158
+ }
159
+ }
160
+
161
+ # Get story with tasks (more detailed version)
162
+ query StoryWithTasksDetail($id: String!) {
163
+ storyWithTasks(id: $id) {
164
+ id
165
+ title
166
+ description
167
+ status
168
+ priority
169
+ priorityLevel
170
+ createdAt
171
+ updatedAt
172
+ tasks {
173
+ id
174
+ title
175
+ description
176
+ status
177
+ state
178
+ priority
179
+ areas
180
+ type
181
+ implementationSummary
182
+ keyFiles
183
+ createdAt
184
+ updatedAt
185
+ claimedAt
186
+ startedAt
187
+ completedAt
188
+ assignedToUser {
189
+ id
190
+ fullName
191
+ email
192
+ }
193
+ isComplete
194
+ isPending
195
+ isInProgress
196
+ isBlocked
197
+ isPlanned
198
+ isFollowup
199
+ isAsk
200
+ }
201
+ project {
202
+ id
203
+ name
204
+ }
205
+ }
206
+ }
207
+
208
+ # Query all tasks (for task list views)
209
+ # Note: Backend doesn't have standalone tasks query yet, so we query via stories
210
+ query Tasks($projectId: String, $limit: Int = 50, $offset: Int = 0) {
211
+ stories(projectId: $projectId, limit: $limit, offset: $offset) {
212
+ id
213
+ title
214
+ status
215
+ priority
216
+ tasks {
217
+ id
218
+ title
219
+ description
220
+ status
221
+ state
222
+ priority
223
+ areas
224
+ type
225
+ estimate
226
+ implementationSummary
227
+ keyFiles
228
+ createdAt
229
+ updatedAt
230
+ claimedAt
231
+ startedAt
232
+ completedAt
233
+ story {
234
+ id
235
+ title
236
+ status
237
+ project {
238
+ id
239
+ name
240
+ }
241
+ }
242
+ assignedToUser {
243
+ id
244
+ fullName
245
+ email
246
+ }
247
+ isComplete
248
+ isPending
249
+ isInProgress
250
+ isBlocked
251
+ isPlanned
252
+ isFollowup
253
+ isAsk
254
+ canBeClaimed
255
+ }
256
+ }
257
+ }
@@ -0,0 +1,111 @@
1
+ # Team and User Operations
2
+
3
+ # User queries - Fixed to match current schema
4
+ query Users($pagination: PaginationInput, $search: TeamUserSearchInput) {
5
+ users(pagination: $pagination, search: $search) {
6
+ totalCount
7
+ hasNextPage
8
+ hasPreviousPage
9
+ nodes {
10
+ id
11
+ fullName
12
+ email
13
+ createdAt
14
+ updatedAt
15
+ lastLoginAt
16
+ isActive
17
+ isAdmin
18
+ displayName
19
+ avatarUrl
20
+ }
21
+ }
22
+ }
23
+
24
+ query User($id: String!) {
25
+ user(id: $id) {
26
+ id
27
+ fullName
28
+ email
29
+ createdAt
30
+ updatedAt
31
+ lastLoginAt
32
+ isActive
33
+ isAdmin
34
+ displayName
35
+ avatarUrl
36
+ firstName
37
+ lastName
38
+ activeApiKeysCount
39
+ assignedStoriesCount
40
+ assignedTasksCount
41
+ createdProjectsCount
42
+ commentsCount
43
+ }
44
+ }
45
+
46
+ # User management mutations
47
+ mutation CreateUser($input: CreateUserInput!) {
48
+ createUser(input: $input) {
49
+ id
50
+ fullName
51
+ email
52
+ status
53
+ createdAt
54
+ }
55
+ }
56
+
57
+ mutation UpdateUser($id: String!, $input: UpdateUserInput!) {
58
+ updateUser(id: $id, input: $input) {
59
+ id
60
+ fullName
61
+ email
62
+ status
63
+ updatedAt
64
+ }
65
+ }
66
+
67
+ mutation DeleteUser($userId: String!) {
68
+ deleteUser(userId: $userId)
69
+ }
70
+
71
+ mutation DisableUser($userId: String!) {
72
+ disableUser(userId: $userId) {
73
+ id
74
+ fullName
75
+ email
76
+ isActive
77
+ updatedAt
78
+ }
79
+ }
80
+
81
+ mutation EnableUser($userId: String!) {
82
+ enableUser(userId: $userId) {
83
+ id
84
+ fullName
85
+ email
86
+ isActive
87
+ updatedAt
88
+ }
89
+ }
90
+
91
+
92
+ # =============================================================================
93
+ # TEAM OPERATIONS - NOT YET IMPLEMENTED IN BACKEND
94
+ # =============================================================================
95
+ #
96
+ # The following team operations are not yet implemented in the backend.
97
+ # They are commented out to prevent GraphQL codegen validation errors.
98
+ #
99
+ # TODO: Implement TeamResolver in backend to enable these operations:
100
+ # - GetTeams query
101
+ # - Team query
102
+ # - TeamMembers query
103
+ # - CreateTeam mutation
104
+ # - UpdateTeam mutation
105
+ # - DeleteTeam mutation
106
+ # - Role management operations
107
+ # - Team member management operations
108
+ # - User invitation operations
109
+ #
110
+ # For now, team-related components display "coming soon" messages.
111
+ # =============================================================================
@@ -0,0 +1,226 @@
1
+ // TypeScript interfaces for team-related operations
2
+ // These types will be replaced by generated types once backend team operations are implemented
3
+
4
+ // Generated types would go here
5
+ // For now, manually defining key types for development
6
+
7
+ export interface Team {
8
+ id: string;
9
+ name: string;
10
+ description?: string;
11
+ isActive: boolean;
12
+ settings?: Record<string, any>;
13
+ memberCount: number;
14
+ projectCount: number;
15
+ createdAt: string;
16
+ updatedAt?: string;
17
+ createdByUser: {
18
+ id: string;
19
+ fullName: string;
20
+ email: string;
21
+ };
22
+ members?: TeamMember[];
23
+ projects?: Array<{
24
+ id: string;
25
+ name: string;
26
+ stage: string;
27
+ isArchived: boolean;
28
+ }>;
29
+ }
30
+
31
+ export interface TeamMember {
32
+ id: string;
33
+ status: string;
34
+ joinedAt: string;
35
+ user: {
36
+ id: string;
37
+ email: string;
38
+ firstName?: string;
39
+ lastName?: string;
40
+ fullName: string;
41
+ status: string;
42
+ lastLoginAt?: string;
43
+ storiesCount?: number;
44
+ tasksCount?: number;
45
+ };
46
+ role: {
47
+ id: string;
48
+ name: string;
49
+ description?: string;
50
+ permissions?: Record<string, boolean>;
51
+ };
52
+ team: {
53
+ id: string;
54
+ name: string;
55
+ };
56
+ }
57
+
58
+ export interface User {
59
+ id: string;
60
+ email: string;
61
+ firstName?: string;
62
+ lastName?: string;
63
+ fullName: string;
64
+ status: string;
65
+ role: string;
66
+ timezone?: string;
67
+ lastLoginAt?: string;
68
+ createdAt: string;
69
+ updatedAt?: string;
70
+ storiesCount?: number;
71
+ tasksCount?: number;
72
+ commentsCount?: number;
73
+ teamMemberships?: TeamMember[];
74
+ }
75
+
76
+ export interface Role {
77
+ id: string;
78
+ name: string;
79
+ description?: string;
80
+ permissions: Record<string, boolean>;
81
+ isSystemRole: boolean;
82
+ createdAt: string;
83
+ updatedAt?: string;
84
+ }
85
+
86
+ export interface UserInvitation {
87
+ id: string;
88
+ email: string;
89
+ status: string;
90
+ message?: string;
91
+ expiresAt: string;
92
+ acceptedAt?: string;
93
+ createdAt: string;
94
+ role: Role;
95
+ invitedBy: {
96
+ id: string;
97
+ fullName: string;
98
+ email: string;
99
+ };
100
+ }
101
+
102
+ export interface UserActivity {
103
+ id: string;
104
+ actionType: string;
105
+ resourceType?: string;
106
+ resourceId?: string;
107
+ metadata?: Record<string, any>;
108
+ createdAt: string;
109
+ user: {
110
+ id: string;
111
+ fullName: string;
112
+ };
113
+ }
114
+
115
+ // Input types
116
+ export interface TeamSearchInput {
117
+ name?: string;
118
+ isActive?: boolean;
119
+ createdBy?: string;
120
+ }
121
+
122
+ export interface UserSearchInput {
123
+ email?: string;
124
+ firstName?: string;
125
+ lastName?: string;
126
+ isActive?: boolean;
127
+ teamId?: string;
128
+ }
129
+
130
+ export interface PaginationInput {
131
+ offset?: number;
132
+ limit?: number;
133
+ }
134
+
135
+ export interface CreateTeamInput {
136
+ name: string;
137
+ description?: string;
138
+ settings?: Record<string, any>;
139
+ }
140
+
141
+ export interface UpdateTeamInput {
142
+ name?: string;
143
+ description?: string;
144
+ isActive?: boolean;
145
+ settings?: Record<string, any>;
146
+ }
147
+
148
+ export interface CreateRoleInput {
149
+ name: string;
150
+ description?: string;
151
+ permissions: Record<string, boolean>;
152
+ }
153
+
154
+ export interface UpdateRoleInput {
155
+ name?: string;
156
+ description?: string;
157
+ permissions?: Record<string, boolean>;
158
+ }
159
+
160
+ export interface AddTeamMemberInput {
161
+ teamId: string;
162
+ userId: string;
163
+ roleId: string;
164
+ }
165
+
166
+ export interface UpdateTeamMemberInput {
167
+ roleId?: string;
168
+ status?: string;
169
+ }
170
+
171
+ export interface InviteUserInput {
172
+ email: string;
173
+ roleId: string;
174
+ teamId?: string;
175
+ message?: string;
176
+ expiresInDays?: number;
177
+ }
178
+
179
+ export interface BulkInviteUsersInput {
180
+ emails: string[];
181
+ roleId: string;
182
+ teamId?: string;
183
+ message?: string;
184
+ expiresInDays?: number;
185
+ }
186
+
187
+ export interface UserOperation {
188
+ userId: string;
189
+ operation: string;
190
+ value?: string;
191
+ }
192
+
193
+ // Response types
194
+ export interface InvitationPayload {
195
+ success: boolean;
196
+ invitationId: string;
197
+ error?: string;
198
+ }
199
+
200
+ export interface BulkOperationResult {
201
+ totalOperations: number;
202
+ successfulOperations: number;
203
+ failedOperations: number;
204
+ errors: string[];
205
+ }
206
+
207
+ export interface UserConnection {
208
+ nodes: User[];
209
+ totalCount: number;
210
+ hasNextPage: boolean;
211
+ hasPreviousPage: boolean;
212
+ }
213
+
214
+ // TODO: Team CRUD operations are not yet implemented in the backend
215
+ // The following operations will be added once backend support is available:
216
+ // - teams query
217
+ // - createTeam, updateTeam, deleteTeam mutations
218
+ // - teamMembers query
219
+ // - user invitations
220
+ // - role management operations
221
+ //
222
+ // Current available operations are in team.graphql:
223
+ // - Users query
224
+ // - UserStats query
225
+ // - TeamPerformance query
226
+ // - updateUserRole mutation
@@ -0,0 +1,96 @@
1
+ # Time Tracking Mutations and Queries
2
+
3
+ mutation StartTaskTimer($id: String!) {
4
+ startTaskTimer(id: $id) {
5
+ id
6
+ title
7
+ status
8
+ isTimerRunning
9
+ currentSessionStart
10
+ currentSessionDuration
11
+ totalTrackedTime
12
+ totalTimeIncludingCurrent
13
+ estimate
14
+ implementationDuration
15
+ assignedToUser {
16
+ id
17
+ fullName
18
+ avatarUrl
19
+ }
20
+ }
21
+ }
22
+
23
+ mutation StopTaskTimer($id: String!) {
24
+ stopTaskTimer(id: $id) {
25
+ id
26
+ title
27
+ status
28
+ isTimerRunning
29
+ currentSessionStart
30
+ currentSessionDuration
31
+ totalTrackedTime
32
+ totalTimeIncludingCurrent
33
+ estimate
34
+ implementationDuration
35
+ assignedToUser {
36
+ id
37
+ fullName
38
+ avatarUrl
39
+ }
40
+ }
41
+ }
42
+
43
+ mutation AddTaskTimeEntry($id: String!, $minutes: Int!, $description: String, $date: DateTimeISO) {
44
+ addTaskTimeEntry(id: $id, minutes: $minutes, description: $description, date: $date) {
45
+ id
46
+ title
47
+ status
48
+ isTimerRunning
49
+ totalTrackedTime
50
+ totalTimeIncludingCurrent
51
+ estimate
52
+ implementationDuration
53
+ }
54
+ }
55
+
56
+ mutation ClearTaskTimeEntries($id: String!) {
57
+ clearTaskTimeEntries(id: $id) {
58
+ id
59
+ title
60
+ status
61
+ isTimerRunning
62
+ totalTrackedTime
63
+ }
64
+ }
65
+
66
+ # Extended Task fragment with time tracking fields
67
+ fragment TaskTimeTracking on Task {
68
+ id
69
+ title
70
+ description
71
+ type
72
+ status
73
+ priority
74
+ estimate
75
+ implementationDuration
76
+ isTimerRunning
77
+ currentSessionStart
78
+ currentSessionDuration
79
+ totalTrackedTime
80
+ totalTimeIncludingCurrent
81
+ claimedAt
82
+ startedAt
83
+ completedAt
84
+ assignedToUser {
85
+ id
86
+ fullName
87
+ avatarUrl
88
+ }
89
+ }
90
+
91
+ # Query for tasks with time tracking data
92
+ query GetTasksWithTimeTracking($options: TasksOptionsInput) {
93
+ tasks(options: $options) {
94
+ ...TaskTimeTracking
95
+ }
96
+ }