vibeman 0.0.0 → 0.0.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 (220) hide show
  1. package/README.md +12 -0
  2. package/dist/index.js +116 -0
  3. package/dist/runtime/api/.tsbuildinfo +1 -0
  4. package/dist/runtime/api/agent/agent-service.d.ts +226 -0
  5. package/dist/runtime/api/agent/agent-service.js +901 -0
  6. package/dist/runtime/api/agent/ai-providers/claude-code-adapter.d.ts +61 -0
  7. package/dist/runtime/api/agent/ai-providers/claude-code-adapter.js +373 -0
  8. package/dist/runtime/api/agent/ai-providers/codex-cli-provider.d.ts +34 -0
  9. package/dist/runtime/api/agent/ai-providers/codex-cli-provider.js +281 -0
  10. package/dist/runtime/api/agent/ai-providers/index.d.ts +9 -0
  11. package/dist/runtime/api/agent/ai-providers/index.js +7 -0
  12. package/dist/runtime/api/agent/ai-providers/types.d.ts +180 -0
  13. package/dist/runtime/api/agent/ai-providers/types.js +5 -0
  14. package/dist/runtime/api/agent/codex-cli-provider.test.d.ts +1 -0
  15. package/dist/runtime/api/agent/codex-cli-provider.test.js +88 -0
  16. package/dist/runtime/api/agent/core-agent-service.d.ts +119 -0
  17. package/dist/runtime/api/agent/core-agent-service.js +267 -0
  18. package/dist/runtime/api/agent/parsers.d.ts +15 -0
  19. package/dist/runtime/api/agent/parsers.js +241 -0
  20. package/dist/runtime/api/agent/prompt-service.d.ts +17 -0
  21. package/dist/runtime/api/agent/prompt-service.js +340 -0
  22. package/dist/runtime/api/agent/routing-policy.d.ts +188 -0
  23. package/dist/runtime/api/agent/routing-policy.js +246 -0
  24. package/dist/runtime/api/api/router-helpers.d.ts +32 -0
  25. package/dist/runtime/api/api/router-helpers.js +31 -0
  26. package/dist/runtime/api/api/routers/ai.d.ts +188 -0
  27. package/dist/runtime/api/api/routers/ai.js +410 -0
  28. package/dist/runtime/api/api/routers/executions.d.ts +98 -0
  29. package/dist/runtime/api/api/routers/executions.js +103 -0
  30. package/dist/runtime/api/api/routers/git.d.ts +45 -0
  31. package/dist/runtime/api/api/routers/git.js +35 -0
  32. package/dist/runtime/api/api/routers/settings.d.ts +139 -0
  33. package/dist/runtime/api/api/routers/settings.js +113 -0
  34. package/dist/runtime/api/api/routers/tasks.d.ts +141 -0
  35. package/dist/runtime/api/api/routers/tasks.js +238 -0
  36. package/dist/runtime/api/api/routers/workflows.d.ts +268 -0
  37. package/dist/runtime/api/api/routers/workflows.js +308 -0
  38. package/dist/runtime/api/api/routers/worktrees.d.ts +102 -0
  39. package/dist/runtime/api/api/routers/worktrees.js +80 -0
  40. package/dist/runtime/api/api/trpc.d.ts +118 -0
  41. package/dist/runtime/api/api/trpc.js +34 -0
  42. package/dist/runtime/api/index.d.ts +9 -0
  43. package/dist/runtime/api/index.js +125 -0
  44. package/dist/runtime/api/lib/id-generator.d.ts +70 -0
  45. package/dist/runtime/api/lib/id-generator.js +123 -0
  46. package/dist/runtime/api/lib/image-paste-drop-extension.d.ts +26 -0
  47. package/dist/runtime/api/lib/image-paste-drop-extension.js +125 -0
  48. package/dist/runtime/api/lib/logger.d.ts +11 -0
  49. package/dist/runtime/api/lib/logger.js +188 -0
  50. package/dist/runtime/api/lib/markdown-utils.d.ts +8 -0
  51. package/dist/runtime/api/lib/markdown-utils.js +282 -0
  52. package/dist/runtime/api/lib/markdown-utils.test.d.ts +1 -0
  53. package/dist/runtime/api/lib/markdown-utils.test.js +348 -0
  54. package/dist/runtime/api/lib/server/agent-service-singleton.d.ts +6 -0
  55. package/dist/runtime/api/lib/server/agent-service-singleton.js +27 -0
  56. package/dist/runtime/api/lib/server/git-service-singleton.d.ts +6 -0
  57. package/dist/runtime/api/lib/server/git-service-singleton.js +47 -0
  58. package/dist/runtime/api/lib/server/project-root.d.ts +2 -0
  59. package/dist/runtime/api/lib/server/project-root.js +38 -0
  60. package/dist/runtime/api/lib/server/task-service-singleton.d.ts +7 -0
  61. package/dist/runtime/api/lib/server/task-service-singleton.js +58 -0
  62. package/dist/runtime/api/lib/server/vibing-orchestrator-singleton.d.ts +7 -0
  63. package/dist/runtime/api/lib/server/vibing-orchestrator-singleton.js +57 -0
  64. package/dist/runtime/api/lib/tiptap-utils.clamp-selection.test.d.ts +1 -0
  65. package/dist/runtime/api/lib/tiptap-utils.clamp-selection.test.js +27 -0
  66. package/dist/runtime/api/lib/tiptap-utils.d.ts +130 -0
  67. package/dist/runtime/api/lib/tiptap-utils.js +327 -0
  68. package/dist/runtime/api/lib/trpc/client.d.ts +1 -0
  69. package/dist/runtime/api/lib/trpc/client.js +5 -0
  70. package/dist/runtime/api/lib/trpc/server.d.ts +822 -0
  71. package/dist/runtime/api/lib/trpc/server.js +11 -0
  72. package/dist/runtime/api/lib/trpc/ws-server.d.ts +8 -0
  73. package/dist/runtime/api/lib/trpc/ws-server.js +33 -0
  74. package/dist/runtime/api/persistence/database-service.d.ts +14 -0
  75. package/dist/runtime/api/persistence/database-service.js +74 -0
  76. package/dist/runtime/api/persistence/execution-log-persistence.d.ts +90 -0
  77. package/dist/runtime/api/persistence/execution-log-persistence.js +410 -0
  78. package/dist/runtime/api/persistence/execution-log-persistence.test.d.ts +1 -0
  79. package/dist/runtime/api/persistence/execution-log-persistence.test.js +170 -0
  80. package/dist/runtime/api/router.d.ts +825 -0
  81. package/dist/runtime/api/router.js +56 -0
  82. package/dist/runtime/api/settings-service.d.ts +110 -0
  83. package/dist/runtime/api/settings-service.js +611 -0
  84. package/dist/runtime/api/tasks/file-watcher.d.ts +23 -0
  85. package/dist/runtime/api/tasks/file-watcher.js +88 -0
  86. package/dist/runtime/api/tasks/task-file-parser.d.ts +13 -0
  87. package/dist/runtime/api/tasks/task-file-parser.js +161 -0
  88. package/dist/runtime/api/tasks/task-service.d.ts +36 -0
  89. package/dist/runtime/api/tasks/task-service.js +173 -0
  90. package/dist/runtime/api/types/index.d.ts +179 -0
  91. package/dist/runtime/api/types/index.js +1 -0
  92. package/dist/runtime/api/types/settings.d.ts +81 -0
  93. package/dist/runtime/api/types/settings.js +2 -0
  94. package/dist/runtime/api/types.d.ts +2 -0
  95. package/dist/runtime/api/types.js +1 -0
  96. package/dist/runtime/api/utils/env.d.ts +6 -0
  97. package/dist/runtime/api/utils/env.js +12 -0
  98. package/dist/runtime/api/utils/stripNextEnv.d.ts +7 -0
  99. package/dist/runtime/api/utils/stripNextEnv.js +22 -0
  100. package/dist/runtime/api/utils/title-slug.d.ts +6 -0
  101. package/dist/runtime/api/utils/title-slug.js +77 -0
  102. package/dist/runtime/api/utils/url.d.ts +2 -0
  103. package/dist/runtime/api/utils/url.js +19 -0
  104. package/dist/runtime/api/vcs/git-history-service.d.ts +57 -0
  105. package/dist/runtime/api/vcs/git-history-service.js +228 -0
  106. package/dist/runtime/api/vcs/git-service.d.ts +127 -0
  107. package/dist/runtime/api/vcs/git-service.js +284 -0
  108. package/dist/runtime/api/vcs/worktree-service.d.ts +93 -0
  109. package/dist/runtime/api/vcs/worktree-service.js +506 -0
  110. package/dist/runtime/api/vcs/worktree-service.test.d.ts +1 -0
  111. package/dist/runtime/api/vcs/worktree-service.test.js +20 -0
  112. package/dist/runtime/api/workflows/quality-pipeline.d.ts +58 -0
  113. package/dist/runtime/api/workflows/quality-pipeline.js +400 -0
  114. package/dist/runtime/api/workflows/vibing-orchestrator.d.ts +313 -0
  115. package/dist/runtime/api/workflows/vibing-orchestrator.js +1861 -0
  116. package/dist/runtime/web/.next/BUILD_ID +1 -0
  117. package/dist/runtime/web/.next/app-build-manifest.json +59 -0
  118. package/dist/runtime/web/.next/app-path-routes-manifest.json +7 -0
  119. package/dist/runtime/web/.next/build-manifest.json +33 -0
  120. package/dist/runtime/web/.next/package.json +1 -0
  121. package/dist/runtime/web/.next/prerender-manifest.json +61 -0
  122. package/dist/runtime/web/.next/react-loadable-manifest.json +39 -0
  123. package/dist/runtime/web/.next/required-server-files.json +334 -0
  124. package/dist/runtime/web/.next/routes-manifest.json +62 -0
  125. package/dist/runtime/web/.next/server/app/_not-found/page.js +2 -0
  126. package/dist/runtime/web/.next/server/app/_not-found/page.js.nft.json +1 -0
  127. package/dist/runtime/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  128. package/dist/runtime/web/.next/server/app/_not-found.html +7 -0
  129. package/dist/runtime/web/.next/server/app/_not-found.meta +8 -0
  130. package/dist/runtime/web/.next/server/app/_not-found.rsc +22 -0
  131. package/dist/runtime/web/.next/server/app/api/health/route.js +1 -0
  132. package/dist/runtime/web/.next/server/app/api/health/route.js.nft.json +1 -0
  133. package/dist/runtime/web/.next/server/app/api/health/route_client-reference-manifest.js +1 -0
  134. package/dist/runtime/web/.next/server/app/api/images/[...path]/route.js +1 -0
  135. package/dist/runtime/web/.next/server/app/api/images/[...path]/route.js.nft.json +1 -0
  136. package/dist/runtime/web/.next/server/app/api/images/[...path]/route_client-reference-manifest.js +1 -0
  137. package/dist/runtime/web/.next/server/app/api/upload/route.js +1 -0
  138. package/dist/runtime/web/.next/server/app/api/upload/route.js.nft.json +1 -0
  139. package/dist/runtime/web/.next/server/app/api/upload/route_client-reference-manifest.js +1 -0
  140. package/dist/runtime/web/.next/server/app/index.html +7 -0
  141. package/dist/runtime/web/.next/server/app/index.meta +7 -0
  142. package/dist/runtime/web/.next/server/app/index.rsc +27 -0
  143. package/dist/runtime/web/.next/server/app/page.js +147 -0
  144. package/dist/runtime/web/.next/server/app/page.js.nft.json +1 -0
  145. package/dist/runtime/web/.next/server/app/page_client-reference-manifest.js +1 -0
  146. package/dist/runtime/web/.next/server/app-paths-manifest.json +7 -0
  147. package/dist/runtime/web/.next/server/chunks/217.js +1 -0
  148. package/dist/runtime/web/.next/server/chunks/383.js +6 -0
  149. package/dist/runtime/web/.next/server/chunks/458.js +1 -0
  150. package/dist/runtime/web/.next/server/chunks/576.js +18 -0
  151. package/dist/runtime/web/.next/server/chunks/635.js +22 -0
  152. package/dist/runtime/web/.next/server/chunks/761.js +1 -0
  153. package/dist/runtime/web/.next/server/chunks/777.js +3 -0
  154. package/dist/runtime/web/.next/server/chunks/825.js +1 -0
  155. package/dist/runtime/web/.next/server/chunks/838.js +1 -0
  156. package/dist/runtime/web/.next/server/chunks/973.js +15 -0
  157. package/dist/runtime/web/.next/server/functions-config-manifest.json +4 -0
  158. package/dist/runtime/web/.next/server/middleware-build-manifest.js +1 -0
  159. package/dist/runtime/web/.next/server/middleware-manifest.json +6 -0
  160. package/dist/runtime/web/.next/server/middleware-react-loadable-manifest.js +1 -0
  161. package/dist/runtime/web/.next/server/next-font-manifest.js +1 -0
  162. package/dist/runtime/web/.next/server/next-font-manifest.json +1 -0
  163. package/dist/runtime/web/.next/server/pages/404.html +7 -0
  164. package/dist/runtime/web/.next/server/pages/500.html +1 -0
  165. package/dist/runtime/web/.next/server/pages/_app.js +1 -0
  166. package/dist/runtime/web/.next/server/pages/_app.js.nft.json +1 -0
  167. package/dist/runtime/web/.next/server/pages/_document.js +1 -0
  168. package/dist/runtime/web/.next/server/pages/_document.js.nft.json +1 -0
  169. package/dist/runtime/web/.next/server/pages/_error.js +19 -0
  170. package/dist/runtime/web/.next/server/pages/_error.js.nft.json +1 -0
  171. package/dist/runtime/web/.next/server/pages-manifest.json +6 -0
  172. package/dist/runtime/web/.next/server/server-reference-manifest.js +1 -0
  173. package/dist/runtime/web/.next/server/server-reference-manifest.json +1 -0
  174. package/dist/runtime/web/.next/server/webpack-runtime.js +1 -0
  175. package/dist/runtime/web/.next/static/1HR8N0rJkCvFRtbTPJMyH/_buildManifest.js +1 -0
  176. package/dist/runtime/web/.next/static/1HR8N0rJkCvFRtbTPJMyH/_ssgManifest.js +1 -0
  177. package/dist/runtime/web/.next/static/chunks/18-15c10d3288afef2e.js +1 -0
  178. package/dist/runtime/web/.next/static/chunks/1c0ca389.537bbe362e3ffbd9.js +3 -0
  179. package/dist/runtime/web/.next/static/chunks/22747d63-ad5da0c19f4cfe41.js +71 -0
  180. package/dist/runtime/web/.next/static/chunks/277-0142a939f08738c3.js +63 -0
  181. package/dist/runtime/web/.next/static/chunks/355.056c2645878a799a.js +1 -0
  182. package/dist/runtime/web/.next/static/chunks/420.a5ccf151c9e2b2f1.js +1 -0
  183. package/dist/runtime/web/.next/static/chunks/439.1be0c6242fd248d5.js +15 -0
  184. package/dist/runtime/web/.next/static/chunks/440.c52e7c0f797e22b2.js +1 -0
  185. package/dist/runtime/web/.next/static/chunks/575-e2478287c27da87b.js +1 -0
  186. package/dist/runtime/web/.next/static/chunks/691.920d88c115087314.js +1 -0
  187. package/dist/runtime/web/.next/static/chunks/765-e838910065b50c3d.js +1 -0
  188. package/dist/runtime/web/.next/static/chunks/87c73c54-09e1ba5c70e60a51.js +1 -0
  189. package/dist/runtime/web/.next/static/chunks/891cff7f.0f71fc028f87e683.js +1 -0
  190. package/dist/runtime/web/.next/static/chunks/8bb4d8db-3e2aa02b0a2384b9.js +1 -0
  191. package/dist/runtime/web/.next/static/chunks/9af238c7-271a911d4e99ab18.js +1 -0
  192. package/dist/runtime/web/.next/static/chunks/app/_not-found/page-1cb74d1cba27d0ab.js +1 -0
  193. package/dist/runtime/web/.next/static/chunks/app/api/health/route-105a61ae865ba536.js +1 -0
  194. package/dist/runtime/web/.next/static/chunks/app/api/images/[...path]/route-105a61ae865ba536.js +1 -0
  195. package/dist/runtime/web/.next/static/chunks/app/api/upload/route-105a61ae865ba536.js +1 -0
  196. package/dist/runtime/web/.next/static/chunks/app/layout-dc0cfd29075b2160.js +1 -0
  197. package/dist/runtime/web/.next/static/chunks/app/page-f34a8b196b18850b.js +1 -0
  198. package/dist/runtime/web/.next/static/chunks/cac567b0-5b77dd12911823cd.js +1 -0
  199. package/dist/runtime/web/.next/static/chunks/framework-2518f1345b5b2806.js +1 -0
  200. package/dist/runtime/web/.next/static/chunks/main-17665e5e39de9a8a.js +1 -0
  201. package/dist/runtime/web/.next/static/chunks/main-app-c0b0f5ba4f7f9d75.js +1 -0
  202. package/dist/runtime/web/.next/static/chunks/pages/_app-d6f6b3bbc3d81ee1.js +1 -0
  203. package/dist/runtime/web/.next/static/chunks/pages/_error-75a96cf1997cc3b9.js +1 -0
  204. package/dist/runtime/web/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  205. package/dist/runtime/web/.next/static/chunks/webpack-c8de37305b4635cf.js +1 -0
  206. package/dist/runtime/web/.next/static/css/08c950681f1a9a92.css +1 -0
  207. package/dist/runtime/web/.next/static/css/2728291c68f99cb1.css +3 -0
  208. package/dist/runtime/web/.next/static/css/521bd69cc298cd1a.css +1 -0
  209. package/dist/runtime/web/.next/static/css/537e22821e101b87.css +1 -0
  210. package/dist/runtime/web/.next/static/media/19cfc7226ec3afaa-s.woff2 +0 -0
  211. package/dist/runtime/web/.next/static/media/21350d82a1f187e9-s.woff2 +0 -0
  212. package/dist/runtime/web/.next/static/media/8e9860b6e62d6359-s.woff2 +0 -0
  213. package/dist/runtime/web/.next/static/media/ba9851c3c22cd980-s.woff2 +0 -0
  214. package/dist/runtime/web/.next/static/media/c5fe6dc8356a8c31-s.woff2 +0 -0
  215. package/dist/runtime/web/.next/static/media/df0a9ae256c0569c-s.woff2 +0 -0
  216. package/dist/runtime/web/.next/static/media/e4af272ccee01ff0-s.p.woff2 +0 -0
  217. package/dist/runtime/web/package.json +65 -0
  218. package/dist/runtime/web/server.js +44 -0
  219. package/dist/tsconfig.tsbuildinfo +1 -0
  220. package/package.json +80 -7
@@ -0,0 +1,313 @@
1
+ import { EventEmitter } from 'events';
2
+ import type { VibingExecution, VibingPhase, VibingConfig } from '../types/index.js';
3
+ import { TaskService } from '../tasks/task-service.js';
4
+ import { AgentService } from '../agent/agent-service.js';
5
+ import { WorktreeService } from '../vcs/worktree-service.js';
6
+ import { GitService } from '../vcs/git-service.js';
7
+ export declare class VibingOrchestrator extends EventEmitter {
8
+ private taskService;
9
+ private agentService;
10
+ private worktreeService;
11
+ private config;
12
+ private gitService?;
13
+ private workflows;
14
+ private qualityPipeline;
15
+ private workflowDB;
16
+ private initialized;
17
+ private computeVisibleTimeline;
18
+ private buildTimeline;
19
+ constructor(taskService: TaskService, agentService: AgentService, worktreeService: WorktreeService, config: VibingConfig, gitService?: GitService | undefined, persistenceDataDir?: string);
20
+ /**
21
+ * Initialize workflow orchestrator by loading existing workflows
22
+ * Call this after construction to load persisted workflows
23
+ */
24
+ initialize(): Promise<void>;
25
+ private normalizeWorkflow;
26
+ /**
27
+ * Execute a task once (no phase management). Optionally associates with a workflow.
28
+ */
29
+ executeTask(taskId: string, workflowId?: string): Promise<{
30
+ executionId: string;
31
+ }>;
32
+ stopExecution(executionId: string): Promise<void>;
33
+ getExecutionStatus(executionId: string): import("../types/index.js").AgentExecution | null;
34
+ getPersistedExecutionLogs(executionId: string): Promise<{
35
+ metadata: any;
36
+ logs: any[];
37
+ }>;
38
+ getExecutionLogs(executionId: string): string[];
39
+ getTaskExecutions(taskId: string): import("../types/index.js").AgentExecution[];
40
+ getExecutionStats(): {
41
+ total: number;
42
+ pending: number;
43
+ running: number;
44
+ completed: number;
45
+ failed: number;
46
+ cancelled: number;
47
+ worktrees: {
48
+ active: number;
49
+ total: number;
50
+ enabled: boolean;
51
+ };
52
+ };
53
+ listAllExecutions(): Promise<any[]>;
54
+ improveTaskContent(taskId: string, data: {
55
+ title: string;
56
+ type: string;
57
+ priority: string;
58
+ content: string;
59
+ }, options?: {
60
+ executionId?: string;
61
+ workflowId?: string;
62
+ }): Promise<{
63
+ type: string;
64
+ priority: string;
65
+ content: string;
66
+ executionId: string;
67
+ selectedModel?: string;
68
+ }>;
69
+ reviewCode(taskId: string, reviewContext?: string, options?: {
70
+ workflowId?: string;
71
+ provider?: string;
72
+ model?: string;
73
+ }): Promise<{
74
+ executionId: string;
75
+ reviewSummary: string;
76
+ recommendations: string[];
77
+ qualityScore: number;
78
+ }>;
79
+ aiMerge(taskId: string, options?: {
80
+ baseBranch?: string;
81
+ workflowId?: string;
82
+ provider?: string;
83
+ model?: string;
84
+ }): Promise<{
85
+ executionId: string;
86
+ }>;
87
+ listWorktrees(): Promise<(import("../types/index.js").WorktreeInfo & {
88
+ isConnectedToTask: boolean;
89
+ })[]>;
90
+ syncWorktreeState(): Promise<void>;
91
+ getWorktreeInfo(taskId: string): any;
92
+ createWorktree(taskId: string): Promise<any>;
93
+ deleteWorktree(taskId: string, force?: boolean): Promise<void>;
94
+ cleanupWorktree(params: {
95
+ taskId?: string;
96
+ worktreePath?: string;
97
+ branchName?: string;
98
+ isConnectedToTask: boolean;
99
+ force?: boolean;
100
+ }): Promise<void>;
101
+ createPullRequest(taskId: string, baseBranch?: string): Promise<{
102
+ success: boolean;
103
+ pullRequest?: any;
104
+ error?: string;
105
+ }>;
106
+ openInEditor(worktreePath: string): Promise<{
107
+ readonly success: true;
108
+ }>;
109
+ openInTerminal(worktreePath: string): Promise<{
110
+ readonly success: true;
111
+ }>;
112
+ checkWorktreeStatus(workflowId: string): Promise<{
113
+ clean: boolean;
114
+ uncommittedFiles: string[];
115
+ worktreePath?: string;
116
+ }>;
117
+ approveAndContinueReview(workflowId: string): Promise<void>;
118
+ /**
119
+ * Mark workflow as completed by human decision.
120
+ * Does not perform merge/cleanup; simply finalizes the workflow and emits completion.
121
+ */
122
+ markWorkflowCompleted(workflowId: string): Promise<void>;
123
+ ensureInitialized(): Promise<void>;
124
+ /**
125
+ * Start AI-assisted workflow for a task
126
+ */
127
+ startWorkflow(taskId: string, customConfig?: Partial<VibingConfig>): Promise<string>;
128
+ /**
129
+ * Pause a workflow execution
130
+ */
131
+ pauseWorkflow(workflowId: string): Promise<void>;
132
+ /**
133
+ * Reset a workflow by deleting its record and optionally its worktree.
134
+ */
135
+ resetWorkflow(workflowId: string, options?: {
136
+ deleteWorktree?: boolean;
137
+ force?: boolean;
138
+ }): Promise<void>;
139
+ /**
140
+ * Approve workflow changes and proceed to merge
141
+ */
142
+ approveWorkflow(workflowId: string): Promise<void>;
143
+ /**
144
+ * Reject workflow and request changes
145
+ */
146
+ rejectWorkflow(workflowId: string, feedback: string): Promise<void>;
147
+ /**
148
+ * Get workflow status
149
+ */
150
+ getWorkflow(workflowId: string): VibingExecution | null;
151
+ /**
152
+ * Get all workflows for a task
153
+ */
154
+ getTaskWorkflows(taskId: string): VibingExecution[];
155
+ /**
156
+ * Get latest workflow for a task, preferring most recently updated.
157
+ * Falls back to newest startTime when lastUpdatedAt is unavailable.
158
+ */
159
+ getLatestWorkflowByTask(taskId: string): VibingExecution | null;
160
+ /**
161
+ * Transition workflow to new phase
162
+ */
163
+ private transitionToPhase;
164
+ /**
165
+ * Save workflow to persistence layer
166
+ */
167
+ private saveWorkflow;
168
+ /**
169
+ * Execute implementation phase with AI coding
170
+ */
171
+ private executeImplementation;
172
+ /**
173
+ * Public: re-run implementation phase on demand
174
+ * Forces phase to 'implementing' and executes implementation again.
175
+ */
176
+ rerunImplementation(workflowId: string, feedback?: string, providerOverride?: {
177
+ provider?: string;
178
+ model?: string;
179
+ }): Promise<void>;
180
+ /**
181
+ * Get previous phase, preferring the phase where failure occurred
182
+ */
183
+ getPreviousPhase(workflowId: string): VibingPhase | null;
184
+ /**
185
+ * Rerun the phase that led to failure (or lastPhase if available)
186
+ */
187
+ rerunPreviousPhase(workflowId: string): Promise<void>;
188
+ /**
189
+ * Rerun a specific phase programmatically
190
+ */
191
+ rerunPhase(workflowId: string, phase: VibingPhase): Promise<void>;
192
+ /**
193
+ * Reset workflow state from a given phase onward (inclusive).
194
+ * Clears timeline entries, execution IDs, attempts, and phase results for later phases
195
+ * so that a rerun behaves like a fresh run from that step.
196
+ */
197
+ private resetFromPhase;
198
+ /**
199
+ * Perform AI code review of implemented changes
200
+ */
201
+ private performAICodeReview;
202
+ /**
203
+ * Execute AI review as a dedicated phase
204
+ */
205
+ private executeAiReviewPhase;
206
+ /**
207
+ * Execute validation phase with quality checks
208
+ */
209
+ private executeValidation;
210
+ /**
211
+ * Public: run validation phase on demand
212
+ */
213
+ runValidation(workflowId: string): Promise<void>;
214
+ /**
215
+ * Execute merge phase
216
+ */
217
+ private executeMerge;
218
+ /**
219
+ * Public: run merge phase on demand
220
+ * This will attempt merge regardless of current phase.
221
+ */
222
+ runMerge(workflowId: string, options?: {
223
+ provider?: string;
224
+ model?: string;
225
+ }): Promise<void>;
226
+ /**
227
+ * Execute cleanup phase: remove worktree/branch and finalize workflow
228
+ */
229
+ private executeCleanup;
230
+ /**
231
+ * Public: run cleanup phase on demand
232
+ */
233
+ runCleanup(workflowId: string): Promise<void>;
234
+ /**
235
+ * Public: manually skip to next phase
236
+ */
237
+ skipToNextPhase(workflowId: string): Promise<void>;
238
+ /**
239
+ * Wait for an execution to complete
240
+ */
241
+ private waitForExecution;
242
+ /**
243
+ * Wait for the AgentService to emit an executionCreated event for the given task/workflow
244
+ */
245
+ private waitForExecutionCreated;
246
+ /**
247
+ * Get workflow statistics
248
+ */
249
+ getWorkflowStats(): {
250
+ total: number;
251
+ byPhase: Record<VibingPhase, number>;
252
+ active: number;
253
+ completed: number;
254
+ failed: number;
255
+ };
256
+ /**
257
+ * Get workflow persistence information
258
+ */
259
+ getWorkflowPersistenceInfo(): {
260
+ filePath: string;
261
+ workflowCount: number;
262
+ };
263
+ /**
264
+ * Force save all workflows to disk
265
+ */
266
+ saveAllWorkflows(): Promise<void>;
267
+ /**
268
+ * Reload workflows from disk
269
+ */
270
+ reloadWorkflows(): Promise<void>;
271
+ /**
272
+ * Remove workflows by task ID
273
+ */
274
+ removeWorkflowsByTask(taskId: string): Promise<number>;
275
+ /**
276
+ * Get comprehensive workflow statistics
277
+ */
278
+ getDetailedStats(): Promise<{
279
+ memoryStats: {
280
+ total: number;
281
+ byPhase: Record<VibingPhase, number>;
282
+ active: number;
283
+ completed: number;
284
+ failed: number;
285
+ };
286
+ persistenceStats: {
287
+ total: number;
288
+ byPhase: Record<string, number>;
289
+ oldestWorkflow?: string;
290
+ newestWorkflow?: string;
291
+ };
292
+ persistencePath: string;
293
+ }>;
294
+ /**
295
+ * Update workflow options without changing phase
296
+ */
297
+ updateWorkflowOptions(workflowId: string, config: Partial<VibingConfig>): Promise<void>;
298
+ /**
299
+ * Continue workflow execution from current state
300
+ */
301
+ continueWorkflow(workflowId: string): Promise<void>;
302
+ private computeNextActionPhase;
303
+ private requireWorkflow;
304
+ private getAIReviewThreshold;
305
+ private assertPhase;
306
+ private createNewWorkflow;
307
+ private maybeRetryImplementation;
308
+ private handlePhaseFailure;
309
+ /**
310
+ * Get the agent service instance
311
+ */
312
+ getAgentService(): AgentService;
313
+ }