@qulib/core 0.2.2 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +31 -3
  2. package/dist/analyze.d.ts +16 -4
  3. package/dist/analyze.d.ts.map +1 -1
  4. package/dist/analyze.js +98 -38
  5. package/dist/cli/cost-doctor.d.ts +2 -0
  6. package/dist/cli/cost-doctor.d.ts.map +1 -0
  7. package/dist/cli/cost-doctor.js +72 -0
  8. package/dist/cli/index.js +14 -0
  9. package/dist/harness/progress-log.d.ts +7 -0
  10. package/dist/harness/progress-log.d.ts.map +1 -0
  11. package/dist/harness/progress-log.js +1 -0
  12. package/dist/harness/run-options.d.ts +2 -0
  13. package/dist/harness/run-options.d.ts.map +1 -1
  14. package/dist/index.d.ts +4 -2
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +1 -0
  17. package/dist/llm/content-hash.d.ts +2 -0
  18. package/dist/llm/content-hash.d.ts.map +1 -0
  19. package/dist/llm/content-hash.js +4 -0
  20. package/dist/llm/context-builder.js +1 -1
  21. package/dist/llm/cost-intelligence.d.ts +29 -0
  22. package/dist/llm/cost-intelligence.d.ts.map +1 -0
  23. package/dist/llm/cost-intelligence.js +153 -0
  24. package/dist/llm/provider.d.ts +11 -1
  25. package/dist/llm/provider.d.ts.map +1 -1
  26. package/dist/llm/provider.js +43 -4
  27. package/dist/phases/act.d.ts.map +1 -1
  28. package/dist/phases/act.js +4 -1
  29. package/dist/phases/observe.js +1 -1
  30. package/dist/phases/think-finalize.d.ts +6 -0
  31. package/dist/phases/think-finalize.d.ts.map +1 -0
  32. package/dist/phases/think-finalize.js +164 -0
  33. package/dist/phases/think.d.ts +2 -0
  34. package/dist/phases/think.d.ts.map +1 -1
  35. package/dist/phases/think.js +16 -65
  36. package/dist/reporters/markdown-reporter.d.ts.map +1 -1
  37. package/dist/reporters/markdown-reporter.js +23 -3
  38. package/dist/schemas/config.schema.d.ts +7 -0
  39. package/dist/schemas/config.schema.d.ts.map +1 -1
  40. package/dist/schemas/config.schema.js +18 -1
  41. package/dist/schemas/cost-intelligence.schema.d.ts +229 -0
  42. package/dist/schemas/cost-intelligence.schema.d.ts.map +1 -0
  43. package/dist/schemas/cost-intelligence.schema.js +41 -0
  44. package/dist/schemas/decision-log.schema.d.ts +2 -2
  45. package/dist/schemas/gap-analysis.schema.d.ts +270 -31
  46. package/dist/schemas/gap-analysis.schema.d.ts.map +1 -1
  47. package/dist/schemas/gap-analysis.schema.js +7 -3
  48. package/dist/schemas/index.d.ts +3 -1
  49. package/dist/schemas/index.d.ts.map +1 -1
  50. package/dist/schemas/index.js +3 -1
  51. package/dist/schemas/public-surface.schema.d.ts +268 -0
  52. package/dist/schemas/public-surface.schema.d.ts.map +1 -0
  53. package/dist/schemas/public-surface.schema.js +15 -0
  54. package/dist/tools/auth-block-gap.d.ts +3 -0
  55. package/dist/tools/auth-block-gap.d.ts.map +1 -0
  56. package/dist/tools/auth-block-gap.js +19 -0
  57. package/dist/tools/auth-detector.d.ts +2 -1
  58. package/dist/tools/auth-detector.d.ts.map +1 -1
  59. package/dist/tools/auth-detector.js +28 -3
  60. package/dist/tools/auth-explorer.d.ts +2 -1
  61. package/dist/tools/auth-explorer.d.ts.map +1 -1
  62. package/dist/tools/auth-explorer.js +30 -8
  63. package/dist/tools/auth-surface-analyzer.d.ts +4 -0
  64. package/dist/tools/auth-surface-analyzer.d.ts.map +1 -0
  65. package/dist/tools/auth-surface-analyzer.js +154 -0
  66. package/dist/tools/cypress-explorer.d.ts +2 -1
  67. package/dist/tools/cypress-explorer.d.ts.map +1 -1
  68. package/dist/tools/cypress-explorer.js +1 -1
  69. package/dist/tools/explorer.interface.d.ts +2 -1
  70. package/dist/tools/explorer.interface.d.ts.map +1 -1
  71. package/dist/tools/gap-engine.d.ts +3 -1
  72. package/dist/tools/gap-engine.d.ts.map +1 -1
  73. package/dist/tools/gap-engine.js +39 -12
  74. package/dist/tools/playwright-explorer.d.ts +2 -1
  75. package/dist/tools/playwright-explorer.d.ts.map +1 -1
  76. package/dist/tools/playwright-explorer.js +21 -3
  77. package/dist/tools/public-surface.d.ts +5 -0
  78. package/dist/tools/public-surface.d.ts.map +1 -0
  79. package/dist/tools/public-surface.js +13 -0
  80. package/package.json +7 -3
@@ -168,7 +168,9 @@ export declare const HarnessConfigSchema: z.ZodObject<{
168
168
  timeoutMs: z.ZodNumber;
169
169
  retryCount: z.ZodNumber;
170
170
  llmTokenBudget: z.ZodNumber;
171
+ llmMaxOutputTokensPerCall: z.ZodOptional<z.ZodNumber>;
171
172
  testGenerationLimit: z.ZodNumber;
173
+ enableLlmScenarios: z.ZodDefault<z.ZodBoolean>;
172
174
  readOnlyMode: z.ZodBoolean;
173
175
  requireHumanReview: z.ZodBoolean;
174
176
  failOnConsoleError: z.ZodBoolean;
@@ -261,12 +263,14 @@ export declare const HarnessConfigSchema: z.ZodObject<{
261
263
  retryCount: number;
262
264
  llmTokenBudget: number;
263
265
  testGenerationLimit: number;
266
+ enableLlmScenarios: boolean;
264
267
  readOnlyMode: boolean;
265
268
  requireHumanReview: boolean;
266
269
  failOnConsoleError: boolean;
267
270
  explorer: "playwright" | "cypress";
268
271
  defaultAdapter: "playwright" | "cypress-e2e" | "cypress-component" | "api" | "accessibility";
269
272
  adapters: ("playwright" | "cypress-e2e" | "cypress-component" | "api" | "accessibility")[];
273
+ llmMaxOutputTokensPerCall?: number | undefined;
270
274
  auth?: {
271
275
  type: "form-login";
272
276
  loginUrl: string;
@@ -298,6 +302,8 @@ export declare const HarnessConfigSchema: z.ZodObject<{
298
302
  requireHumanReview: boolean;
299
303
  failOnConsoleError: boolean;
300
304
  minPagesForConfidence?: number | undefined;
305
+ llmMaxOutputTokensPerCall?: number | undefined;
306
+ enableLlmScenarios?: boolean | undefined;
301
307
  explorer?: "playwright" | "cypress" | undefined;
302
308
  defaultAdapter?: "playwright" | "cypress-e2e" | "cypress-component" | "api" | "accessibility" | undefined;
303
309
  adapters?: ("playwright" | "cypress-e2e" | "cypress-component" | "api" | "accessibility")[] | undefined;
@@ -323,6 +329,7 @@ export declare const HarnessConfigSchema: z.ZodObject<{
323
329
  } | undefined;
324
330
  }>;
325
331
  export type HarnessConfig = z.infer<typeof HarnessConfigSchema>;
332
+ export declare function resolveMaxOutputTokensPerLlmCall(config: HarnessConfig): number;
326
333
  export declare const DetectedAuthSchema: z.ZodObject<{
327
334
  hasAuth: z.ZodBoolean;
328
335
  type: z.ZodEnum<["none", "form-login", "oauth", "magic-link", "unknown"]>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,SAAS,CAAC;AACpD,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,aAAa,GAAG,mBAAmB,GAAG,KAAK,GAAG,eAAe,CAAC;AAEvG,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBvB,CAAC;AAEH,QAAA,MAAM,sBAAsB;;;;;;;;;EAG1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA8E,CAAC;AAE5G,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACtE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC5E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmB7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAcrC,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASzB,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAehC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,SAAS,CAAC;AACpD,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,aAAa,GAAG,mBAAmB,GAAG,KAAK,GAAG,eAAe,CAAC;AAEvG,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBvB,CAAC;AAEH,QAAA,MAAM,sBAAsB;;;;;;;;;EAG1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA8E,CAAC;AAE5G,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACtE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC5E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAE9E;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmB7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAcrC,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASzB,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAehC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -27,8 +27,22 @@ export const HarnessConfigSchema = z.object({
27
27
  minPagesForConfidence: z.number().int().min(1).default(3),
28
28
  timeoutMs: z.number().int().positive(),
29
29
  retryCount: z.number().int().min(0),
30
- llmTokenBudget: z.number().int().positive(),
30
+ llmTokenBudget: z
31
+ .number()
32
+ .int()
33
+ .positive()
34
+ .describe('Legacy name: max output tokens for a single LLM completion request. Prefer llmMaxOutputTokensPerCall when set.'),
35
+ llmMaxOutputTokensPerCall: z
36
+ .number()
37
+ .int()
38
+ .positive()
39
+ .optional()
40
+ .describe('When set, overrides llmTokenBudget (same semantics: per-completion output cap, not a multi-call total).'),
31
41
  testGenerationLimit: z.number().int().positive(),
42
+ enableLlmScenarios: z
43
+ .boolean()
44
+ .default(true)
45
+ .describe('When false, scenario generation uses templates only (no LLM calls).'),
32
46
  readOnlyMode: z.boolean(),
33
47
  requireHumanReview: z.boolean(),
34
48
  failOnConsoleError: z.boolean(),
@@ -37,6 +51,9 @@ export const HarnessConfigSchema = z.object({
37
51
  adapters: z.array(z.enum(['playwright', 'cypress-e2e', 'cypress-component', 'api', 'accessibility'])).default(['playwright']),
38
52
  auth: AuthConfigSchema.optional(),
39
53
  });
54
+ export function resolveMaxOutputTokensPerLlmCall(config) {
55
+ return config.llmMaxOutputTokensPerCall ?? config.llmTokenBudget;
56
+ }
40
57
  export const DetectedAuthSchema = z.object({
41
58
  hasAuth: z.boolean(),
42
59
  type: z.enum(['none', 'form-login', 'oauth', 'magic-link', 'unknown']),
@@ -0,0 +1,229 @@
1
+ import { z } from 'zod';
2
+ export declare const LlmDataQualitySchema: z.ZodEnum<["actual", "estimated", "mixed", "none"]>;
3
+ export declare const LlmOperationTypeSchema: z.ZodEnum<["scenario-generation"]>;
4
+ export declare const LlmUsageRecordSchema: z.ZodObject<{
5
+ provider: z.ZodString;
6
+ model: z.ZodString;
7
+ inputTokens: z.ZodNumber;
8
+ outputTokens: z.ZodNumber;
9
+ estimatedCostUsd: z.ZodOptional<z.ZodNumber>;
10
+ operationType: z.ZodEnum<["scenario-generation"]>;
11
+ timestamp: z.ZodString;
12
+ promptHash: z.ZodOptional<z.ZodString>;
13
+ resultHash: z.ZodOptional<z.ZodString>;
14
+ dataQuality: z.ZodEnum<["actual", "estimated", "mixed", "none"]>;
15
+ notes: z.ZodOptional<z.ZodString>;
16
+ }, "strip", z.ZodTypeAny, {
17
+ provider: string;
18
+ model: string;
19
+ inputTokens: number;
20
+ outputTokens: number;
21
+ operationType: "scenario-generation";
22
+ timestamp: string;
23
+ dataQuality: "none" | "actual" | "estimated" | "mixed";
24
+ estimatedCostUsd?: number | undefined;
25
+ promptHash?: string | undefined;
26
+ resultHash?: string | undefined;
27
+ notes?: string | undefined;
28
+ }, {
29
+ provider: string;
30
+ model: string;
31
+ inputTokens: number;
32
+ outputTokens: number;
33
+ operationType: "scenario-generation";
34
+ timestamp: string;
35
+ dataQuality: "none" | "actual" | "estimated" | "mixed";
36
+ estimatedCostUsd?: number | undefined;
37
+ promptHash?: string | undefined;
38
+ resultHash?: string | undefined;
39
+ notes?: string | undefined;
40
+ }>;
41
+ export declare const RepeatedAiPatternSchema: z.ZodObject<{
42
+ promptHash: z.ZodString;
43
+ count: z.ZodNumber;
44
+ recommendation: z.ZodString;
45
+ }, "strip", z.ZodTypeAny, {
46
+ recommendation: string;
47
+ promptHash: string;
48
+ count: number;
49
+ }, {
50
+ recommendation: string;
51
+ promptHash: string;
52
+ count: number;
53
+ }>;
54
+ export declare const DeterministicMaturitySchema: z.ZodObject<{
55
+ level: z.ZodNumber;
56
+ label: z.ZodString;
57
+ rationale: z.ZodString;
58
+ ceilingNote: z.ZodOptional<z.ZodString>;
59
+ }, "strip", z.ZodTypeAny, {
60
+ label: string;
61
+ level: number;
62
+ rationale: string;
63
+ ceilingNote?: string | undefined;
64
+ }, {
65
+ label: string;
66
+ level: number;
67
+ rationale: string;
68
+ ceilingNote?: string | undefined;
69
+ }>;
70
+ export declare const CostIntelligenceSchema: z.ZodObject<{
71
+ maxOutputTokensPerLlmCall: z.ZodNumber;
72
+ budgetRole: z.ZodLiteral<"max-output-tokens-per-llm-call">;
73
+ records: z.ZodArray<z.ZodObject<{
74
+ provider: z.ZodString;
75
+ model: z.ZodString;
76
+ inputTokens: z.ZodNumber;
77
+ outputTokens: z.ZodNumber;
78
+ estimatedCostUsd: z.ZodOptional<z.ZodNumber>;
79
+ operationType: z.ZodEnum<["scenario-generation"]>;
80
+ timestamp: z.ZodString;
81
+ promptHash: z.ZodOptional<z.ZodString>;
82
+ resultHash: z.ZodOptional<z.ZodString>;
83
+ dataQuality: z.ZodEnum<["actual", "estimated", "mixed", "none"]>;
84
+ notes: z.ZodOptional<z.ZodString>;
85
+ }, "strip", z.ZodTypeAny, {
86
+ provider: string;
87
+ model: string;
88
+ inputTokens: number;
89
+ outputTokens: number;
90
+ operationType: "scenario-generation";
91
+ timestamp: string;
92
+ dataQuality: "none" | "actual" | "estimated" | "mixed";
93
+ estimatedCostUsd?: number | undefined;
94
+ promptHash?: string | undefined;
95
+ resultHash?: string | undefined;
96
+ notes?: string | undefined;
97
+ }, {
98
+ provider: string;
99
+ model: string;
100
+ inputTokens: number;
101
+ outputTokens: number;
102
+ operationType: "scenario-generation";
103
+ timestamp: string;
104
+ dataQuality: "none" | "actual" | "estimated" | "mixed";
105
+ estimatedCostUsd?: number | undefined;
106
+ promptHash?: string | undefined;
107
+ resultHash?: string | undefined;
108
+ notes?: string | undefined;
109
+ }>, "many">;
110
+ budgetWarnings: z.ZodArray<z.ZodString, "many">;
111
+ usageSummary: z.ZodObject<{
112
+ totalInputTokens: z.ZodNumber;
113
+ totalOutputTokens: z.ZodNumber;
114
+ dataQuality: z.ZodEnum<["actual", "estimated", "mixed", "none"]>;
115
+ }, "strip", z.ZodTypeAny, {
116
+ dataQuality: "none" | "actual" | "estimated" | "mixed";
117
+ totalInputTokens: number;
118
+ totalOutputTokens: number;
119
+ }, {
120
+ dataQuality: "none" | "actual" | "estimated" | "mixed";
121
+ totalInputTokens: number;
122
+ totalOutputTokens: number;
123
+ }>;
124
+ repeatedOperations: z.ZodArray<z.ZodObject<{
125
+ promptHash: z.ZodString;
126
+ count: z.ZodNumber;
127
+ recommendation: z.ZodString;
128
+ }, "strip", z.ZodTypeAny, {
129
+ recommendation: string;
130
+ promptHash: string;
131
+ count: number;
132
+ }, {
133
+ recommendation: string;
134
+ promptHash: string;
135
+ count: number;
136
+ }>, "many">;
137
+ deterministicMaturity: z.ZodObject<{
138
+ level: z.ZodNumber;
139
+ label: z.ZodString;
140
+ rationale: z.ZodString;
141
+ ceilingNote: z.ZodOptional<z.ZodString>;
142
+ }, "strip", z.ZodTypeAny, {
143
+ label: string;
144
+ level: number;
145
+ rationale: string;
146
+ ceilingNote?: string | undefined;
147
+ }, {
148
+ label: string;
149
+ level: number;
150
+ rationale: string;
151
+ ceilingNote?: string | undefined;
152
+ }>;
153
+ conversionRecommendations: z.ZodArray<z.ZodString, "many">;
154
+ }, "strip", z.ZodTypeAny, {
155
+ maxOutputTokensPerLlmCall: number;
156
+ budgetRole: "max-output-tokens-per-llm-call";
157
+ records: {
158
+ provider: string;
159
+ model: string;
160
+ inputTokens: number;
161
+ outputTokens: number;
162
+ operationType: "scenario-generation";
163
+ timestamp: string;
164
+ dataQuality: "none" | "actual" | "estimated" | "mixed";
165
+ estimatedCostUsd?: number | undefined;
166
+ promptHash?: string | undefined;
167
+ resultHash?: string | undefined;
168
+ notes?: string | undefined;
169
+ }[];
170
+ budgetWarnings: string[];
171
+ usageSummary: {
172
+ dataQuality: "none" | "actual" | "estimated" | "mixed";
173
+ totalInputTokens: number;
174
+ totalOutputTokens: number;
175
+ };
176
+ repeatedOperations: {
177
+ recommendation: string;
178
+ promptHash: string;
179
+ count: number;
180
+ }[];
181
+ deterministicMaturity: {
182
+ label: string;
183
+ level: number;
184
+ rationale: string;
185
+ ceilingNote?: string | undefined;
186
+ };
187
+ conversionRecommendations: string[];
188
+ }, {
189
+ maxOutputTokensPerLlmCall: number;
190
+ budgetRole: "max-output-tokens-per-llm-call";
191
+ records: {
192
+ provider: string;
193
+ model: string;
194
+ inputTokens: number;
195
+ outputTokens: number;
196
+ operationType: "scenario-generation";
197
+ timestamp: string;
198
+ dataQuality: "none" | "actual" | "estimated" | "mixed";
199
+ estimatedCostUsd?: number | undefined;
200
+ promptHash?: string | undefined;
201
+ resultHash?: string | undefined;
202
+ notes?: string | undefined;
203
+ }[];
204
+ budgetWarnings: string[];
205
+ usageSummary: {
206
+ dataQuality: "none" | "actual" | "estimated" | "mixed";
207
+ totalInputTokens: number;
208
+ totalOutputTokens: number;
209
+ };
210
+ repeatedOperations: {
211
+ recommendation: string;
212
+ promptHash: string;
213
+ count: number;
214
+ }[];
215
+ deterministicMaturity: {
216
+ label: string;
217
+ level: number;
218
+ rationale: string;
219
+ ceilingNote?: string | undefined;
220
+ };
221
+ conversionRecommendations: string[];
222
+ }>;
223
+ export type LlmDataQuality = z.infer<typeof LlmDataQualitySchema>;
224
+ export type LlmOperationType = z.infer<typeof LlmOperationTypeSchema>;
225
+ export type LlmUsageRecord = z.infer<typeof LlmUsageRecordSchema>;
226
+ export type RepeatedAiPattern = z.infer<typeof RepeatedAiPatternSchema>;
227
+ export type DeterministicMaturity = z.infer<typeof DeterministicMaturitySchema>;
228
+ export type CostIntelligence = z.infer<typeof CostIntelligenceSchema>;
229
+ //# sourceMappingURL=cost-intelligence.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost-intelligence.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/cost-intelligence.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,oBAAoB,qDAAmD,CAAC;AAErF,eAAO,MAAM,sBAAsB,oCAAkC,CAAC;AAEtE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAIlC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EAKtC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAajC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { z } from 'zod';
2
+ export const LlmDataQualitySchema = z.enum(['actual', 'estimated', 'mixed', 'none']);
3
+ export const LlmOperationTypeSchema = z.enum(['scenario-generation']);
4
+ export const LlmUsageRecordSchema = z.object({
5
+ provider: z.string(),
6
+ model: z.string(),
7
+ inputTokens: z.number().int().min(0),
8
+ outputTokens: z.number().int().min(0),
9
+ estimatedCostUsd: z.number().optional(),
10
+ operationType: LlmOperationTypeSchema,
11
+ timestamp: z.string().datetime(),
12
+ promptHash: z.string().optional(),
13
+ resultHash: z.string().optional(),
14
+ dataQuality: LlmDataQualitySchema,
15
+ notes: z.string().optional(),
16
+ });
17
+ export const RepeatedAiPatternSchema = z.object({
18
+ promptHash: z.string(),
19
+ count: z.number().int().min(2),
20
+ recommendation: z.string(),
21
+ });
22
+ export const DeterministicMaturitySchema = z.object({
23
+ level: z.number().int().min(0).max(5),
24
+ label: z.string(),
25
+ rationale: z.string(),
26
+ ceilingNote: z.string().optional(),
27
+ });
28
+ export const CostIntelligenceSchema = z.object({
29
+ maxOutputTokensPerLlmCall: z.number().int().positive(),
30
+ budgetRole: z.literal('max-output-tokens-per-llm-call'),
31
+ records: z.array(LlmUsageRecordSchema),
32
+ budgetWarnings: z.array(z.string()),
33
+ usageSummary: z.object({
34
+ totalInputTokens: z.number().int().min(0),
35
+ totalOutputTokens: z.number().int().min(0),
36
+ dataQuality: LlmDataQualitySchema,
37
+ }),
38
+ repeatedOperations: z.array(RepeatedAiPatternSchema),
39
+ deterministicMaturity: DeterministicMaturitySchema,
40
+ conversionRecommendations: z.array(z.string()),
41
+ });
@@ -6,14 +6,14 @@ export declare const DecisionLogEntrySchema: z.ZodObject<{
6
6
  reason: z.ZodString;
7
7
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
8
8
  }, "strip", z.ZodTypeAny, {
9
- reason: string;
10
9
  timestamp: string;
10
+ reason: string;
11
11
  phase: "observe" | "think" | "act" | "harness";
12
12
  decision: string;
13
13
  metadata?: Record<string, unknown> | undefined;
14
14
  }, {
15
- reason: string;
16
15
  timestamp: string;
16
+ reason: string;
17
17
  phase: "observe" | "think" | "act" | "harness";
18
18
  decision: string;
19
19
  metadata?: Record<string, unknown> | undefined;