vibeman 0.0.1 → 0.0.3
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 +5 -7
- package/dist/runtime/api/.tsbuildinfo +1 -1
- package/dist/runtime/api/agent/agent-service.d.ts +18 -19
- package/dist/runtime/api/agent/agent-service.js +61 -58
- package/dist/runtime/api/agent/ai-providers/claude-code-adapter.d.ts +2 -2
- package/dist/runtime/api/agent/ai-providers/claude-code-adapter.js +25 -36
- package/dist/runtime/api/agent/ai-providers/codex-cli-provider.d.ts +2 -0
- package/dist/runtime/api/agent/ai-providers/codex-cli-provider.js +109 -43
- package/dist/runtime/api/agent/ai-providers/types.d.ts +2 -0
- package/dist/runtime/api/agent/codex-cli-provider.test.js +83 -1
- package/dist/runtime/api/agent/parsers.d.ts +1 -0
- package/dist/runtime/api/agent/parsers.js +75 -8
- package/dist/runtime/api/agent/prompt-service.d.ts +14 -1
- package/dist/runtime/api/agent/prompt-service.js +123 -14
- package/dist/runtime/api/agent/prompt-service.test.js +230 -0
- package/dist/runtime/api/agent/routing-policy.d.ts +25 -42
- package/dist/runtime/api/agent/routing-policy.js +82 -132
- package/dist/runtime/api/agent/routing-policy.test.js +63 -0
- package/dist/runtime/api/api/routers/ai.d.ts +19 -7
- package/dist/runtime/api/api/routers/ai.js +9 -23
- package/dist/runtime/api/api/routers/executions.d.ts +4 -4
- package/dist/runtime/api/api/routers/executions.js +12 -21
- package/dist/runtime/api/api/routers/provider-config.d.ts +165 -0
- package/dist/runtime/api/api/routers/provider-config.js +252 -0
- package/dist/runtime/api/api/routers/tasks.d.ts +9 -9
- package/dist/runtime/api/api/routers/workflows.d.ts +23 -16
- package/dist/runtime/api/api/routers/workflows.js +30 -27
- package/dist/runtime/api/api/routers/worktrees.d.ts +4 -5
- package/dist/runtime/api/api/routers/worktrees.js +11 -11
- package/dist/runtime/api/api/trpc.d.ts +16 -16
- package/dist/runtime/api/index.js +2 -10
- package/dist/runtime/api/lib/local-config.d.ts +245 -0
- package/dist/runtime/api/lib/local-config.js +288 -0
- package/dist/runtime/api/lib/provider-detection.d.ts +59 -0
- package/dist/runtime/api/lib/provider-detection.js +244 -0
- package/dist/runtime/api/lib/server/bootstrap.d.ts +38 -0
- package/dist/runtime/api/lib/server/bootstrap.js +197 -0
- package/dist/runtime/api/lib/server/project-root.js +24 -1
- package/dist/runtime/api/lib/trpc/server.d.ts +143 -30
- package/dist/runtime/api/lib/trpc/server.js +8 -8
- package/dist/runtime/api/lib/trpc/ws-server.js +2 -2
- package/dist/runtime/api/router.d.ts +144 -31
- package/dist/runtime/api/router.js +9 -31
- package/dist/runtime/api/settings-service.js +51 -1
- package/dist/runtime/api/types/index.d.ts +8 -1
- package/dist/runtime/api/types/settings.d.ts +15 -2
- package/dist/runtime/api/workflows/vibing-orchestrator.d.ts +8 -3
- package/dist/runtime/api/workflows/vibing-orchestrator.js +214 -184
- package/dist/runtime/web/.next/BUILD_ID +1 -1
- package/dist/runtime/web/.next/app-build-manifest.json +19 -12
- package/dist/runtime/web/.next/app-path-routes-manifest.json +2 -1
- package/dist/runtime/web/.next/build-manifest.json +2 -2
- package/dist/runtime/web/.next/prerender-manifest.json +10 -10
- package/dist/runtime/web/.next/routes-manifest.json +8 -0
- package/dist/runtime/web/.next/server/app/.vibeman/assets/images/[...path]/route.js +1 -0
- package/dist/runtime/web/.next/server/app/.vibeman/assets/images/[...path]/route.js.nft.json +1 -0
- package/dist/runtime/web/.next/server/app/.vibeman/assets/images/[...path]/route_client-reference-manifest.js +1 -0
- 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 +5 -5
- package/dist/runtime/web/.next/server/app/api/health/route.js +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_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_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 +6 -6
- package/dist/runtime/web/.next/server/app/page.js +21 -21
- package/dist/runtime/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/runtime/web/.next/server/app-paths-manifest.json +2 -1
- package/dist/runtime/web/.next/server/chunks/458.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-manifest.json +1 -1
- package/dist/runtime/web/.next/server/server-reference-manifest.json +1 -1
- package/dist/runtime/web/.next/static/5_15u1WQCxN1_eHZpldCv/_buildManifest.js +1 -0
- package/dist/runtime/web/.next/static/chunks/{277-0142a939f08738c3.js → 823-6f371a6e829adbba.js} +1 -1
- package/dist/runtime/web/.next/static/chunks/app/.vibeman/assets/images/[...path]/route-751c9265a65409e5.js +1 -0
- package/dist/runtime/web/.next/static/chunks/app/api/health/route-751c9265a65409e5.js +1 -0
- package/dist/runtime/web/.next/static/chunks/app/api/images/[...path]/route-751c9265a65409e5.js +1 -0
- package/dist/runtime/web/.next/static/chunks/app/api/upload/route-751c9265a65409e5.js +1 -0
- package/dist/runtime/web/.next/static/chunks/app/{layout-dc0cfd29075b2160.js → layout-8435322f09fd0975.js} +1 -1
- package/dist/runtime/web/.next/static/chunks/app/page-9fe7d75095b4ccec.js +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -1
- package/dist/runtime/api/lib/image-paste-drop-extension.d.ts +0 -26
- package/dist/runtime/api/lib/image-paste-drop-extension.js +0 -125
- package/dist/runtime/api/lib/markdown-utils.d.ts +0 -8
- package/dist/runtime/api/lib/markdown-utils.js +0 -282
- package/dist/runtime/api/lib/markdown-utils.test.js +0 -348
- package/dist/runtime/api/lib/tiptap-utils.clamp-selection.test.js +0 -27
- package/dist/runtime/api/lib/tiptap-utils.d.ts +0 -130
- package/dist/runtime/api/lib/tiptap-utils.js +0 -327
- package/dist/runtime/web/.next/static/1HR8N0rJkCvFRtbTPJMyH/_buildManifest.js +0 -1
- package/dist/runtime/web/.next/static/chunks/app/api/health/route-105a61ae865ba536.js +0 -1
- package/dist/runtime/web/.next/static/chunks/app/api/images/[...path]/route-105a61ae865ba536.js +0 -1
- package/dist/runtime/web/.next/static/chunks/app/api/upload/route-105a61ae865ba536.js +0 -1
- package/dist/runtime/web/.next/static/chunks/app/page-f34a8b196b18850b.js +0 -1
- /package/dist/runtime/api/{lib/markdown-utils.test.d.ts → agent/prompt-service.test.d.ts} +0 -0
- /package/dist/runtime/api/{lib/tiptap-utils.clamp-selection.test.d.ts → agent/routing-policy.test.d.ts} +0 -0
- /package/dist/runtime/web/.next/static/{1HR8N0rJkCvFRtbTPJMyH → 5_15u1WQCxN1_eHZpldCv}/_ssgManifest.js +0 -0
|
@@ -1,12 +1,104 @@
|
|
|
1
1
|
import type { TaskService } from './tasks/task-service.js';
|
|
2
2
|
import type { GitService } from './vcs/git-service.js';
|
|
3
3
|
import type { VibingOrchestrator } from './workflows/vibing-orchestrator.js';
|
|
4
|
-
export declare function createRouter(taskService: TaskService, gitService
|
|
4
|
+
export declare function createRouter(taskService: TaskService, gitService: GitService, vibingOrchestrator: VibingOrchestrator): import("@trpc/server").TRPCBuiltRouter<{
|
|
5
5
|
ctx: import("./api/trpc.js").Context;
|
|
6
6
|
meta: object;
|
|
7
7
|
errorShape: import("@trpc/server").TRPCDefaultErrorShape;
|
|
8
8
|
transformer: true;
|
|
9
9
|
}, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
|
|
10
|
+
detectAllProviders: import("@trpc/server").TRPCQueryProcedure<{
|
|
11
|
+
input: void;
|
|
12
|
+
output: Record<string, import("./lib/provider-detection.js").DetectionResult>;
|
|
13
|
+
meta: object;
|
|
14
|
+
}>;
|
|
15
|
+
detectProvider: import("@trpc/server").TRPCQueryProcedure<{
|
|
16
|
+
input: {
|
|
17
|
+
provider: string;
|
|
18
|
+
};
|
|
19
|
+
output: import("./lib/provider-detection.js").DetectionResult;
|
|
20
|
+
meta: object;
|
|
21
|
+
}>;
|
|
22
|
+
setProviderPath: import("@trpc/server").TRPCMutationProcedure<{
|
|
23
|
+
input: {
|
|
24
|
+
path: string;
|
|
25
|
+
provider: string;
|
|
26
|
+
};
|
|
27
|
+
output: {
|
|
28
|
+
success: boolean;
|
|
29
|
+
result: import("./lib/provider-detection.js").DetectionResult;
|
|
30
|
+
};
|
|
31
|
+
meta: object;
|
|
32
|
+
}>;
|
|
33
|
+
clearProviderPath: import("@trpc/server").TRPCMutationProcedure<{
|
|
34
|
+
input: {
|
|
35
|
+
provider: string;
|
|
36
|
+
};
|
|
37
|
+
output: {
|
|
38
|
+
success: boolean;
|
|
39
|
+
};
|
|
40
|
+
meta: object;
|
|
41
|
+
}>;
|
|
42
|
+
getLocalConfigInfo: import("@trpc/server").TRPCQueryProcedure<{
|
|
43
|
+
input: void;
|
|
44
|
+
output: {
|
|
45
|
+
providers: {
|
|
46
|
+
'claude-code'?: {
|
|
47
|
+
binPath?: string | undefined;
|
|
48
|
+
detectedPath?: string | undefined;
|
|
49
|
+
lastDetected?: string | undefined;
|
|
50
|
+
detectionMethod?: "explicit" | "PATH" | "common-location" | undefined;
|
|
51
|
+
} | undefined;
|
|
52
|
+
codex?: {
|
|
53
|
+
binPath?: string | undefined;
|
|
54
|
+
detectedPath?: string | undefined;
|
|
55
|
+
lastDetected?: string | undefined;
|
|
56
|
+
detectionMethod?: "explicit" | "PATH" | "common-location" | undefined;
|
|
57
|
+
} | undefined;
|
|
58
|
+
};
|
|
59
|
+
path: string;
|
|
60
|
+
exists: boolean;
|
|
61
|
+
size?: number;
|
|
62
|
+
};
|
|
63
|
+
meta: object;
|
|
64
|
+
}>;
|
|
65
|
+
clearValidationCache: import("@trpc/server").TRPCMutationProcedure<{
|
|
66
|
+
input: void;
|
|
67
|
+
output: {
|
|
68
|
+
success: boolean;
|
|
69
|
+
};
|
|
70
|
+
meta: object;
|
|
71
|
+
}>;
|
|
72
|
+
getProviderDiagnostics: import("@trpc/server").TRPCQueryProcedure<{
|
|
73
|
+
input: void;
|
|
74
|
+
output: {
|
|
75
|
+
localConfigPath: string;
|
|
76
|
+
localConfigExists: boolean;
|
|
77
|
+
providers: {
|
|
78
|
+
provider: string;
|
|
79
|
+
detection: import("./lib/provider-detection.js").DetectionResult;
|
|
80
|
+
localConfig: {
|
|
81
|
+
binPath?: string | undefined;
|
|
82
|
+
detectedPath?: string | undefined;
|
|
83
|
+
lastDetected?: string | undefined;
|
|
84
|
+
detectionMethod?: "explicit" | "PATH" | "common-location" | undefined;
|
|
85
|
+
} | {
|
|
86
|
+
binPath?: string | undefined;
|
|
87
|
+
detectedPath?: string | undefined;
|
|
88
|
+
lastDetected?: string | undefined;
|
|
89
|
+
detectionMethod?: "explicit" | "PATH" | "common-location" | undefined;
|
|
90
|
+
} | undefined;
|
|
91
|
+
cached: {
|
|
92
|
+
available: boolean;
|
|
93
|
+
error: string | undefined;
|
|
94
|
+
version: string | undefined;
|
|
95
|
+
checkedAt: string;
|
|
96
|
+
isFresh: boolean;
|
|
97
|
+
} | null;
|
|
98
|
+
}[];
|
|
99
|
+
};
|
|
100
|
+
meta: object;
|
|
101
|
+
}>;
|
|
10
102
|
listProviders: import("@trpc/server").TRPCQueryProcedure<{
|
|
11
103
|
input: void;
|
|
12
104
|
output: {
|
|
@@ -28,19 +120,31 @@ export declare function createRouter(taskService: TaskService, gitService?: GitS
|
|
|
28
120
|
}>;
|
|
29
121
|
getRoutingPolicy: import("@trpc/server").TRPCQueryProcedure<{
|
|
30
122
|
input: void;
|
|
31
|
-
output:
|
|
123
|
+
output: {
|
|
124
|
+
defaultProvider: string;
|
|
125
|
+
operations?: Partial<Record<"execute_task" | "quality_checks" | "improve_task" | "ai_merge" | "ai_codereview", {
|
|
126
|
+
provider: string;
|
|
127
|
+
options?: {
|
|
128
|
+
temperature?: number | undefined;
|
|
129
|
+
maxTokens?: number | undefined;
|
|
130
|
+
tools?: string[] | undefined;
|
|
131
|
+
} | undefined;
|
|
132
|
+
model?: string | undefined;
|
|
133
|
+
fallback?: string[] | undefined;
|
|
134
|
+
}>> | undefined;
|
|
135
|
+
};
|
|
32
136
|
meta: object;
|
|
33
137
|
}>;
|
|
34
138
|
updateRoutingPolicy: import("@trpc/server").TRPCMutationProcedure<{
|
|
35
139
|
input: {
|
|
36
140
|
policy: {
|
|
37
141
|
defaultProvider?: string | undefined;
|
|
38
|
-
operations?: Partial<Record<"execute_task" | "
|
|
142
|
+
operations?: Partial<Record<"execute_task" | "quality_checks" | "improve_task" | "ai_merge" | "ai_codereview", {
|
|
39
143
|
provider: string;
|
|
40
144
|
options?: {
|
|
145
|
+
temperature?: number | undefined;
|
|
41
146
|
maxTokens?: number | undefined;
|
|
42
147
|
tools?: string[] | undefined;
|
|
43
|
-
temperature?: number | undefined;
|
|
44
148
|
} | undefined;
|
|
45
149
|
model?: string | undefined;
|
|
46
150
|
fallback?: string[] | undefined;
|
|
@@ -65,17 +169,17 @@ export declare function createRouter(taskService: TaskService, gitService?: GitS
|
|
|
65
169
|
}>;
|
|
66
170
|
setOperationConfig: import("@trpc/server").TRPCMutationProcedure<{
|
|
67
171
|
input: {
|
|
172
|
+
operation: "execute_task" | "quality_checks" | "improve_task" | "ai_merge" | "ai_codereview";
|
|
68
173
|
config: {
|
|
69
174
|
provider: string;
|
|
70
175
|
options?: {
|
|
176
|
+
temperature?: number | undefined;
|
|
71
177
|
maxTokens?: number | undefined;
|
|
72
178
|
tools?: string[] | undefined;
|
|
73
|
-
temperature?: number | undefined;
|
|
74
179
|
} | undefined;
|
|
75
180
|
model?: string | undefined;
|
|
76
181
|
fallback?: string[] | undefined;
|
|
77
182
|
};
|
|
78
|
-
operation: "execute_task" | "improve_task" | "ai_codereview" | "ai_merge";
|
|
79
183
|
};
|
|
80
184
|
output: {
|
|
81
185
|
success: boolean;
|
|
@@ -244,24 +348,25 @@ export declare function createRouter(taskService: TaskService, gitService?: GitS
|
|
|
244
348
|
}>;
|
|
245
349
|
updateWorkflowOptions: import("@trpc/server").TRPCMutationProcedure<{
|
|
246
350
|
input: {
|
|
351
|
+
workflowId: string;
|
|
247
352
|
config: {
|
|
353
|
+
autoCommit?: boolean | undefined;
|
|
354
|
+
createPR?: boolean | undefined;
|
|
248
355
|
autoQualityChecks?: boolean | undefined;
|
|
249
356
|
requireHumanApproval?: boolean | undefined;
|
|
250
|
-
aiCodeReview?: boolean | undefined;
|
|
251
|
-
autoCommit?: boolean | undefined;
|
|
252
357
|
stepByStepMode?: boolean | undefined;
|
|
253
|
-
createPR?: boolean | undefined;
|
|
254
358
|
autoMerge?: boolean | undefined;
|
|
359
|
+
aiCodeReview?: boolean | undefined;
|
|
255
360
|
aiRoutingOverrides?: {
|
|
256
361
|
execute_task?: {
|
|
257
362
|
provider?: string | undefined;
|
|
258
363
|
model?: string | undefined;
|
|
259
364
|
} | undefined;
|
|
260
|
-
|
|
365
|
+
quality_checks?: {
|
|
261
366
|
provider?: string | undefined;
|
|
262
367
|
model?: string | undefined;
|
|
263
368
|
} | undefined;
|
|
264
|
-
|
|
369
|
+
improve_task?: {
|
|
265
370
|
provider?: string | undefined;
|
|
266
371
|
model?: string | undefined;
|
|
267
372
|
} | undefined;
|
|
@@ -269,9 +374,12 @@ export declare function createRouter(taskService: TaskService, gitService?: GitS
|
|
|
269
374
|
provider?: string | undefined;
|
|
270
375
|
model?: string | undefined;
|
|
271
376
|
} | undefined;
|
|
377
|
+
ai_codereview?: {
|
|
378
|
+
provider?: string | undefined;
|
|
379
|
+
model?: string | undefined;
|
|
380
|
+
} | undefined;
|
|
272
381
|
} | undefined;
|
|
273
382
|
};
|
|
274
|
-
workflowId: string;
|
|
275
383
|
};
|
|
276
384
|
output: {
|
|
277
385
|
readonly success: true;
|
|
@@ -282,23 +390,23 @@ export declare function createRouter(taskService: TaskService, gitService?: GitS
|
|
|
282
390
|
input: {
|
|
283
391
|
taskId: string;
|
|
284
392
|
config?: {
|
|
393
|
+
autoCommit?: boolean | undefined;
|
|
394
|
+
createPR?: boolean | undefined;
|
|
285
395
|
autoQualityChecks?: boolean | undefined;
|
|
286
396
|
requireHumanApproval?: boolean | undefined;
|
|
287
|
-
aiCodeReview?: boolean | undefined;
|
|
288
|
-
autoCommit?: boolean | undefined;
|
|
289
397
|
stepByStepMode?: boolean | undefined;
|
|
290
|
-
createPR?: boolean | undefined;
|
|
291
398
|
autoMerge?: boolean | undefined;
|
|
399
|
+
aiCodeReview?: boolean | undefined;
|
|
292
400
|
aiRoutingOverrides?: {
|
|
293
401
|
execute_task?: {
|
|
294
402
|
provider?: string | undefined;
|
|
295
403
|
model?: string | undefined;
|
|
296
404
|
} | undefined;
|
|
297
|
-
|
|
405
|
+
quality_checks?: {
|
|
298
406
|
provider?: string | undefined;
|
|
299
407
|
model?: string | undefined;
|
|
300
408
|
} | undefined;
|
|
301
|
-
|
|
409
|
+
improve_task?: {
|
|
302
410
|
provider?: string | undefined;
|
|
303
411
|
model?: string | undefined;
|
|
304
412
|
} | undefined;
|
|
@@ -306,6 +414,10 @@ export declare function createRouter(taskService: TaskService, gitService?: GitS
|
|
|
306
414
|
provider?: string | undefined;
|
|
307
415
|
model?: string | undefined;
|
|
308
416
|
} | undefined;
|
|
417
|
+
ai_codereview?: {
|
|
418
|
+
provider?: string | undefined;
|
|
419
|
+
model?: string | undefined;
|
|
420
|
+
} | undefined;
|
|
309
421
|
} | undefined;
|
|
310
422
|
} | undefined;
|
|
311
423
|
};
|
|
@@ -426,12 +538,12 @@ export declare function createRouter(taskService: TaskService, gitService?: GitS
|
|
|
426
538
|
output: import("./types/index.js").VibingExecution | null;
|
|
427
539
|
meta: object;
|
|
428
540
|
}>;
|
|
429
|
-
|
|
541
|
+
aiReviewCode: import("@trpc/server").TRPCMutationProcedure<{
|
|
430
542
|
input: {
|
|
431
543
|
taskId: string;
|
|
432
544
|
provider?: string | undefined;
|
|
433
|
-
model?: string | undefined;
|
|
434
545
|
workflowId?: string | undefined;
|
|
546
|
+
model?: string | undefined;
|
|
435
547
|
reviewContext?: string | undefined;
|
|
436
548
|
};
|
|
437
549
|
output: {
|
|
@@ -586,9 +698,9 @@ export declare function createRouter(taskService: TaskService, gitService?: GitS
|
|
|
586
698
|
cleanupWorktree: import("@trpc/server").TRPCMutationProcedure<{
|
|
587
699
|
input: {
|
|
588
700
|
isConnectedToTask: boolean;
|
|
589
|
-
worktreePath?: string | undefined;
|
|
590
|
-
force?: boolean | undefined;
|
|
591
701
|
taskId?: string | undefined;
|
|
702
|
+
force?: boolean | undefined;
|
|
703
|
+
worktreePath?: string | undefined;
|
|
592
704
|
branchName?: string | undefined;
|
|
593
705
|
};
|
|
594
706
|
output: {
|
|
@@ -656,9 +768,9 @@ export declare function createRouter(taskService: TaskService, gitService?: GitS
|
|
|
656
768
|
}>;
|
|
657
769
|
improveTask: import("@trpc/server").TRPCMutationProcedure<{
|
|
658
770
|
input: {
|
|
771
|
+
title: string;
|
|
659
772
|
type: "feature" | "bug" | "chore" | "refactor" | "test" | "doc";
|
|
660
773
|
priority: "low" | "medium" | "high";
|
|
661
|
-
title: string;
|
|
662
774
|
content: string;
|
|
663
775
|
taskId: string;
|
|
664
776
|
executionId?: string | undefined;
|
|
@@ -667,6 +779,7 @@ export declare function createRouter(taskService: TaskService, gitService?: GitS
|
|
|
667
779
|
type: string;
|
|
668
780
|
priority: string;
|
|
669
781
|
content: string;
|
|
782
|
+
title?: string;
|
|
670
783
|
executionId: string;
|
|
671
784
|
selectedModel?: string;
|
|
672
785
|
};
|
|
@@ -686,11 +799,11 @@ export declare function createRouter(taskService: TaskService, gitService?: GitS
|
|
|
686
799
|
}>;
|
|
687
800
|
listTasks: import("@trpc/server").TRPCQueryProcedure<{
|
|
688
801
|
input: {
|
|
802
|
+
status?: "review" | "in-progress" | "backlog" | "done" | undefined;
|
|
689
803
|
type?: "feature" | "bug" | "chore" | "refactor" | "test" | "doc" | undefined;
|
|
690
|
-
|
|
804
|
+
tags?: string[] | undefined;
|
|
691
805
|
priority?: "low" | "medium" | "high" | undefined;
|
|
692
806
|
search?: string | undefined;
|
|
693
|
-
tags?: string[] | undefined;
|
|
694
807
|
includeDeleted?: boolean | undefined;
|
|
695
808
|
onlyDeleted?: boolean | undefined;
|
|
696
809
|
} | undefined;
|
|
@@ -706,15 +819,15 @@ export declare function createRouter(taskService: TaskService, gitService?: GitS
|
|
|
706
819
|
}>;
|
|
707
820
|
createTask: import("@trpc/server").TRPCMutationProcedure<{
|
|
708
821
|
input: {
|
|
709
|
-
type: "feature" | "bug" | "chore" | "refactor" | "test" | "doc";
|
|
710
822
|
title: string;
|
|
823
|
+
type: "feature" | "bug" | "chore" | "refactor" | "test" | "doc";
|
|
711
824
|
content: string;
|
|
712
|
-
status?: "
|
|
713
|
-
priority?: "low" | "medium" | "high" | undefined;
|
|
825
|
+
status?: "review" | "in-progress" | "backlog" | "done" | undefined;
|
|
714
826
|
id?: string | undefined;
|
|
715
827
|
tags?: string[] | undefined;
|
|
716
828
|
due_date?: string | undefined;
|
|
717
829
|
assignee?: string[] | undefined;
|
|
830
|
+
priority?: "low" | "medium" | "high" | undefined;
|
|
718
831
|
comments?: string[] | undefined;
|
|
719
832
|
};
|
|
720
833
|
output: import("./types/index.js").Task;
|
|
@@ -723,13 +836,13 @@ export declare function createRouter(taskService: TaskService, gitService?: GitS
|
|
|
723
836
|
updateTask: import("@trpc/server").TRPCMutationProcedure<{
|
|
724
837
|
input: {
|
|
725
838
|
id: string;
|
|
726
|
-
|
|
727
|
-
status?: "backlog" | "in-progress" | "review" | "done" | undefined;
|
|
728
|
-
priority?: "low" | "medium" | "high" | undefined;
|
|
839
|
+
status?: "review" | "in-progress" | "backlog" | "done" | undefined;
|
|
729
840
|
title?: string | undefined;
|
|
841
|
+
type?: "feature" | "bug" | "chore" | "refactor" | "test" | "doc" | undefined;
|
|
730
842
|
tags?: string[] | undefined;
|
|
731
843
|
due_date?: string | undefined;
|
|
732
844
|
assignee?: string[] | undefined;
|
|
845
|
+
priority?: "low" | "medium" | "high" | undefined;
|
|
733
846
|
comments?: string[] | undefined;
|
|
734
847
|
content?: string | undefined;
|
|
735
848
|
deleted_at?: string | undefined;
|
|
@@ -748,7 +861,7 @@ export declare function createRouter(taskService: TaskService, gitService?: GitS
|
|
|
748
861
|
}>;
|
|
749
862
|
moveTask: import("@trpc/server").TRPCMutationProcedure<{
|
|
750
863
|
input: {
|
|
751
|
-
status: "
|
|
864
|
+
status: "review" | "in-progress" | "backlog" | "done";
|
|
752
865
|
id: string;
|
|
753
866
|
};
|
|
754
867
|
output: import("./types/index.js").Task;
|
|
@@ -6,44 +6,21 @@ import { buildWorkflowRoutes } from './api/routers/workflows.js';
|
|
|
6
6
|
import { buildGitRoutes } from './api/routers/git.js';
|
|
7
7
|
import { buildAIRoutes } from './api/routers/ai.js';
|
|
8
8
|
import { buildSettingsRoutes } from './api/routers/settings.js';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
if (vibingOrchestrator)
|
|
12
|
-
return vibingOrchestrator;
|
|
13
|
-
if (getVibingOrchestratorAsync)
|
|
14
|
-
return await getVibingOrchestratorAsync();
|
|
15
|
-
throw new Error('Vibing orchestrator unavailable');
|
|
16
|
-
};
|
|
17
|
-
const requireOrchestratorSync = () => {
|
|
18
|
-
if (vibingOrchestrator)
|
|
19
|
-
return vibingOrchestrator;
|
|
20
|
-
throw new Error('Vibing orchestrator unavailable');
|
|
21
|
-
};
|
|
9
|
+
import { buildProviderConfigRoutes } from './api/routers/provider-config.js';
|
|
10
|
+
export function createRouter(taskService, gitService, vibingOrchestrator) {
|
|
22
11
|
const tasks = buildTaskRoutes(taskService, gitService);
|
|
23
12
|
const executions = buildExecutionRoutes({
|
|
24
13
|
taskService,
|
|
25
|
-
|
|
26
|
-
requireOrchestratorSync,
|
|
14
|
+
vibingOrchestrator,
|
|
27
15
|
});
|
|
28
|
-
const worktrees = buildWorktreeRoutes({
|
|
29
|
-
const workflows = buildWorkflowRoutes({
|
|
16
|
+
const worktrees = buildWorktreeRoutes({ vibingOrchestrator });
|
|
17
|
+
const workflows = buildWorkflowRoutes({ vibingOrchestrator });
|
|
30
18
|
const settings = buildSettingsRoutes();
|
|
31
|
-
|
|
32
|
-
const gitFallback = gitService ||
|
|
33
|
-
new Proxy({}, {
|
|
34
|
-
get() {
|
|
35
|
-
return () => {
|
|
36
|
-
throw new Error('Git service unavailable in this environment');
|
|
37
|
-
};
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
const git = buildGitRoutes(taskService, gitFallback);
|
|
19
|
+
const git = buildGitRoutes(taskService, gitService);
|
|
41
20
|
const ai = buildAIRoutes({
|
|
42
|
-
|
|
43
|
-
const orchestrator = requireOrchestratorSync();
|
|
44
|
-
return orchestrator.getAgentService();
|
|
45
|
-
},
|
|
21
|
+
agentService: vibingOrchestrator.getAgentService(),
|
|
46
22
|
});
|
|
23
|
+
const providerConfig = buildProviderConfigRoutes();
|
|
47
24
|
return router({
|
|
48
25
|
...tasks,
|
|
49
26
|
...executions,
|
|
@@ -52,5 +29,6 @@ export function createRouter(taskService, gitService, vibingOrchestrator, getVib
|
|
|
52
29
|
...settings,
|
|
53
30
|
...git,
|
|
54
31
|
...ai,
|
|
32
|
+
...providerConfig,
|
|
55
33
|
});
|
|
56
34
|
}
|
|
@@ -16,7 +16,42 @@ const CLAUDE_ALLOWED_MODELS = [
|
|
|
16
16
|
'claude-opus-4-1-20250805',
|
|
17
17
|
'claude-3-5-haiku-20241022',
|
|
18
18
|
];
|
|
19
|
-
const
|
|
19
|
+
const CODEX_ALLOWED_MODELS = [
|
|
20
|
+
'gpt-5',
|
|
21
|
+
'gpt-5-low',
|
|
22
|
+
'gpt-5-medium',
|
|
23
|
+
'gpt-5-high',
|
|
24
|
+
'gpt-5-codex',
|
|
25
|
+
'gpt-5-codex-low',
|
|
26
|
+
'gpt-5-codex-medium',
|
|
27
|
+
'gpt-5-codex-high',
|
|
28
|
+
];
|
|
29
|
+
const MODEL_ENUM = [...CLAUDE_ALLOWED_MODELS, ...CODEX_ALLOWED_MODELS];
|
|
30
|
+
const ROUTABLE_OPERATIONS = [
|
|
31
|
+
'execute_task',
|
|
32
|
+
'quality_checks',
|
|
33
|
+
'ai_codereview',
|
|
34
|
+
'ai_merge',
|
|
35
|
+
'improve_task',
|
|
36
|
+
];
|
|
37
|
+
const RoutingOperationSchema = z.object({
|
|
38
|
+
provider: z.string(),
|
|
39
|
+
model: z.string().optional(),
|
|
40
|
+
options: z
|
|
41
|
+
.object({
|
|
42
|
+
temperature: z.number().min(0).max(2).optional(),
|
|
43
|
+
maxTokens: z.number().positive().optional(),
|
|
44
|
+
tools: z.array(z.string()).optional(),
|
|
45
|
+
})
|
|
46
|
+
.optional(),
|
|
47
|
+
fallback: z.array(z.string()).optional(),
|
|
48
|
+
});
|
|
49
|
+
const RoutingPolicySettingsSchema = z
|
|
50
|
+
.object({
|
|
51
|
+
defaultProvider: z.enum(['claude-code', 'codex']).optional(),
|
|
52
|
+
operations: z.record(z.enum(ROUTABLE_OPERATIONS), RoutingOperationSchema).optional(),
|
|
53
|
+
})
|
|
54
|
+
.optional();
|
|
20
55
|
const VibemanSettingsSchema = z.object({
|
|
21
56
|
agents: z.object({
|
|
22
57
|
defaultProvider: z.enum(['claude-code', 'codex']),
|
|
@@ -35,12 +70,15 @@ const VibemanSettingsSchema = z.object({
|
|
|
35
70
|
systemPrompt: z.string().min(10),
|
|
36
71
|
taskPrompt: z.string().min(10),
|
|
37
72
|
}),
|
|
73
|
+
// Note: Provider binary paths are now stored in local config (.vibeman/.local/)
|
|
74
|
+
// This field is kept for backwards compatibility but deprecated
|
|
38
75
|
providers: z
|
|
39
76
|
.object({
|
|
40
77
|
claudeCode: z.object({ binPath: z.string().min(1).optional() }).optional(),
|
|
41
78
|
codex: z.object({ binPath: z.string().min(1).optional() }).optional(),
|
|
42
79
|
})
|
|
43
80
|
.optional(),
|
|
81
|
+
routingPolicy: RoutingPolicySettingsSchema,
|
|
44
82
|
}),
|
|
45
83
|
defaultWorkflow: z.object({
|
|
46
84
|
autoQualityChecks: z.boolean(),
|
|
@@ -114,6 +152,10 @@ const DEFAULT_SETTINGS = {
|
|
|
114
152
|
taskPrompt: 'Please implement the following task with attention to quality and testing.',
|
|
115
153
|
},
|
|
116
154
|
providers: {},
|
|
155
|
+
routingPolicy: {
|
|
156
|
+
defaultProvider: 'claude-code',
|
|
157
|
+
operations: {},
|
|
158
|
+
},
|
|
117
159
|
},
|
|
118
160
|
defaultWorkflow: {
|
|
119
161
|
autoQualityChecks: true,
|
|
@@ -556,6 +598,14 @@ export class SettingsService extends EventEmitter {
|
|
|
556
598
|
...DEFAULT_SETTINGS.agents.defaultPrompts,
|
|
557
599
|
...settings.agents?.defaultPrompts,
|
|
558
600
|
},
|
|
601
|
+
routingPolicy: {
|
|
602
|
+
...DEFAULT_SETTINGS.agents.routingPolicy,
|
|
603
|
+
...settings.agents?.routingPolicy,
|
|
604
|
+
operations: {
|
|
605
|
+
...(DEFAULT_SETTINGS.agents.routingPolicy?.operations ?? {}),
|
|
606
|
+
...(settings.agents?.routingPolicy?.operations ?? {}),
|
|
607
|
+
},
|
|
608
|
+
},
|
|
559
609
|
},
|
|
560
610
|
defaultWorkflow: {
|
|
561
611
|
...DEFAULT_SETTINGS.defaultWorkflow,
|
|
@@ -109,6 +109,13 @@ export interface VibingExecution {
|
|
|
109
109
|
previousExecutionId?: string;
|
|
110
110
|
}>;
|
|
111
111
|
qualityResults?: QualityResults;
|
|
112
|
+
aiReviewResult?: {
|
|
113
|
+
executionId: string;
|
|
114
|
+
reviewSummary: string;
|
|
115
|
+
recommendations: string[];
|
|
116
|
+
qualityScore: number;
|
|
117
|
+
timestamp?: string;
|
|
118
|
+
};
|
|
112
119
|
links?: {
|
|
113
120
|
prUrl?: string;
|
|
114
121
|
prNumber?: number;
|
|
@@ -164,7 +171,7 @@ export interface VibingConfig {
|
|
|
164
171
|
timeout?: number;
|
|
165
172
|
enabled?: boolean;
|
|
166
173
|
}>;
|
|
167
|
-
aiRoutingOverrides?: Partial<Record<'execute_task' | '
|
|
174
|
+
aiRoutingOverrides?: Partial<Record<'execute_task' | 'quality_checks' | 'ai_codereview' | 'ai_merge' | 'improve_task', {
|
|
168
175
|
provider?: string;
|
|
169
176
|
model?: string;
|
|
170
177
|
}>>;
|
|
@@ -3,12 +3,12 @@ export interface VibemanSettings {
|
|
|
3
3
|
defaultProvider: 'claude-code' | 'codex';
|
|
4
4
|
codingAgent: {
|
|
5
5
|
provider: 'claude-code' | 'codex';
|
|
6
|
-
model: 'claude-sonnet-4-20250514' | 'claude-opus-4-1-20250805' | 'claude-3-5-haiku-20241022' | 'gpt-5';
|
|
6
|
+
model: 'claude-sonnet-4-20250514' | 'claude-opus-4-1-20250805' | 'claude-3-5-haiku-20241022' | 'gpt-5' | 'gpt-5-low' | 'gpt-5-medium' | 'gpt-5-high' | 'gpt-5-codex' | 'gpt-5-codex-low' | 'gpt-5-codex-medium' | 'gpt-5-codex-high';
|
|
7
7
|
maxTokens?: number;
|
|
8
8
|
};
|
|
9
9
|
judgeAgent: {
|
|
10
10
|
provider: 'claude-code' | 'codex';
|
|
11
|
-
model: 'claude-sonnet-4-20250514' | 'claude-opus-4-1-20250805' | 'claude-3-5-haiku-20241022' | 'gpt-5';
|
|
11
|
+
model: 'claude-sonnet-4-20250514' | 'claude-opus-4-1-20250805' | 'claude-3-5-haiku-20241022' | 'gpt-5' | 'gpt-5-low' | 'gpt-5-medium' | 'gpt-5-high' | 'gpt-5-codex' | 'gpt-5-codex-low' | 'gpt-5-codex-medium' | 'gpt-5-codex-high';
|
|
12
12
|
maxTokens?: number;
|
|
13
13
|
reviewThresholdScore: number;
|
|
14
14
|
};
|
|
@@ -24,6 +24,19 @@ export interface VibemanSettings {
|
|
|
24
24
|
binPath?: string;
|
|
25
25
|
};
|
|
26
26
|
};
|
|
27
|
+
routingPolicy?: {
|
|
28
|
+
defaultProvider?: 'claude-code' | 'codex';
|
|
29
|
+
operations?: Partial<Record<'execute_task' | 'quality_checks' | 'ai_codereview' | 'ai_merge' | 'improve_task', {
|
|
30
|
+
provider: string;
|
|
31
|
+
model?: string;
|
|
32
|
+
options?: {
|
|
33
|
+
temperature?: number;
|
|
34
|
+
maxTokens?: number;
|
|
35
|
+
tools?: string[];
|
|
36
|
+
};
|
|
37
|
+
fallback?: string[];
|
|
38
|
+
}>>;
|
|
39
|
+
};
|
|
27
40
|
};
|
|
28
41
|
defaultWorkflow: {
|
|
29
42
|
autoQualityChecks: boolean;
|
|
@@ -4,6 +4,7 @@ import { TaskService } from '../tasks/task-service.js';
|
|
|
4
4
|
import { AgentService } from '../agent/agent-service.js';
|
|
5
5
|
import { WorktreeService } from '../vcs/worktree-service.js';
|
|
6
6
|
import { GitService } from '../vcs/git-service.js';
|
|
7
|
+
import type { ResolvedProvider } from '../agent/routing-policy.js';
|
|
7
8
|
export declare class VibingOrchestrator extends EventEmitter {
|
|
8
9
|
private taskService;
|
|
9
10
|
private agentService;
|
|
@@ -63,13 +64,14 @@ export declare class VibingOrchestrator extends EventEmitter {
|
|
|
63
64
|
type: string;
|
|
64
65
|
priority: string;
|
|
65
66
|
content: string;
|
|
67
|
+
title?: string;
|
|
66
68
|
executionId: string;
|
|
67
69
|
selectedModel?: string;
|
|
68
70
|
}>;
|
|
69
|
-
|
|
71
|
+
aiReviewCode(taskId: string, reviewContext?: string, options?: {
|
|
70
72
|
workflowId?: string;
|
|
71
|
-
|
|
72
|
-
|
|
73
|
+
overrides?: Partial<ResolvedProvider>;
|
|
74
|
+
executionId?: string;
|
|
73
75
|
}): Promise<{
|
|
74
76
|
executionId: string;
|
|
75
77
|
reviewSummary: string;
|
|
@@ -81,6 +83,7 @@ export declare class VibingOrchestrator extends EventEmitter {
|
|
|
81
83
|
workflowId?: string;
|
|
82
84
|
provider?: string;
|
|
83
85
|
model?: string;
|
|
86
|
+
executionId?: string;
|
|
84
87
|
}): Promise<{
|
|
85
88
|
executionId: string;
|
|
86
89
|
}>;
|
|
@@ -203,6 +206,7 @@ export declare class VibingOrchestrator extends EventEmitter {
|
|
|
203
206
|
* Execute AI review as a dedicated phase
|
|
204
207
|
*/
|
|
205
208
|
private executeAiReviewPhase;
|
|
209
|
+
private executeAwaitingReview;
|
|
206
210
|
/**
|
|
207
211
|
* Execute validation phase with quality checks
|
|
208
212
|
*/
|
|
@@ -215,6 +219,7 @@ export declare class VibingOrchestrator extends EventEmitter {
|
|
|
215
219
|
* Execute merge phase
|
|
216
220
|
*/
|
|
217
221
|
private executeMerge;
|
|
222
|
+
private updateCleanupStatus;
|
|
218
223
|
/**
|
|
219
224
|
* Public: run merge phase on demand
|
|
220
225
|
* This will attempt merge regardless of current phase.
|