vibeman 0.0.3 → 0.0.5
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/dist/index.js +3 -3
- package/dist/runtime/api/.tsbuildinfo +1 -1
- package/dist/runtime/api/agent/agent-service.d.ts +4 -0
- package/dist/runtime/api/agent/agent-service.js +62 -3
- package/dist/runtime/api/agent/ai-providers/amp-cli-provider.d.ts +38 -0
- package/dist/runtime/api/agent/ai-providers/amp-cli-provider.js +268 -0
- package/dist/runtime/api/agent/ai-providers/codex-cli-provider.js +40 -12
- package/dist/runtime/api/agent/ai-providers/gemini-cli-provider.d.ts +24 -0
- package/dist/runtime/api/agent/ai-providers/gemini-cli-provider.js +291 -0
- package/dist/runtime/api/agent/ai-providers/index.d.ts +3 -3
- package/dist/runtime/api/agent/ai-providers/index.js +3 -1
- package/dist/runtime/api/agent/ai-providers/types.d.ts +5 -2
- package/dist/runtime/api/agent/amp-cli-provider.test.d.ts +1 -0
- package/dist/runtime/api/agent/amp-cli-provider.test.js +99 -0
- package/dist/runtime/api/agent/codex-cli-provider.test.js +10 -8
- package/dist/runtime/api/agent/prompt-service.js +108 -105
- package/dist/runtime/api/agent/prompt-service.test.js +35 -0
- package/dist/runtime/api/agent/routing-policy.d.ts +2 -2
- package/dist/runtime/api/agent/routing-policy.test.js +4 -4
- package/dist/runtime/api/api/routers/ai.d.ts +3 -3
- package/dist/runtime/api/api/routers/executions.d.ts +2 -7
- package/dist/runtime/api/api/routers/executions.js +2 -2
- package/dist/runtime/api/api/routers/provider-config.d.ts +34 -0
- package/dist/runtime/api/api/routers/settings.d.ts +19 -0
- package/dist/runtime/api/api/routers/settings.js +16 -0
- package/dist/runtime/api/api/routers/tasks.d.ts +9 -9
- package/dist/runtime/api/api/routers/workflows.d.ts +12 -12
- package/dist/runtime/api/api/routers/worktrees.d.ts +2 -2
- package/dist/runtime/api/api/trpc.d.ts +16 -16
- package/dist/runtime/api/lib/local-config.d.ts +94 -4
- package/dist/runtime/api/lib/local-config.js +16 -0
- package/dist/runtime/api/lib/provider-detection.d.ts +2 -0
- package/dist/runtime/api/lib/provider-detection.js +83 -1
- package/dist/runtime/api/lib/server/vibeman-info.d.ts +5 -0
- package/dist/runtime/api/lib/server/vibeman-info.js +85 -0
- package/dist/runtime/api/lib/trpc/server.d.ts +63 -33
- package/dist/runtime/api/persistence/execution-log-persistence.d.ts +1 -1
- package/dist/runtime/api/persistence/execution-log-persistence.js +19 -3
- package/dist/runtime/api/router.d.ts +63 -33
- package/dist/runtime/api/settings-service.js +31 -14
- package/dist/runtime/api/tasks/task-file-parser.d.ts +1 -0
- package/dist/runtime/api/tasks/task-file-parser.js +20 -1
- package/dist/runtime/api/tasks/task-updater.d.ts +62 -0
- package/dist/runtime/api/tasks/task-updater.js +260 -0
- package/dist/runtime/api/tasks/task-updater.test.d.ts +1 -0
- package/dist/runtime/api/tasks/task-updater.test.js +303 -0
- package/dist/runtime/api/types/index.d.ts +1 -1
- package/dist/runtime/api/types/settings.d.ts +17 -6
- package/dist/runtime/api/vcs/git-service.d.ts +9 -0
- package/dist/runtime/api/vcs/git-service.js +23 -0
- package/dist/runtime/api/vcs/worktree-service.d.ts +1 -1
- package/dist/runtime/api/vcs/worktree-service.js +22 -10
- package/dist/runtime/api/workflows/quality-pipeline.js +2 -1
- package/dist/runtime/api/workflows/vibing-orchestrator.d.ts +93 -5
- package/dist/runtime/api/workflows/vibing-orchestrator.js +774 -203
- package/dist/runtime/api/workflows/workflow-effects.d.ts +45 -0
- package/dist/runtime/api/workflows/workflow-effects.js +49 -0
- package/dist/runtime/api/workflows/workflow-reconciler.d.ts +65 -0
- package/dist/runtime/api/workflows/workflow-reconciler.js +226 -0
- package/dist/runtime/api/workflows/workflow-reducer.d.ts +26 -0
- package/dist/runtime/api/workflows/workflow-reducer.js +288 -0
- package/dist/runtime/api/workflows/workflow-reducer.test.d.ts +1 -0
- package/dist/runtime/api/workflows/workflow-reducer.test.js +247 -0
- package/dist/runtime/api/workflows/workflow-schema.d.ts +546 -0
- package/dist/runtime/api/workflows/workflow-schema.js +256 -0
- package/dist/runtime/web/.next/BUILD_ID +1 -1
- package/dist/runtime/web/.next/app-build-manifest.json +50 -50
- package/dist/runtime/web/.next/app-path-routes-manifest.json +1 -1
- package/dist/runtime/web/.next/build-manifest.json +14 -14
- package/dist/runtime/web/.next/prerender-manifest.json +3 -3
- package/dist/runtime/web/.next/react-loadable-manifest.json +2 -33
- package/dist/runtime/web/.next/required-server-files.json +5 -5
- package/dist/runtime/web/.next/server/app/.vibeman/assets/images/[...path]/route.js +1 -1
- package/dist/runtime/web/.next/server/app/.vibeman/assets/images/[...path]/route.js.nft.json +1 -1
- package/dist/runtime/web/.next/server/app/.vibeman/assets/images/[...path]/route_client-reference-manifest.js +1 -1
- package/dist/runtime/web/.next/server/app/_not-found/page.js +2 -2
- package/dist/runtime/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/runtime/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/runtime/web/.next/server/app/_not-found.html +2 -2
- package/dist/runtime/web/.next/server/app/_not-found.rsc +12 -12
- package/dist/runtime/web/.next/server/app/api/health/route.js +1 -1
- package/dist/runtime/web/.next/server/app/api/health/route.js.nft.json +1 -1
- package/dist/runtime/web/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/dist/runtime/web/.next/server/app/api/images/[...path]/route.js +1 -1
- package/dist/runtime/web/.next/server/app/api/images/[...path]/route.js.nft.json +1 -1
- package/dist/runtime/web/.next/server/app/api/images/[...path]/route_client-reference-manifest.js +1 -1
- package/dist/runtime/web/.next/server/app/api/upload/route.js +1 -1
- package/dist/runtime/web/.next/server/app/api/upload/route.js.nft.json +1 -1
- package/dist/runtime/web/.next/server/app/api/upload/route_client-reference-manifest.js +1 -1
- package/dist/runtime/web/.next/server/app/index.html +2 -2
- package/dist/runtime/web/.next/server/app/index.rsc +15 -15
- package/dist/runtime/web/.next/server/app/page.js +27 -62
- package/dist/runtime/web/.next/server/app/page.js.nft.json +1 -1
- package/dist/runtime/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/runtime/web/.next/server/app-paths-manifest.json +1 -1
- package/dist/runtime/web/.next/server/chunks/210.js +1 -0
- package/dist/runtime/web/.next/server/chunks/291.js +18 -0
- package/dist/runtime/web/.next/server/chunks/552.js +22 -0
- package/dist/runtime/web/.next/server/chunks/780.js +1 -0
- package/dist/runtime/web/.next/server/chunks/905.js +6 -0
- package/dist/runtime/web/.next/server/chunks/98.js +1 -0
- package/dist/runtime/web/.next/server/middleware-build-manifest.js +1 -1
- package/dist/runtime/web/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/dist/runtime/web/.next/server/pages/404.html +2 -2
- package/dist/runtime/web/.next/server/pages/500.html +1 -1
- package/dist/runtime/web/.next/server/pages/_app.js +1 -1
- package/dist/runtime/web/.next/server/pages/_app.js.nft.json +1 -1
- package/dist/runtime/web/.next/server/pages/_document.js +1 -1
- package/dist/runtime/web/.next/server/pages/_document.js.nft.json +1 -1
- package/dist/runtime/web/.next/server/pages/_error.js +9 -9
- package/dist/runtime/web/.next/server/pages/_error.js.nft.json +1 -1
- package/dist/runtime/web/.next/server/pages-manifest.json +1 -1
- package/dist/runtime/web/.next/server/server-reference-manifest.json +1 -1
- package/dist/runtime/web/.next/server/webpack-runtime.js +1 -1
- package/dist/runtime/web/.next/static/{5_15u1WQCxN1_eHZpldCv → LJFZk_8tvKFN_Ee4HqUuM}/_buildManifest.js +1 -1
- package/dist/runtime/web/.next/static/chunks/05c91ade-7d09b2b280adffd1.js +1 -0
- package/dist/runtime/web/.next/static/chunks/201-51bef3fa8c832e2e.js +1 -0
- package/dist/runtime/web/.next/static/chunks/524-89747ed9b0294f8a.js +1 -0
- package/dist/runtime/web/.next/static/chunks/554-8bec6e9cca6acc67.js +1 -0
- package/dist/runtime/web/.next/static/chunks/764.86e9503a69d45a85.js +1 -0
- package/dist/runtime/web/.next/static/chunks/{87c73c54-09e1ba5c70e60a51.js → 7ab4dc20-239138e0ae7af24a.js} +1 -1
- package/dist/runtime/web/.next/static/chunks/905-342391e3d3a3678f.js +20 -0
- package/dist/runtime/web/.next/static/chunks/a8a5ce16-4edea7df2d9b544a.js +79 -0
- package/dist/runtime/web/.next/static/chunks/{8bb4d8db-3e2aa02b0a2384b9.js → ad74d572-4c1b162e2c15acaa.js} +1 -1
- package/dist/runtime/web/.next/static/chunks/app/.vibeman/assets/images/[...path]/route-7b752a8641f96c1f.js +1 -0
- package/dist/runtime/web/.next/static/chunks/app/_not-found/page-34e66b251c2b5044.js +1 -0
- package/dist/runtime/web/.next/static/chunks/app/api/health/route-7b752a8641f96c1f.js +1 -0
- package/dist/runtime/web/.next/static/chunks/app/api/images/[...path]/route-7b752a8641f96c1f.js +1 -0
- package/dist/runtime/web/.next/static/chunks/app/api/upload/route-7b752a8641f96c1f.js +1 -0
- package/dist/runtime/web/.next/static/chunks/app/layout-df9ac93cb02b2385.js +1 -0
- package/dist/runtime/web/.next/static/chunks/app/page-6610743f7de5f92a.js +1 -0
- package/dist/runtime/web/.next/static/chunks/c25e0690-e9b798b8de667da1.js +1 -0
- package/dist/runtime/web/.next/static/chunks/framework-57157ec4d37f64aa.js +1 -0
- package/dist/runtime/web/.next/static/chunks/main-app-156cc0c60371bd78.js +1 -0
- package/dist/runtime/web/.next/static/chunks/main-df25d367c47b1fec.js +1 -0
- package/dist/runtime/web/.next/static/chunks/pages/_app-9f629a5e1131d19f.js +1 -0
- package/dist/runtime/web/.next/static/chunks/pages/_error-9238238274c7efcd.js +1 -0
- package/dist/runtime/web/.next/static/chunks/webpack-cd50e39b423d1808.js +1 -0
- package/dist/runtime/web/.next/static/css/4fbf378a264bd4ea.css +1 -0
- package/dist/runtime/web/package.json +8 -8
- package/dist/runtime/web/server.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -37
- package/dist/runtime/api/lib/trpc/client.d.ts +0 -1
- package/dist/runtime/api/lib/trpc/client.js +0 -5
- package/dist/runtime/web/.next/server/chunks/217.js +0 -1
- package/dist/runtime/web/.next/server/chunks/383.js +0 -6
- package/dist/runtime/web/.next/server/chunks/458.js +0 -1
- package/dist/runtime/web/.next/server/chunks/576.js +0 -18
- package/dist/runtime/web/.next/server/chunks/635.js +0 -22
- package/dist/runtime/web/.next/server/chunks/761.js +0 -1
- package/dist/runtime/web/.next/server/chunks/777.js +0 -3
- package/dist/runtime/web/.next/server/chunks/825.js +0 -1
- package/dist/runtime/web/.next/server/chunks/838.js +0 -1
- package/dist/runtime/web/.next/server/chunks/973.js +0 -15
- package/dist/runtime/web/.next/static/chunks/18-15c10d3288afef2e.js +0 -1
- package/dist/runtime/web/.next/static/chunks/1c0ca389.537bbe362e3ffbd9.js +0 -3
- package/dist/runtime/web/.next/static/chunks/22747d63-ad5da0c19f4cfe41.js +0 -71
- package/dist/runtime/web/.next/static/chunks/355.056c2645878a799a.js +0 -1
- package/dist/runtime/web/.next/static/chunks/420.a5ccf151c9e2b2f1.js +0 -1
- package/dist/runtime/web/.next/static/chunks/439.1be0c6242fd248d5.js +0 -15
- package/dist/runtime/web/.next/static/chunks/440.c52e7c0f797e22b2.js +0 -1
- package/dist/runtime/web/.next/static/chunks/575-e2478287c27da87b.js +0 -1
- package/dist/runtime/web/.next/static/chunks/691.920d88c115087314.js +0 -1
- package/dist/runtime/web/.next/static/chunks/765-e838910065b50c3d.js +0 -1
- package/dist/runtime/web/.next/static/chunks/823-6f371a6e829adbba.js +0 -63
- package/dist/runtime/web/.next/static/chunks/891cff7f.0f71fc028f87e683.js +0 -1
- package/dist/runtime/web/.next/static/chunks/9af238c7-271a911d4e99ab18.js +0 -1
- package/dist/runtime/web/.next/static/chunks/app/.vibeman/assets/images/[...path]/route-751c9265a65409e5.js +0 -1
- package/dist/runtime/web/.next/static/chunks/app/_not-found/page-1cb74d1cba27d0ab.js +0 -1
- package/dist/runtime/web/.next/static/chunks/app/api/health/route-751c9265a65409e5.js +0 -1
- package/dist/runtime/web/.next/static/chunks/app/api/images/[...path]/route-751c9265a65409e5.js +0 -1
- package/dist/runtime/web/.next/static/chunks/app/api/upload/route-751c9265a65409e5.js +0 -1
- package/dist/runtime/web/.next/static/chunks/app/layout-8435322f09fd0975.js +0 -1
- package/dist/runtime/web/.next/static/chunks/app/page-9fe7d75095b4ccec.js +0 -1
- package/dist/runtime/web/.next/static/chunks/cac567b0-5b77dd12911823cd.js +0 -1
- package/dist/runtime/web/.next/static/chunks/framework-2518f1345b5b2806.js +0 -1
- package/dist/runtime/web/.next/static/chunks/main-17665e5e39de9a8a.js +0 -1
- package/dist/runtime/web/.next/static/chunks/main-app-c0b0f5ba4f7f9d75.js +0 -1
- package/dist/runtime/web/.next/static/chunks/pages/_app-d6f6b3bbc3d81ee1.js +0 -1
- package/dist/runtime/web/.next/static/chunks/pages/_error-75a96cf1997cc3b9.js +0 -1
- package/dist/runtime/web/.next/static/chunks/webpack-c8de37305b4635cf.js +0 -1
- package/dist/runtime/web/.next/static/css/08c950681f1a9a92.css +0 -1
- /package/dist/runtime/web/.next/static/{5_15u1WQCxN1_eHZpldCv → LJFZk_8tvKFN_Ee4HqUuM}/_ssgManifest.js +0 -0
|
@@ -52,6 +52,18 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
52
52
|
lastDetected?: string | undefined;
|
|
53
53
|
detectionMethod?: "explicit" | "PATH" | "common-location" | undefined;
|
|
54
54
|
} | undefined;
|
|
55
|
+
gemini?: {
|
|
56
|
+
binPath?: string | undefined;
|
|
57
|
+
detectedPath?: string | undefined;
|
|
58
|
+
lastDetected?: string | undefined;
|
|
59
|
+
detectionMethod?: "explicit" | "PATH" | "common-location" | undefined;
|
|
60
|
+
} | undefined;
|
|
61
|
+
amp?: {
|
|
62
|
+
binPath?: string | undefined;
|
|
63
|
+
detectedPath?: string | undefined;
|
|
64
|
+
lastDetected?: string | undefined;
|
|
65
|
+
detectionMethod?: "explicit" | "PATH" | "common-location" | undefined;
|
|
66
|
+
} | undefined;
|
|
55
67
|
};
|
|
56
68
|
path: string;
|
|
57
69
|
exists: boolean;
|
|
@@ -84,6 +96,16 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
84
96
|
detectedPath?: string | undefined;
|
|
85
97
|
lastDetected?: string | undefined;
|
|
86
98
|
detectionMethod?: "explicit" | "PATH" | "common-location" | undefined;
|
|
99
|
+
} | {
|
|
100
|
+
binPath?: string | undefined;
|
|
101
|
+
detectedPath?: string | undefined;
|
|
102
|
+
lastDetected?: string | undefined;
|
|
103
|
+
detectionMethod?: "explicit" | "PATH" | "common-location" | undefined;
|
|
104
|
+
} | {
|
|
105
|
+
binPath?: string | undefined;
|
|
106
|
+
detectedPath?: string | undefined;
|
|
107
|
+
lastDetected?: string | undefined;
|
|
108
|
+
detectionMethod?: "explicit" | "PATH" | "common-location" | undefined;
|
|
87
109
|
} | undefined;
|
|
88
110
|
cached: {
|
|
89
111
|
available: boolean;
|
|
@@ -119,7 +141,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
119
141
|
input: void;
|
|
120
142
|
output: {
|
|
121
143
|
defaultProvider: string;
|
|
122
|
-
operations?: Partial<Record<"execute_task" | "quality_checks" | "
|
|
144
|
+
operations?: Partial<Record<"execute_task" | "quality_checks" | "ai_codereview" | "ai_merge" | "improve_task", {
|
|
123
145
|
provider: string;
|
|
124
146
|
options?: {
|
|
125
147
|
temperature?: number | undefined;
|
|
@@ -136,7 +158,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
136
158
|
input: {
|
|
137
159
|
policy: {
|
|
138
160
|
defaultProvider?: string | undefined;
|
|
139
|
-
operations?: Partial<Record<"execute_task" | "quality_checks" | "
|
|
161
|
+
operations?: Partial<Record<"execute_task" | "quality_checks" | "ai_codereview" | "ai_merge" | "improve_task", {
|
|
140
162
|
provider: string;
|
|
141
163
|
options?: {
|
|
142
164
|
temperature?: number | undefined;
|
|
@@ -166,7 +188,6 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
166
188
|
}>;
|
|
167
189
|
setOperationConfig: import("@trpc/server").TRPCMutationProcedure<{
|
|
168
190
|
input: {
|
|
169
|
-
operation: "execute_task" | "quality_checks" | "improve_task" | "ai_merge" | "ai_codereview";
|
|
170
191
|
config: {
|
|
171
192
|
provider: string;
|
|
172
193
|
options?: {
|
|
@@ -177,6 +198,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
177
198
|
model?: string | undefined;
|
|
178
199
|
fallback?: string[] | undefined;
|
|
179
200
|
};
|
|
201
|
+
operation: "execute_task" | "quality_checks" | "ai_codereview" | "ai_merge" | "improve_task";
|
|
180
202
|
};
|
|
181
203
|
output: {
|
|
182
204
|
success: boolean;
|
|
@@ -242,6 +264,19 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
242
264
|
output: boolean;
|
|
243
265
|
meta: object;
|
|
244
266
|
}>;
|
|
267
|
+
getProjectInfo: import("@trpc/server").TRPCQueryProcedure<{
|
|
268
|
+
input: void;
|
|
269
|
+
output: {
|
|
270
|
+
name: string;
|
|
271
|
+
path: string;
|
|
272
|
+
};
|
|
273
|
+
meta: object;
|
|
274
|
+
}>;
|
|
275
|
+
getVibemanInfo: import("@trpc/server").TRPCQueryProcedure<{
|
|
276
|
+
input: void;
|
|
277
|
+
output: import("../server/vibeman-info.js").VibemanInfo;
|
|
278
|
+
meta: object;
|
|
279
|
+
}>;
|
|
245
280
|
getSettings: import("@trpc/server").TRPCQueryProcedure<{
|
|
246
281
|
input: void;
|
|
247
282
|
output: import("../../types/settings.js").VibemanSettings;
|
|
@@ -345,15 +380,14 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
345
380
|
}>;
|
|
346
381
|
updateWorkflowOptions: import("@trpc/server").TRPCMutationProcedure<{
|
|
347
382
|
input: {
|
|
348
|
-
workflowId: string;
|
|
349
383
|
config: {
|
|
350
|
-
autoCommit?: boolean | undefined;
|
|
351
|
-
createPR?: boolean | undefined;
|
|
352
384
|
autoQualityChecks?: boolean | undefined;
|
|
353
385
|
requireHumanApproval?: boolean | undefined;
|
|
386
|
+
aiCodeReview?: boolean | undefined;
|
|
387
|
+
autoCommit?: boolean | undefined;
|
|
388
|
+
createPR?: boolean | undefined;
|
|
354
389
|
stepByStepMode?: boolean | undefined;
|
|
355
390
|
autoMerge?: boolean | undefined;
|
|
356
|
-
aiCodeReview?: boolean | undefined;
|
|
357
391
|
aiRoutingOverrides?: {
|
|
358
392
|
execute_task?: {
|
|
359
393
|
provider?: string | undefined;
|
|
@@ -363,7 +397,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
363
397
|
provider?: string | undefined;
|
|
364
398
|
model?: string | undefined;
|
|
365
399
|
} | undefined;
|
|
366
|
-
|
|
400
|
+
ai_codereview?: {
|
|
367
401
|
provider?: string | undefined;
|
|
368
402
|
model?: string | undefined;
|
|
369
403
|
} | undefined;
|
|
@@ -371,12 +405,13 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
371
405
|
provider?: string | undefined;
|
|
372
406
|
model?: string | undefined;
|
|
373
407
|
} | undefined;
|
|
374
|
-
|
|
408
|
+
improve_task?: {
|
|
375
409
|
provider?: string | undefined;
|
|
376
410
|
model?: string | undefined;
|
|
377
411
|
} | undefined;
|
|
378
412
|
} | undefined;
|
|
379
413
|
};
|
|
414
|
+
workflowId: string;
|
|
380
415
|
};
|
|
381
416
|
output: {
|
|
382
417
|
readonly success: true;
|
|
@@ -387,13 +422,13 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
387
422
|
input: {
|
|
388
423
|
taskId: string;
|
|
389
424
|
config?: {
|
|
390
|
-
autoCommit?: boolean | undefined;
|
|
391
|
-
createPR?: boolean | undefined;
|
|
392
425
|
autoQualityChecks?: boolean | undefined;
|
|
393
426
|
requireHumanApproval?: boolean | undefined;
|
|
427
|
+
aiCodeReview?: boolean | undefined;
|
|
428
|
+
autoCommit?: boolean | undefined;
|
|
429
|
+
createPR?: boolean | undefined;
|
|
394
430
|
stepByStepMode?: boolean | undefined;
|
|
395
431
|
autoMerge?: boolean | undefined;
|
|
396
|
-
aiCodeReview?: boolean | undefined;
|
|
397
432
|
aiRoutingOverrides?: {
|
|
398
433
|
execute_task?: {
|
|
399
434
|
provider?: string | undefined;
|
|
@@ -403,7 +438,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
403
438
|
provider?: string | undefined;
|
|
404
439
|
model?: string | undefined;
|
|
405
440
|
} | undefined;
|
|
406
|
-
|
|
441
|
+
ai_codereview?: {
|
|
407
442
|
provider?: string | undefined;
|
|
408
443
|
model?: string | undefined;
|
|
409
444
|
} | undefined;
|
|
@@ -411,7 +446,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
411
446
|
provider?: string | undefined;
|
|
412
447
|
model?: string | undefined;
|
|
413
448
|
} | undefined;
|
|
414
|
-
|
|
449
|
+
improve_task?: {
|
|
415
450
|
provider?: string | undefined;
|
|
416
451
|
model?: string | undefined;
|
|
417
452
|
} | undefined;
|
|
@@ -539,8 +574,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
539
574
|
input: {
|
|
540
575
|
taskId: string;
|
|
541
576
|
provider?: string | undefined;
|
|
542
|
-
workflowId?: string | undefined;
|
|
543
577
|
model?: string | undefined;
|
|
578
|
+
workflowId?: string | undefined;
|
|
544
579
|
reviewContext?: string | undefined;
|
|
545
580
|
};
|
|
546
581
|
output: {
|
|
@@ -695,9 +730,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
695
730
|
cleanupWorktree: import("@trpc/server").TRPCMutationProcedure<{
|
|
696
731
|
input: {
|
|
697
732
|
isConnectedToTask: boolean;
|
|
698
|
-
taskId?: string | undefined;
|
|
699
|
-
force?: boolean | undefined;
|
|
700
733
|
worktreePath?: string | undefined;
|
|
734
|
+
force?: boolean | undefined;
|
|
735
|
+
taskId?: string | undefined;
|
|
701
736
|
branchName?: string | undefined;
|
|
702
737
|
};
|
|
703
738
|
output: {
|
|
@@ -765,20 +800,15 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
765
800
|
}>;
|
|
766
801
|
improveTask: import("@trpc/server").TRPCMutationProcedure<{
|
|
767
802
|
input: {
|
|
768
|
-
title: string;
|
|
769
803
|
type: "feature" | "bug" | "chore" | "refactor" | "test" | "doc";
|
|
770
804
|
priority: "low" | "medium" | "high";
|
|
805
|
+
title: string;
|
|
771
806
|
content: string;
|
|
772
807
|
taskId: string;
|
|
773
808
|
executionId?: string | undefined;
|
|
774
809
|
};
|
|
775
810
|
output: {
|
|
776
|
-
|
|
777
|
-
priority: string;
|
|
778
|
-
content: string;
|
|
779
|
-
title?: string;
|
|
780
|
-
executionId: string;
|
|
781
|
-
selectedModel?: string;
|
|
811
|
+
readonly executionId: string;
|
|
782
812
|
};
|
|
783
813
|
meta: object;
|
|
784
814
|
}>;
|
|
@@ -796,11 +826,11 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
796
826
|
}>;
|
|
797
827
|
listTasks: import("@trpc/server").TRPCQueryProcedure<{
|
|
798
828
|
input: {
|
|
799
|
-
status?: "review" | "in-progress" | "backlog" | "done" | undefined;
|
|
800
829
|
type?: "feature" | "bug" | "chore" | "refactor" | "test" | "doc" | undefined;
|
|
801
|
-
|
|
830
|
+
status?: "backlog" | "in-progress" | "review" | "done" | undefined;
|
|
802
831
|
priority?: "low" | "medium" | "high" | undefined;
|
|
803
832
|
search?: string | undefined;
|
|
833
|
+
tags?: string[] | undefined;
|
|
804
834
|
includeDeleted?: boolean | undefined;
|
|
805
835
|
onlyDeleted?: boolean | undefined;
|
|
806
836
|
} | undefined;
|
|
@@ -816,15 +846,15 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
816
846
|
}>;
|
|
817
847
|
createTask: import("@trpc/server").TRPCMutationProcedure<{
|
|
818
848
|
input: {
|
|
819
|
-
title: string;
|
|
820
849
|
type: "feature" | "bug" | "chore" | "refactor" | "test" | "doc";
|
|
850
|
+
title: string;
|
|
821
851
|
content: string;
|
|
822
|
-
status?: "
|
|
852
|
+
status?: "backlog" | "in-progress" | "review" | "done" | undefined;
|
|
853
|
+
priority?: "low" | "medium" | "high" | undefined;
|
|
823
854
|
id?: string | undefined;
|
|
824
855
|
tags?: string[] | undefined;
|
|
825
856
|
due_date?: string | undefined;
|
|
826
857
|
assignee?: string[] | undefined;
|
|
827
|
-
priority?: "low" | "medium" | "high" | undefined;
|
|
828
858
|
comments?: string[] | undefined;
|
|
829
859
|
};
|
|
830
860
|
output: import("../../types/index.js").Task;
|
|
@@ -833,13 +863,13 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
833
863
|
updateTask: import("@trpc/server").TRPCMutationProcedure<{
|
|
834
864
|
input: {
|
|
835
865
|
id: string;
|
|
836
|
-
status?: "review" | "in-progress" | "backlog" | "done" | undefined;
|
|
837
|
-
title?: string | undefined;
|
|
838
866
|
type?: "feature" | "bug" | "chore" | "refactor" | "test" | "doc" | undefined;
|
|
867
|
+
status?: "backlog" | "in-progress" | "review" | "done" | undefined;
|
|
868
|
+
priority?: "low" | "medium" | "high" | undefined;
|
|
869
|
+
title?: string | undefined;
|
|
839
870
|
tags?: string[] | undefined;
|
|
840
871
|
due_date?: string | undefined;
|
|
841
872
|
assignee?: string[] | undefined;
|
|
842
|
-
priority?: "low" | "medium" | "high" | undefined;
|
|
843
873
|
comments?: string[] | undefined;
|
|
844
874
|
content?: string | undefined;
|
|
845
875
|
deleted_at?: string | undefined;
|
|
@@ -858,7 +888,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
858
888
|
}>;
|
|
859
889
|
moveTask: import("@trpc/server").TRPCMutationProcedure<{
|
|
860
890
|
input: {
|
|
861
|
-
status: "
|
|
891
|
+
status: "backlog" | "in-progress" | "review" | "done";
|
|
862
892
|
id: string;
|
|
863
893
|
};
|
|
864
894
|
output: import("../../types/index.js").Task;
|
|
@@ -35,7 +35,7 @@ export declare class ExecutionLogPersistence {
|
|
|
35
35
|
private ensureLogsDir;
|
|
36
36
|
/**
|
|
37
37
|
* Get execution log directory path, grouped by task ID
|
|
38
|
-
* .vibeman/execution-logs/{taskId}/{executionId-YYYYMMDD_HHMMSS}/
|
|
38
|
+
* .vibeman/.local/execution-logs/{taskId}/{executionId-YYYYMMDD_HHMMSS}/
|
|
39
39
|
*/
|
|
40
40
|
private getExecutionDirFor;
|
|
41
41
|
/**
|
|
@@ -6,7 +6,7 @@ import { getVibeDir } from '../lib/server/project-root.js';
|
|
|
6
6
|
export class ExecutionLogPersistence {
|
|
7
7
|
constructor() {
|
|
8
8
|
this.dataDir = getVibeDir();
|
|
9
|
-
this.logsDir = path.join(this.dataDir, 'execution-logs');
|
|
9
|
+
this.logsDir = path.join(this.dataDir, '.local/execution-logs');
|
|
10
10
|
this.indexDb = new DatabaseService(path.join(this.logsDir, 'index.json'));
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
@@ -22,7 +22,7 @@ export class ExecutionLogPersistence {
|
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* Get execution log directory path, grouped by task ID
|
|
25
|
-
* .vibeman/execution-logs/{taskId}/{executionId-YYYYMMDD_HHMMSS}/
|
|
25
|
+
* .vibeman/.local/execution-logs/{taskId}/{executionId-YYYYMMDD_HHMMSS}/
|
|
26
26
|
*/
|
|
27
27
|
getExecutionDirFor(execution) {
|
|
28
28
|
const timestamp = new Date()
|
|
@@ -43,7 +43,23 @@ export class ExecutionLogPersistence {
|
|
|
43
43
|
// Prefer index lookup (non-throwing)
|
|
44
44
|
const idx = await this.indexDb.get(executionId).catch(() => undefined);
|
|
45
45
|
if (idx?.dirPath) {
|
|
46
|
-
|
|
46
|
+
try {
|
|
47
|
+
const stats = await fs.stat(idx.dirPath);
|
|
48
|
+
if (stats.isDirectory()) {
|
|
49
|
+
return idx.dirPath;
|
|
50
|
+
}
|
|
51
|
+
log.debug('Removing stale execution index entry (not a directory)', { executionId, dirPath: idx.dirPath }, 'execution-log-persistence:findExecutionDir');
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
if (error && error.code !== 'ENOENT') {
|
|
55
|
+
log.error('Failed to access execution directory from index', error, 'execution-log-persistence:findExecutionDir');
|
|
56
|
+
return idx.dirPath;
|
|
57
|
+
}
|
|
58
|
+
log.debug('Removing stale execution index entry (missing directory)', { executionId, dirPath: idx.dirPath }, 'execution-log-persistence:findExecutionDir');
|
|
59
|
+
}
|
|
60
|
+
await this.indexDb.delete(executionId).catch((deleteError) => {
|
|
61
|
+
log.error('Failed to delete stale execution index entry', deleteError, 'execution-log-persistence:findExecutionDir');
|
|
62
|
+
});
|
|
47
63
|
}
|
|
48
64
|
// Walk task directories
|
|
49
65
|
const taskDirs = await fs.readdir(this.logsDir, { withFileTypes: true });
|
|
@@ -55,6 +55,18 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
55
55
|
lastDetected?: string | undefined;
|
|
56
56
|
detectionMethod?: "explicit" | "PATH" | "common-location" | undefined;
|
|
57
57
|
} | undefined;
|
|
58
|
+
gemini?: {
|
|
59
|
+
binPath?: string | undefined;
|
|
60
|
+
detectedPath?: string | undefined;
|
|
61
|
+
lastDetected?: string | undefined;
|
|
62
|
+
detectionMethod?: "explicit" | "PATH" | "common-location" | undefined;
|
|
63
|
+
} | undefined;
|
|
64
|
+
amp?: {
|
|
65
|
+
binPath?: string | undefined;
|
|
66
|
+
detectedPath?: string | undefined;
|
|
67
|
+
lastDetected?: string | undefined;
|
|
68
|
+
detectionMethod?: "explicit" | "PATH" | "common-location" | undefined;
|
|
69
|
+
} | undefined;
|
|
58
70
|
};
|
|
59
71
|
path: string;
|
|
60
72
|
exists: boolean;
|
|
@@ -87,6 +99,16 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
87
99
|
detectedPath?: string | undefined;
|
|
88
100
|
lastDetected?: string | undefined;
|
|
89
101
|
detectionMethod?: "explicit" | "PATH" | "common-location" | undefined;
|
|
102
|
+
} | {
|
|
103
|
+
binPath?: string | undefined;
|
|
104
|
+
detectedPath?: string | undefined;
|
|
105
|
+
lastDetected?: string | undefined;
|
|
106
|
+
detectionMethod?: "explicit" | "PATH" | "common-location" | undefined;
|
|
107
|
+
} | {
|
|
108
|
+
binPath?: string | undefined;
|
|
109
|
+
detectedPath?: string | undefined;
|
|
110
|
+
lastDetected?: string | undefined;
|
|
111
|
+
detectionMethod?: "explicit" | "PATH" | "common-location" | undefined;
|
|
90
112
|
} | undefined;
|
|
91
113
|
cached: {
|
|
92
114
|
available: boolean;
|
|
@@ -122,7 +144,7 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
122
144
|
input: void;
|
|
123
145
|
output: {
|
|
124
146
|
defaultProvider: string;
|
|
125
|
-
operations?: Partial<Record<"execute_task" | "quality_checks" | "
|
|
147
|
+
operations?: Partial<Record<"execute_task" | "quality_checks" | "ai_codereview" | "ai_merge" | "improve_task", {
|
|
126
148
|
provider: string;
|
|
127
149
|
options?: {
|
|
128
150
|
temperature?: number | undefined;
|
|
@@ -139,7 +161,7 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
139
161
|
input: {
|
|
140
162
|
policy: {
|
|
141
163
|
defaultProvider?: string | undefined;
|
|
142
|
-
operations?: Partial<Record<"execute_task" | "quality_checks" | "
|
|
164
|
+
operations?: Partial<Record<"execute_task" | "quality_checks" | "ai_codereview" | "ai_merge" | "improve_task", {
|
|
143
165
|
provider: string;
|
|
144
166
|
options?: {
|
|
145
167
|
temperature?: number | undefined;
|
|
@@ -169,7 +191,6 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
169
191
|
}>;
|
|
170
192
|
setOperationConfig: import("@trpc/server").TRPCMutationProcedure<{
|
|
171
193
|
input: {
|
|
172
|
-
operation: "execute_task" | "quality_checks" | "improve_task" | "ai_merge" | "ai_codereview";
|
|
173
194
|
config: {
|
|
174
195
|
provider: string;
|
|
175
196
|
options?: {
|
|
@@ -180,6 +201,7 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
180
201
|
model?: string | undefined;
|
|
181
202
|
fallback?: string[] | undefined;
|
|
182
203
|
};
|
|
204
|
+
operation: "execute_task" | "quality_checks" | "ai_codereview" | "ai_merge" | "improve_task";
|
|
183
205
|
};
|
|
184
206
|
output: {
|
|
185
207
|
success: boolean;
|
|
@@ -245,6 +267,19 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
245
267
|
output: boolean;
|
|
246
268
|
meta: object;
|
|
247
269
|
}>;
|
|
270
|
+
getProjectInfo: import("@trpc/server").TRPCQueryProcedure<{
|
|
271
|
+
input: void;
|
|
272
|
+
output: {
|
|
273
|
+
name: string;
|
|
274
|
+
path: string;
|
|
275
|
+
};
|
|
276
|
+
meta: object;
|
|
277
|
+
}>;
|
|
278
|
+
getVibemanInfo: import("@trpc/server").TRPCQueryProcedure<{
|
|
279
|
+
input: void;
|
|
280
|
+
output: import("./lib/server/vibeman-info.js").VibemanInfo;
|
|
281
|
+
meta: object;
|
|
282
|
+
}>;
|
|
248
283
|
getSettings: import("@trpc/server").TRPCQueryProcedure<{
|
|
249
284
|
input: void;
|
|
250
285
|
output: import("./types/settings.js").VibemanSettings;
|
|
@@ -348,15 +383,14 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
348
383
|
}>;
|
|
349
384
|
updateWorkflowOptions: import("@trpc/server").TRPCMutationProcedure<{
|
|
350
385
|
input: {
|
|
351
|
-
workflowId: string;
|
|
352
386
|
config: {
|
|
353
|
-
autoCommit?: boolean | undefined;
|
|
354
|
-
createPR?: boolean | undefined;
|
|
355
387
|
autoQualityChecks?: boolean | undefined;
|
|
356
388
|
requireHumanApproval?: boolean | undefined;
|
|
389
|
+
aiCodeReview?: boolean | undefined;
|
|
390
|
+
autoCommit?: boolean | undefined;
|
|
391
|
+
createPR?: boolean | undefined;
|
|
357
392
|
stepByStepMode?: boolean | undefined;
|
|
358
393
|
autoMerge?: boolean | undefined;
|
|
359
|
-
aiCodeReview?: boolean | undefined;
|
|
360
394
|
aiRoutingOverrides?: {
|
|
361
395
|
execute_task?: {
|
|
362
396
|
provider?: string | undefined;
|
|
@@ -366,7 +400,7 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
366
400
|
provider?: string | undefined;
|
|
367
401
|
model?: string | undefined;
|
|
368
402
|
} | undefined;
|
|
369
|
-
|
|
403
|
+
ai_codereview?: {
|
|
370
404
|
provider?: string | undefined;
|
|
371
405
|
model?: string | undefined;
|
|
372
406
|
} | undefined;
|
|
@@ -374,12 +408,13 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
374
408
|
provider?: string | undefined;
|
|
375
409
|
model?: string | undefined;
|
|
376
410
|
} | undefined;
|
|
377
|
-
|
|
411
|
+
improve_task?: {
|
|
378
412
|
provider?: string | undefined;
|
|
379
413
|
model?: string | undefined;
|
|
380
414
|
} | undefined;
|
|
381
415
|
} | undefined;
|
|
382
416
|
};
|
|
417
|
+
workflowId: string;
|
|
383
418
|
};
|
|
384
419
|
output: {
|
|
385
420
|
readonly success: true;
|
|
@@ -390,13 +425,13 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
390
425
|
input: {
|
|
391
426
|
taskId: string;
|
|
392
427
|
config?: {
|
|
393
|
-
autoCommit?: boolean | undefined;
|
|
394
|
-
createPR?: boolean | undefined;
|
|
395
428
|
autoQualityChecks?: boolean | undefined;
|
|
396
429
|
requireHumanApproval?: boolean | undefined;
|
|
430
|
+
aiCodeReview?: boolean | undefined;
|
|
431
|
+
autoCommit?: boolean | undefined;
|
|
432
|
+
createPR?: boolean | undefined;
|
|
397
433
|
stepByStepMode?: boolean | undefined;
|
|
398
434
|
autoMerge?: boolean | undefined;
|
|
399
|
-
aiCodeReview?: boolean | undefined;
|
|
400
435
|
aiRoutingOverrides?: {
|
|
401
436
|
execute_task?: {
|
|
402
437
|
provider?: string | undefined;
|
|
@@ -406,7 +441,7 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
406
441
|
provider?: string | undefined;
|
|
407
442
|
model?: string | undefined;
|
|
408
443
|
} | undefined;
|
|
409
|
-
|
|
444
|
+
ai_codereview?: {
|
|
410
445
|
provider?: string | undefined;
|
|
411
446
|
model?: string | undefined;
|
|
412
447
|
} | undefined;
|
|
@@ -414,7 +449,7 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
414
449
|
provider?: string | undefined;
|
|
415
450
|
model?: string | undefined;
|
|
416
451
|
} | undefined;
|
|
417
|
-
|
|
452
|
+
improve_task?: {
|
|
418
453
|
provider?: string | undefined;
|
|
419
454
|
model?: string | undefined;
|
|
420
455
|
} | undefined;
|
|
@@ -542,8 +577,8 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
542
577
|
input: {
|
|
543
578
|
taskId: string;
|
|
544
579
|
provider?: string | undefined;
|
|
545
|
-
workflowId?: string | undefined;
|
|
546
580
|
model?: string | undefined;
|
|
581
|
+
workflowId?: string | undefined;
|
|
547
582
|
reviewContext?: string | undefined;
|
|
548
583
|
};
|
|
549
584
|
output: {
|
|
@@ -698,9 +733,9 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
698
733
|
cleanupWorktree: import("@trpc/server").TRPCMutationProcedure<{
|
|
699
734
|
input: {
|
|
700
735
|
isConnectedToTask: boolean;
|
|
701
|
-
taskId?: string | undefined;
|
|
702
|
-
force?: boolean | undefined;
|
|
703
736
|
worktreePath?: string | undefined;
|
|
737
|
+
force?: boolean | undefined;
|
|
738
|
+
taskId?: string | undefined;
|
|
704
739
|
branchName?: string | undefined;
|
|
705
740
|
};
|
|
706
741
|
output: {
|
|
@@ -768,20 +803,15 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
768
803
|
}>;
|
|
769
804
|
improveTask: import("@trpc/server").TRPCMutationProcedure<{
|
|
770
805
|
input: {
|
|
771
|
-
title: string;
|
|
772
806
|
type: "feature" | "bug" | "chore" | "refactor" | "test" | "doc";
|
|
773
807
|
priority: "low" | "medium" | "high";
|
|
808
|
+
title: string;
|
|
774
809
|
content: string;
|
|
775
810
|
taskId: string;
|
|
776
811
|
executionId?: string | undefined;
|
|
777
812
|
};
|
|
778
813
|
output: {
|
|
779
|
-
|
|
780
|
-
priority: string;
|
|
781
|
-
content: string;
|
|
782
|
-
title?: string;
|
|
783
|
-
executionId: string;
|
|
784
|
-
selectedModel?: string;
|
|
814
|
+
readonly executionId: string;
|
|
785
815
|
};
|
|
786
816
|
meta: object;
|
|
787
817
|
}>;
|
|
@@ -799,11 +829,11 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
799
829
|
}>;
|
|
800
830
|
listTasks: import("@trpc/server").TRPCQueryProcedure<{
|
|
801
831
|
input: {
|
|
802
|
-
status?: "review" | "in-progress" | "backlog" | "done" | undefined;
|
|
803
832
|
type?: "feature" | "bug" | "chore" | "refactor" | "test" | "doc" | undefined;
|
|
804
|
-
|
|
833
|
+
status?: "backlog" | "in-progress" | "review" | "done" | undefined;
|
|
805
834
|
priority?: "low" | "medium" | "high" | undefined;
|
|
806
835
|
search?: string | undefined;
|
|
836
|
+
tags?: string[] | undefined;
|
|
807
837
|
includeDeleted?: boolean | undefined;
|
|
808
838
|
onlyDeleted?: boolean | undefined;
|
|
809
839
|
} | undefined;
|
|
@@ -819,15 +849,15 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
819
849
|
}>;
|
|
820
850
|
createTask: import("@trpc/server").TRPCMutationProcedure<{
|
|
821
851
|
input: {
|
|
822
|
-
title: string;
|
|
823
852
|
type: "feature" | "bug" | "chore" | "refactor" | "test" | "doc";
|
|
853
|
+
title: string;
|
|
824
854
|
content: string;
|
|
825
|
-
status?: "
|
|
855
|
+
status?: "backlog" | "in-progress" | "review" | "done" | undefined;
|
|
856
|
+
priority?: "low" | "medium" | "high" | undefined;
|
|
826
857
|
id?: string | undefined;
|
|
827
858
|
tags?: string[] | undefined;
|
|
828
859
|
due_date?: string | undefined;
|
|
829
860
|
assignee?: string[] | undefined;
|
|
830
|
-
priority?: "low" | "medium" | "high" | undefined;
|
|
831
861
|
comments?: string[] | undefined;
|
|
832
862
|
};
|
|
833
863
|
output: import("./types/index.js").Task;
|
|
@@ -836,13 +866,13 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
836
866
|
updateTask: import("@trpc/server").TRPCMutationProcedure<{
|
|
837
867
|
input: {
|
|
838
868
|
id: string;
|
|
839
|
-
status?: "review" | "in-progress" | "backlog" | "done" | undefined;
|
|
840
|
-
title?: string | undefined;
|
|
841
869
|
type?: "feature" | "bug" | "chore" | "refactor" | "test" | "doc" | undefined;
|
|
870
|
+
status?: "backlog" | "in-progress" | "review" | "done" | undefined;
|
|
871
|
+
priority?: "low" | "medium" | "high" | undefined;
|
|
872
|
+
title?: string | undefined;
|
|
842
873
|
tags?: string[] | undefined;
|
|
843
874
|
due_date?: string | undefined;
|
|
844
875
|
assignee?: string[] | undefined;
|
|
845
|
-
priority?: "low" | "medium" | "high" | undefined;
|
|
846
876
|
comments?: string[] | undefined;
|
|
847
877
|
content?: string | undefined;
|
|
848
878
|
deleted_at?: string | undefined;
|
|
@@ -861,7 +891,7 @@ export declare function createRouter(taskService: TaskService, gitService: GitSe
|
|
|
861
891
|
}>;
|
|
862
892
|
moveTask: import("@trpc/server").TRPCMutationProcedure<{
|
|
863
893
|
input: {
|
|
864
|
-
status: "
|
|
894
|
+
status: "backlog" | "in-progress" | "review" | "done";
|
|
865
895
|
id: string;
|
|
866
896
|
};
|
|
867
897
|
output: import("./types/index.js").Task;
|
|
@@ -16,17 +16,32 @@ const CLAUDE_ALLOWED_MODELS = [
|
|
|
16
16
|
'claude-opus-4-1-20250805',
|
|
17
17
|
'claude-3-5-haiku-20241022',
|
|
18
18
|
];
|
|
19
|
+
const CODEX_BASE_MODELS = [
|
|
20
|
+
'gpt-5.1-codex-max',
|
|
21
|
+
'gpt-5.1-codex',
|
|
22
|
+
'gpt-5.1-codex-mini',
|
|
23
|
+
'gpt-5.2',
|
|
24
|
+
'gpt-5.1',
|
|
25
|
+
];
|
|
26
|
+
const CODEX_REASONING_SUFFIXES = ['low', 'medium', 'high', 'extra-high'];
|
|
19
27
|
const CODEX_ALLOWED_MODELS = [
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
'
|
|
25
|
-
'
|
|
26
|
-
'
|
|
27
|
-
'
|
|
28
|
+
...CODEX_BASE_MODELS,
|
|
29
|
+
...CODEX_BASE_MODELS.flatMap((base) => CODEX_REASONING_SUFFIXES.map((suffix) => `${base}-${suffix}`)),
|
|
30
|
+
];
|
|
31
|
+
const GEMINI_ALLOWED_MODELS = [
|
|
32
|
+
'gemini-3-pro-preview',
|
|
33
|
+
'gemini-3-flash-preview',
|
|
34
|
+
'gemini-2.5-pro',
|
|
35
|
+
'gemini-2.5-flash',
|
|
36
|
+
'gemini-2.5-flash-lite',
|
|
37
|
+
];
|
|
38
|
+
const AUTO_ALLOWED_MODELS = ['auto'];
|
|
39
|
+
const MODEL_ENUM = [
|
|
40
|
+
...CLAUDE_ALLOWED_MODELS,
|
|
41
|
+
...CODEX_ALLOWED_MODELS,
|
|
42
|
+
...GEMINI_ALLOWED_MODELS,
|
|
43
|
+
...AUTO_ALLOWED_MODELS,
|
|
28
44
|
];
|
|
29
|
-
const MODEL_ENUM = [...CLAUDE_ALLOWED_MODELS, ...CODEX_ALLOWED_MODELS];
|
|
30
45
|
const ROUTABLE_OPERATIONS = [
|
|
31
46
|
'execute_task',
|
|
32
47
|
'quality_checks',
|
|
@@ -48,20 +63,20 @@ const RoutingOperationSchema = z.object({
|
|
|
48
63
|
});
|
|
49
64
|
const RoutingPolicySettingsSchema = z
|
|
50
65
|
.object({
|
|
51
|
-
defaultProvider: z.enum(['claude-code', 'codex']).optional(),
|
|
66
|
+
defaultProvider: z.enum(['claude-code', 'codex', 'gemini', 'amp']).optional(),
|
|
52
67
|
operations: z.record(z.enum(ROUTABLE_OPERATIONS), RoutingOperationSchema).optional(),
|
|
53
68
|
})
|
|
54
69
|
.optional();
|
|
55
70
|
const VibemanSettingsSchema = z.object({
|
|
56
71
|
agents: z.object({
|
|
57
|
-
defaultProvider: z.enum(['claude-code', 'codex']),
|
|
72
|
+
defaultProvider: z.enum(['claude-code', 'codex', 'gemini', 'amp']),
|
|
58
73
|
codingAgent: z.object({
|
|
59
|
-
provider: z.enum(['claude-code', 'codex']),
|
|
74
|
+
provider: z.enum(['claude-code', 'codex', 'gemini', 'amp']),
|
|
60
75
|
model: z.enum(MODEL_ENUM),
|
|
61
76
|
maxTokens: z.number().min(256).max(10000000000000).optional(),
|
|
62
77
|
}),
|
|
63
78
|
judgeAgent: z.object({
|
|
64
|
-
provider: z.enum(['claude-code', 'codex']),
|
|
79
|
+
provider: z.enum(['claude-code', 'codex', 'gemini', 'amp']),
|
|
65
80
|
model: z.enum(MODEL_ENUM),
|
|
66
81
|
maxTokens: z.number().min(256).max(10000000000000).optional(),
|
|
67
82
|
reviewThresholdScore: z.number().min(0).max(100),
|
|
@@ -76,6 +91,8 @@ const VibemanSettingsSchema = z.object({
|
|
|
76
91
|
.object({
|
|
77
92
|
claudeCode: z.object({ binPath: z.string().min(1).optional() }).optional(),
|
|
78
93
|
codex: z.object({ binPath: z.string().min(1).optional() }).optional(),
|
|
94
|
+
gemini: z.object({ binPath: z.string().min(1).optional() }).optional(),
|
|
95
|
+
amp: z.object({ binPath: z.string().min(1).optional() }).optional(),
|
|
79
96
|
})
|
|
80
97
|
.optional(),
|
|
81
98
|
routingPolicy: RoutingPolicySettingsSchema,
|
|
@@ -210,7 +227,7 @@ export class SettingsService extends EventEmitter {
|
|
|
210
227
|
super();
|
|
211
228
|
this.settings = { ...DEFAULT_SETTINGS };
|
|
212
229
|
this.initialized = false;
|
|
213
|
-
const settingsDir = config.settingsDir ?? '.vibeman';
|
|
230
|
+
const settingsDir = config.settingsDir ?? '.vibeman/.local';
|
|
214
231
|
const settingsFileName = config.settingsFileName ?? 'settings.json';
|
|
215
232
|
// Resolve settings path relative to the repo project root (not package CWD)
|
|
216
233
|
const projectRoot = getProjectRoot();
|