@uluops/core 0.22.0 → 0.22.7

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 (74) hide show
  1. package/README.md +56 -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 +12 -0
  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 +19 -2
  9. package/dist/ai/ModelCatalog.js.map +1 -1
  10. package/dist/ai/TokenBudgetTracker.d.ts +6 -2
  11. package/dist/ai/TokenBudgetTracker.d.ts.map +1 -1
  12. package/dist/ai/TokenBudgetTracker.js +6 -2
  13. package/dist/ai/TokenBudgetTracker.js.map +1 -1
  14. package/dist/analysis/AnalysisSummaryExtractor.d.ts +33 -5
  15. package/dist/analysis/AnalysisSummaryExtractor.d.ts.map +1 -1
  16. package/dist/analysis/AnalysisSummaryExtractor.js +43 -6
  17. package/dist/analysis/AnalysisSummaryExtractor.js.map +1 -1
  18. package/dist/client/UluOpsClient.d.ts +133 -21
  19. package/dist/client/UluOpsClient.d.ts.map +1 -1
  20. package/dist/client/UluOpsClient.js +237 -118
  21. package/dist/client/UluOpsClient.js.map +1 -1
  22. package/dist/constants.d.ts +2 -2
  23. package/dist/constants.d.ts.map +1 -1
  24. package/dist/constants.js +2 -2
  25. package/dist/constants.js.map +1 -1
  26. package/dist/executor/AgentExecutor.d.ts.map +1 -1
  27. package/dist/executor/AgentExecutor.js +4 -1
  28. package/dist/executor/AgentExecutor.js.map +1 -1
  29. package/dist/executor/CommandExecutor.d.ts +12 -1
  30. package/dist/executor/CommandExecutor.d.ts.map +1 -1
  31. package/dist/executor/CommandExecutor.js +13 -2
  32. package/dist/executor/CommandExecutor.js.map +1 -1
  33. package/dist/executor/PipelineExecutor.d.ts +20 -2
  34. package/dist/executor/PipelineExecutor.d.ts.map +1 -1
  35. package/dist/executor/PipelineExecutor.js +20 -2
  36. package/dist/executor/PipelineExecutor.js.map +1 -1
  37. package/dist/executor/WorkflowExecutor.d.ts +3 -0
  38. package/dist/executor/WorkflowExecutor.d.ts.map +1 -1
  39. package/dist/executor/WorkflowExecutor.js +3 -0
  40. package/dist/executor/WorkflowExecutor.js.map +1 -1
  41. package/dist/executor/classifyDecision.d.ts +23 -0
  42. package/dist/executor/classifyDecision.d.ts.map +1 -1
  43. package/dist/executor/classifyDecision.js +23 -0
  44. package/dist/executor/classifyDecision.js.map +1 -1
  45. package/dist/executor/preflight.js +5 -1
  46. package/dist/executor/preflight.js.map +1 -1
  47. package/dist/index.d.ts +2 -2
  48. package/dist/index.d.ts.map +1 -1
  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 +48 -0
  63. package/dist/types/agent.d.ts.map +1 -1
  64. package/dist/types/index.d.ts +2 -2
  65. package/dist/types/index.d.ts.map +1 -1
  66. package/package.json +4 -4
  67. package/dist/types/validation.d.ts +0 -116
  68. package/dist/types/validation.d.ts.map +0 -1
  69. package/dist/types/validation.js +0 -2
  70. package/dist/types/validation.js.map +0 -1
  71. package/dist/validation/ValidationClient.d.ts +0 -81
  72. package/dist/validation/ValidationClient.d.ts.map +0 -1
  73. package/dist/validation/ValidationClient.js +0 -266
  74. package/dist/validation/ValidationClient.js.map +0 -1
@@ -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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"}