@task-shepherd/agent 1.0.6 → 1.0.7

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 +1 -1
  2. package/dist/index.js +1 -1
  3. package/dist/meta.json +5 -5
  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,1085 @@
1
+ enum AIWorkType {
2
+ CODE_REVIEW
3
+ IMPLEMENTATION_PLAN
4
+ PROJECT_REVIEW
5
+ REVIEW_APPLICATION
6
+ STORY_IMPLEMENTATION
7
+ TASK_COMPLETION
8
+ }
9
+
10
+ type AIWorker {
11
+ accessibleServices: [String!]!
12
+ accessibleWorkspaces: [String!]!
13
+ canAcceptWork: Boolean!
14
+ capabilities: [AIWorkType!]!
15
+ createdAt: DateTimeISO!
16
+ createdBy: String
17
+ currentTaskCount: Int!
18
+ healthMetrics: JSONObject
19
+ id: ID!
20
+ isAvailable: Boolean!
21
+ isHealthy: Boolean!
22
+ lastActivity: DateTimeISO
23
+ lastHeartbeat: DateTimeISO
24
+ maxConcurrentTasks: Int!
25
+ metadata: JSONObject
26
+ project: Project
27
+ resourceLimits: JSONObject
28
+ scope: WorkerScope!
29
+ scopeId: String!
30
+ status: AIWorkerStatus!
31
+ team: Team
32
+ updatedAt: DateTimeISO!
33
+ updatedBy: String
34
+ uptimeSeconds: Int!
35
+ user: User
36
+ utilizationPercentage: Float!
37
+ workerId: String!
38
+ workerName: String!
39
+ }
40
+
41
+ enum AIWorkerStatus {
42
+ ACTIVE
43
+ BUSY
44
+ DEGRADED
45
+ DISCONNECTED
46
+ ERROR
47
+ IDLE
48
+ REGISTERING
49
+ }
50
+
51
+ type Attachment {
52
+ createdAt: DateTimeISO!
53
+ createdBy: String
54
+ duration: Int
55
+ fileExtension: String!
56
+ fileSize: Int!
57
+ fileSizeFormatted: String!
58
+ filename: String!
59
+ height: Int
60
+ id: ID!
61
+ isAudio: Boolean!
62
+ isDocument: Boolean!
63
+ isImage: Boolean!
64
+ isPublic: Boolean!
65
+ isVideo: Boolean!
66
+ mimeType: String!
67
+ originalFilename: String!
68
+ storageProvider: String!
69
+ story: Story
70
+ task: Task
71
+ updatedAt: DateTimeISO!
72
+ updatedBy: String
73
+ width: Int
74
+ }
75
+
76
+ type AuditLogChangeType {
77
+ from: String!
78
+ to: String!
79
+ }
80
+
81
+ type AuditLogChangesType {
82
+ affectedProjects: [String!]
83
+ deletedCount: Int
84
+ description: AuditLogChangeType
85
+ name: AuditLogChangeType
86
+ status: AuditLogChangeType
87
+ }
88
+
89
+ type AuditLogEntry {
90
+ action: String!
91
+ changes: AuditLogChangesType
92
+ id: String!
93
+ ipAddress: String!
94
+ organizationId: String!
95
+ organizationName: String!
96
+ resource: String!
97
+ resourceId: String!
98
+ riskScore: Int
99
+ timestamp: DateTimeISO!
100
+ userAgent: String!
101
+ userEmail: String!
102
+ userId: String!
103
+ }
104
+
105
+ input AuditLogFilter {
106
+ action: String
107
+ endDate: DateTimeISO
108
+ ipAddress: String
109
+ minRiskScore: Int
110
+ organizationId: String
111
+ resource: String
112
+ startDate: DateTimeISO
113
+ userId: String
114
+ }
115
+
116
+ type BillingPlan {
117
+ description: String!
118
+ features: [String!]!
119
+ id: String!
120
+ isActive: Boolean!
121
+ maxProjects: Int!
122
+ maxStorageGB: Int!
123
+ maxUsers: Int!
124
+ monthlyPrice: Float!
125
+ name: String!
126
+ }
127
+
128
+ type BillingSubscription {
129
+ cancelAtPeriodEnd: Boolean
130
+ createdAt: DateTimeISO!
131
+ currency: String!
132
+ currentPeriodEnd: DateTimeISO!
133
+ currentPeriodStart: DateTimeISO!
134
+ id: String!
135
+ monthlyAmount: Float!
136
+ organizationId: String!
137
+ planId: String!
138
+ status: String!
139
+ trialEnd: DateTimeISO
140
+ updatedAt: DateTimeISO!
141
+ }
142
+
143
+ type BillingUsage {
144
+ aiAnalysisCount: Int!
145
+ apiRequestCount: Int!
146
+ billingPeriod: String!
147
+ organizationId: String!
148
+ overage: Float!
149
+ projectCount: Int!
150
+ storageUsageGB: Float!
151
+ userCount: Int!
152
+ }
153
+
154
+ type Comment {
155
+ content: String!
156
+ contentHtml: String
157
+ createdAt: DateTimeISO!
158
+ createdBy: String
159
+ editedAt: DateTimeISO
160
+ hasReplies: Boolean!
161
+ id: ID!
162
+ isEdited: Boolean!
163
+ isReply: Boolean!
164
+ isTopLevel: Boolean!
165
+ parentComment: Comment
166
+ replies: [Comment!]!
167
+ replyCount: Int!
168
+ story: Story
169
+ task: Task
170
+ threadDepth: Int!
171
+ updatedAt: DateTimeISO!
172
+ updatedBy: String
173
+ }
174
+
175
+ input CreateBillingPlanInput {
176
+ description: String!
177
+ features: [String!]!
178
+ maxProjects: Int!
179
+ maxStorageGB: Int!
180
+ maxUsers: Int!
181
+ monthlyPrice: Float!
182
+ name: String!
183
+ }
184
+
185
+ input CreateInviteFromEarlyAccessInput {
186
+ earlyAccessId: String!
187
+ expiresInDays: Int
188
+ message: String
189
+ suggestedOrgName: String
190
+ suggestedSubdomain: String
191
+ }
192
+
193
+ input CreateOrganizationInput {
194
+ description: String
195
+ name: String!
196
+ ownerEmail: String!
197
+ settings: JSONObject
198
+ subdomain: String!
199
+ }
200
+
201
+ type DatabaseColumn {
202
+ characterMaximumLength: Int
203
+ columnDefault: String
204
+ columnName: String!
205
+ dataType: String!
206
+ isNullable: Boolean!
207
+ numericPrecision: Int
208
+ numericScale: Int
209
+ ordinalPosition: Int!
210
+ }
211
+
212
+ type DatabaseSchema {
213
+ databaseName: String!
214
+ exportedAt: DateTimeISO!
215
+ schemaVersion: String!
216
+ tables: [DatabaseTable!]!
217
+ totalColumns: Int!
218
+ totalTables: Int!
219
+ }
220
+
221
+ type DatabaseTable {
222
+ columns: [DatabaseColumn!]!
223
+ foreignKeys: [String!]!
224
+ indexSize: String!
225
+ indexes: [String!]!
226
+ primaryKeys: [String!]!
227
+ rowCount: Int!
228
+ tableName: String!
229
+ tableSchema: String!
230
+ tableSize: String!
231
+ totalSize: String!
232
+ }
233
+
234
+ """
235
+ A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.This scalar is serialized to a string in ISO 8601 format and parsed from a string in ISO 8601 format.
236
+ """
237
+ scalar DateTimeISO
238
+
239
+ type EarlyAccessRegistration {
240
+ acceptedTerms: Boolean!
241
+ ageVerified: Boolean!
242
+ aiTools: [String!]!
243
+ comments: String
244
+ companyName: String
245
+ contactName: String
246
+ createdAt: DateTimeISO!
247
+ createdBy: String
248
+ currentTools: [String!]!
249
+ email: String!
250
+ id: ID!
251
+ inviteSentAt: DateTimeISO
252
+ inviteToken: String
253
+ notes: String
254
+ organizationInviteId: String
255
+ painPoints: [String!]!
256
+ primaryLanguages: [String!]!
257
+ projectTypes: [String!]!
258
+ repoStructure: String
259
+ role: String
260
+ serviceCount: String
261
+ status: String!
262
+ subscribeToNewsletter: Boolean
263
+ teamSize: String
264
+ updatedAt: DateTimeISO!
265
+ updatedBy: String
266
+ }
267
+
268
+ input EarlyAccessRegistrationInput {
269
+ aiTools: [String!]!
270
+ comments: String
271
+ companyName: String
272
+ contactName: String
273
+ currentTools: [String!]!
274
+ email: String!
275
+ painPoints: [String!]!
276
+ primaryLanguages: [String!]!
277
+ projectTypes: [String!]!
278
+ repoStructure: String
279
+ role: String
280
+ serviceCount: String
281
+ teamSize: String
282
+ }
283
+
284
+ type FeatureFlag {
285
+ createdAt: DateTimeISO!
286
+ description: String!
287
+ enabled: Boolean!
288
+ enabledOrganizations: [String!]!
289
+ name: String!
290
+ rolloutPercentage: Int!
291
+ updatedAt: DateTimeISO!
292
+ }
293
+
294
+ type InviteResponse {
295
+ error: String
296
+ inviteToken: String
297
+ inviteUrl: String
298
+ success: Boolean!
299
+ }
300
+
301
+ type Invoice {
302
+ amount: Float!
303
+ createdAt: DateTimeISO!
304
+ currency: String!
305
+ dueDate: DateTimeISO!
306
+ id: String!
307
+ invoiceNumber: String!
308
+ lineItems: [InvoiceLineItem!]!
309
+ organizationId: String!
310
+ paidAt: DateTimeISO
311
+ status: String!
312
+ subscriptionId: String!
313
+ }
314
+
315
+ type InvoiceLineItem {
316
+ amount: Float!
317
+ description: String!
318
+ quantity: Int!
319
+ unitPrice: Float!
320
+ }
321
+
322
+ """
323
+ The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).
324
+ """
325
+ scalar JSONObject
326
+
327
+ input LoginInput {
328
+ email: String!
329
+ password: String!
330
+ }
331
+
332
+ type LoginPayload {
333
+ expiresIn: String!
334
+ refreshToken: String
335
+ token: String!
336
+ tokenType: String!
337
+ user: User!
338
+ }
339
+
340
+ type MaintenanceWindow {
341
+ affectedServices: String!
342
+ createdBy: String!
343
+ description: String!
344
+ id: String!
345
+ notifyUsers: Boolean!
346
+ scheduledEnd: DateTimeISO!
347
+ scheduledStart: DateTimeISO!
348
+ status: String!
349
+ title: String!
350
+ }
351
+
352
+ type Mutation {
353
+ activateOrganization(id: String!): Boolean!
354
+ addUserToOrganization(input: UserOrganizationMembershipInput!): UserOrganization!
355
+ cancelSubscription(cancelAtPeriodEnd: Boolean! = true, organizationId: String!): Boolean!
356
+ clearAllCaches: Boolean!
357
+ createBillingPlan(input: CreateBillingPlanInput!): BillingPlan!
358
+ createEarlyAccessRegistration(input: EarlyAccessRegistrationInput!): EarlyAccessRegistration!
359
+ createInviteFromEarlyAccess(input: CreateInviteFromEarlyAccessInput!): InviteResponse!
360
+ createOrganization(input: CreateOrganizationInput!): Organization!
361
+ deleteOrganization(confirmPhrase: String!, id: String!): Boolean!
362
+ disableUser(id: String!, reason: String): Boolean!
363
+ executeDatabaseMaintenance(operation: String!): Boolean!
364
+ forceGarbageCollection: Boolean!
365
+ generateInviteToken(earlyAccessId: String!): InviteResponse!
366
+ platformLogin(input: LoginInput!): LoginPayload!
367
+ removeUserFromOrganization(organizationId: String!, userId: String!): Boolean!
368
+ scheduleMaintenanceWindow(affectedServices: String!, description: String!, notifyUsers: Boolean! = true, scheduledEnd: DateTimeISO!, scheduledStart: DateTimeISO!, title: String!): MaintenanceWindow!
369
+ suspendOrganization(id: String!, reason: String): Boolean!
370
+ updateEarlyAccessRegistration(id: String!, input: UpdateEarlyAccessRegistrationInput!): EarlyAccessRegistration
371
+ updateFeatureFlag(enabled: Boolean, enabledOrganizations: [String!], name: String!, rolloutPercentage: Int): FeatureFlag!
372
+ updateOrganization(id: String!, input: UpdateOrganizationInput!): Organization!
373
+ updateSubscription(input: UpdateSubscriptionInput!, organizationId: String!): BillingSubscription!
374
+ updateUser(id: String!, input: UpdateUserInput!): User!
375
+ updateUserOrganizationRole(organizationId: String!, role: OrganizationRole!, userId: String!): UserOrganization!
376
+ }
377
+
378
+ type Organization {
379
+ createdAt: DateTimeISO!
380
+ createdBy: String
381
+ deletedAt: DateTimeISO
382
+ description: String
383
+ fullDomain: String!
384
+ id: ID!
385
+ isActive: Boolean!
386
+ name: String!
387
+ settings: JSONObject
388
+ status: OrganizationStatus!
389
+ subdomain: String!
390
+ updatedAt: DateTimeISO!
391
+ updatedBy: String
392
+ }
393
+
394
+ type OrganizationGrowthData {
395
+ activeOrganizations: Int!
396
+ date: String!
397
+ newOrganizations: Int!
398
+ suspendedOrganizations: Int!
399
+ }
400
+
401
+ type OrganizationRanking {
402
+ activityScore: Float!
403
+ organization: Organization!
404
+ projectCount: Int!
405
+ userCount: Int!
406
+ }
407
+
408
+ enum OrganizationRole {
409
+ ADMIN
410
+ MEMBER
411
+ OWNER
412
+ VIEWER
413
+ }
414
+
415
+ type OrganizationStats {
416
+ monthlyApiCalls: Int
417
+ projectCount: Int!
418
+ storageUsageGB: Int
419
+ storyCount: Int
420
+ taskCount: Int
421
+ userCount: Int!
422
+ }
423
+
424
+ enum OrganizationStatus {
425
+ ACTIVE
426
+ ARCHIVED
427
+ DELETED
428
+ SUSPENDED
429
+ }
430
+
431
+ type OrganizationSubscription {
432
+ currency: String
433
+ currentPeriodEnd: DateTimeISO!
434
+ currentPeriodStart: DateTimeISO!
435
+ id: String!
436
+ monthlyAmount: Int!
437
+ planId: String!
438
+ status: String!
439
+ trialEnd: DateTimeISO
440
+ }
441
+
442
+ type OrganizationWithDetails {
443
+ createdAt: DateTimeISO!
444
+ createdBy: String
445
+ deletedAt: DateTimeISO
446
+ description: String
447
+ fullDomain: String!
448
+ id: ID!
449
+ isActive: Boolean!
450
+ name: String!
451
+ owner: User
452
+ recentProjects: [Project!]!
453
+ settings: JSONObject
454
+ stats: OrganizationStats!
455
+ status: OrganizationStatus!
456
+ subdomain: String!
457
+ subscription: OrganizationSubscription
458
+ updatedAt: DateTimeISO!
459
+ updatedBy: String
460
+ users: [User!]!
461
+ }
462
+
463
+ type Phase {
464
+ allStoriesComplete: Boolean!
465
+ completedAt: DateTimeISO
466
+ completedStories: Int!
467
+ createdAt: DateTimeISO!
468
+ createdBy: String
469
+ description: String
470
+ id: ID!
471
+ isCompleted: Boolean!
472
+ name: String!
473
+ orderIndex: Int!
474
+ progressPercentage: Int!
475
+ project: Project!
476
+ stories: [Story!]!
477
+ totalStories: Int!
478
+ updatedAt: DateTimeISO!
479
+ updatedBy: String
480
+ }
481
+
482
+ enum PlatformRole {
483
+ AGENT_ADMIN
484
+ AGENT_REVIEWER
485
+ AUDIT_VIEWER
486
+ BILLING_ADMIN
487
+ SUPER_ADMIN
488
+ SUPPORT
489
+ }
490
+
491
+ type PlatformRoleInfo {
492
+ assignedAt: DateTimeISO!
493
+ id: String!
494
+ isActive: Boolean!
495
+ role: PlatformRole!
496
+ }
497
+
498
+ type PlatformStats {
499
+ activeOrganizations: Int!
500
+ activeUsers: Int!
501
+ avgProjectsPerOrganization: Float!
502
+ avgUsersPerOrganization: Float!
503
+ completedTasks: Int!
504
+ totalOrganizations: Int!
505
+ totalProjects: Int!
506
+ totalStories: Int!
507
+ totalTasks: Int!
508
+ totalUsers: Int!
509
+ }
510
+
511
+ type PlatformUserInfo {
512
+ canAccessAudits: Boolean!
513
+ canAccessInternal: Boolean!
514
+ canManageBilling: Boolean!
515
+ canSupportOrganizations: Boolean!
516
+ displayName: String!
517
+ email: String!
518
+ firstName: String
519
+ fullName: String
520
+ id: String!
521
+ lastName: String
522
+ permissions: [String!]!
523
+ platformRoles: [PlatformRoleInfo!]!
524
+ }
525
+
526
+ enum PriorityLevel {
527
+ CRITICAL
528
+ HIGH
529
+ LOW
530
+ MEDIUM
531
+ }
532
+
533
+ type Project {
534
+ affectedServices: [WorkspaceService!]!
535
+ createdAt: DateTimeISO!
536
+ createdBy: String
537
+ description: String
538
+ documentationUrl: String
539
+ healthScore: Int
540
+ id: ID!
541
+ isActive: Boolean!
542
+ isArchived: Boolean!
543
+ isComplete: Boolean!
544
+ isPublic: Boolean!
545
+ links: JSONObject
546
+ name: String!
547
+ notes: [ProjectNote!]!
548
+ organization: Organization!
549
+ phases: [Phase!]!
550
+ qualityMetrics: JSONObject
551
+ repositoryUrl: String
552
+ requirements: [ProjectRequirement!]!
553
+ reviewHistory: JSONObject
554
+ riskProfile: JSONObject
555
+ sprints: [Sprint!]!
556
+ stage: ProjectStage!
557
+ startDate: DateTimeISO
558
+ stories: [Story!]!
559
+ targetCompletionDate: DateTimeISO
560
+ team: Team
561
+ updatedAt: DateTimeISO!
562
+ updatedBy: String
563
+ workspaceConfig: JSONObject
564
+ workspaces: [Workspace!]!
565
+ }
566
+
567
+ type ProjectActivityData {
568
+ date: String!
569
+ projectsCreated: Int!
570
+ storiesCreated: Int!
571
+ tasksCompleted: Int!
572
+ tasksCreated: Int!
573
+ }
574
+
575
+ type ProjectNote {
576
+ content: String!
577
+ createdAt: DateTimeISO!
578
+ createdBy: String
579
+ id: ID!
580
+ isPinned: Boolean!
581
+ project: Project!
582
+ title: String
583
+ updatedAt: DateTimeISO!
584
+ updatedBy: String
585
+ }
586
+
587
+ type ProjectRequirement {
588
+ acceptanceCriteria: [String!]!
589
+ applicationArea: String
590
+ createdAt: DateTimeISO!
591
+ createdBy: String
592
+ description: String!
593
+ id: ID!
594
+ isCompleted: Boolean!
595
+ priority: PriorityLevel!
596
+ project: Project!
597
+ title: String!
598
+ updatedAt: DateTimeISO!
599
+ updatedBy: String
600
+ }
601
+
602
+ enum ProjectStage {
603
+ ARCHIVED
604
+ COMPLETE
605
+ DESIGN
606
+ DEVELOPMENT
607
+ IMPLEMENTATION
608
+ REQUIREMENTS
609
+ }
610
+
611
+ type Query {
612
+ allOrganizations(limit: Int, offset: Int, search: String, status: OrganizationStatus): [Organization!]!
613
+ allSubscriptions(limit: Int! = 50, offset: Int! = 0, status: String): [BillingSubscription!]!
614
+ applicationLogs(level: String! = "error", limit: Int! = 100, since: DateTimeISO): [String!]!
615
+ auditLogs(filter: AuditLogFilter, limit: Int! = 100, offset: Int! = 0): [AuditLogEntry!]!
616
+ billingPlans: [BillingPlan!]!
617
+ complianceReport(endDate: DateTimeISO!, organizationId: String, startDate: DateTimeISO!): String!
618
+ databaseSchema(includeSystemTables: Boolean! = false): DatabaseSchema!
619
+ earlyAccessRegistration(id: String!): EarlyAccessRegistration
620
+ earlyAccessRegistrationCount(status: String): Float!
621
+ earlyAccessRegistrations(status: String): [EarlyAccessRegistration!]!
622
+ featureFlags: [FeatureFlag!]!
623
+ featureUsageStats: String!
624
+ getUserActivity(days: Int! = 30, userId: String!): String!
625
+ highRiskActivities(days: Int! = 7, limit: Int! = 50, minRiskScore: Int! = 70): [AuditLogEntry!]!
626
+ maintenanceWindows(upcoming: Boolean! = true): [MaintenanceWindow!]!
627
+ organization(id: String!): OrganizationWithDetails
628
+ organizationActivityAudit(days: Int! = 30, limit: Int! = 100, organizationId: String!): [AuditLogEntry!]!
629
+ organizationGrowthData(days: Int! = 30): [OrganizationGrowthData!]!
630
+ organizationInvoices(limit: Int! = 20, organizationId: String!): [Invoice!]!
631
+ organizationSubscription(organizationId: String!): BillingSubscription
632
+ organizationUsage(billingPeriod: String, organizationId: String!): BillingUsage!
633
+ platformMe: PlatformUserInfo
634
+ platformStats: PlatformStats!
635
+ projectActivityData(days: Int! = 30): [ProjectActivityData!]!
636
+ revenueAnalytics(months: Int! = 12): String!
637
+ revenueMetrics(months: Int! = 12): String!
638
+ searchUsers(limit: Int! = 50, offset: Int! = 0, search: UserSearchInput): [UserWithOrganizations!]!
639
+ securityEvents(limit: Int! = 50, resolved: Boolean, severity: String): [SecurityEvent!]!
640
+ systemHealth: SystemHealthMetrics!
641
+ systemInfo: SystemInfo!
642
+ topOrganizationsByActivity(limit: Int! = 10): [OrganizationRanking!]!
643
+ userActivityAudit(days: Int! = 30, limit: Int! = 100, userId: String!): [AuditLogEntry!]!
644
+ userActivityData(days: Int! = 30): [UserActivityData!]!
645
+ userDetails(id: String!): UserWithOrganizations
646
+ }
647
+
648
+ type Role {
649
+ createdAt: DateTimeISO!
650
+ createdBy: String
651
+ description: String
652
+ id: ID!
653
+ isSystemRole: Boolean!
654
+ name: String!
655
+ permissions: JSONObject!
656
+ updatedAt: DateTimeISO!
657
+ updatedBy: String
658
+ }
659
+
660
+ type SecurityEvent {
661
+ description: String!
662
+ id: String!
663
+ ipAddress: String!
664
+ metadata: SecurityEventMetadataType!
665
+ organizationId: String!
666
+ resolved: Boolean!
667
+ severity: String!
668
+ timestamp: DateTimeISO!
669
+ type: String!
670
+ userId: String!
671
+ }
672
+
673
+ type SecurityEventMetadataType {
674
+ accountAge: String
675
+ attemptCount: Int
676
+ newLocation: String
677
+ previousLocation: String
678
+ timeWindow: String
679
+ userAgent: String
680
+ }
681
+
682
+ """Available service technologies"""
683
+ enum ServiceTechnology {
684
+ DATABASE
685
+ DOCKER
686
+ GO
687
+ JAVA
688
+ NGINX
689
+ NODEJS
690
+ OTHER
691
+ PYTHON
692
+ REACT
693
+ REDIS
694
+ RUST
695
+ }
696
+
697
+ type Sprint {
698
+ completedStories: Int!
699
+ createdAt: DateTimeISO!
700
+ createdBy: String
701
+ duration: Int!
702
+ endDate: DateTimeISO!
703
+ goal: String
704
+ id: ID!
705
+ isActive: Boolean!
706
+ isEnded: Boolean!
707
+ isInProgress: Boolean!
708
+ isStarted: Boolean!
709
+ name: String!
710
+ progressPercentage: Int!
711
+ project: Project!
712
+ startDate: DateTimeISO!
713
+ stories: [Story!]!
714
+ totalStories: Int!
715
+ updatedAt: DateTimeISO!
716
+ updatedBy: String
717
+ }
718
+
719
+ type Story {
720
+ acceptanceCriteria: [String!]!
721
+ affectedServices: [String!]!
722
+ assignedTo: String
723
+ assignedToUser: User
724
+ attachments: [Attachment!]!
725
+ canBeClaimed: Boolean!
726
+ claimedAt: DateTimeISO
727
+ comments: [Comment!]!
728
+ completedAt: DateTimeISO
729
+ completedTasks: Int!
730
+ createdAt: DateTimeISO!
731
+ createdBy: String
732
+ crossWorkspaceCoordination: String
733
+ dependencies: [Story!]
734
+ dependsOn: [Story!]
735
+ description: String
736
+ estimate: Int
737
+ hasBlockingDependencies: Boolean!
738
+ id: ID!
739
+ implementationDuration: Int
740
+ isAssigned: Boolean!
741
+ isBlocked: Boolean!
742
+ isComplete: Boolean!
743
+ isInProgress: Boolean!
744
+ isInReview: Boolean!
745
+ isPending: Boolean!
746
+ orderIndex: Int
747
+ organization: Organization!
748
+ phase: Phase
749
+ priority: PriorityLevel!
750
+ project: Project!
751
+ pullRequestLink: String
752
+ relatedWorkspaces: [String!]!
753
+ reviewNotes: String
754
+ reviewedAt: DateTimeISO
755
+ reviewedBy: User
756
+ sprint: Sprint
757
+ startedAt: DateTimeISO
758
+ status: StoryState!
759
+ storyLink: String
760
+ tags: [String!]!
761
+ taskProgressPercentage: Int!
762
+ tasks: [Task!]!
763
+ title: String!
764
+ totalTasks: Int!
765
+ updatedAt: DateTimeISO!
766
+ updatedBy: String
767
+ workspaceId: String
768
+ }
769
+
770
+ enum StoryState {
771
+ BLOCKED
772
+ COMPLETE
773
+ IMPLEMENTATION
774
+ PENDING
775
+ REVIEW
776
+ }
777
+
778
+ type SystemHealthMetrics {
779
+ avgResponseTime: Float!
780
+ cpuUsage: Float!
781
+ dbConnectionPoolUsage: Float!
782
+ errorRate: Float!
783
+ memoryUsageMB: Int!
784
+ requestsPerMinute: Int!
785
+ }
786
+
787
+ type SystemInfo {
788
+ buildNumber: String!
789
+ databaseSize: String!
790
+ databaseVersion: String!
791
+ environment: String!
792
+ lastDeployment: DateTimeISO!
793
+ nodeVersion: String!
794
+ redisKeyCount: Int!
795
+ redisMemoryUsage: String!
796
+ redisVersion: String!
797
+ uptime: Int!
798
+ version: String!
799
+ }
800
+
801
+ type Task {
802
+ actualHours: Int
803
+ actualTime: Int
804
+ affectedWorkspaces: [String!]!
805
+ areas: [String!]!
806
+ assignedTo: String
807
+ assignedToUser: User
808
+ attachments: [Attachment!]!
809
+ canBeClaimed: Boolean!
810
+ claimedAt: DateTimeISO
811
+ comments: [Comment!]!
812
+ completedAt: DateTimeISO
813
+ createdAt: DateTimeISO!
814
+ createdBy: String
815
+ currentSessionDuration: Int!
816
+ currentSessionStart: DateTimeISO
817
+ deadline: DateTimeISO
818
+ dependencies: [Task!]
819
+ dependsOn: [Task!]
820
+ description: String
821
+ dueDate: DateTimeISO
822
+ estimate: Int
823
+ estimatedHours: Int
824
+ estimatedTime: Int
825
+ hasBlockingDependencies: Boolean!
826
+ id: ID!
827
+ implementationDuration: Int
828
+ implementationSummary: String
829
+ isAsk: Boolean!
830
+ isAssigned: Boolean!
831
+ isBlocked: Boolean!
832
+ isComplete: Boolean!
833
+ isFollowup: Boolean!
834
+ isInProgress: Boolean!
835
+ isPending: Boolean!
836
+ isPlanned: Boolean!
837
+ isTimerRunning: Boolean!
838
+ keyFiles: [String!]
839
+ orderIndex: Int
840
+ organization: Organization!
841
+ priority: PriorityLevel!
842
+ startedAt: DateTimeISO
843
+ state: TaskState!
844
+ status: TaskState!
845
+ story: Story!
846
+ targetFilePaths: [String!]!
847
+ targetService: String
848
+ title: String!
849
+ totalTimeIncludingCurrent: Int!
850
+ totalTrackedTime: Int!
851
+ type: TaskType!
852
+ updatedAt: DateTimeISO!
853
+ updatedBy: String
854
+ workspaceId: String
855
+ }
856
+
857
+ enum TaskState {
858
+ BLOCKED
859
+ COMPLETE
860
+ IMPLEMENTATION
861
+ PENDING
862
+ }
863
+
864
+ enum TaskType {
865
+ ASK
866
+ FOLLOWUP
867
+ PLANNED
868
+ }
869
+
870
+ type Team {
871
+ createdAt: DateTimeISO!
872
+ createdBy: String
873
+ description: String
874
+ id: ID!
875
+ isActive: Boolean!
876
+ members: [TeamMember!]!
877
+ name: String!
878
+ settings: JSONObject
879
+ updatedAt: DateTimeISO!
880
+ updatedBy: String
881
+ }
882
+
883
+ type TeamMember {
884
+ createdAt: DateTimeISO!
885
+ createdBy: String
886
+ id: ID!
887
+ joinedAt: DateTimeISO!
888
+ role: Role!
889
+ status: String!
890
+ team: Team!
891
+ updatedAt: DateTimeISO!
892
+ updatedBy: String
893
+ user: User!
894
+ }
895
+
896
+ input UpdateEarlyAccessRegistrationInput {
897
+ companyName: String
898
+ contactName: String
899
+ notes: String
900
+ status: String
901
+ }
902
+
903
+ input UpdateOrganizationInput {
904
+ description: String
905
+ name: String
906
+ settings: JSONObject
907
+ }
908
+
909
+ input UpdateSubscriptionInput {
910
+ cancelAtPeriodEnd: Boolean
911
+ planId: String
912
+ trialEnd: DateTimeISO
913
+ }
914
+
915
+ input UpdateUserInput {
916
+ email: String
917
+ firstName: String
918
+ lastName: String
919
+ role: UserRole
920
+ status: UserStatus
921
+ }
922
+
923
+ type User {
924
+ aiWorkers: [AIWorker!]!
925
+ avatarUrl: String
926
+ canAccessAudits: Boolean!
927
+ canAccessInternal: Boolean!
928
+ canManageBilling: Boolean!
929
+ canSupportOrganizations: Boolean!
930
+ createdAt: DateTimeISO!
931
+ createdBy: String
932
+ displayName: String!
933
+ email: String!
934
+ firstName: String
935
+ fullName: String!
936
+ id: ID!
937
+ isActive: Boolean!
938
+ isAdmin: Boolean!
939
+ lastLoginAt: DateTimeISO
940
+ lastName: String
941
+ organizationMemberships: [UserOrganization!]!
942
+ platformRoles: [UserPlatformRole!]!
943
+ role: UserRole!
944
+ status: UserStatus!
945
+ timezone: String
946
+ updatedAt: DateTimeISO!
947
+ updatedBy: String
948
+ }
949
+
950
+ type UserActivityData {
951
+ dailyActiveUsers: Int!
952
+ date: String!
953
+ loginCount: Int!
954
+ newUsers: Int!
955
+ }
956
+
957
+ type UserOrganization {
958
+ createdAt: DateTimeISO!
959
+ createdBy: String
960
+ id: ID!
961
+ invitationToken: String
962
+ invitedAt: DateTimeISO
963
+ invitedBy: String
964
+ joinedAt: DateTimeISO
965
+ lastAccessedAt: DateTimeISO
966
+ organization: Organization!
967
+ role: OrganizationRole!
968
+ status: UserOrganizationStatus!
969
+ updatedAt: DateTimeISO!
970
+ updatedBy: String
971
+ user: User!
972
+ }
973
+
974
+ input UserOrganizationMembershipInput {
975
+ organizationId: String!
976
+ role: OrganizationRole!
977
+ userId: String!
978
+ }
979
+
980
+ """Status of user membership in an organization"""
981
+ enum UserOrganizationStatus {
982
+ ACTIVE
983
+ INVITED
984
+ LEFT
985
+ SUSPENDED
986
+ }
987
+
988
+ type UserPlatformRole {
989
+ createdAt: DateTimeISO!
990
+ createdBy: String
991
+ expiresAt: DateTimeISO
992
+ grantedAt: DateTimeISO
993
+ grantedBy: User
994
+ id: ID!
995
+ reason: String
996
+ role: PlatformRole!
997
+ updatedAt: DateTimeISO!
998
+ updatedBy: String
999
+ user: User!
1000
+ }
1001
+
1002
+ enum UserRole {
1003
+ ADMIN
1004
+ PRODUCT
1005
+ VIEW
1006
+ WORKER
1007
+ }
1008
+
1009
+ input UserSearchInput {
1010
+ email: String
1011
+ organizationId: String
1012
+ query: String
1013
+ role: UserRole
1014
+ status: UserStatus
1015
+ }
1016
+
1017
+ enum UserStatus {
1018
+ ACTIVE
1019
+ DISABLED
1020
+ }
1021
+
1022
+ type UserWithOrganizations {
1023
+ canAccessAudits: Boolean!
1024
+ canAccessInternal: Boolean!
1025
+ canManageBilling: Boolean!
1026
+ canSupportOrganizations: Boolean!
1027
+ createdAt: DateTimeISO!
1028
+ displayName: String!
1029
+ email: String!
1030
+ firstName: String
1031
+ fullName: String!
1032
+ id: String!
1033
+ lastLoginAt: DateTimeISO
1034
+ lastName: String
1035
+ organizationMemberships: [UserOrganization!]!
1036
+ platformRoles: [UserPlatformRole!]!
1037
+ projectCount: Int!
1038
+ role: UserRole!
1039
+ status: UserStatus!
1040
+ storyCount: Int!
1041
+ taskCount: Int!
1042
+ updatedAt: DateTimeISO!
1043
+ }
1044
+
1045
+ enum WorkerScope {
1046
+ ORGANIZATION
1047
+ PROJECT
1048
+ TEAM
1049
+ USER
1050
+ }
1051
+
1052
+ type Workspace {
1053
+ config: JSONObject
1054
+ createdAt: DateTimeISO!
1055
+ createdBy: String
1056
+ description: String
1057
+ errors: [String!]!
1058
+ id: ID!
1059
+ isActive: Boolean!
1060
+ name: String!
1061
+ path: String!
1062
+ pattern: String!
1063
+ projects: [Project!]!
1064
+ services: [WorkspaceService!]!
1065
+ updatedAt: DateTimeISO!
1066
+ updatedBy: String
1067
+ workspaceId: String!
1068
+ }
1069
+
1070
+ type WorkspaceService {
1071
+ createdAt: DateTimeISO!
1072
+ createdBy: String
1073
+ description: String
1074
+ healthCheckUrl: String
1075
+ id: ID!
1076
+ isActive: Boolean!
1077
+ name: String!
1078
+ path: String
1079
+ port: Int
1080
+ repositoryUrl: String
1081
+ serviceId: String!
1082
+ technology: ServiceTechnology!
1083
+ updatedAt: DateTimeISO!
1084
+ updatedBy: String
1085
+ }