@task-shepherd/agent 1.0.8 → 1.0.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/dist/cli/index.js +166 -161
- package/dist/index.js +1 -1
- package/dist/meta.json +1263 -86
- package/package.json +1 -2
- package/shared/dist/index.d.ts +0 -15
- package/shared/dist/index.js +0 -12
- package/shared/dist/mcp-client/client.d.ts +0 -18
- package/shared/dist/mcp-client/client.js +0 -49
- package/shared/dist/mcp-client/index.d.ts +0 -7
- package/shared/dist/mcp-client/index.js +0 -7
- package/shared/dist/mcp-client/types.d.ts +0 -822
- package/shared/dist/mcp-client/types.js +0 -193
- package/shared/dist/schema/index.d.ts +0 -189
- package/shared/dist/schema/index.js +0 -142
- package/shared/dist/schema/mcp-mappings.d.ts +0 -50
- package/shared/dist/schema/mcp-mappings.js +0 -563
- package/shared/dist/schema/validation.d.ts +0 -91
- package/shared/dist/schema/validation.js +0 -282
- package/shared/dist/work-queue/index.d.ts +0 -7
- package/shared/dist/work-queue/index.js +0 -7
- package/shared/dist/work-queue/types.d.ts +0 -147
- package/shared/dist/work-queue/types.js +0 -4
- package/shared/dist/work-queue/validation.d.ts +0 -24
- package/shared/dist/work-queue/validation.js +0 -160
- package/shared/dist/workspace/constants.d.ts +0 -148
- package/shared/dist/workspace/constants.js +0 -432
- package/shared/dist/workspace/index.d.ts +0 -10
- package/shared/dist/workspace/index.js +0 -10
- package/shared/dist/workspace/types.d.ts +0 -477
- package/shared/dist/workspace/types.js +0 -9
- package/shared/dist/workspace/utils.d.ts +0 -79
- package/shared/dist/workspace/utils.js +0 -334
- package/shared/dist/workspace/validation.d.ts +0 -1312
- package/shared/dist/workspace/validation.js +0 -467
- package/shared/graphql/generated-internal.ts +0 -3629
- package/shared/graphql/generated-public.ts +0 -773
- package/shared/graphql/generated.d.ts +0 -7456
- package/shared/graphql/generated.js +0 -11799
- package/shared/graphql/generated.ts +0 -27569
- package/shared/graphql/generated.ts.backup +0 -16531
- package/shared/graphql/generated.ts.working +0 -4828
- package/shared/graphql/introspection-internal.json +0 -15845
- package/shared/graphql/introspection-public.json +0 -9658
- package/shared/graphql/introspection.json +0 -44263
- package/shared/graphql/operations/ai-service.graphql +0 -131
- package/shared/graphql/operations/ai-work-queue.graphql +0 -31
- package/shared/graphql/operations/analytics.graphql +0 -283
- package/shared/graphql/operations/analytics.ts +0 -3
- package/shared/graphql/operations/api-keys.graphql +0 -126
- package/shared/graphql/operations/attachments.graphql +0 -53
- package/shared/graphql/operations/attachments.ts +0 -39
- package/shared/graphql/operations/audit.graphql +0 -46
- package/shared/graphql/operations/auth.graphql +0 -83
- package/shared/graphql/operations/claude-usage.graphql +0 -178
- package/shared/graphql/operations/comments.graphql +0 -4
- package/shared/graphql/operations/dashboard.graphql +0 -29
- package/shared/graphql/operations/development-plans.graphql +0 -408
- package/shared/graphql/operations/early-access.graphql.disabled +0 -21
- package/shared/graphql/operations/errors.graphql.disabled +0 -83
- package/shared/graphql/operations/internal-api.graphql +0 -931
- package/shared/graphql/operations/notifications.graphql +0 -4
- package/shared/graphql/operations/organization-invites.graphql.disabled +0 -32
- package/shared/graphql/operations/performance.graphql +0 -4
- package/shared/graphql/operations/project-reviews.graphql +0 -610
- package/shared/graphql/operations/projects.graphql +0 -98
- package/shared/graphql/operations/settings.graphql +0 -4
- package/shared/graphql/operations/stories.graphql +0 -113
- package/shared/graphql/operations/subscriptions.graphql +0 -235
- package/shared/graphql/operations/subscriptions.graphql.disabled +0 -96
- package/shared/graphql/operations/tasks.graphql +0 -257
- package/shared/graphql/operations/team.graphql +0 -111
- package/shared/graphql/operations/team.ts +0 -226
- package/shared/graphql/operations/time-tracking.graphql.disabled +0 -96
- package/shared/graphql/operations/work-queue.graphql +0 -210
- package/shared/graphql/operations/work-queue.graphql.disabled +0 -474
- package/shared/graphql/operations/workspace.graphql +0 -146
- package/shared/graphql/schema-internal.graphql +0 -1085
- package/shared/graphql/schema-public.graphql +0 -709
- package/shared/graphql/schema.graphql +0 -3473
- package/shared/package.json +0 -23
|
@@ -1,257 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,111 +0,0 @@
|
|
|
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
|
-
# =============================================================================
|
|
@@ -1,226 +0,0 @@
|
|
|
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
|
|
@@ -1,96 +0,0 @@
|
|
|
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
|
-
}
|