@shepai/cli 1.2.0 → 1.3.0
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 +29 -12
- package/dist/eslint.config.d.mts +3 -0
- package/dist/eslint.config.d.mts.map +1 -0
- package/dist/eslint.config.mjs +188 -0
- package/dist/src/application/ports/output/index.d.ts +8 -0
- package/dist/src/application/ports/output/index.d.ts.map +1 -0
- package/dist/src/application/ports/output/index.js +7 -0
- package/dist/src/application/ports/output/settings.repository.interface.d.ts +43 -0
- package/dist/src/application/ports/output/settings.repository.interface.d.ts.map +1 -0
- package/dist/src/application/ports/output/settings.repository.interface.js +11 -0
- package/dist/src/application/use-cases/settings/index.d.ts +9 -0
- package/dist/src/application/use-cases/settings/index.d.ts.map +1 -0
- package/dist/src/application/use-cases/settings/index.js +8 -0
- package/dist/src/application/use-cases/settings/initialize-settings.use-case.d.ts +33 -0
- package/dist/src/application/use-cases/settings/initialize-settings.use-case.d.ts.map +1 -0
- package/dist/src/application/use-cases/settings/initialize-settings.use-case.js +63 -0
- package/dist/src/application/use-cases/settings/load-settings.use-case.d.ts +33 -0
- package/dist/src/application/use-cases/settings/load-settings.use-case.d.ts.map +1 -0
- package/dist/src/application/use-cases/settings/load-settings.use-case.js +57 -0
- package/dist/src/application/use-cases/settings/update-settings.use-case.d.ts +33 -0
- package/dist/src/application/use-cases/settings/update-settings.use-case.d.ts.map +1 -0
- package/dist/src/application/use-cases/settings/update-settings.use-case.js +56 -0
- package/dist/src/domain/factories/index.d.ts +7 -0
- package/dist/src/domain/factories/index.d.ts.map +1 -0
- package/dist/src/domain/factories/index.js +6 -0
- package/dist/src/domain/factories/settings-defaults.factory.d.ts +36 -0
- package/dist/src/domain/factories/settings-defaults.factory.d.ts.map +1 -0
- package/dist/src/domain/factories/settings-defaults.factory.js +81 -0
- package/dist/src/domain/generated/output.d.ts +717 -0
- package/dist/src/domain/generated/output.d.ts.map +1 -0
- package/dist/src/domain/generated/output.js +93 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/infrastructure/di/container.d.ts +27 -0
- package/dist/src/infrastructure/di/container.d.ts.map +1 -0
- package/dist/src/infrastructure/di/container.js +53 -0
- package/dist/src/infrastructure/persistence/sqlite/connection.d.ts +39 -0
- package/dist/src/infrastructure/persistence/sqlite/connection.d.ts.map +1 -0
- package/dist/src/infrastructure/persistence/sqlite/connection.js +76 -0
- package/dist/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +50 -0
- package/dist/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -0
- package/dist/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +80 -0
- package/dist/src/infrastructure/persistence/sqlite/migrations.d.ts +31 -0
- package/dist/src/infrastructure/persistence/sqlite/migrations.d.ts.map +1 -0
- package/dist/src/infrastructure/persistence/sqlite/migrations.js +66 -0
- package/dist/src/infrastructure/repositories/sqlite-settings.repository.d.ts +40 -0
- package/dist/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -0
- package/dist/src/infrastructure/repositories/sqlite-settings.repository.js +123 -0
- package/dist/src/infrastructure/services/filesystem/shep-directory.service.d.ts +41 -0
- package/dist/src/infrastructure/services/filesystem/shep-directory.service.d.ts.map +1 -0
- package/dist/src/infrastructure/services/filesystem/shep-directory.service.js +64 -0
- package/dist/src/infrastructure/services/settings.service.d.ts +50 -0
- package/dist/src/infrastructure/services/settings.service.d.ts.map +1 -0
- package/dist/src/infrastructure/services/settings.service.js +67 -0
- package/dist/src/infrastructure/services/version.service.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/version.command.d.ts.map +1 -0
- package/dist/{presentation → src/presentation}/cli/index.d.ts +1 -1
- package/dist/src/presentation/cli/index.d.ts.map +1 -0
- package/dist/src/presentation/cli/index.js +86 -0
- package/dist/src/presentation/cli/ui/colors.d.ts.map +1 -0
- package/dist/src/presentation/cli/ui/formatters.d.ts.map +1 -0
- package/dist/src/presentation/cli/ui/index.d.ts.map +1 -0
- package/dist/src/presentation/cli/ui/messages.d.ts.map +1 -0
- package/dist/src/presentation/cli/ui/symbols.d.ts.map +1 -0
- package/dist/src/presentation/web/app/layout.d.ts +7 -0
- package/dist/src/presentation/web/app/layout.d.ts.map +1 -0
- package/dist/src/presentation/web/app/layout.js +21 -0
- package/dist/src/presentation/web/app/not-found.d.ts +2 -0
- package/dist/src/presentation/web/app/not-found.d.ts.map +1 -0
- package/dist/src/presentation/web/app/not-found.js +4 -0
- package/dist/src/presentation/web/app/page.d.ts +2 -0
- package/dist/src/presentation/web/app/page.d.ts.map +1 -0
- package/dist/src/presentation/web/app/page.js +6 -0
- package/dist/src/presentation/web/app/version/page.d.ts +2 -0
- package/dist/src/presentation/web/app/version/page.d.ts.map +1 -0
- package/dist/src/presentation/web/app/version/page.js +16 -0
- package/dist/src/presentation/web/components/features/index.d.ts +2 -0
- package/dist/src/presentation/web/components/features/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/index.js +2 -0
- package/dist/src/presentation/web/components/features/theme-toggle/index.d.ts +2 -0
- package/dist/src/presentation/web/components/features/theme-toggle/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/theme-toggle/index.js +1 -0
- package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.d.ts +2 -0
- package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.js +19 -0
- package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.stories.d.ts +8 -0
- package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.stories.js +17 -0
- package/dist/src/presentation/web/components/ui/accordion.d.ts +8 -0
- package/dist/src/presentation/web/components/ui/accordion.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/accordion.js +14 -0
- package/dist/src/presentation/web/components/ui/accordion.stories.d.ts +29 -0
- package/dist/src/presentation/web/components/ui/accordion.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/accordion.stories.js +35 -0
- package/dist/src/presentation/web/components/ui/alert.d.ts +9 -0
- package/dist/src/presentation/web/components/ui/alert.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/alert.js +22 -0
- package/dist/src/presentation/web/components/ui/alert.stories.d.ts +10 -0
- package/dist/src/presentation/web/components/ui/alert.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/alert.stories.js +30 -0
- package/dist/src/presentation/web/components/ui/badge.d.ts +10 -0
- package/dist/src/presentation/web/components/ui/badge.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/badge.js +20 -0
- package/dist/src/presentation/web/components/ui/badge.stories.d.ts +11 -0
- package/dist/src/presentation/web/components/ui/badge.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/badge.stories.js +44 -0
- package/dist/src/presentation/web/components/ui/button.d.ts +12 -0
- package/dist/src/presentation/web/components/ui/button.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/button.js +33 -0
- package/dist/src/presentation/web/components/ui/button.stories.d.ts +17 -0
- package/dist/src/presentation/web/components/ui/button.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/button.stories.js +84 -0
- package/dist/src/presentation/web/components/ui/card.d.ts +9 -0
- package/dist/src/presentation/web/components/ui/card.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/card.js +16 -0
- package/dist/src/presentation/web/components/ui/card.stories.d.ts +10 -0
- package/dist/src/presentation/web/components/ui/card.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/card.stories.js +24 -0
- package/dist/src/presentation/web/components/ui/dialog.d.ts +20 -0
- package/dist/src/presentation/web/components/ui/dialog.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/dialog.js +23 -0
- package/dist/src/presentation/web/components/ui/dialog.stories.d.ts +9 -0
- package/dist/src/presentation/web/components/ui/dialog.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/dialog.stories.js +23 -0
- package/dist/src/presentation/web/components/ui/index.d.ts +13 -0
- package/dist/src/presentation/web/components/ui/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/index.js +14 -0
- package/dist/src/presentation/web/components/ui/input.d.ts +4 -0
- package/dist/src/presentation/web/components/ui/input.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/input.js +8 -0
- package/dist/src/presentation/web/components/ui/input.stories.d.ts +13 -0
- package/dist/src/presentation/web/components/ui/input.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/input.stories.js +55 -0
- package/dist/src/presentation/web/components/ui/label.d.ts +6 -0
- package/dist/src/presentation/web/components/ui/label.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/label.js +10 -0
- package/dist/src/presentation/web/components/ui/label.stories.d.ts +9 -0
- package/dist/src/presentation/web/components/ui/label.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/label.stories.js +23 -0
- package/dist/src/presentation/web/components/ui/popover.d.ts +8 -0
- package/dist/src/presentation/web/components/ui/popover.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/popover.js +11 -0
- package/dist/src/presentation/web/components/ui/popover.stories.d.ts +10 -0
- package/dist/src/presentation/web/components/ui/popover.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/popover.stories.js +26 -0
- package/dist/src/presentation/web/components/ui/select.d.ts +14 -0
- package/dist/src/presentation/web/components/ui/select.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/select.js +26 -0
- package/dist/src/presentation/web/components/ui/select.stories.d.ts +10 -0
- package/dist/src/presentation/web/components/ui/select.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/select.stories.js +23 -0
- package/dist/src/presentation/web/components/ui/sonner.d.ts +5 -0
- package/dist/src/presentation/web/components/ui/sonner.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/sonner.js +14 -0
- package/dist/src/presentation/web/components/ui/sonner.stories.d.ts +13 -0
- package/dist/src/presentation/web/components/ui/sonner.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/sonner.stories.js +51 -0
- package/dist/src/presentation/web/components/ui/tabs.d.ts +8 -0
- package/dist/src/presentation/web/components/ui/tabs.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/tabs.js +13 -0
- package/dist/src/presentation/web/components/ui/tabs.stories.d.ts +9 -0
- package/dist/src/presentation/web/components/ui/tabs.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/tabs.stories.js +23 -0
- package/dist/src/presentation/web/eslint.config.d.mts +3 -0
- package/dist/src/presentation/web/eslint.config.d.mts.map +1 -0
- package/dist/src/presentation/web/eslint.config.mjs +15 -0
- package/dist/src/presentation/web/hooks/useTheme.d.ts +12 -0
- package/dist/src/presentation/web/hooks/useTheme.d.ts.map +1 -0
- package/dist/src/presentation/web/hooks/useTheme.js +73 -0
- package/dist/src/presentation/web/lib/utils.d.ts +11 -0
- package/dist/src/presentation/web/lib/utils.d.ts.map +1 -0
- package/dist/src/presentation/web/lib/utils.js +13 -0
- package/dist/src/presentation/web/next.config.d.ts +4 -0
- package/dist/src/presentation/web/next.config.d.ts.map +1 -0
- package/dist/src/presentation/web/next.config.js +9 -0
- package/dist/src/presentation/web/postcss.config.d.mts +4 -0
- package/dist/src/presentation/web/postcss.config.d.mts.map +1 -0
- package/dist/src/presentation/web/postcss.config.mjs +8 -0
- package/dist/src/presentation/web/types/theme.d.ts +12 -0
- package/dist/src/presentation/web/types/theme.d.ts.map +1 -0
- package/dist/src/presentation/web/types/theme.js +5 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +60 -12
- package/dist/index.d.ts.map +0 -1
- package/dist/infrastructure/services/version.service.d.ts.map +0 -1
- package/dist/presentation/cli/commands/version.command.d.ts.map +0 -1
- package/dist/presentation/cli/index.d.ts.map +0 -1
- package/dist/presentation/cli/index.js +0 -48
- package/dist/presentation/cli/ui/colors.d.ts.map +0 -1
- package/dist/presentation/cli/ui/formatters.d.ts.map +0 -1
- package/dist/presentation/cli/ui/index.d.ts.map +0 -1
- package/dist/presentation/cli/ui/messages.d.ts.map +0 -1
- package/dist/presentation/cli/ui/symbols.d.ts.map +0 -1
- /package/dist/{index.d.ts → src/index.d.ts} +0 -0
- /package/dist/{index.js → src/index.js} +0 -0
- /package/dist/{infrastructure → src/infrastructure}/services/version.service.d.ts +0 -0
- /package/dist/{infrastructure → src/infrastructure}/services/version.service.js +0 -0
- /package/dist/{presentation → src/presentation}/cli/commands/version.command.d.ts +0 -0
- /package/dist/{presentation → src/presentation}/cli/commands/version.command.js +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/colors.d.ts +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/colors.js +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/formatters.d.ts +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/formatters.js +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/index.d.ts +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/index.js +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/messages.d.ts +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/messages.js +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/symbols.d.ts +0 -0
- /package/dist/{presentation → src/presentation}/cli/ui/symbols.js +0 -0
|
@@ -0,0 +1,717 @@
|
|
|
1
|
+
export type UUID = string;
|
|
2
|
+
/**
|
|
3
|
+
* Base model providing identity and timestamp fields for all domain entities
|
|
4
|
+
*/
|
|
5
|
+
export type BaseEntity = {
|
|
6
|
+
/**
|
|
7
|
+
* Unique identifier for this entity (UUID v4 format)
|
|
8
|
+
*/
|
|
9
|
+
id: UUID;
|
|
10
|
+
/**
|
|
11
|
+
* Timestamp when this entity was created (read-only, set by system)
|
|
12
|
+
*/
|
|
13
|
+
createdAt: any;
|
|
14
|
+
/**
|
|
15
|
+
* Timestamp when this entity was last updated (read-only, set by system)
|
|
16
|
+
*/
|
|
17
|
+
updatedAt: any;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Entity that supports soft deletion with a deletedAt timestamp
|
|
21
|
+
*/
|
|
22
|
+
export type SoftDeletableEntity = BaseEntity & {
|
|
23
|
+
/**
|
|
24
|
+
* Timestamp when this entity was soft-deleted (null if not deleted)
|
|
25
|
+
*/
|
|
26
|
+
deletedAt?: any;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Entity with audit trail tracking who created and modified it
|
|
30
|
+
*/
|
|
31
|
+
export type AuditableEntity = BaseEntity & {
|
|
32
|
+
/**
|
|
33
|
+
* UUID of the user who created this entity (null for system-created)
|
|
34
|
+
*/
|
|
35
|
+
createdBy?: UUID;
|
|
36
|
+
/**
|
|
37
|
+
* UUID of the user who last updated this entity (null for system-updated)
|
|
38
|
+
*/
|
|
39
|
+
updatedBy?: UUID;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Request model for conversational AI interactions
|
|
43
|
+
*/
|
|
44
|
+
export type AskRequest = {
|
|
45
|
+
/**
|
|
46
|
+
* The natural language query to be processed by the AI agent
|
|
47
|
+
*/
|
|
48
|
+
query: string;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Response model for conversational AI interactions
|
|
52
|
+
*/
|
|
53
|
+
export type AskResponse = {
|
|
54
|
+
/**
|
|
55
|
+
* The AI-generated response content (typically Markdown-formatted)
|
|
56
|
+
*/
|
|
57
|
+
content: string;
|
|
58
|
+
/**
|
|
59
|
+
* Whether the operation completed successfully
|
|
60
|
+
*/
|
|
61
|
+
success: boolean;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Acceptance criterion for validating completion of an action item
|
|
65
|
+
*/
|
|
66
|
+
export type AcceptanceCriteria = BaseEntity & {
|
|
67
|
+
/**
|
|
68
|
+
* Description of what must be true for this criterion to be satisfied
|
|
69
|
+
*/
|
|
70
|
+
description: string;
|
|
71
|
+
/**
|
|
72
|
+
* Whether this criterion has been verified as complete
|
|
73
|
+
*/
|
|
74
|
+
verified: boolean;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Granular, atomic step within a Task representing a single unit of work
|
|
78
|
+
*/
|
|
79
|
+
export type ActionItem = BaseEntity & {
|
|
80
|
+
/**
|
|
81
|
+
* Short name describing the action (verb-noun pattern recommended)
|
|
82
|
+
*/
|
|
83
|
+
name: string;
|
|
84
|
+
/**
|
|
85
|
+
* Detailed description of the work to be performed
|
|
86
|
+
*/
|
|
87
|
+
description: string;
|
|
88
|
+
/**
|
|
89
|
+
* Git branch name where this action item's work is performed
|
|
90
|
+
*/
|
|
91
|
+
branch: string;
|
|
92
|
+
/**
|
|
93
|
+
* Action items that must complete before this one can start
|
|
94
|
+
*/
|
|
95
|
+
dependsOn: ActionItem[];
|
|
96
|
+
/**
|
|
97
|
+
* Acceptance criteria for verifying completion of this action item
|
|
98
|
+
*/
|
|
99
|
+
acceptanceCriteria: AcceptanceCriteria[];
|
|
100
|
+
};
|
|
101
|
+
export declare enum ArtifactCategory {
|
|
102
|
+
PRD = "PRD",
|
|
103
|
+
API = "API",
|
|
104
|
+
Design = "Design",
|
|
105
|
+
Other = "Other"
|
|
106
|
+
}
|
|
107
|
+
export declare enum ArtifactFormat {
|
|
108
|
+
Markdown = "md",
|
|
109
|
+
Text = "txt",
|
|
110
|
+
Yaml = "yaml",
|
|
111
|
+
Other = "Other"
|
|
112
|
+
}
|
|
113
|
+
export declare enum ArtifactState {
|
|
114
|
+
Todo = "Todo",
|
|
115
|
+
Elaborating = "Elaborating",
|
|
116
|
+
Done = "Done"
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Generated document or file attached to a Feature
|
|
120
|
+
*/
|
|
121
|
+
export type Artifact = BaseEntity & {
|
|
122
|
+
/**
|
|
123
|
+
* Human-readable name identifying this artifact
|
|
124
|
+
*/
|
|
125
|
+
name: string;
|
|
126
|
+
/**
|
|
127
|
+
* Type description providing additional context (e.g., 'documentation', 'api-spec')
|
|
128
|
+
*/
|
|
129
|
+
type: string;
|
|
130
|
+
/**
|
|
131
|
+
* Category classification (PRD, API, Design, or Other)
|
|
132
|
+
*/
|
|
133
|
+
category: ArtifactCategory;
|
|
134
|
+
/**
|
|
135
|
+
* File format for the artifact content
|
|
136
|
+
*/
|
|
137
|
+
format: ArtifactFormat;
|
|
138
|
+
/**
|
|
139
|
+
* Brief summary of the artifact's content and purpose
|
|
140
|
+
*/
|
|
141
|
+
summary: string;
|
|
142
|
+
/**
|
|
143
|
+
* Relative file path where the artifact is stored
|
|
144
|
+
*/
|
|
145
|
+
path: string;
|
|
146
|
+
/**
|
|
147
|
+
* Current state in the artifact generation lifecycle
|
|
148
|
+
*/
|
|
149
|
+
state: ArtifactState;
|
|
150
|
+
};
|
|
151
|
+
export declare enum MessageRole {
|
|
152
|
+
Assistant = "assistant",
|
|
153
|
+
User = "user"
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* A message in a conversation thread between user and AI assistant
|
|
157
|
+
*/
|
|
158
|
+
export type Message = BaseEntity & {
|
|
159
|
+
/**
|
|
160
|
+
* Role of the message sender (User or Assistant)
|
|
161
|
+
*/
|
|
162
|
+
role: MessageRole;
|
|
163
|
+
/**
|
|
164
|
+
* The text content of the message
|
|
165
|
+
*/
|
|
166
|
+
content: string;
|
|
167
|
+
/**
|
|
168
|
+
* Optional choices presented to the user for selection
|
|
169
|
+
*/
|
|
170
|
+
options?: string[];
|
|
171
|
+
/**
|
|
172
|
+
* Optional user's freeform text answer
|
|
173
|
+
*/
|
|
174
|
+
answer?: string;
|
|
175
|
+
/**
|
|
176
|
+
* Optional index of the selected option from the options array (0-based)
|
|
177
|
+
*/
|
|
178
|
+
selectedOption?: number;
|
|
179
|
+
};
|
|
180
|
+
export declare enum RequirementType {
|
|
181
|
+
Functional = "Functional",
|
|
182
|
+
NonFunctional = "NonFunctional"
|
|
183
|
+
}
|
|
184
|
+
export declare enum ResearchState {
|
|
185
|
+
NotStarted = "NotStarted",
|
|
186
|
+
Running = "Running",
|
|
187
|
+
Finished = "Finished"
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* A research topic exploration for gathering technical information
|
|
191
|
+
*/
|
|
192
|
+
export type Research = BaseEntity & {
|
|
193
|
+
/**
|
|
194
|
+
* The topic or subject being researched
|
|
195
|
+
*/
|
|
196
|
+
topic: string;
|
|
197
|
+
/**
|
|
198
|
+
* Current state of the research activity (NotStarted, Running, Finished)
|
|
199
|
+
*/
|
|
200
|
+
state: ResearchState;
|
|
201
|
+
/**
|
|
202
|
+
* Summary of research findings and recommendations
|
|
203
|
+
*/
|
|
204
|
+
summary: string;
|
|
205
|
+
/**
|
|
206
|
+
* Artifacts produced during the research activity
|
|
207
|
+
*/
|
|
208
|
+
artifacts: Artifact[];
|
|
209
|
+
};
|
|
210
|
+
/**
|
|
211
|
+
* A user or inferred requirement attached to a feature
|
|
212
|
+
*/
|
|
213
|
+
export type Requirement = BaseEntity & {
|
|
214
|
+
/**
|
|
215
|
+
* URL-friendly short identifier for the requirement
|
|
216
|
+
*/
|
|
217
|
+
slug: string;
|
|
218
|
+
/**
|
|
219
|
+
* The original user query that generated this requirement
|
|
220
|
+
*/
|
|
221
|
+
userQuery: string;
|
|
222
|
+
/**
|
|
223
|
+
* Classification type of the requirement (Functional or NonFunctional)
|
|
224
|
+
*/
|
|
225
|
+
type: RequirementType;
|
|
226
|
+
/**
|
|
227
|
+
* Research activities conducted to clarify or validate this requirement
|
|
228
|
+
*/
|
|
229
|
+
researches: Research[];
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* AI model configuration for different SDLC agents
|
|
233
|
+
*/
|
|
234
|
+
export type ModelConfiguration = {
|
|
235
|
+
/**
|
|
236
|
+
* Model for codebase analysis agent
|
|
237
|
+
*/
|
|
238
|
+
analyze: string;
|
|
239
|
+
/**
|
|
240
|
+
* Model for requirements gathering agent
|
|
241
|
+
*/
|
|
242
|
+
requirements: string;
|
|
243
|
+
/**
|
|
244
|
+
* Model for planning agent
|
|
245
|
+
*/
|
|
246
|
+
plan: string;
|
|
247
|
+
/**
|
|
248
|
+
* Model for implementation agent
|
|
249
|
+
*/
|
|
250
|
+
implement: string;
|
|
251
|
+
};
|
|
252
|
+
/**
|
|
253
|
+
* User profile information
|
|
254
|
+
*/
|
|
255
|
+
export type UserProfile = {
|
|
256
|
+
/**
|
|
257
|
+
* User's display name (optional)
|
|
258
|
+
*/
|
|
259
|
+
name?: string;
|
|
260
|
+
/**
|
|
261
|
+
* User's email address (optional)
|
|
262
|
+
*/
|
|
263
|
+
email?: string;
|
|
264
|
+
/**
|
|
265
|
+
* GitHub username (optional, for PR attribution)
|
|
266
|
+
*/
|
|
267
|
+
githubUsername?: string;
|
|
268
|
+
};
|
|
269
|
+
/**
|
|
270
|
+
* Environment and tooling preferences
|
|
271
|
+
*/
|
|
272
|
+
export type EnvironmentConfig = {
|
|
273
|
+
/**
|
|
274
|
+
* Preferred code editor
|
|
275
|
+
*/
|
|
276
|
+
defaultEditor: string;
|
|
277
|
+
/**
|
|
278
|
+
* Preferred shell
|
|
279
|
+
*/
|
|
280
|
+
shellPreference: string;
|
|
281
|
+
};
|
|
282
|
+
/**
|
|
283
|
+
* System configuration
|
|
284
|
+
*/
|
|
285
|
+
export type SystemConfig = {
|
|
286
|
+
/**
|
|
287
|
+
* CLI auto-update preference
|
|
288
|
+
*/
|
|
289
|
+
autoUpdate: boolean;
|
|
290
|
+
/**
|
|
291
|
+
* Log level for CLI output
|
|
292
|
+
*/
|
|
293
|
+
logLevel: string;
|
|
294
|
+
};
|
|
295
|
+
/**
|
|
296
|
+
* Global Shep platform settings (singleton)
|
|
297
|
+
*/
|
|
298
|
+
export type Settings = BaseEntity & {
|
|
299
|
+
/**
|
|
300
|
+
* AI model configuration for different agents
|
|
301
|
+
*/
|
|
302
|
+
models: ModelConfiguration;
|
|
303
|
+
/**
|
|
304
|
+
* User profile information
|
|
305
|
+
*/
|
|
306
|
+
user: UserProfile;
|
|
307
|
+
/**
|
|
308
|
+
* Environment and tooling preferences
|
|
309
|
+
*/
|
|
310
|
+
environment: EnvironmentConfig;
|
|
311
|
+
/**
|
|
312
|
+
* System-level parameters
|
|
313
|
+
*/
|
|
314
|
+
system: SystemConfig;
|
|
315
|
+
};
|
|
316
|
+
export declare enum TaskState {
|
|
317
|
+
Todo = "Todo",
|
|
318
|
+
WIP = "Work in Progress",
|
|
319
|
+
Done = "Done",
|
|
320
|
+
Review = "Review"
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* A discrete unit of work within an implementation plan
|
|
324
|
+
*/
|
|
325
|
+
export type Task = BaseEntity & {
|
|
326
|
+
/**
|
|
327
|
+
* Optional human-readable title for the task
|
|
328
|
+
*/
|
|
329
|
+
title?: string;
|
|
330
|
+
/**
|
|
331
|
+
* Optional detailed description of what the task entails
|
|
332
|
+
*/
|
|
333
|
+
description?: string;
|
|
334
|
+
/**
|
|
335
|
+
* Tasks that must be completed before this task can begin
|
|
336
|
+
*/
|
|
337
|
+
dependsOn: Task[];
|
|
338
|
+
/**
|
|
339
|
+
* Granular action items that comprise this task
|
|
340
|
+
*/
|
|
341
|
+
actionItems: ActionItem[];
|
|
342
|
+
/**
|
|
343
|
+
* The base branch from which this task's working branch was created
|
|
344
|
+
*/
|
|
345
|
+
baseBranch: string;
|
|
346
|
+
/**
|
|
347
|
+
* Current state of task execution (Todo, WIP, Review, Done)
|
|
348
|
+
*/
|
|
349
|
+
state: TaskState;
|
|
350
|
+
/**
|
|
351
|
+
* Git branch where work for this task is performed
|
|
352
|
+
*/
|
|
353
|
+
branch: string;
|
|
354
|
+
};
|
|
355
|
+
/**
|
|
356
|
+
* A significant event in the feature's timeline tracking user interactions and milestones
|
|
357
|
+
*/
|
|
358
|
+
export type TimelineEvent = BaseEntity & {
|
|
359
|
+
/**
|
|
360
|
+
* The user query or action that triggered this timeline event
|
|
361
|
+
*/
|
|
362
|
+
userQuery: string;
|
|
363
|
+
/**
|
|
364
|
+
* Timestamp when this event occurred (read-only, set by system)
|
|
365
|
+
*/
|
|
366
|
+
timestamp: any;
|
|
367
|
+
};
|
|
368
|
+
export declare enum PlanState {
|
|
369
|
+
Requirements = "Requirements",
|
|
370
|
+
ClarificationRequired = "ClarificationRequired",
|
|
371
|
+
Ready = "Ready"
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Individual task representation within a Gantt chart visualization
|
|
375
|
+
*/
|
|
376
|
+
export type GanttTask = {
|
|
377
|
+
/**
|
|
378
|
+
* Unique identifier for the Gantt task
|
|
379
|
+
*/
|
|
380
|
+
id: UUID;
|
|
381
|
+
/**
|
|
382
|
+
* Display name of the task shown in the Gantt chart
|
|
383
|
+
*/
|
|
384
|
+
name: string;
|
|
385
|
+
/**
|
|
386
|
+
* Scheduled start time for the task
|
|
387
|
+
*/
|
|
388
|
+
start: any;
|
|
389
|
+
/**
|
|
390
|
+
* Scheduled end time for the task
|
|
391
|
+
*/
|
|
392
|
+
end: any;
|
|
393
|
+
/**
|
|
394
|
+
* IDs of tasks that this task depends on (must complete before this task can start)
|
|
395
|
+
*/
|
|
396
|
+
dependencies: UUID[];
|
|
397
|
+
/**
|
|
398
|
+
* Completion progress as a fraction (0.0 = not started, 1.0 = complete)
|
|
399
|
+
*/
|
|
400
|
+
progress: number;
|
|
401
|
+
};
|
|
402
|
+
/**
|
|
403
|
+
* Container for Gantt chart visualization data including tasks and time bounds
|
|
404
|
+
*/
|
|
405
|
+
export type GanttViewData = {
|
|
406
|
+
/**
|
|
407
|
+
* Collection of tasks to display in the Gantt chart
|
|
408
|
+
*/
|
|
409
|
+
tasks: GanttTask[];
|
|
410
|
+
/**
|
|
411
|
+
* Start date of the overall work plan (left boundary of the chart)
|
|
412
|
+
*/
|
|
413
|
+
startDate: any;
|
|
414
|
+
/**
|
|
415
|
+
* End date of the overall work plan (right boundary of the chart)
|
|
416
|
+
*/
|
|
417
|
+
endDate: any;
|
|
418
|
+
};
|
|
419
|
+
/**
|
|
420
|
+
* Implementation plan for a feature containing tasks, artifacts, and requirements
|
|
421
|
+
*/
|
|
422
|
+
export type Plan = BaseEntity & {
|
|
423
|
+
/**
|
|
424
|
+
* High-level overview describing the implementation approach
|
|
425
|
+
*/
|
|
426
|
+
overview: string;
|
|
427
|
+
/**
|
|
428
|
+
* User and inferred requirements that this plan addresses
|
|
429
|
+
*/
|
|
430
|
+
requirements: Requirement[];
|
|
431
|
+
/**
|
|
432
|
+
* Documents and artifacts to be produced as part of this plan
|
|
433
|
+
*/
|
|
434
|
+
artifacts: Artifact[];
|
|
435
|
+
/**
|
|
436
|
+
* Work items (tasks) that comprise this implementation plan
|
|
437
|
+
*/
|
|
438
|
+
tasks: Task[];
|
|
439
|
+
/**
|
|
440
|
+
* Current state of the plan execution lifecycle
|
|
441
|
+
*/
|
|
442
|
+
state: PlanState;
|
|
443
|
+
/**
|
|
444
|
+
* Optional Gantt chart visualization data for work scheduling
|
|
445
|
+
*/
|
|
446
|
+
workPlan?: GanttViewData;
|
|
447
|
+
};
|
|
448
|
+
export declare enum SdlcLifecycle {
|
|
449
|
+
Requirements = "Requirements",
|
|
450
|
+
Research = "Research",
|
|
451
|
+
Implementation = "Implementation",
|
|
452
|
+
Review = "Review",
|
|
453
|
+
DeployAndQA = "Deploy & QA",
|
|
454
|
+
Maintain = "Maintain"
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Central entity tracking a piece of work through the SDLC lifecycle (Aggregate Root)
|
|
458
|
+
*/
|
|
459
|
+
export type Feature = BaseEntity & {
|
|
460
|
+
/**
|
|
461
|
+
* Human-readable name identifying this feature
|
|
462
|
+
*/
|
|
463
|
+
name: string;
|
|
464
|
+
/**
|
|
465
|
+
* URL-friendly identifier derived from name (unique within repository)
|
|
466
|
+
*/
|
|
467
|
+
slug: string;
|
|
468
|
+
/**
|
|
469
|
+
* Detailed description explaining the feature's purpose and scope
|
|
470
|
+
*/
|
|
471
|
+
description: string;
|
|
472
|
+
/**
|
|
473
|
+
* Absolute file system path to the repository
|
|
474
|
+
*/
|
|
475
|
+
repositoryPath: string;
|
|
476
|
+
/**
|
|
477
|
+
* Git branch name where this feature's work is performed
|
|
478
|
+
*/
|
|
479
|
+
branch: string;
|
|
480
|
+
/**
|
|
481
|
+
* Current stage in the SDLC lifecycle
|
|
482
|
+
*/
|
|
483
|
+
lifecycle: SdlcLifecycle;
|
|
484
|
+
/**
|
|
485
|
+
* Conversation history with the AI assistant
|
|
486
|
+
*/
|
|
487
|
+
messages: Message[];
|
|
488
|
+
/**
|
|
489
|
+
* Implementation plan containing tasks, artifacts, and requirements (optional)
|
|
490
|
+
*/
|
|
491
|
+
plan?: Plan;
|
|
492
|
+
/**
|
|
493
|
+
* Generated documents and artifacts attached to this feature
|
|
494
|
+
*/
|
|
495
|
+
relatedArtifacts: Artifact[];
|
|
496
|
+
};
|
|
497
|
+
export declare enum AgentStatus {
|
|
498
|
+
Idle = "Idle",
|
|
499
|
+
Running = "Running",
|
|
500
|
+
Paused = "Paused",
|
|
501
|
+
Stopped = "Stopped"
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* A running agent instance that processes work and responds to queries
|
|
505
|
+
*/
|
|
506
|
+
export type AgentInstance = {
|
|
507
|
+
/**
|
|
508
|
+
* Unique identifier for this agent instance
|
|
509
|
+
*/
|
|
510
|
+
id: UUID;
|
|
511
|
+
/**
|
|
512
|
+
* Git branch this agent is operating on for code changes
|
|
513
|
+
*/
|
|
514
|
+
branch: string;
|
|
515
|
+
/**
|
|
516
|
+
* Current operational status of the agent (Idle, Running, Paused, or Stopped)
|
|
517
|
+
*/
|
|
518
|
+
status: AgentStatus;
|
|
519
|
+
/**
|
|
520
|
+
* Timestamp when this agent instance was created
|
|
521
|
+
*/
|
|
522
|
+
createdAt: any;
|
|
523
|
+
};
|
|
524
|
+
/**
|
|
525
|
+
* Deployment target wrapping a single ActionItem for granular deployments
|
|
526
|
+
*/
|
|
527
|
+
export type DeployTargetActionItem = {
|
|
528
|
+
/**
|
|
529
|
+
* Discriminator indicating this is an action item target
|
|
530
|
+
*/
|
|
531
|
+
kind: 'actionItem';
|
|
532
|
+
/**
|
|
533
|
+
* The action item to deploy - represents an atomic unit of work
|
|
534
|
+
*/
|
|
535
|
+
actionItem: ActionItem;
|
|
536
|
+
};
|
|
537
|
+
/**
|
|
538
|
+
* Deployment target wrapping a single Task for task-level deployments
|
|
539
|
+
*/
|
|
540
|
+
export type DeployTargetTask = {
|
|
541
|
+
/**
|
|
542
|
+
* Discriminator indicating this is a task target
|
|
543
|
+
*/
|
|
544
|
+
kind: 'task';
|
|
545
|
+
/**
|
|
546
|
+
* The task to deploy - includes all action items within the task
|
|
547
|
+
*/
|
|
548
|
+
task: Task;
|
|
549
|
+
};
|
|
550
|
+
/**
|
|
551
|
+
* Deployment target wrapping multiple Tasks for batch deployments
|
|
552
|
+
*/
|
|
553
|
+
export type DeployTargetTasks = {
|
|
554
|
+
/**
|
|
555
|
+
* Discriminator indicating this is a multi-task target
|
|
556
|
+
*/
|
|
557
|
+
kind: 'tasks';
|
|
558
|
+
/**
|
|
559
|
+
* The tasks to deploy - enables batch deployment of related work
|
|
560
|
+
*/
|
|
561
|
+
tasks: Task[];
|
|
562
|
+
};
|
|
563
|
+
export declare enum FeatureAgentState {
|
|
564
|
+
GatheringRequirements = "GatheringRequirements",
|
|
565
|
+
ClarificationsRequired = "ClarificationsRequired",
|
|
566
|
+
DoingResearch = "DoingResearch",
|
|
567
|
+
AwaitingReview = "AwaitingReview",
|
|
568
|
+
ExecutingWorkPlan = "ExecutingWorkPlan",
|
|
569
|
+
Ready = "Ready"
|
|
570
|
+
}
|
|
571
|
+
/**
|
|
572
|
+
* Main orchestrating agent - the 'brain' that manages the complete SDLC workflow for a feature
|
|
573
|
+
*/
|
|
574
|
+
export type FeatureAgent = {
|
|
575
|
+
/**
|
|
576
|
+
* Unique identifier for this feature agent instance
|
|
577
|
+
*/
|
|
578
|
+
id: UUID;
|
|
579
|
+
/**
|
|
580
|
+
* The feature being managed by this agent throughout its lifecycle
|
|
581
|
+
*/
|
|
582
|
+
feature: Feature;
|
|
583
|
+
/**
|
|
584
|
+
* Sub-agents spawned to handle specific tasks within the workflow
|
|
585
|
+
*/
|
|
586
|
+
agents: AgentInstance[];
|
|
587
|
+
/**
|
|
588
|
+
* Current operational state determining what the agent is doing
|
|
589
|
+
*/
|
|
590
|
+
state: FeatureAgentState;
|
|
591
|
+
/**
|
|
592
|
+
* Timestamp when this feature agent was created
|
|
593
|
+
*/
|
|
594
|
+
createdAt: any;
|
|
595
|
+
};
|
|
596
|
+
/**
|
|
597
|
+
* Agent for handling local deployment of features, tasks, or action items
|
|
598
|
+
*/
|
|
599
|
+
export type LocalDeployAgent = {
|
|
600
|
+
/**
|
|
601
|
+
* Unique identifier for this deployment agent instance
|
|
602
|
+
*/
|
|
603
|
+
id: UUID;
|
|
604
|
+
/**
|
|
605
|
+
* URL where the deployment is accessible once available (null before deployment)
|
|
606
|
+
*/
|
|
607
|
+
url?: string;
|
|
608
|
+
/**
|
|
609
|
+
* Timestamp when this deployment agent was created
|
|
610
|
+
*/
|
|
611
|
+
createdAt: any;
|
|
612
|
+
};
|
|
613
|
+
export declare enum PortProtocol {
|
|
614
|
+
TCP = "TCP",
|
|
615
|
+
UDP = "UDP"
|
|
616
|
+
}
|
|
617
|
+
/**
|
|
618
|
+
* Port mapping configuration for exposing container services to the network
|
|
619
|
+
*/
|
|
620
|
+
export type PortMap = {
|
|
621
|
+
/**
|
|
622
|
+
* Service name identifier (e.g., 'web', 'api', 'db', 'redis')
|
|
623
|
+
*/
|
|
624
|
+
name: string;
|
|
625
|
+
/**
|
|
626
|
+
* Port number to expose on the host or container network
|
|
627
|
+
*/
|
|
628
|
+
port: number;
|
|
629
|
+
/**
|
|
630
|
+
* Network protocol for the port (defaults to TCP if not specified)
|
|
631
|
+
*/
|
|
632
|
+
protocol?: PortProtocol;
|
|
633
|
+
};
|
|
634
|
+
export declare enum DeployMethod {
|
|
635
|
+
DockerCompose = "DockerCompose",
|
|
636
|
+
Docker = "Docker",
|
|
637
|
+
Kubernetes = "Kubernetes",
|
|
638
|
+
Script = "Script",
|
|
639
|
+
Manual = "Manual"
|
|
640
|
+
}
|
|
641
|
+
/**
|
|
642
|
+
* Configuration defining how to deploy an application with method and instructions
|
|
643
|
+
*/
|
|
644
|
+
export type DeploySkill = {
|
|
645
|
+
/**
|
|
646
|
+
* Unique identifier for the deployment skill configuration
|
|
647
|
+
*/
|
|
648
|
+
id: UUID;
|
|
649
|
+
/**
|
|
650
|
+
* List of port mappings for services to expose when deployed
|
|
651
|
+
*/
|
|
652
|
+
ports: PortMap[];
|
|
653
|
+
/**
|
|
654
|
+
* Method to use for deployment (DockerCompose, Docker, Kubernetes, Script, or Manual)
|
|
655
|
+
*/
|
|
656
|
+
method: DeployMethod;
|
|
657
|
+
/**
|
|
658
|
+
* Deployment instructions or commands to execute for this deployment method
|
|
659
|
+
*/
|
|
660
|
+
instructions: string;
|
|
661
|
+
/**
|
|
662
|
+
* Timestamp when the deployment skill was created
|
|
663
|
+
*/
|
|
664
|
+
createdAt: any;
|
|
665
|
+
};
|
|
666
|
+
export declare enum DeploymentState {
|
|
667
|
+
Booting = "Booting",
|
|
668
|
+
Ready = "Ready",
|
|
669
|
+
Stopped = "Stopped"
|
|
670
|
+
}
|
|
671
|
+
/**
|
|
672
|
+
* A running deployment instance with network configuration and lifecycle management
|
|
673
|
+
*/
|
|
674
|
+
export type Deployment = {
|
|
675
|
+
/**
|
|
676
|
+
* Unique identifier for the deployment instance
|
|
677
|
+
*/
|
|
678
|
+
id: UUID;
|
|
679
|
+
/**
|
|
680
|
+
* Current state of the deployment (Booting, Ready, or Stopped)
|
|
681
|
+
*/
|
|
682
|
+
state: DeploymentState;
|
|
683
|
+
/**
|
|
684
|
+
* URL where the deployment is accessible (e.g., 'http://localhost:30100/' or 'http://172.33.0.20:5173')
|
|
685
|
+
*/
|
|
686
|
+
url: string;
|
|
687
|
+
/**
|
|
688
|
+
* List of port mappings for services exposed by this deployment
|
|
689
|
+
*/
|
|
690
|
+
ports: PortMap[];
|
|
691
|
+
/**
|
|
692
|
+
* Timestamp when the deployment was created
|
|
693
|
+
*/
|
|
694
|
+
createdAt: any;
|
|
695
|
+
/**
|
|
696
|
+
* Timestamp when the deployment was stopped (only present when state is Stopped)
|
|
697
|
+
*/
|
|
698
|
+
stoppedAt?: any;
|
|
699
|
+
};
|
|
700
|
+
export type DeployTarget = DeployTargetActionItem | DeployTargetTask | DeployTargetTasks;
|
|
701
|
+
export type Askable = {
|
|
702
|
+
Ask(request: AskRequest): AskResponse;
|
|
703
|
+
};
|
|
704
|
+
export type FeatureAgentOperations = {
|
|
705
|
+
NewFeatureWizard(): Feature;
|
|
706
|
+
GatherRequirements(): Requirement[];
|
|
707
|
+
DoResearch(): Research;
|
|
708
|
+
CreatePlan(): Plan;
|
|
709
|
+
BeginImplementation(): void;
|
|
710
|
+
Ask(query: string): AskResponse;
|
|
711
|
+
};
|
|
712
|
+
export type LocalDeployAgentOperations = {
|
|
713
|
+
Deploy(target: DeployTarget, skill: DeploySkill): Deployment;
|
|
714
|
+
Analyze(repositoryPath: string): DeploySkill;
|
|
715
|
+
Ask(query: string): AskResponse;
|
|
716
|
+
};
|
|
717
|
+
//# sourceMappingURL=output.d.ts.map
|