vibeman 0.0.0 → 0.0.2

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