@hyperdrive.bot/gut 0.1.8 โ 0.1.10
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 +1048 -1
- package/dist/base-command.d.ts +22 -0
- package/dist/base-command.js +99 -0
- package/dist/commands/add.d.ts +14 -0
- package/dist/commands/add.js +70 -0
- package/dist/commands/affected.d.ts +23 -0
- package/dist/commands/affected.js +323 -0
- package/dist/commands/audit.d.ts +33 -0
- package/dist/commands/audit.js +594 -0
- package/dist/commands/back.d.ts +6 -0
- package/dist/commands/back.js +29 -0
- package/dist/commands/checkout.d.ts +14 -0
- package/dist/commands/checkout.js +124 -0
- package/dist/commands/commit.d.ts +11 -0
- package/dist/commands/commit.js +107 -0
- package/dist/commands/context.d.ts +6 -0
- package/dist/commands/context.js +32 -0
- package/dist/commands/contexts.d.ts +7 -0
- package/dist/commands/contexts.js +88 -0
- package/dist/commands/deps.d.ts +10 -0
- package/dist/commands/deps.js +100 -0
- package/dist/commands/entity/add.d.ts +16 -0
- package/dist/commands/entity/add.js +103 -0
- package/dist/commands/entity/clone-all.d.ts +18 -0
- package/dist/commands/entity/clone-all.js +166 -0
- package/dist/commands/entity/clone.d.ts +17 -0
- package/dist/commands/entity/clone.js +132 -0
- package/dist/commands/entity/list.d.ts +11 -0
- package/dist/commands/entity/list.js +80 -0
- package/dist/commands/entity/remove.d.ts +12 -0
- package/dist/commands/entity/remove.js +54 -0
- package/dist/commands/extract.d.ts +35 -0
- package/dist/commands/extract.js +483 -0
- package/dist/commands/focus.d.ts +19 -0
- package/dist/commands/focus.js +137 -0
- package/dist/commands/graph.d.ts +18 -0
- package/dist/commands/graph.js +273 -0
- package/dist/commands/init.d.ts +11 -0
- package/dist/commands/init.js +75 -0
- package/dist/commands/insights.d.ts +21 -0
- package/dist/commands/insights.js +465 -0
- package/dist/commands/patterns.d.ts +40 -0
- package/dist/commands/patterns.js +405 -0
- package/dist/commands/pull.d.ts +11 -0
- package/dist/commands/pull.js +121 -0
- package/dist/commands/push.d.ts +11 -0
- package/dist/commands/push.js +97 -0
- package/dist/commands/quick-setup.d.ts +20 -0
- package/dist/commands/quick-setup.js +417 -0
- package/dist/commands/recent.d.ts +9 -0
- package/dist/commands/recent.js +51 -0
- package/dist/commands/related.d.ts +23 -0
- package/dist/commands/related.js +255 -0
- package/dist/commands/repos.d.ts +17 -0
- package/dist/commands/repos.js +184 -0
- package/dist/commands/stack.d.ts +10 -0
- package/dist/commands/stack.js +78 -0
- package/dist/commands/status.d.ts +13 -0
- package/dist/commands/status.js +193 -0
- package/dist/commands/sync.d.ts +11 -0
- package/dist/commands/sync.js +139 -0
- package/dist/commands/ticket/focus.d.ts +20 -0
- package/dist/commands/ticket/focus.js +217 -0
- package/dist/commands/ticket/get.d.ts +15 -0
- package/dist/commands/ticket/get.js +168 -0
- package/dist/commands/ticket/hint.d.ts +16 -0
- package/dist/commands/ticket/hint.js +147 -0
- package/dist/commands/ticket/index.d.ts +10 -0
- package/dist/commands/ticket/index.js +60 -0
- package/dist/commands/ticket/list.d.ts +13 -0
- package/dist/commands/ticket/list.js +120 -0
- package/dist/commands/ticket/sync.d.ts +14 -0
- package/dist/commands/ticket/sync.js +85 -0
- package/dist/commands/ticket/update.d.ts +17 -0
- package/dist/commands/ticket/update.js +142 -0
- package/dist/commands/unfocus.d.ts +6 -0
- package/dist/commands/unfocus.js +19 -0
- package/dist/commands/used-by.d.ts +13 -0
- package/dist/commands/used-by.js +110 -0
- package/dist/commands/workspace.d.ts +22 -0
- package/dist/commands/workspace.js +372 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +16 -0
- package/dist/models/entity.model.d.ts +234 -0
- package/dist/models/entity.model.js +1 -0
- package/dist/models/ticket.model.d.ts +117 -0
- package/dist/models/ticket.model.js +43 -0
- package/dist/services/auth.service.d.ts +15 -0
- package/dist/services/auth.service.js +26 -0
- package/dist/services/config.service.d.ts +34 -0
- package/dist/services/config.service.js +234 -0
- package/dist/services/entity.service.d.ts +20 -0
- package/dist/services/entity.service.js +127 -0
- package/dist/services/focus.service.d.ts +71 -0
- package/dist/services/focus.service.js +614 -0
- package/dist/services/git.service.d.ts +39 -0
- package/dist/services/git.service.js +188 -0
- package/dist/services/gut-api.service.d.ts +53 -0
- package/dist/services/gut-api.service.js +99 -0
- package/dist/services/ticket.service.d.ts +84 -0
- package/dist/services/ticket.service.js +207 -0
- package/dist/utils/display.d.ts +26 -0
- package/dist/utils/display.js +145 -0
- package/dist/utils/filesystem.d.ts +32 -0
- package/dist/utils/filesystem.js +198 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.js +14 -0
- package/dist/utils/validation.d.ts +22 -0
- package/dist/utils/validation.js +192 -0
- package/oclif.manifest.json +2006 -0
- package/package.json +11 -2
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { BaseCommand } from './base-command.js';
|
|
2
|
+
export type { AIContext, Config, Entity, EntityMetadata, EntityType, Focus, FocusContext, FocusMode, RepoStatus, } from './models/entity.model.js';
|
|
3
|
+
export { ConfigService } from './services/config.service.js';
|
|
4
|
+
export { EntityService } from './services/entity.service.js';
|
|
5
|
+
export { FocusService } from './services/focus.service.js';
|
|
6
|
+
export { GitService } from './services/git.service.js';
|
|
7
|
+
export * from './utils/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* gut - Git Unified Tooling
|
|
10
|
+
*
|
|
11
|
+
* ESM-compatible entry point for the gut CLI.
|
|
12
|
+
* Provides the oclif run function for CLI execution.
|
|
13
|
+
*/
|
|
14
|
+
export { run } from '@oclif/core';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Re-export core components for programmatic usage
|
|
2
|
+
export { BaseCommand } from './base-command.js';
|
|
3
|
+
// Re-export services for advanced integrations
|
|
4
|
+
export { ConfigService } from './services/config.service.js';
|
|
5
|
+
export { EntityService } from './services/entity.service.js';
|
|
6
|
+
export { FocusService } from './services/focus.service.js';
|
|
7
|
+
export { GitService } from './services/git.service.js';
|
|
8
|
+
// Re-export utilities
|
|
9
|
+
export * from './utils/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* gut - Git Unified Tooling
|
|
12
|
+
*
|
|
13
|
+
* ESM-compatible entry point for the gut CLI.
|
|
14
|
+
* Provides the oclif run function for CLI execution.
|
|
15
|
+
*/
|
|
16
|
+
export { run } from '@oclif/core';
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
export declare const ENTITY_TYPES: readonly ["client", "company", "delivery", "initiative", "module", "prospect", "service", "system", "tool"];
|
|
2
|
+
export type EntityType = typeof ENTITY_TYPES[number];
|
|
3
|
+
export type FocusMode = 'audit' | 'debug' | 'delivery' | 'proposal' | 'research' | 'strategy';
|
|
4
|
+
export interface Entity {
|
|
5
|
+
description?: string;
|
|
6
|
+
metadata?: EntityMetadata;
|
|
7
|
+
name: string;
|
|
8
|
+
path: string;
|
|
9
|
+
remote?: string;
|
|
10
|
+
repo?: string;
|
|
11
|
+
repository?: string;
|
|
12
|
+
type: EntityType;
|
|
13
|
+
}
|
|
14
|
+
export interface AIContextMetadata {
|
|
15
|
+
decision_authority?: string;
|
|
16
|
+
knowledge_scope?: string;
|
|
17
|
+
persona?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface BusinessMetadata {
|
|
20
|
+
contract_value?: string;
|
|
21
|
+
primary_contact?: string;
|
|
22
|
+
priority?: 'high' | 'low' | 'medium';
|
|
23
|
+
status?: string;
|
|
24
|
+
team_size?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface RelationshipsMetadata {
|
|
27
|
+
dependent_systems?: string[];
|
|
28
|
+
related_initiatives?: string[];
|
|
29
|
+
similar_entities?: string[];
|
|
30
|
+
}
|
|
31
|
+
export interface WorkingPatternsMetadata {
|
|
32
|
+
common_paired_entities?: string[];
|
|
33
|
+
strategic_review_frequency?: string;
|
|
34
|
+
typical_focus_duration?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface EntityMetadata {
|
|
37
|
+
ai_context?: AIContextMetadata;
|
|
38
|
+
business?: BusinessMetadata;
|
|
39
|
+
relationships?: RelationshipsMetadata;
|
|
40
|
+
working_patterns?: WorkingPatternsMetadata;
|
|
41
|
+
}
|
|
42
|
+
export interface Focus {
|
|
43
|
+
duration?: string;
|
|
44
|
+
entities?: Entity[];
|
|
45
|
+
mode?: FocusMode;
|
|
46
|
+
name: string;
|
|
47
|
+
path: string;
|
|
48
|
+
remember?: boolean;
|
|
49
|
+
timestamp?: number;
|
|
50
|
+
type: string;
|
|
51
|
+
}
|
|
52
|
+
export interface AdaptiveSuggestions {
|
|
53
|
+
contextSpecificTips: string[];
|
|
54
|
+
dayBasedSuggestions: string[];
|
|
55
|
+
productivityOptimizations: string[];
|
|
56
|
+
timeBasedSuggestions: string[];
|
|
57
|
+
workflowSuggestions: string[];
|
|
58
|
+
}
|
|
59
|
+
export interface ContextIntelligence {
|
|
60
|
+
complexityLevel: string;
|
|
61
|
+
contextType: string;
|
|
62
|
+
estimatedDuration: string;
|
|
63
|
+
interruptionLikelihood: string;
|
|
64
|
+
recommendedApproach: string[];
|
|
65
|
+
successProbability: string;
|
|
66
|
+
}
|
|
67
|
+
export interface CollaborationContext {
|
|
68
|
+
collaborationPatterns: CollaborationPatterns;
|
|
69
|
+
communicationPreferences: CommunicationPreferences;
|
|
70
|
+
coordinationNeeds: CoordinationNeeds;
|
|
71
|
+
sharedResources: SharedResources;
|
|
72
|
+
teamMembers: TeamMembersInfo;
|
|
73
|
+
}
|
|
74
|
+
export interface LearningInsights {
|
|
75
|
+
commonPitfalls: CommonPitfalls;
|
|
76
|
+
historicalPatterns: HistoricalPatterns;
|
|
77
|
+
learningOpportunities: LearningOpportunities;
|
|
78
|
+
similarEntityLessons: SimilarEntityLessons;
|
|
79
|
+
successFactors: SuccessFactors;
|
|
80
|
+
}
|
|
81
|
+
export interface PerformanceContext {
|
|
82
|
+
benchmarks: Benchmarks;
|
|
83
|
+
bottlenecks: Bottlenecks;
|
|
84
|
+
currentVelocity: VelocityInfo;
|
|
85
|
+
optimizationOpportunities: OptimizationOpportunities;
|
|
86
|
+
performanceTrends: PerformanceTrends;
|
|
87
|
+
}
|
|
88
|
+
export interface AvailableData {
|
|
89
|
+
businessContext: BusinessContext;
|
|
90
|
+
entityMetadata: EntityMetadata | Record<string, never>;
|
|
91
|
+
performanceMetrics: PerformanceMetrics;
|
|
92
|
+
recentActivity: RecentActivity;
|
|
93
|
+
recentPatterns: RecentPatterns;
|
|
94
|
+
relatedEntities: RelatedEntityInfo[];
|
|
95
|
+
teamMembers: TeamMembers;
|
|
96
|
+
technicalContext: TechnicalContext;
|
|
97
|
+
}
|
|
98
|
+
export interface AIContext {
|
|
99
|
+
adaptiveSuggestions: AdaptiveSuggestions;
|
|
100
|
+
availableData: AvailableData;
|
|
101
|
+
collaborationContext: CollaborationContext;
|
|
102
|
+
contextIntelligence: ContextIntelligence;
|
|
103
|
+
knowledgeScope: string[];
|
|
104
|
+
learningInsights: LearningInsights;
|
|
105
|
+
performanceContext: PerformanceContext;
|
|
106
|
+
persona: string;
|
|
107
|
+
restrictedKnowledge: string[];
|
|
108
|
+
suggestedActions: string[];
|
|
109
|
+
}
|
|
110
|
+
export interface TeamMembersInfo {
|
|
111
|
+
active: string[];
|
|
112
|
+
available: string[];
|
|
113
|
+
}
|
|
114
|
+
export interface Benchmarks {
|
|
115
|
+
benchmarks: {
|
|
116
|
+
quality: string;
|
|
117
|
+
satisfaction: string;
|
|
118
|
+
velocity: string;
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
export interface BusinessContext {
|
|
122
|
+
businessImpact: string;
|
|
123
|
+
clientSatisfaction: string;
|
|
124
|
+
contractValue?: string;
|
|
125
|
+
priority: string;
|
|
126
|
+
status: string;
|
|
127
|
+
teamSize?: number;
|
|
128
|
+
}
|
|
129
|
+
export interface CollaborationPatterns {
|
|
130
|
+
patterns: string[];
|
|
131
|
+
}
|
|
132
|
+
export interface CommonPitfalls {
|
|
133
|
+
pitfalls: string[];
|
|
134
|
+
}
|
|
135
|
+
export interface CommunicationPreferences {
|
|
136
|
+
preferences: string[];
|
|
137
|
+
}
|
|
138
|
+
export interface CoordinationNeeds {
|
|
139
|
+
needs: string[];
|
|
140
|
+
}
|
|
141
|
+
export interface VelocityInfo {
|
|
142
|
+
trend: string;
|
|
143
|
+
velocity: string;
|
|
144
|
+
}
|
|
145
|
+
export interface HistoricalPatterns {
|
|
146
|
+
commonIssues: string[];
|
|
147
|
+
successRate: string;
|
|
148
|
+
}
|
|
149
|
+
export interface LearningOpportunities {
|
|
150
|
+
opportunities: string[];
|
|
151
|
+
}
|
|
152
|
+
export interface OptimizationOpportunities {
|
|
153
|
+
opportunities: string[];
|
|
154
|
+
}
|
|
155
|
+
export interface PerformanceMetrics {
|
|
156
|
+
deploymentFrequency: string;
|
|
157
|
+
qualityScore: string;
|
|
158
|
+
technicalDebt: string;
|
|
159
|
+
testCoverage: string;
|
|
160
|
+
velocity: string;
|
|
161
|
+
}
|
|
162
|
+
export interface PerformanceTrends {
|
|
163
|
+
trends: string[];
|
|
164
|
+
}
|
|
165
|
+
export interface RecentActivity {
|
|
166
|
+
activeBranches: string[];
|
|
167
|
+
commitsLastWeek: number;
|
|
168
|
+
filesChanged: number;
|
|
169
|
+
lastCommit: string;
|
|
170
|
+
}
|
|
171
|
+
export interface RecentPatterns {
|
|
172
|
+
collaborationPatterns: string[];
|
|
173
|
+
commonCommitPatterns: string[];
|
|
174
|
+
frequentFiles: string[];
|
|
175
|
+
workRhythms: string[];
|
|
176
|
+
}
|
|
177
|
+
export interface RelatedEntityInfo {
|
|
178
|
+
name: string;
|
|
179
|
+
relationship: string;
|
|
180
|
+
type: EntityType;
|
|
181
|
+
}
|
|
182
|
+
export interface SharedResources {
|
|
183
|
+
resources: string[];
|
|
184
|
+
}
|
|
185
|
+
export interface SimilarEntityLessons {
|
|
186
|
+
lessons: string[];
|
|
187
|
+
}
|
|
188
|
+
export interface SuccessFactors {
|
|
189
|
+
factors: string[];
|
|
190
|
+
}
|
|
191
|
+
export interface TeamMembers {
|
|
192
|
+
activeContributors: string[];
|
|
193
|
+
expertiseAreas: Record<string, string[]>;
|
|
194
|
+
recentCollaborators: string[];
|
|
195
|
+
}
|
|
196
|
+
export interface TechnicalContext {
|
|
197
|
+
architecturePatterns: string[];
|
|
198
|
+
deploymentStatus: string;
|
|
199
|
+
performanceStatus: string;
|
|
200
|
+
securityStatus: string;
|
|
201
|
+
techStack: string[];
|
|
202
|
+
}
|
|
203
|
+
export interface Bottlenecks {
|
|
204
|
+
bottlenecks: string[];
|
|
205
|
+
}
|
|
206
|
+
export interface FocusContext {
|
|
207
|
+
aiContext?: AIContext | Record<string, never>;
|
|
208
|
+
currentFocus?: Focus;
|
|
209
|
+
duration?: string;
|
|
210
|
+
entityName?: string;
|
|
211
|
+
entityType?: EntityType;
|
|
212
|
+
mode?: FocusMode;
|
|
213
|
+
startTime?: string;
|
|
214
|
+
}
|
|
215
|
+
export interface HistoryEntry {
|
|
216
|
+
entities: string[];
|
|
217
|
+
timestamp: number;
|
|
218
|
+
}
|
|
219
|
+
export interface Config {
|
|
220
|
+
defaultRemote?: string;
|
|
221
|
+
entities: Entity[];
|
|
222
|
+
initialized: boolean;
|
|
223
|
+
workspace?: string;
|
|
224
|
+
}
|
|
225
|
+
export interface RepoStatus {
|
|
226
|
+
ahead: number;
|
|
227
|
+
behind: number;
|
|
228
|
+
branch: string;
|
|
229
|
+
changes: string[];
|
|
230
|
+
entity: string;
|
|
231
|
+
hasChanges: boolean;
|
|
232
|
+
path: string;
|
|
233
|
+
untracked: string[];
|
|
234
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const ENTITY_TYPES = ['client', 'company', 'delivery', 'initiative', 'module', 'prospect', 'service', 'system', 'tool'];
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ticket Model Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for gut tickets from the backend API.
|
|
5
|
+
* These mirror the types in packages/serverless/api/src/services/gut/types.ts
|
|
6
|
+
*/
|
|
7
|
+
export type TicketSourceType = 'jira' | 'github' | 'linear' | 'custom';
|
|
8
|
+
export type GutTicketStatus = 'enriching' | 'needs_clarity' | 'ready' | 'in_progress' | 'testing' | 'in_review' | 'blocked' | 'ready_to_merge' | 'deploying' | 'validating' | 'done';
|
|
9
|
+
export type GutTicketPhase = 'enrichment' | 'planning' | 'implementation' | 'testing' | 'review' | 'merge' | 'deployment' | 'validation';
|
|
10
|
+
export type TicketType = 'bug' | 'feature' | 'task' | 'spike' | 'other';
|
|
11
|
+
export type TicketPriority = 'critical' | 'high' | 'medium' | 'low';
|
|
12
|
+
/**
|
|
13
|
+
* Gut ticket from the API
|
|
14
|
+
*/
|
|
15
|
+
export interface GutTicket {
|
|
16
|
+
ticketId: string;
|
|
17
|
+
tenantId: string;
|
|
18
|
+
source: {
|
|
19
|
+
type: TicketSourceType;
|
|
20
|
+
externalId: string;
|
|
21
|
+
externalUrl: string;
|
|
22
|
+
projectKey?: string;
|
|
23
|
+
};
|
|
24
|
+
summary: string;
|
|
25
|
+
description: string;
|
|
26
|
+
type: TicketType;
|
|
27
|
+
priority: TicketPriority;
|
|
28
|
+
labels: string[];
|
|
29
|
+
status: GutTicketStatus;
|
|
30
|
+
phase: GutTicketPhase;
|
|
31
|
+
confidence: number;
|
|
32
|
+
requiredEntities: string[];
|
|
33
|
+
relatedEntities?: string[];
|
|
34
|
+
affectedFiles?: string[];
|
|
35
|
+
branch: string;
|
|
36
|
+
manifestS3Key: string;
|
|
37
|
+
evidenceS3Prefix: string;
|
|
38
|
+
handoff?: {
|
|
39
|
+
required: boolean;
|
|
40
|
+
triggeredAt?: string;
|
|
41
|
+
reason?: string;
|
|
42
|
+
confidenceAtTrigger?: number;
|
|
43
|
+
attemptedFixes?: Array<{
|
|
44
|
+
attempt: number;
|
|
45
|
+
action: string;
|
|
46
|
+
result: string;
|
|
47
|
+
}>;
|
|
48
|
+
suggestedNextSteps?: string[];
|
|
49
|
+
humanHints?: Array<{
|
|
50
|
+
hint: string;
|
|
51
|
+
givenAt: string;
|
|
52
|
+
givenBy: string;
|
|
53
|
+
result?: string;
|
|
54
|
+
}>;
|
|
55
|
+
};
|
|
56
|
+
createdAt: string;
|
|
57
|
+
updatedAt: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Focus ticket response from the API
|
|
61
|
+
*/
|
|
62
|
+
export interface FocusTicketResponse {
|
|
63
|
+
ticketId: string;
|
|
64
|
+
manifestUrl: string;
|
|
65
|
+
entities: string[];
|
|
66
|
+
branch: string;
|
|
67
|
+
status: GutTicketStatus;
|
|
68
|
+
phase: GutTicketPhase;
|
|
69
|
+
confidence: number;
|
|
70
|
+
acceptanceCriteria?: string[];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Hint response from the API
|
|
74
|
+
*/
|
|
75
|
+
export interface HintResponse {
|
|
76
|
+
ticketId: string;
|
|
77
|
+
hint: string;
|
|
78
|
+
givenBy: string;
|
|
79
|
+
givenAt: string;
|
|
80
|
+
status: GutTicketStatus;
|
|
81
|
+
retryTriggered: boolean;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Sync response from the API
|
|
85
|
+
*/
|
|
86
|
+
export interface SyncResponse {
|
|
87
|
+
ticketId: string;
|
|
88
|
+
synced: boolean;
|
|
89
|
+
source: {
|
|
90
|
+
type: string;
|
|
91
|
+
externalUrl: string;
|
|
92
|
+
};
|
|
93
|
+
actions: string[];
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* List tickets response from the API
|
|
97
|
+
*/
|
|
98
|
+
export interface ListTicketsResponse {
|
|
99
|
+
tickets: GutTicket[];
|
|
100
|
+
nextToken?: string;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Status emoji mapping for display
|
|
104
|
+
*/
|
|
105
|
+
export declare const STATUS_EMOJI: Record<GutTicketStatus, string>;
|
|
106
|
+
/**
|
|
107
|
+
* Priority emoji mapping for display
|
|
108
|
+
*/
|
|
109
|
+
export declare const PRIORITY_EMOJI: Record<TicketPriority, string>;
|
|
110
|
+
/**
|
|
111
|
+
* Get status emoji
|
|
112
|
+
*/
|
|
113
|
+
export declare const getStatusEmoji: (status: GutTicketStatus) => string;
|
|
114
|
+
/**
|
|
115
|
+
* Get priority emoji
|
|
116
|
+
*/
|
|
117
|
+
export declare const getPriorityEmoji: (priority: TicketPriority) => string;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ticket Model Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for gut tickets from the backend API.
|
|
5
|
+
* These mirror the types in packages/serverless/api/src/services/gut/types.ts
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Status emoji mapping for display
|
|
9
|
+
*/
|
|
10
|
+
export const STATUS_EMOJI = {
|
|
11
|
+
enriching: '๐',
|
|
12
|
+
needs_clarity: 'โ',
|
|
13
|
+
ready: 'โ
',
|
|
14
|
+
in_progress: '๐ง',
|
|
15
|
+
testing: '๐งช',
|
|
16
|
+
in_review: '๐',
|
|
17
|
+
blocked: '๐ซ',
|
|
18
|
+
ready_to_merge: '๐',
|
|
19
|
+
deploying: '๐',
|
|
20
|
+
validating: 'โ๏ธ',
|
|
21
|
+
done: 'โ
'
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Priority emoji mapping for display
|
|
25
|
+
*/
|
|
26
|
+
export const PRIORITY_EMOJI = {
|
|
27
|
+
critical: '๐ด',
|
|
28
|
+
high: '๐ ',
|
|
29
|
+
medium: '๐ก',
|
|
30
|
+
low: '๐ข'
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Get status emoji
|
|
34
|
+
*/
|
|
35
|
+
export const getStatusEmoji = (status) => {
|
|
36
|
+
return STATUS_EMOJI[status] || '๐';
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Get priority emoji
|
|
40
|
+
*/
|
|
41
|
+
export const getPriorityEmoji = (priority) => {
|
|
42
|
+
return PRIORITY_EMOJI[priority] || 'โช';
|
|
43
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gut Authentication Service
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from @devsquad/cli-auth with gut-specific configuration.
|
|
5
|
+
*/
|
|
6
|
+
import { AuthService as BaseAuthService, type AuthServiceConfig, type AWSCredentials, type CognitoConfig, type CognitoTokens, type StoredCredentials } from '@hyperdrive.bot/cli-auth';
|
|
7
|
+
export type { AWSCredentials, CognitoConfig, CognitoTokens, StoredCredentials };
|
|
8
|
+
declare const GUT_AUTH_CONFIG: AuthServiceConfig;
|
|
9
|
+
/**
|
|
10
|
+
* Gut-specific AuthService
|
|
11
|
+
*/
|
|
12
|
+
export declare class AuthService extends BaseAuthService {
|
|
13
|
+
constructor(domain?: string);
|
|
14
|
+
}
|
|
15
|
+
export { GUT_AUTH_CONFIG };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gut Authentication Service
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from @devsquad/cli-auth with gut-specific configuration.
|
|
5
|
+
*/
|
|
6
|
+
import { AuthService as BaseAuthService, } from '@hyperdrive.bot/cli-auth';
|
|
7
|
+
// Gut-specific configuration
|
|
8
|
+
// Note: Gut uses the same Cognito setup as hyperdrive
|
|
9
|
+
const GUT_AUTH_CONFIG = {
|
|
10
|
+
appName: 'gut',
|
|
11
|
+
defaultCognitoClientId: process.env.GUT_COGNITO_CLIENT_ID || '',
|
|
12
|
+
defaultCognitoDomain: process.env.GUT_COGNITO_DOMAIN || '',
|
|
13
|
+
defaultIdentityPoolId: process.env.GUT_COGNITO_IDENTITY_POOL_ID || '',
|
|
14
|
+
defaultUserPoolId: process.env.GUT_COGNITO_USER_POOL_ID || '',
|
|
15
|
+
defaultRegion: process.env.GUT_AWS_REGION || 'us-east-1',
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Gut-specific AuthService
|
|
19
|
+
*/
|
|
20
|
+
export class AuthService extends BaseAuthService {
|
|
21
|
+
constructor(domain) {
|
|
22
|
+
super(GUT_AUTH_CONFIG, domain);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// Export config for use by GutApiClient
|
|
26
|
+
export { GUT_AUTH_CONFIG };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Config, Focus, FocusContext, HistoryEntry } from '../models/entity.model.js';
|
|
2
|
+
export declare class ConfigService {
|
|
3
|
+
private config;
|
|
4
|
+
private readonly configFile;
|
|
5
|
+
private focus;
|
|
6
|
+
private readonly focusContextFile;
|
|
7
|
+
private readonly focusDir;
|
|
8
|
+
private readonly focusFile;
|
|
9
|
+
private readonly gutDir;
|
|
10
|
+
private history;
|
|
11
|
+
private readonly historyFile;
|
|
12
|
+
private readonly workspaceRoot;
|
|
13
|
+
constructor(workspaceRoot?: string);
|
|
14
|
+
addToHistory(focus: Focus): void;
|
|
15
|
+
clearHistory(): void;
|
|
16
|
+
getConfig(): Config;
|
|
17
|
+
getFocus(): Focus | null;
|
|
18
|
+
getFocusDir(): string;
|
|
19
|
+
getGutDir(): string;
|
|
20
|
+
getHistory(): HistoryEntry[];
|
|
21
|
+
getWorkspaceRoot(): string;
|
|
22
|
+
initWorkspace(workspacePath: string): Promise<void>;
|
|
23
|
+
isInitialized(): boolean;
|
|
24
|
+
loadConfig(): Promise<Config>;
|
|
25
|
+
saveConfig(config: Config): void;
|
|
26
|
+
saveFocus(focus: Focus | null): void;
|
|
27
|
+
saveFocusContext(context: FocusContext): Promise<void>;
|
|
28
|
+
private convertToYaml;
|
|
29
|
+
private ensureDirectories;
|
|
30
|
+
private loadAll;
|
|
31
|
+
private loadConfigSync;
|
|
32
|
+
private loadFocus;
|
|
33
|
+
private loadHistory;
|
|
34
|
+
}
|