@uluops/core 0.21.1 → 0.22.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 (78) hide show
  1. package/README.md +84 -9
  2. package/dist/ai/AIProvider.d.ts +12 -0
  3. package/dist/ai/AIProvider.d.ts.map +1 -1
  4. package/dist/ai/AIProvider.js +16 -2
  5. package/dist/ai/AIProvider.js.map +1 -1
  6. package/dist/ai/ModelCatalog.d.ts +10 -2
  7. package/dist/ai/ModelCatalog.d.ts.map +1 -1
  8. package/dist/ai/ModelCatalog.js +10 -2
  9. package/dist/ai/ModelCatalog.js.map +1 -1
  10. package/dist/ai/TokenBudgetTracker.d.ts +18 -2
  11. package/dist/ai/TokenBudgetTracker.d.ts.map +1 -1
  12. package/dist/ai/TokenBudgetTracker.js +22 -2
  13. package/dist/ai/TokenBudgetTracker.js.map +1 -1
  14. package/dist/client/UluOpsClient.d.ts +105 -6
  15. package/dist/client/UluOpsClient.d.ts.map +1 -1
  16. package/dist/client/UluOpsClient.js +107 -8
  17. package/dist/client/UluOpsClient.js.map +1 -1
  18. package/dist/constants.d.ts +2 -2
  19. package/dist/constants.d.ts.map +1 -1
  20. package/dist/constants.js +2 -2
  21. package/dist/constants.js.map +1 -1
  22. package/dist/executor/AgentExecutor.d.ts +14 -0
  23. package/dist/executor/AgentExecutor.d.ts.map +1 -1
  24. package/dist/executor/AgentExecutor.js +66 -3
  25. package/dist/executor/AgentExecutor.js.map +1 -1
  26. package/dist/executor/CommandExecutor.d.ts +12 -1
  27. package/dist/executor/CommandExecutor.d.ts.map +1 -1
  28. package/dist/executor/CommandExecutor.js +13 -2
  29. package/dist/executor/CommandExecutor.js.map +1 -1
  30. package/dist/executor/PipelineExecutor.d.ts +20 -2
  31. package/dist/executor/PipelineExecutor.d.ts.map +1 -1
  32. package/dist/executor/PipelineExecutor.js +20 -2
  33. package/dist/executor/PipelineExecutor.js.map +1 -1
  34. package/dist/executor/WorkflowExecutor.d.ts +3 -0
  35. package/dist/executor/WorkflowExecutor.d.ts.map +1 -1
  36. package/dist/executor/WorkflowExecutor.js +3 -0
  37. package/dist/executor/WorkflowExecutor.js.map +1 -1
  38. package/dist/executor/classifyDecision.d.ts +23 -0
  39. package/dist/executor/classifyDecision.d.ts.map +1 -1
  40. package/dist/executor/classifyDecision.js +23 -0
  41. package/dist/executor/classifyDecision.js.map +1 -1
  42. package/dist/executor/degradationMarkers.d.ts +19 -0
  43. package/dist/executor/degradationMarkers.d.ts.map +1 -0
  44. package/dist/executor/degradationMarkers.js +62 -0
  45. package/dist/executor/degradationMarkers.js.map +1 -0
  46. package/dist/index.d.ts +4 -2
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +1 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/parser/OutputExtractor.d.ts +32 -2
  51. package/dist/parser/OutputExtractor.d.ts.map +1 -1
  52. package/dist/parser/OutputExtractor.js +32 -2
  53. package/dist/parser/OutputExtractor.js.map +1 -1
  54. package/dist/registry/RegistryClient.d.ts +33 -3
  55. package/dist/registry/RegistryClient.d.ts.map +1 -1
  56. package/dist/registry/RegistryClient.js +60 -6
  57. package/dist/registry/RegistryClient.js.map +1 -1
  58. package/dist/submission/SubmissionClient.d.ts +42 -4
  59. package/dist/submission/SubmissionClient.d.ts.map +1 -1
  60. package/dist/submission/SubmissionClient.js +51 -9
  61. package/dist/submission/SubmissionClient.js.map +1 -1
  62. package/dist/types/agent.d.ts +64 -1
  63. package/dist/types/agent.d.ts.map +1 -1
  64. package/dist/types/degradation.d.ts +46 -0
  65. package/dist/types/degradation.d.ts.map +1 -0
  66. package/dist/types/degradation.js +16 -0
  67. package/dist/types/degradation.js.map +1 -0
  68. package/dist/types/index.d.ts +3 -2
  69. package/dist/types/index.d.ts.map +1 -1
  70. package/package.json +2 -2
  71. package/dist/types/validation.d.ts +0 -116
  72. package/dist/types/validation.d.ts.map +0 -1
  73. package/dist/types/validation.js +0 -2
  74. package/dist/types/validation.js.map +0 -1
  75. package/dist/validation/ValidationClient.d.ts +0 -81
  76. package/dist/validation/ValidationClient.d.ts.map +0 -1
  77. package/dist/validation/ValidationClient.js +0 -266
  78. package/dist/validation/ValidationClient.js.map +0 -1
@@ -1,81 +0,0 @@
1
- import type { ResolvedConfig } from '../types/config.js';
2
- import type { ExecutionResult } from '../types/execution.js';
3
- import type { AgentResult } from '../types/agent.js';
4
- import type { RunSubmission, RunSubmissionResponse, RunHistoryEntry, ValidationQueryOptions } from '../types/validation.js';
5
- /**
6
- * Thin wrapper around @uluops/ops-sdk for execution result submission.
7
- *
8
- * Delegates all API operations to OpsClient (which handles retry,
9
- * rate limiting, error mapping, auth). This class transforms
10
- * SDK ExecutionResult objects into the format expected by OpsClient.
11
- *
12
- * For full issue management, analytics, and taxonomy operations,
13
- * use `@uluops/ops-sdk` directly.
14
- */
15
- export declare class ValidationClient {
16
- private config;
17
- private ops;
18
- private readonly analysisExtractor;
19
- constructor(config: ResolvedConfig);
20
- /**
21
- * Submit execution results to validation service
22
- */
23
- submit(submission: RunSubmission): Promise<RunSubmissionResponse>;
24
- /**
25
- * Preview what a submission would do without saving (dry run).
26
- *
27
- * Accepts individual parameters matching the public UluOpsClient API.
28
- */
29
- validateRun(project: string, workflowType: string, result: ExecutionResult | AgentResult): Promise<{
30
- wouldCreate: boolean;
31
- wouldUpdate: boolean;
32
- wouldRegress: boolean;
33
- validationErrors: string[];
34
- }>;
35
- /**
36
- * Get run history for a project
37
- */
38
- getHistory(project: string, options?: Omit<ValidationQueryOptions, 'project'>): Promise<RunHistoryEntry[]>;
39
- /**
40
- * Get details for a specific run by ID
41
- */
42
- getRun(runId: string): Promise<RunSubmissionResponse>;
43
- /**
44
- * Determine if a decision is positive using decisionCategory (agents) or raw string fallback.
45
- * Resolves Aporia A3: cognitive lens agents with non-PASS positive decisions
46
- * (EXAMINED, VITAL, FLOWING, etc.) now correctly report allGatesPassed: true.
47
- */
48
- private isPositiveDecision;
49
- /**
50
- * Transform SDK RunSubmission to OpsClient SaveFeaturesListInput format
51
- */
52
- private transformToOpsInput;
53
- /**
54
- * Check if a result is an AgentResult (type === 'agent').
55
- */
56
- private isAgentResult;
57
- /**
58
- * Check if a result is a WorkflowResult with decomposable phases.
59
- */
60
- private isWorkflowResult;
61
- /**
62
- * Extract individual agent entries from workflow phases.
63
- * Each command result within a phase becomes its own agent entry.
64
- */
65
- private extractWorkflowAgents;
66
- /**
67
- * Convert a single ExecutionResult or AgentResult into an agent tracker entry.
68
- */
69
- private resultToAgent;
70
- /**
71
- * Convert a CommandResult into an agent tracker entry.
72
- */
73
- private commandToAgent;
74
- /** Extract token metrics into the tracker's expected shape. */
75
- private extractTokens;
76
- /**
77
- * Create a local-only response when tracking is disabled
78
- */
79
- private createLocalResponse;
80
- }
81
- //# sourceMappingURL=ValidationClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ValidationClient.d.ts","sourceRoot":"","sources":["../../src/validation/ValidationClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAG5H;;;;;;;;;GASG;AACH,qBAAa,gBAAgB;IAIf,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;gBAEhD,MAAM,EAAE,cAAc;IAQ1C;;OAEG;IACG,MAAM,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAwBvE;;;;OAIG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,eAAe,GAAG,WAAW,GACpC,OAAO,CAAC;QACT,WAAW,EAAE,OAAO,CAAC;QACrB,WAAW,EAAE,OAAO,CAAC;QACrB,YAAY,EAAE,OAAO,CAAC;QACtB,gBAAgB,EAAE,MAAM,EAAE,CAAC;KAC5B,CAAC;IAYF;;OAEG;IACG,UAAU,CACd,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC,GAChD,OAAO,CAAC,eAAe,EAAE,CAAC;IAuB7B;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAkB3D;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwD3B;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH,OAAO,CAAC,cAAc;IActB,+DAA+D;IAC/D,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAgB5B"}
@@ -1,266 +0,0 @@
1
- import { OpsClient } from '@uluops/ops-sdk';
2
- import { AnalysisSummaryExtractor } from '../analysis/AnalysisSummaryExtractor.js';
3
- /**
4
- * Thin wrapper around @uluops/ops-sdk for execution result submission.
5
- *
6
- * Delegates all API operations to OpsClient (which handles retry,
7
- * rate limiting, error mapping, auth). This class transforms
8
- * SDK ExecutionResult objects into the format expected by OpsClient.
9
- *
10
- * For full issue management, analytics, and taxonomy operations,
11
- * use `@uluops/ops-sdk` directly.
12
- */
13
- export class ValidationClient {
14
- config;
15
- ops;
16
- analysisExtractor = new AnalysisSummaryExtractor();
17
- constructor(config) {
18
- this.config = config;
19
- this.ops = new OpsClient({
20
- apiKey: config.apiKey,
21
- baseUrl: config.validationUrl,
22
- timeout: config.timeout,
23
- });
24
- }
25
- /**
26
- * Submit execution results to validation service
27
- */
28
- async submit(submission) {
29
- if (!this.config.trackingEnabled) {
30
- return this.createLocalResponse(submission);
31
- }
32
- const input = this.transformToOpsInput(submission);
33
- const response = await this.ops.runs.save(input);
34
- return {
35
- runId: response.run.id,
36
- runNumber: response.run.runNumber,
37
- projectId: response.run.projectId,
38
- dashboardUrl: `${this.config.dashboardUrl}/runs/${response.run.id}`,
39
- allGatesPassed: response.run.allGatesPassed,
40
- averageScore: response.run.averageScore ?? 0,
41
- correlation: {
42
- newIssues: response.correlation?.newIssues ?? 0,
43
- recurringIssues: response.correlation?.recurringIssues ?? 0,
44
- regressions: response.correlation?.regressions ?? 0,
45
- },
46
- deduplicated: response.deduplicated,
47
- };
48
- }
49
- /**
50
- * Preview what a submission would do without saving (dry run).
51
- *
52
- * Accepts individual parameters matching the public UluOpsClient API.
53
- */
54
- async validateRun(project, workflowType, result) {
55
- const input = this.transformToOpsInput({ project, workflowType, result });
56
- const response = await this.ops.runs.validate(input);
57
- return {
58
- wouldCreate: Boolean(response.wouldCreate),
59
- wouldUpdate: Boolean(response.wouldUpdate),
60
- wouldRegress: Boolean(response.wouldRegress),
61
- validationErrors: response.validationErrors,
62
- };
63
- }
64
- /**
65
- * Get run history for a project
66
- */
67
- async getHistory(project, options) {
68
- const runs = await this.ops.runs.listByProject(project, {
69
- workflowType: options?.workflowType,
70
- limit: options?.limit,
71
- });
72
- return runs.map(r => ({
73
- id: r.id,
74
- projectId: r.projectId,
75
- runNumber: r.runNumber,
76
- workflowType: r.workflowType,
77
- timestamp: r.timestamp,
78
- allGatesPassed: r.allGatesPassed,
79
- averageScore: r.averageScore ?? 0,
80
- rawMarkdown: r.rawMarkdown ?? undefined,
81
- archivedAt: r.archivedAt ?? undefined,
82
- archiveReason: r.archiveReason ?? undefined,
83
- idempotencyKey: r.idempotencyKey,
84
- createdAt: r.createdAt,
85
- updatedAt: r.updatedAt ?? r.createdAt,
86
- }));
87
- }
88
- /**
89
- * Get details for a specific run by ID
90
- */
91
- async getRun(runId) {
92
- const run = await this.ops.runs.get(runId);
93
- return {
94
- runId: run.id,
95
- runNumber: run.runNumber,
96
- projectId: run.projectId,
97
- dashboardUrl: `${this.config.dashboardUrl}/runs/${run.id}`,
98
- allGatesPassed: run.allGatesPassed,
99
- averageScore: run.averageScore ?? 0,
100
- correlation: { newIssues: 0, recurringIssues: 0, regressions: 0 },
101
- deduplicated: false,
102
- };
103
- }
104
- // ─────────────────────────────────────────────────────────────────────────────
105
- // Private Methods
106
- // ─────────────────────────────────────────────────────────────────────────────
107
- /**
108
- * Determine if a decision is positive using decisionCategory (agents) or raw string fallback.
109
- * Resolves Aporia A3: cognitive lens agents with non-PASS positive decisions
110
- * (EXAMINED, VITAL, FLOWING, etc.) now correctly report allGatesPassed: true.
111
- */
112
- isPositiveDecision(result) {
113
- if ('decisionCategory' in result && result.decisionCategory) {
114
- return result.decisionCategory === 'positive';
115
- }
116
- return result.decision === 'PASS' || result.decision === 'SHIP';
117
- }
118
- /**
119
- * Transform SDK RunSubmission to OpsClient SaveFeaturesListInput format
120
- */
121
- transformToOpsInput(submission) {
122
- const { result } = submission;
123
- // Workflow/pipeline results: decompose phases into per-agent entries
124
- const agents = this.isWorkflowResult(result)
125
- ? this.extractWorkflowAgents(result)
126
- : [this.resultToAgent(result)];
127
- // Extract analysis summary and records when definition is available and result is an agent
128
- let analysisSummary;
129
- let analysisRecords;
130
- if (submission.resolvedDefinition && this.isAgentResult(result)) {
131
- const analysis = this.analysisExtractor.extract(result, submission.resolvedDefinition);
132
- analysisSummary = analysis.summary;
133
- analysisRecords = analysis.records.length > 0 ? analysis.records : undefined;
134
- }
135
- return {
136
- project: submission.project,
137
- workflowType: submission.workflowType,
138
- idempotencyKey: submission.idempotencyKey,
139
- agents,
140
- recommendations: result.recommendations.map(r => ({
141
- agent: r.agent ?? 'unknown',
142
- title: r.title,
143
- priority: r.priority,
144
- severity: r.severity,
145
- failureCode: r.failureCode && /^(STR|SEM|PRA|EPI)-[A-Z]{3}\/[CHMLI]$/.test(r.failureCode) ? r.failureCode : undefined,
146
- failureDomain: r.failureDomain,
147
- failureMode: r.failureMode,
148
- category: r.category,
149
- filePath: r.filePath,
150
- lineNumber: r.lineNumber,
151
- description: r.description,
152
- classificationConfidence: r.classificationConfidence,
153
- classifiedBy: r.classifiedBy,
154
- secondaryFailureCodes: r.secondaryFailureCodes,
155
- taxonomyVersion: r.taxonomyVersion,
156
- })),
157
- timestamp: new Date().toISOString(),
158
- rawMarkdown: submission.rawMarkdown,
159
- summary: {
160
- allGatesPassed: this.isPositiveDecision(result),
161
- averageScore: result.score ?? 0,
162
- },
163
- definitionType: result.type,
164
- definitionName: result.name,
165
- definitionVersion: result.version !== 'unknown' ? result.version : undefined,
166
- definitionHash: result.definitionHash?.replace(/^sha256:/, ''),
167
- definitionMinSubscription: result.minSubscription,
168
- analysisSummary,
169
- analysisRecords,
170
- };
171
- }
172
- /**
173
- * Check if a result is an AgentResult (type === 'agent').
174
- */
175
- isAgentResult(result) {
176
- return result.type === 'agent';
177
- }
178
- /**
179
- * Check if a result is a WorkflowResult with decomposable phases.
180
- */
181
- isWorkflowResult(result) {
182
- return result.type === 'workflow' && 'phases' in result && Array.isArray(result.phases);
183
- }
184
- /**
185
- * Extract individual agent entries from workflow phases.
186
- * Each command result within a phase becomes its own agent entry.
187
- */
188
- extractWorkflowAgents(result) {
189
- const agents = [];
190
- for (const phase of result.phases) {
191
- if (phase.decision === 'skipped' || phase.decision === 'aborted')
192
- continue;
193
- for (const cmd of phase.commands) {
194
- agents.push(this.commandToAgent(cmd));
195
- }
196
- }
197
- // Fallback: if no agents were extracted (all phases skipped), create a single entry
198
- if (agents.length === 0) {
199
- agents.push(this.resultToAgent(result));
200
- }
201
- return agents;
202
- }
203
- /**
204
- * Convert a single ExecutionResult or AgentResult into an agent tracker entry.
205
- */
206
- resultToAgent(result) {
207
- return {
208
- name: result.name,
209
- definitionVersion: result.version !== 'unknown' ? result.version : undefined,
210
- score: result.score ?? 0,
211
- maxScore: 100,
212
- decision: result.decision,
213
- summary: 'summary' in result ? result.summary : undefined,
214
- model: result.metrics.model,
215
- tokens: this.extractTokens(result.metrics),
216
- durationMs: result.metrics.durationMs,
217
- };
218
- }
219
- /**
220
- * Convert a CommandResult into an agent tracker entry.
221
- */
222
- commandToAgent(cmd) {
223
- return {
224
- name: cmd.name,
225
- definitionVersion: cmd.version !== 'unknown' ? cmd.version : undefined,
226
- score: cmd.score ?? 0,
227
- maxScore: cmd.maxScore ?? 100,
228
- decision: cmd.decision,
229
- summary: undefined,
230
- model: cmd.metrics.model,
231
- tokens: this.extractTokens(cmd.metrics),
232
- durationMs: cmd.metrics.durationMs,
233
- };
234
- }
235
- /** Extract token metrics into the tracker's expected shape. */
236
- extractTokens(metrics) {
237
- return {
238
- inputTokens: metrics.inputTokens,
239
- outputTokens: metrics.outputTokens,
240
- cacheCreationTokens: metrics.cacheCreationTokens,
241
- cacheReadTokens: metrics.cacheReadTokens,
242
- thinkingTokens: metrics.thinkingTokens,
243
- totalEffectiveTokens: metrics.totalEffectiveTokens,
244
- };
245
- }
246
- /**
247
- * Create a local-only response when tracking is disabled
248
- */
249
- createLocalResponse(submission) {
250
- return {
251
- runId: 'local',
252
- runNumber: 0,
253
- projectId: 'local',
254
- dashboardUrl: '',
255
- allGatesPassed: this.isPositiveDecision(submission.result),
256
- averageScore: submission.result.score ?? 0,
257
- correlation: {
258
- newIssues: submission.result.recommendations.length,
259
- recurringIssues: 0,
260
- regressions: 0,
261
- },
262
- deduplicated: false,
263
- };
264
- }
265
- }
266
- //# sourceMappingURL=ValidationClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ValidationClient.js","sourceRoot":"","sources":["../../src/validation/ValidationClient.ts"],"names":[],"mappings":"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"}