@planningo/duul 1.0.0

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 (48) hide show
  1. package/LICENSE +21 -0
  2. package/README.ko.md +438 -0
  3. package/README.md +463 -0
  4. package/build/index.d.ts +2 -0
  5. package/build/index.js +18 -0
  6. package/build/prompts/code-review-system.d.ts +9 -0
  7. package/build/prompts/code-review-system.js +116 -0
  8. package/build/prompts/execution-partition-system.d.ts +11 -0
  9. package/build/prompts/execution-partition-system.js +76 -0
  10. package/build/prompts/plan-review-system.d.ts +29 -0
  11. package/build/prompts/plan-review-system.js +175 -0
  12. package/build/schemas/code-review.d.ts +514 -0
  13. package/build/schemas/code-review.js +175 -0
  14. package/build/schemas/common.d.ts +118 -0
  15. package/build/schemas/common.js +64 -0
  16. package/build/schemas/execution-partition.d.ts +597 -0
  17. package/build/schemas/execution-partition.js +107 -0
  18. package/build/schemas/plan-review.d.ts +523 -0
  19. package/build/schemas/plan-review.js +175 -0
  20. package/build/services/filesystem-tools.d.ts +6 -0
  21. package/build/services/filesystem-tools.js +39 -0
  22. package/build/services/filesystem.d.ts +69 -0
  23. package/build/services/filesystem.js +609 -0
  24. package/build/services/pricing.d.ts +8 -0
  25. package/build/services/pricing.js +105 -0
  26. package/build/services/providers/anthropic.d.ts +28 -0
  27. package/build/services/providers/anthropic.js +431 -0
  28. package/build/services/providers/google.d.ts +28 -0
  29. package/build/services/providers/google.js +358 -0
  30. package/build/services/providers/openai.d.ts +22 -0
  31. package/build/services/providers/openai.js +395 -0
  32. package/build/services/providers/types.d.ts +82 -0
  33. package/build/services/providers/types.js +1 -0
  34. package/build/services/review-gates.d.ts +83 -0
  35. package/build/services/review-gates.js +200 -0
  36. package/build/services/review-limits.d.ts +36 -0
  37. package/build/services/review-limits.js +65 -0
  38. package/build/services/reviewer.d.ts +30 -0
  39. package/build/services/reviewer.js +243 -0
  40. package/build/services/usage-logger.d.ts +2 -0
  41. package/build/services/usage-logger.js +42 -0
  42. package/build/tools/code-review.d.ts +2 -0
  43. package/build/tools/code-review.js +178 -0
  44. package/build/tools/execution-partition.d.ts +2 -0
  45. package/build/tools/execution-partition.js +146 -0
  46. package/build/tools/plan-review.d.ts +2 -0
  47. package/build/tools/plan-review.js +183 -0
  48. package/package.json +65 -0
@@ -0,0 +1,118 @@
1
+ import { z } from 'zod';
2
+ export declare const ArtifactRefSchema: z.ZodObject<{
3
+ path: z.ZodString;
4
+ reason: z.ZodString;
5
+ priority: z.ZodEnum<["high", "medium", "low"]>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ path: string;
8
+ reason: string;
9
+ priority: "high" | "medium" | "low";
10
+ }, {
11
+ path: string;
12
+ reason: string;
13
+ priority: "high" | "medium" | "low";
14
+ }>;
15
+ export type ArtifactRef = z.infer<typeof ArtifactRefSchema>;
16
+ /**
17
+ * Reviewer config schema — shared across all review tools.
18
+ * Allows per-request override of provider, model, and generation parameters.
19
+ */
20
+ export declare const ReviewerConfigSchema: z.ZodObject<{
21
+ provider: z.ZodOptional<z.ZodEnum<["openai", "anthropic", "google", "openrouter", "compatible"]>>;
22
+ model: z.ZodOptional<z.ZodString>;
23
+ base_url: z.ZodOptional<z.ZodString>;
24
+ api_key: z.ZodOptional<z.ZodString>;
25
+ temperature: z.ZodOptional<z.ZodNumber>;
26
+ top_p: z.ZodOptional<z.ZodNumber>;
27
+ }, "strip", z.ZodTypeAny, {
28
+ provider?: "openai" | "anthropic" | "google" | "openrouter" | "compatible" | undefined;
29
+ model?: string | undefined;
30
+ base_url?: string | undefined;
31
+ api_key?: string | undefined;
32
+ temperature?: number | undefined;
33
+ top_p?: number | undefined;
34
+ }, {
35
+ provider?: "openai" | "anthropic" | "google" | "openrouter" | "compatible" | undefined;
36
+ model?: string | undefined;
37
+ base_url?: string | undefined;
38
+ api_key?: string | undefined;
39
+ temperature?: number | undefined;
40
+ top_p?: number | undefined;
41
+ }>;
42
+ export type ReviewerConfig = z.infer<typeof ReviewerConfigSchema>;
43
+ /**
44
+ * Iteration tracking fields — added to MCP output (not sent to the reviewer model).
45
+ */
46
+ export declare const IterationMetaOutputSchema: z.ZodObject<{
47
+ iteration_count: z.ZodNumber;
48
+ iteration_limit: z.ZodNumber;
49
+ iteration_limit_reached: z.ZodBoolean;
50
+ }, "strip", z.ZodTypeAny, {
51
+ iteration_count: number;
52
+ iteration_limit: number;
53
+ iteration_limit_reached: boolean;
54
+ }, {
55
+ iteration_count: number;
56
+ iteration_limit: number;
57
+ iteration_limit_reached: boolean;
58
+ }>;
59
+ /**
60
+ * Token usage fields — added to MCP output for cost/usage tracking.
61
+ */
62
+ export declare const TokenUsageOutputSchema: z.ZodObject<{
63
+ token_usage: z.ZodObject<{
64
+ input_tokens: z.ZodNumber;
65
+ output_tokens: z.ZodNumber;
66
+ total_tokens: z.ZodNumber;
67
+ api_calls: z.ZodNumber;
68
+ provider: z.ZodString;
69
+ model: z.ZodString;
70
+ estimated_cost_usd: z.ZodNullable<z.ZodNumber>;
71
+ cached_input_tokens: z.ZodOptional<z.ZodNumber>;
72
+ cache_creation_input_tokens: z.ZodOptional<z.ZodNumber>;
73
+ }, "strip", z.ZodTypeAny, {
74
+ provider: string;
75
+ model: string;
76
+ input_tokens: number;
77
+ output_tokens: number;
78
+ total_tokens: number;
79
+ api_calls: number;
80
+ estimated_cost_usd: number | null;
81
+ cached_input_tokens?: number | undefined;
82
+ cache_creation_input_tokens?: number | undefined;
83
+ }, {
84
+ provider: string;
85
+ model: string;
86
+ input_tokens: number;
87
+ output_tokens: number;
88
+ total_tokens: number;
89
+ api_calls: number;
90
+ estimated_cost_usd: number | null;
91
+ cached_input_tokens?: number | undefined;
92
+ cache_creation_input_tokens?: number | undefined;
93
+ }>;
94
+ }, "strip", z.ZodTypeAny, {
95
+ token_usage: {
96
+ provider: string;
97
+ model: string;
98
+ input_tokens: number;
99
+ output_tokens: number;
100
+ total_tokens: number;
101
+ api_calls: number;
102
+ estimated_cost_usd: number | null;
103
+ cached_input_tokens?: number | undefined;
104
+ cache_creation_input_tokens?: number | undefined;
105
+ };
106
+ }, {
107
+ token_usage: {
108
+ provider: string;
109
+ model: string;
110
+ input_tokens: number;
111
+ output_tokens: number;
112
+ total_tokens: number;
113
+ api_calls: number;
114
+ estimated_cost_usd: number | null;
115
+ cached_input_tokens?: number | undefined;
116
+ cache_creation_input_tokens?: number | undefined;
117
+ };
118
+ }>;
@@ -0,0 +1,64 @@
1
+ import { z } from 'zod';
2
+ export const ArtifactRefSchema = z.object({
3
+ path: z.string().describe('File path relative to workspace root'),
4
+ reason: z.string().describe('Why this file is relevant to the review'),
5
+ priority: z.enum(['high', 'medium', 'low']).describe('Review priority level'),
6
+ });
7
+ /**
8
+ * Reviewer config schema — shared across all review tools.
9
+ * Allows per-request override of provider, model, and generation parameters.
10
+ */
11
+ export const ReviewerConfigSchema = z.object({
12
+ provider: z
13
+ .enum(['openai', 'anthropic', 'google', 'openrouter', 'compatible'])
14
+ .optional()
15
+ .describe('Review provider. Default: env REVIEW_PROVIDER or "openai".'),
16
+ model: z
17
+ .string()
18
+ .optional()
19
+ .describe('Model to use. Default: env REVIEW_MODEL or provider default.'),
20
+ base_url: z
21
+ .string()
22
+ .optional()
23
+ .describe('Custom API base URL (for compatible/self-hosted providers).'),
24
+ api_key: z
25
+ .string()
26
+ .optional()
27
+ .describe('Per-request API key. Overrides env-based key resolution. Useful for compatible/self-hosted providers.'),
28
+ temperature: z
29
+ .number()
30
+ .min(0)
31
+ .max(2)
32
+ .optional()
33
+ .describe('Sampling temperature override. Default: 0.2.'),
34
+ top_p: z
35
+ .number()
36
+ .min(0)
37
+ .max(1)
38
+ .optional()
39
+ .describe('Top-p override. Default: 0.1.'),
40
+ }).describe('Per-request reviewer configuration override.');
41
+ /**
42
+ * Iteration tracking fields — added to MCP output (not sent to the reviewer model).
43
+ */
44
+ export const IterationMetaOutputSchema = z.object({
45
+ iteration_count: z.number().describe('Current iteration number (1-based) as reported by the caller.'),
46
+ iteration_limit: z.number().describe('Maximum iterations allowed for this phase.'),
47
+ iteration_limit_reached: z.boolean().describe('Whether the iteration limit has been reached.'),
48
+ });
49
+ /**
50
+ * Token usage fields — added to MCP output for cost/usage tracking.
51
+ */
52
+ export const TokenUsageOutputSchema = z.object({
53
+ token_usage: z.object({
54
+ input_tokens: z.number().describe('Total input tokens consumed by the reviewer'),
55
+ output_tokens: z.number().describe('Total output tokens generated by the reviewer'),
56
+ total_tokens: z.number().describe('Sum of input + output tokens'),
57
+ api_calls: z.number().describe('Number of API calls made (1 + tool loop rounds)'),
58
+ provider: z.string().describe('Provider used (openai, anthropic, google, etc.)'),
59
+ model: z.string().describe('Model used for the review'),
60
+ estimated_cost_usd: z.number().nullable().describe('Estimated cost in USD based on model pricing (null if pricing unknown)'),
61
+ cached_input_tokens: z.number().optional().describe('Input tokens served from the provider prompt cache (billed at ~0.1× input).'),
62
+ cache_creation_input_tokens: z.number().optional().describe('Input tokens written to the provider prompt cache (Anthropic only; billed at ~1.25× input).'),
63
+ }).describe('Token usage and estimated cost for this review call'),
64
+ });