@shepai/cli 1.2.0 → 1.3.1

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 (208) hide show
  1. package/README.md +29 -12
  2. package/dist/eslint.config.d.mts +3 -0
  3. package/dist/eslint.config.d.mts.map +1 -0
  4. package/dist/eslint.config.mjs +188 -0
  5. package/dist/src/application/ports/output/index.d.ts +8 -0
  6. package/dist/src/application/ports/output/index.d.ts.map +1 -0
  7. package/dist/src/application/ports/output/index.js +7 -0
  8. package/dist/src/application/ports/output/settings.repository.interface.d.ts +43 -0
  9. package/dist/src/application/ports/output/settings.repository.interface.d.ts.map +1 -0
  10. package/dist/src/application/ports/output/settings.repository.interface.js +11 -0
  11. package/dist/src/application/use-cases/settings/index.d.ts +9 -0
  12. package/dist/src/application/use-cases/settings/index.d.ts.map +1 -0
  13. package/dist/src/application/use-cases/settings/index.js +8 -0
  14. package/dist/src/application/use-cases/settings/initialize-settings.use-case.d.ts +33 -0
  15. package/dist/src/application/use-cases/settings/initialize-settings.use-case.d.ts.map +1 -0
  16. package/dist/src/application/use-cases/settings/initialize-settings.use-case.js +63 -0
  17. package/dist/src/application/use-cases/settings/load-settings.use-case.d.ts +33 -0
  18. package/dist/src/application/use-cases/settings/load-settings.use-case.d.ts.map +1 -0
  19. package/dist/src/application/use-cases/settings/load-settings.use-case.js +57 -0
  20. package/dist/src/application/use-cases/settings/update-settings.use-case.d.ts +33 -0
  21. package/dist/src/application/use-cases/settings/update-settings.use-case.d.ts.map +1 -0
  22. package/dist/src/application/use-cases/settings/update-settings.use-case.js +56 -0
  23. package/dist/src/domain/factories/index.d.ts +7 -0
  24. package/dist/src/domain/factories/index.d.ts.map +1 -0
  25. package/dist/src/domain/factories/index.js +6 -0
  26. package/dist/src/domain/factories/settings-defaults.factory.d.ts +36 -0
  27. package/dist/src/domain/factories/settings-defaults.factory.d.ts.map +1 -0
  28. package/dist/src/domain/factories/settings-defaults.factory.js +81 -0
  29. package/dist/src/domain/generated/output.d.ts +717 -0
  30. package/dist/src/domain/generated/output.d.ts.map +1 -0
  31. package/dist/src/domain/generated/output.js +93 -0
  32. package/dist/src/index.d.ts.map +1 -0
  33. package/dist/src/infrastructure/di/container.d.ts +27 -0
  34. package/dist/src/infrastructure/di/container.d.ts.map +1 -0
  35. package/dist/src/infrastructure/di/container.js +53 -0
  36. package/dist/src/infrastructure/persistence/sqlite/connection.d.ts +39 -0
  37. package/dist/src/infrastructure/persistence/sqlite/connection.d.ts.map +1 -0
  38. package/dist/src/infrastructure/persistence/sqlite/connection.js +76 -0
  39. package/dist/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +50 -0
  40. package/dist/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -0
  41. package/dist/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +80 -0
  42. package/dist/src/infrastructure/persistence/sqlite/migrations.d.ts +31 -0
  43. package/dist/src/infrastructure/persistence/sqlite/migrations.d.ts.map +1 -0
  44. package/dist/src/infrastructure/persistence/sqlite/migrations.js +66 -0
  45. package/dist/src/infrastructure/repositories/sqlite-settings.repository.d.ts +40 -0
  46. package/dist/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -0
  47. package/dist/src/infrastructure/repositories/sqlite-settings.repository.js +123 -0
  48. package/dist/src/infrastructure/services/filesystem/shep-directory.service.d.ts +41 -0
  49. package/dist/src/infrastructure/services/filesystem/shep-directory.service.d.ts.map +1 -0
  50. package/dist/src/infrastructure/services/filesystem/shep-directory.service.js +64 -0
  51. package/dist/src/infrastructure/services/settings.service.d.ts +50 -0
  52. package/dist/src/infrastructure/services/settings.service.d.ts.map +1 -0
  53. package/dist/src/infrastructure/services/settings.service.js +67 -0
  54. package/dist/src/infrastructure/services/version.service.d.ts.map +1 -0
  55. package/dist/src/presentation/cli/commands/version.command.d.ts.map +1 -0
  56. package/dist/{presentation → src/presentation}/cli/index.d.ts +1 -1
  57. package/dist/src/presentation/cli/index.d.ts.map +1 -0
  58. package/dist/src/presentation/cli/index.js +86 -0
  59. package/dist/src/presentation/cli/ui/colors.d.ts.map +1 -0
  60. package/dist/src/presentation/cli/ui/formatters.d.ts.map +1 -0
  61. package/dist/src/presentation/cli/ui/index.d.ts.map +1 -0
  62. package/dist/src/presentation/cli/ui/messages.d.ts.map +1 -0
  63. package/dist/src/presentation/cli/ui/symbols.d.ts.map +1 -0
  64. package/dist/src/presentation/web/app/layout.d.ts +7 -0
  65. package/dist/src/presentation/web/app/layout.d.ts.map +1 -0
  66. package/dist/src/presentation/web/app/layout.js +21 -0
  67. package/dist/src/presentation/web/app/not-found.d.ts +2 -0
  68. package/dist/src/presentation/web/app/not-found.d.ts.map +1 -0
  69. package/dist/src/presentation/web/app/not-found.js +4 -0
  70. package/dist/src/presentation/web/app/page.d.ts +2 -0
  71. package/dist/src/presentation/web/app/page.d.ts.map +1 -0
  72. package/dist/src/presentation/web/app/page.js +6 -0
  73. package/dist/src/presentation/web/app/version/page.d.ts +2 -0
  74. package/dist/src/presentation/web/app/version/page.d.ts.map +1 -0
  75. package/dist/src/presentation/web/app/version/page.js +16 -0
  76. package/dist/src/presentation/web/components/features/index.d.ts +2 -0
  77. package/dist/src/presentation/web/components/features/index.d.ts.map +1 -0
  78. package/dist/src/presentation/web/components/features/index.js +2 -0
  79. package/dist/src/presentation/web/components/features/theme-toggle/index.d.ts +2 -0
  80. package/dist/src/presentation/web/components/features/theme-toggle/index.d.ts.map +1 -0
  81. package/dist/src/presentation/web/components/features/theme-toggle/index.js +1 -0
  82. package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.d.ts +2 -0
  83. package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.d.ts.map +1 -0
  84. package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.js +19 -0
  85. package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.stories.d.ts +8 -0
  86. package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.stories.d.ts.map +1 -0
  87. package/dist/src/presentation/web/components/features/theme-toggle/theme-toggle.stories.js +17 -0
  88. package/dist/src/presentation/web/components/ui/accordion.d.ts +8 -0
  89. package/dist/src/presentation/web/components/ui/accordion.d.ts.map +1 -0
  90. package/dist/src/presentation/web/components/ui/accordion.js +14 -0
  91. package/dist/src/presentation/web/components/ui/accordion.stories.d.ts +29 -0
  92. package/dist/src/presentation/web/components/ui/accordion.stories.d.ts.map +1 -0
  93. package/dist/src/presentation/web/components/ui/accordion.stories.js +35 -0
  94. package/dist/src/presentation/web/components/ui/alert.d.ts +9 -0
  95. package/dist/src/presentation/web/components/ui/alert.d.ts.map +1 -0
  96. package/dist/src/presentation/web/components/ui/alert.js +22 -0
  97. package/dist/src/presentation/web/components/ui/alert.stories.d.ts +10 -0
  98. package/dist/src/presentation/web/components/ui/alert.stories.d.ts.map +1 -0
  99. package/dist/src/presentation/web/components/ui/alert.stories.js +30 -0
  100. package/dist/src/presentation/web/components/ui/badge.d.ts +10 -0
  101. package/dist/src/presentation/web/components/ui/badge.d.ts.map +1 -0
  102. package/dist/src/presentation/web/components/ui/badge.js +20 -0
  103. package/dist/src/presentation/web/components/ui/badge.stories.d.ts +11 -0
  104. package/dist/src/presentation/web/components/ui/badge.stories.d.ts.map +1 -0
  105. package/dist/src/presentation/web/components/ui/badge.stories.js +44 -0
  106. package/dist/src/presentation/web/components/ui/button.d.ts +12 -0
  107. package/dist/src/presentation/web/components/ui/button.d.ts.map +1 -0
  108. package/dist/src/presentation/web/components/ui/button.js +33 -0
  109. package/dist/src/presentation/web/components/ui/button.stories.d.ts +17 -0
  110. package/dist/src/presentation/web/components/ui/button.stories.d.ts.map +1 -0
  111. package/dist/src/presentation/web/components/ui/button.stories.js +84 -0
  112. package/dist/src/presentation/web/components/ui/card.d.ts +9 -0
  113. package/dist/src/presentation/web/components/ui/card.d.ts.map +1 -0
  114. package/dist/src/presentation/web/components/ui/card.js +16 -0
  115. package/dist/src/presentation/web/components/ui/card.stories.d.ts +10 -0
  116. package/dist/src/presentation/web/components/ui/card.stories.d.ts.map +1 -0
  117. package/dist/src/presentation/web/components/ui/card.stories.js +24 -0
  118. package/dist/src/presentation/web/components/ui/dialog.d.ts +20 -0
  119. package/dist/src/presentation/web/components/ui/dialog.d.ts.map +1 -0
  120. package/dist/src/presentation/web/components/ui/dialog.js +23 -0
  121. package/dist/src/presentation/web/components/ui/dialog.stories.d.ts +9 -0
  122. package/dist/src/presentation/web/components/ui/dialog.stories.d.ts.map +1 -0
  123. package/dist/src/presentation/web/components/ui/dialog.stories.js +23 -0
  124. package/dist/src/presentation/web/components/ui/index.d.ts +13 -0
  125. package/dist/src/presentation/web/components/ui/index.d.ts.map +1 -0
  126. package/dist/src/presentation/web/components/ui/index.js +14 -0
  127. package/dist/src/presentation/web/components/ui/input.d.ts +4 -0
  128. package/dist/src/presentation/web/components/ui/input.d.ts.map +1 -0
  129. package/dist/src/presentation/web/components/ui/input.js +8 -0
  130. package/dist/src/presentation/web/components/ui/input.stories.d.ts +13 -0
  131. package/dist/src/presentation/web/components/ui/input.stories.d.ts.map +1 -0
  132. package/dist/src/presentation/web/components/ui/input.stories.js +55 -0
  133. package/dist/src/presentation/web/components/ui/label.d.ts +6 -0
  134. package/dist/src/presentation/web/components/ui/label.d.ts.map +1 -0
  135. package/dist/src/presentation/web/components/ui/label.js +10 -0
  136. package/dist/src/presentation/web/components/ui/label.stories.d.ts +9 -0
  137. package/dist/src/presentation/web/components/ui/label.stories.d.ts.map +1 -0
  138. package/dist/src/presentation/web/components/ui/label.stories.js +23 -0
  139. package/dist/src/presentation/web/components/ui/popover.d.ts +8 -0
  140. package/dist/src/presentation/web/components/ui/popover.d.ts.map +1 -0
  141. package/dist/src/presentation/web/components/ui/popover.js +11 -0
  142. package/dist/src/presentation/web/components/ui/popover.stories.d.ts +10 -0
  143. package/dist/src/presentation/web/components/ui/popover.stories.d.ts.map +1 -0
  144. package/dist/src/presentation/web/components/ui/popover.stories.js +26 -0
  145. package/dist/src/presentation/web/components/ui/select.d.ts +14 -0
  146. package/dist/src/presentation/web/components/ui/select.d.ts.map +1 -0
  147. package/dist/src/presentation/web/components/ui/select.js +26 -0
  148. package/dist/src/presentation/web/components/ui/select.stories.d.ts +10 -0
  149. package/dist/src/presentation/web/components/ui/select.stories.d.ts.map +1 -0
  150. package/dist/src/presentation/web/components/ui/select.stories.js +23 -0
  151. package/dist/src/presentation/web/components/ui/sonner.d.ts +5 -0
  152. package/dist/src/presentation/web/components/ui/sonner.d.ts.map +1 -0
  153. package/dist/src/presentation/web/components/ui/sonner.js +14 -0
  154. package/dist/src/presentation/web/components/ui/sonner.stories.d.ts +13 -0
  155. package/dist/src/presentation/web/components/ui/sonner.stories.d.ts.map +1 -0
  156. package/dist/src/presentation/web/components/ui/sonner.stories.js +51 -0
  157. package/dist/src/presentation/web/components/ui/tabs.d.ts +8 -0
  158. package/dist/src/presentation/web/components/ui/tabs.d.ts.map +1 -0
  159. package/dist/src/presentation/web/components/ui/tabs.js +13 -0
  160. package/dist/src/presentation/web/components/ui/tabs.stories.d.ts +9 -0
  161. package/dist/src/presentation/web/components/ui/tabs.stories.d.ts.map +1 -0
  162. package/dist/src/presentation/web/components/ui/tabs.stories.js +23 -0
  163. package/dist/src/presentation/web/eslint.config.d.mts +3 -0
  164. package/dist/src/presentation/web/eslint.config.d.mts.map +1 -0
  165. package/dist/src/presentation/web/eslint.config.mjs +15 -0
  166. package/dist/src/presentation/web/hooks/useTheme.d.ts +12 -0
  167. package/dist/src/presentation/web/hooks/useTheme.d.ts.map +1 -0
  168. package/dist/src/presentation/web/hooks/useTheme.js +73 -0
  169. package/dist/src/presentation/web/lib/utils.d.ts +11 -0
  170. package/dist/src/presentation/web/lib/utils.d.ts.map +1 -0
  171. package/dist/src/presentation/web/lib/utils.js +13 -0
  172. package/dist/src/presentation/web/next.config.d.ts +4 -0
  173. package/dist/src/presentation/web/next.config.d.ts.map +1 -0
  174. package/dist/src/presentation/web/next.config.js +9 -0
  175. package/dist/src/presentation/web/postcss.config.d.mts +4 -0
  176. package/dist/src/presentation/web/postcss.config.d.mts.map +1 -0
  177. package/dist/src/presentation/web/postcss.config.mjs +8 -0
  178. package/dist/src/presentation/web/types/theme.d.ts +12 -0
  179. package/dist/src/presentation/web/types/theme.d.ts.map +1 -0
  180. package/dist/src/presentation/web/types/theme.js +5 -0
  181. package/dist/tsconfig.build.tsbuildinfo +1 -0
  182. package/package.json +60 -12
  183. package/dist/index.d.ts.map +0 -1
  184. package/dist/infrastructure/services/version.service.d.ts.map +0 -1
  185. package/dist/presentation/cli/commands/version.command.d.ts.map +0 -1
  186. package/dist/presentation/cli/index.d.ts.map +0 -1
  187. package/dist/presentation/cli/index.js +0 -48
  188. package/dist/presentation/cli/ui/colors.d.ts.map +0 -1
  189. package/dist/presentation/cli/ui/formatters.d.ts.map +0 -1
  190. package/dist/presentation/cli/ui/index.d.ts.map +0 -1
  191. package/dist/presentation/cli/ui/messages.d.ts.map +0 -1
  192. package/dist/presentation/cli/ui/symbols.d.ts.map +0 -1
  193. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  194. /package/dist/{index.js → src/index.js} +0 -0
  195. /package/dist/{infrastructure → src/infrastructure}/services/version.service.d.ts +0 -0
  196. /package/dist/{infrastructure → src/infrastructure}/services/version.service.js +0 -0
  197. /package/dist/{presentation → src/presentation}/cli/commands/version.command.d.ts +0 -0
  198. /package/dist/{presentation → src/presentation}/cli/commands/version.command.js +0 -0
  199. /package/dist/{presentation → src/presentation}/cli/ui/colors.d.ts +0 -0
  200. /package/dist/{presentation → src/presentation}/cli/ui/colors.js +0 -0
  201. /package/dist/{presentation → src/presentation}/cli/ui/formatters.d.ts +0 -0
  202. /package/dist/{presentation → src/presentation}/cli/ui/formatters.js +0 -0
  203. /package/dist/{presentation → src/presentation}/cli/ui/index.d.ts +0 -0
  204. /package/dist/{presentation → src/presentation}/cli/ui/index.js +0 -0
  205. /package/dist/{presentation → src/presentation}/cli/ui/messages.d.ts +0 -0
  206. /package/dist/{presentation → src/presentation}/cli/ui/messages.js +0 -0
  207. /package/dist/{presentation → src/presentation}/cli/ui/symbols.d.ts +0 -0
  208. /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