@uluops/ops-sdk 3.3.0 → 4.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 (46) hide show
  1. package/CHANGELOG.md +161 -0
  2. package/README.md +76 -14
  3. package/dist/client.d.ts +76 -0
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +76 -0
  6. package/dist/client.js.map +1 -1
  7. package/dist/config/constants.d.ts +1 -1
  8. package/dist/config/generated-version.d.ts +1 -1
  9. package/dist/config/generated-version.js +1 -1
  10. package/dist/config/loaders.d.ts +30 -4
  11. package/dist/config/loaders.d.ts.map +1 -1
  12. package/dist/config/loaders.js +34 -4
  13. package/dist/config/loaders.js.map +1 -1
  14. package/dist/config/validators.d.ts +3 -0
  15. package/dist/config/validators.d.ts.map +1 -1
  16. package/dist/config/validators.js +8 -0
  17. package/dist/config/validators.js.map +1 -1
  18. package/dist/errors/errors.d.ts +7 -1
  19. package/dist/errors/errors.d.ts.map +1 -1
  20. package/dist/errors/errors.js +7 -1
  21. package/dist/errors/errors.js.map +1 -1
  22. package/dist/http/http-client.d.ts +10 -0
  23. package/dist/http/http-client.d.ts.map +1 -1
  24. package/dist/http/http-client.js +12 -1
  25. package/dist/http/http-client.js.map +1 -1
  26. package/dist/operations/analytics.d.ts +1 -1
  27. package/dist/operations/analytics.js +1 -1
  28. package/dist/operations/query-utils.d.ts +10 -0
  29. package/dist/operations/query-utils.d.ts.map +1 -1
  30. package/dist/operations/query-utils.js +10 -0
  31. package/dist/operations/query-utils.js.map +1 -1
  32. package/dist/operations/runs.d.ts +2 -1
  33. package/dist/operations/runs.d.ts.map +1 -1
  34. package/dist/operations/runs.js +2 -1
  35. package/dist/operations/runs.js.map +1 -1
  36. package/dist/types/analytics.d.ts +61 -328
  37. package/dist/types/analytics.d.ts.map +1 -1
  38. package/dist/types/response-schemas.d.ts +30 -30
  39. package/dist/types/response-schemas.d.ts.map +1 -1
  40. package/dist/types/response-schemas.js +56 -60
  41. package/dist/types/response-schemas.js.map +1 -1
  42. package/dist/utils/helpers.d.ts +2 -9
  43. package/dist/utils/helpers.d.ts.map +1 -1
  44. package/dist/utils/helpers.js +2 -13
  45. package/dist/utils/helpers.js.map +1 -1
  46. package/package.json +3 -1
package/CHANGELOG.md CHANGED
@@ -6,6 +6,167 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [4.0.0] - 2026-06-17
10
+
11
+ Analytics type system realigned to derive from the Zod response schemas, plus the
12
+ documentation and internal-hygiene fixes from a `consumer-validate` pipeline run
13
+ (run #5: docs 91 / public-interface 87 / dx 96, all gates passed). No runtime
14
+ behavior or endpoint changes — the breaking surface is limited to four removed
15
+ analytics **type** exports (see below).
16
+
17
+ ### ⚠ BREAKING CHANGES
18
+
19
+ - **Removed four analytics type exports** that had no SDK producer method and
20
+ existed only to annotate `getByMetric()` results by hand: `CrossProjectPattern`,
21
+ `RegressionEntry`, `CostEntry`, `CategoryPerformanceEntry` (and their
22
+ `*ResponseSchema` counterparts). The underlying metrics — `cross_project_patterns`,
23
+ `regression_analysis`, `cost_analysis` — remain available unchanged through the
24
+ untyped `getByMetric()` path. **Migration:** if you imported these types, inline
25
+ an equivalent local interface or inspect the `getByMetric()` return directly. No
26
+ method signatures or runtime behavior changed.
27
+
28
+ ### Changed
29
+
30
+ - **Analytics types are now schema-derived.** Hand-written `interface` declarations
31
+ (`Period`, `AgentLifecycleEntry`, `AgentReliability`, `BurndownResult`,
32
+ `VelocityResult`, `DiscoveryResult`, `AgentMatrixResult`, `TrendSummary`,
33
+ `BlindSpot`, `MatrixAnalysis`, `SinglePointFailure`, `HighOverlap`, and related
34
+ row/point shapes) are now `z.infer` aliases of their Zod response schemas, so the
35
+ compile-time types and runtime validation can no longer drift apart. The exported
36
+ type names are unchanged; shapes now track the schemas exactly. New backing
37
+ schemas (`BlindSpotResponseSchema`, `SinglePointFailureResponseSchema`,
38
+ `HighOverlapResponseSchema`, `MatrixAnalysisResponseSchema`) are internal
39
+ implementation detail — like all `*ResponseSchema`s, they are not exported through
40
+ any public subpath. This release introduces **no new public exports**; the surface
41
+ change is the four removed types below plus the `interface`→`type` conversion.
42
+
43
+ ### Fixed
44
+
45
+ - **Overstated 3.4.0 changelog claim.** The 3.4.0 entry said every `OpsClient`
46
+ delegate carries an `@see` link to its underlying operation; delegates actually
47
+ carry a summary line only. Corrected the wording to match what shipped.
48
+ - **Stale `runs.validate()` JSDoc example.** The `@example` referenced a
49
+ non-existent `preview.correlation` field and omitted the required
50
+ `recommendations` input. Corrected to use the actual `ValidateRunResponse`
51
+ fields (`wouldCreate` / `wouldUpdate` / `wouldRegress`).
52
+ - **`getByMetric()` `@throws` type.** Documented `@throws {Error}` but the
53
+ implementation throws `InputValidationError`; the tag now names the precise
54
+ class so consumers can branch on `instanceof`.
55
+ - **README `auth.login()` example.** Destructured the legacy optional `token`
56
+ field instead of the required `sessionToken`; following the example as written
57
+ yielded `undefined`.
58
+ - **README `raw_markdown` size limit.** Documented as 100,000 characters but the
59
+ schema enforces 500,000; the prose now matches the enforced ceiling.
60
+ - **README `types/enums` coverage.** The exports table and a new "Failure Code
61
+ Utilities" example now document the shipped runtime helpers `parseFailureCode`,
62
+ `buildFailureCode`, and `severityFromCode`, previously discoverable only by
63
+ source-diving.
64
+
65
+ ### Removed
66
+
67
+ - **(Breaking — see above)** `CrossProjectPattern`, `RegressionEntry`, `CostEntry`,
68
+ `CategoryPerformanceEntry` and their `*ResponseSchema` exports.
69
+ - **Internal-only dead utilities** (not part of any export path, no production
70
+ callers): `toCamelCase` and the `sleep`/`retry`/`truncate`/`isPlainObject`/`isUuid`
71
+ re-exports from `src/utils/helpers.ts`, plus their tests. The API returns
72
+ camelCase directly, so no client-side casing conversion was needed; shared
73
+ utilities remain available from `@uluops/sdk-core` for internal use. No consumer
74
+ impact — none were reachable through the package `exports` map.
75
+
76
+ ## [3.4.0] - 2026-06-16
77
+
78
+ Consumer-experience polish from a `consumer-validate` pipeline run (docs 93 /
79
+ public-interface 91 / dx 88, all gates passed). No runtime behavior changes to
80
+ existing successful calls; one error type is now more specific (see Changed).
81
+
82
+ ### Security
83
+
84
+ - **Defensive string-length ceilings on issue-domain response fields (CWE-20).**
85
+ Completes the bounding started in 3.2.1, which covered only the history-event
86
+ schemas: `IssueResponseSchema` (fingerprint, title, failureMode, category,
87
+ agent, filePath), `OccurrenceResponseSchema` (agentName, description, filePath),
88
+ `IssueNoteResponseSchema` (content, createdBy), and `StatusHistoryResponseSchema`
89
+ (reason) now carry `.max()` bounds set at-or-above the tracker DB column sizes
90
+ (verified against prod 2026-06-16, with margin against future widenings). An
91
+ unbounded `z.string()` let a degenerate or malicious server force a large heap
92
+ allocation on the calling host before any consumer-side gate could run (the CLI
93
+ consumes these schemas in issue-picker mode and `formatIssue`); oversized
94
+ payloads now throw `ZodError` at parse time instead. Compliant servers are
95
+ unaffected. The reusable `MAX_*` ceiling constants are consolidated above the
96
+ schemas, and `createMockIssue` now eagerly validates against the schema so a
97
+ malformed/oversized test fixture fails at construction. Two tests assert the
98
+ bound fires on an oversized title (600 chars) and fingerprint (200 chars).
99
+
100
+ ### Fixed
101
+
102
+ - **`bulkUpdateStatus` README example corrected.** The example iterated the result
103
+ in a `for…of` loop and read `result.success` / `result.issueId` / `result.error` —
104
+ but the method returns an aggregate object `{ updated: number, failed: string[] }`,
105
+ so the documented code threw `TypeError: results is not iterable` at runtime. The
106
+ API and TypeScript types were always correct; only the example was wrong.
107
+ - **`NotFoundError.details` README comment corrected** to the real shape
108
+ (`{ resource: "Project '…' not found" }`, not `{ id: '…' }`).
109
+ - **`client.issues.search()` `query` parameter documented as optional** (it is
110
+ `query?: string`; filter-only searches are valid) — the parameter table previously
111
+ marked it required.
112
+ - **Stale README version header** (was `3.2.1`) updated.
113
+ - **Analytics response types no longer drift from their Zod schemas.** Every
114
+ analytics type in `src/types/analytics.ts` is now derived via `z.infer` from its
115
+ schema in `response-schemas.ts`, collapsing a second hand-written copy that had
116
+ already diverged in two places: `ResolutionRate` exposed `avgTimeToResolveDays`
117
+ where the wire field is `averageTimeToResolve`, and `TaxonomyDistribution`
118
+ declared a phantom `mode` field (and typed `domain` as the `FailureDomain` enum)
119
+ that the endpoint never returns. Both now match runtime exactly. No consumer
120
+ imported these interface types directly — they consume the method return types —
121
+ so the only break is for anyone who hand-typed against fields that were already
122
+ `undefined` at runtime. The agent-matrix sub-shapes (`BlindSpot`,
123
+ `SinglePointFailure`, `HighOverlap`, `MatrixAnalysis`) gained standalone schemas
124
+ so they derive from a single source too. `AgentInfo` remains a hand-written
125
+ interface by design — it is a client-side projection from `getAgentPerformance`
126
+ with no API endpoint, hence no schema.
127
+
128
+ ### Removed
129
+
130
+ - **Four unreachable analytics types and their schemas** — `CrossProjectPattern`,
131
+ `RegressionEntry`, `CostEntry`, `CategoryPerformanceEntry`. No typed client method
132
+ returned them (reachable only via the generic `getByMetric()`, which returns
133
+ `unknown`) and they had zero references across the SDK and all consumers. The
134
+ corresponding metric strings (`cross_project_patterns`, `regression_analysis`,
135
+ `cost_analysis`) still work via `getByMetric()`.
136
+
137
+ ### Changed
138
+
139
+ - **`OpsHttpClient` now throws `InputValidationError` (not a base `Error`) for an
140
+ invalid `orgSlug`.** Aligns with every other constructor-time validation so callers
141
+ branching on `instanceof InputValidationError` catch it. `InputValidationError`
142
+ extends `Error`, so existing `instanceof Error` / catch-all handlers are unaffected.
143
+
144
+ ### Docs
145
+
146
+ - **`client.issues.softDelete(issueId)` is now documented** in the README Issue
147
+ Operations section (previously the only public method with no README entry).
148
+ - **Error type guards documented.** Added a "Type Guards" section covering all twelve
149
+ guards (`isNotFoundError`, `isRateLimitError`, …) exported from `@uluops/ops-sdk/errors`.
150
+ - **Every `OpsClient` namespace delegate now carries a summary JSDoc line**, so IDE hover over
151
+ `client.runs.save`, `client.issues.search`, etc. surfaces a one-line description
152
+ instead of a bare signature. Full `@param`/`@returns`/`@throws` details live on the
153
+ underlying operation functions (visible in the generated TypeDoc).
154
+ - **`loadCredentials` / `loadConfig` gained full `@param`/`@returns` JSDoc** documenting
155
+ the `options > env > file` priority chain, plus a JSDoc block on the `OpsHttpClient`
156
+ constructor, `buildIssueListParams`, and the config import example at the package root
157
+ (now showing `loadConfig`, `loadEnvFiles`, `ENV_VARS`, `API_KEY_PREFIX`).
158
+ - **TypeDoc API-reference generation added** (`npm run docs:api` → `docs/api`,
159
+ `@internal` excluded). `typedoc` added as a dev dependency.
160
+
161
+ ### Internal
162
+
163
+ - **Leaked internal helpers tagged `@internal`** (no longer surfaced in generated docs;
164
+ still exported to avoid a breaking change): `createErrorFromStatus`
165
+ (`@uluops/ops-sdk/errors`); `getGlobalConfigDir`, `getCredentialsPath`,
166
+ `loadStoredCredentials`, `isApiKey`, `validateCredentials`, `validateUuid`,
167
+ `validateRequiredString`, `validatePositiveInt` (`@uluops/ops-sdk/config`). These are
168
+ plumbing re-exported for advanced/tooling consumers and are not covered by semver.
169
+
9
170
  ## [3.3.0] - 2026-06-16
10
171
 
11
172
  ### Changed
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
  Official TypeScript SDK with Zod runtime validation for the UluOps platform API. Track execution runs, manage issues, analyze trends, and integrate agent pipelines into your workflow.
13
13
 
14
- **Current version: 3.2.1** | [Changelog](./CHANGELOG.md)
14
+ **Current version: 4.0.0** | [Changelog](./CHANGELOG.md)
15
15
 
16
16
  ## Quick Start
17
17
 
@@ -227,8 +227,15 @@ import {
227
227
  RateLimitError,
228
228
  } from '@uluops/ops-sdk/errors';
229
229
 
230
- // Config utilities
231
- import { loadCredentials, DEFAULT_BASE_URL } from '@uluops/ops-sdk/config';
230
+ // Config utilities (also re-exported from the package root)
231
+ import {
232
+ loadCredentials, // resolve credentials from options > env > credentials.json
233
+ loadConfig, // resolve full config (credentials + connection settings)
234
+ loadEnvFiles, // load .env files into process.env before reading config
235
+ DEFAULT_BASE_URL, // default API base URL
236
+ ENV_VARS, // map of the env var names the SDK reads
237
+ API_KEY_PREFIX, // expected API key prefix ('ulr_')
238
+ } from '@uluops/ops-sdk/config';
232
239
  ```
233
240
 
234
241
  ### Package Exports
@@ -241,7 +248,7 @@ import { loadCredentials, DEFAULT_BASE_URL } from '@uluops/ops-sdk/config';
241
248
  | `@uluops/ops-sdk/types/issues` | Issue types only |
242
249
  | `@uluops/ops-sdk/types/runs` | Run types only |
243
250
  | `@uluops/ops-sdk/types/analytics` | Analytics types only |
244
- | `@uluops/ops-sdk/types/enums` | Priority, Status, Severity enums |
251
+ | `@uluops/ops-sdk/types/enums` | Priority, Status, Severity enums + failure-code helpers (`parseFailureCode`, `buildFailureCode`, `severityFromCode`) |
245
252
  | `@uluops/ops-sdk/types/responses` | API response types |
246
253
  | `@uluops/ops-sdk/types/schemas` | Zod input validation schemas |
247
254
  | `@uluops/ops-sdk/types/auth` | Auth/credential types |
@@ -262,6 +269,18 @@ import type { ApiResponse } from '@uluops/ops-sdk/types/responses';
262
269
  import type { Credentials } from '@uluops/ops-sdk/config';
263
270
  ```
264
271
 
272
+ #### Failure Code Utilities
273
+
274
+ The `types/enums` subpath also ships runtime helpers for working with failure codes (the `DOMAIN-MODE/SEVERITY` taxonomy on recommendations):
275
+
276
+ ```typescript
277
+ import { parseFailureCode, buildFailureCode, severityFromCode } from '@uluops/ops-sdk/types/enums';
278
+
279
+ parseFailureCode('SEM-INC/H'); // { domain: 'SEM', mode: 'INC', severityCode: 'H' } — or null if malformed
280
+ buildFailureCode('SEM', 'INC', 'H'); // 'SEM-INC/H'
281
+ severityFromCode('H'); // 'high' — or null if the code is unknown
282
+ ```
283
+
265
284
  ## API Reference
266
285
 
267
286
  ### Client Configuration
@@ -325,7 +344,7 @@ Login with email and password.
325
344
  | `password` | `string` | Yes | User password |
326
345
 
327
346
  ```typescript
328
- const { user, token } = await client.auth.login({
347
+ const { user, sessionToken } = await client.auth.login({
329
348
  email: 'user@example.com',
330
349
  password: 'password123',
331
350
  });
@@ -1058,7 +1077,7 @@ Search issues across projects.
1058
1077
 
1059
1078
  | Parameter | Type | Required | Description |
1060
1079
  |-----------|------|----------|-------------|
1061
- | `query` | `string` | Yes | Search query |
1080
+ | `query` | `string` | No | Search query (omit for filter-only searches) |
1062
1081
  | `projects` | `string[]` | No | Filter by projects |
1063
1082
  | `agents` | `string[]` | No | Filter by agents |
1064
1083
  | `status` | `Status` | No | Filter by status |
@@ -1203,6 +1222,14 @@ Restore a soft-deleted issue.
1203
1222
  const issue = await client.issues.restore('issue-uuid');
1204
1223
  ```
1205
1224
 
1225
+ #### `client.issues.softDelete(issueId)`
1226
+
1227
+ Soft-delete an active issue. Reversible via `restore()`. Returns `{ deleted: true }`.
1228
+
1229
+ ```typescript
1230
+ await client.issues.softDelete('issue-uuid');
1231
+ ```
1232
+
1206
1233
  #### `client.issues.undoLastChange(issueId)`
1207
1234
 
1208
1235
  Undo the last status change on an issue.
@@ -1221,12 +1248,12 @@ const results = await client.issues.bulkUpdateStatus([
1221
1248
  { issueId: 'issue-2', status: 'deferred', reason: 'Not a priority' },
1222
1249
  ]);
1223
1250
 
1224
- // Each result includes per-item success/failure — some items may fail
1225
- // while others succeed (e.g., issue not found, invalid status transition)
1226
- for (const result of results) {
1227
- if (!result.success) {
1228
- console.warn(`Failed to update ${result.issueId}: ${result.error}`);
1229
- }
1251
+ // The result is an aggregate object — `updated` counts the successes and
1252
+ // `failed` lists the issue IDs that could not be updated (e.g., not found
1253
+ // or an invalid status transition).
1254
+ console.log(`Updated ${results.updated} issue(s)`);
1255
+ if (results.failed.length > 0) {
1256
+ console.warn('Failed issue IDs:', results.failed);
1230
1257
  }
1231
1258
  ```
1232
1259
 
@@ -1560,7 +1587,7 @@ try {
1560
1587
  } catch (error) {
1561
1588
  if (error instanceof NotFoundError) {
1562
1589
  console.log(error.message); // "Project 'non-existent' not found"
1563
- console.log(error.details); // { id: 'non-existent' }
1590
+ console.log(error.details); // { resource: "Project 'non-existent' not found" }
1564
1591
  } else if (error instanceof UnauthorizedError) {
1565
1592
  console.log('Please authenticate');
1566
1593
  } else if (error instanceof RateLimitError) {
@@ -1590,6 +1617,41 @@ try {
1590
1617
  | `TimeoutError` | - | Request timeout |
1591
1618
  | `InputValidationError` | - | Client-side Zod validation failure |
1592
1619
 
1620
+ ### Type Guards
1621
+
1622
+ Every error class also ships a type guard. These are an alternative to `instanceof`
1623
+ that narrows the error type without importing the class — useful in `switch`-style
1624
+ handling or when you only need a subset of the hierarchy:
1625
+
1626
+ ```typescript
1627
+ import {
1628
+ isOpsApiError, // any server-returned API error
1629
+ isNotFoundError, // 404
1630
+ isUnauthorizedError, // 401
1631
+ isForbiddenError, // 403
1632
+ isValidationError, // 400
1633
+ isConflictError, // 409
1634
+ isUnprocessableError, // 422
1635
+ isRateLimitError, // 429
1636
+ isPayloadTooLargeError, // 413
1637
+ isServiceUnavailableError, // 503
1638
+ isNetworkError, // connection failure
1639
+ isTimeoutError, // request timeout
1640
+ } from '@uluops/ops-sdk/errors';
1641
+
1642
+ try {
1643
+ await client.runs.save(input);
1644
+ } catch (error) {
1645
+ if (isNotFoundError(error)) {
1646
+ // handle missing resource
1647
+ } else if (isRateLimitError(error)) {
1648
+ console.log(`Retry after ${error.details?.retryAfter}s`);
1649
+ } else if (isOpsApiError(error)) {
1650
+ console.log(`API error: ${error.code} - ${error.message}`);
1651
+ }
1652
+ }
1653
+ ```
1654
+
1593
1655
  ### Automatic Retries
1594
1656
 
1595
1657
  The SDK automatically retries on transient errors (502, 503, 504, 429) and network failures (DNS, connection reset, ECONNREFUSED) with exponential backoff:
@@ -1607,7 +1669,7 @@ const client = new OpsClient({
1607
1669
  The API enforces the following payload limits:
1608
1670
 
1609
1671
  - **Request body**: 1 MB maximum for most endpoints
1610
- - **`raw_markdown`** field in `runs.save()`: up to 100,000 characters
1672
+ - **`raw_markdown`** field in `runs.save()`: up to 500,000 characters
1611
1673
  - **Recommendations array**: no hard limit, but very large arrays (1000+) may cause timeouts
1612
1674
  - **Bulk operations**: capped at 100 items per request (e.g., `bulkUpdateStatus`)
1613
1675
 
package/dist/client.d.ts CHANGED
@@ -69,117 +69,193 @@ export declare class OpsClient {
69
69
  getAuthType(): 'api_key' | 'session' | null;
70
70
  /** Authentication, API keys, sessions, and user profile management */
71
71
  readonly auth: {
72
+ /** Register a new user account. */
72
73
  register: (input: RegisterInput) => Promise<RegisterResponse>;
74
+ /** Log in with email + password, returning a session token. */
73
75
  login: (input: LoginInput) => Promise<LoginResponse>;
76
+ /** Revoke all active sessions for the current user. */
74
77
  logoutAll: () => Promise<{
75
78
  sessionsRevoked: number;
76
79
  }>;
80
+ /** Trigger a password-reset email for the given address. */
77
81
  forgotPassword: (email: string) => Promise<MessageResponse>;
82
+ /** Complete a password reset using a token from the reset email. */
78
83
  resetPassword: (input: ResetPasswordInput) => Promise<MessageResponse>;
84
+ /** Change the current user's password (requires current password). */
79
85
  changePassword: (input: ChangePasswordInput) => Promise<MessageResponse>;
86
+ /** Set a first-time password for OAuth/admin-created accounts. */
80
87
  setPassword: (password: string) => Promise<MessageResponse>;
88
+ /** Get the authenticated user (auth-scoped view). */
81
89
  getMe: () => Promise<AuthUser>;
90
+ /** Get the current user's public profile. */
82
91
  getProfile: () => Promise<{
83
92
  user: PublicUser;
84
93
  }>;
94
+ /** Update the current user's profile (partial; at least one field). */
85
95
  updateProfile: (input: UpdateProfileInput) => Promise<{
86
96
  user: PublicUser;
87
97
  }>;
98
+ /** Fetch the current user's avatar bytes and content type. */
88
99
  getAvatar: () => Promise<{
89
100
  data: ArrayBuffer;
90
101
  contentType: string;
91
102
  }>;
103
+ /** Remove the current user's avatar. */
92
104
  deleteAvatar: () => Promise<void>;
105
+ /** List the current user's API keys (metadata only). */
93
106
  listApiKeys: () => Promise<PublicApiKey[]>;
107
+ /** Create an API key; the secret is returned once, on creation. */
94
108
  createApiKey: (input?: CreateApiKeyInput) => Promise<ApiKeyCreatedResponse>;
109
+ /** Revoke an API key by id. */
95
110
  revokeApiKey: (keyId: string) => Promise<void>;
111
+ /** List the current user's active sessions. */
96
112
  listSessions: () => Promise<PublicSession[]>;
113
+ /** Revoke a single session by id. */
97
114
  revokeSession: (sessionId: string) => Promise<void>;
98
115
  };
99
116
  /** Project CRUD, summaries, trends, issue listing, and bulk operations */
100
117
  readonly projects: {
118
+ /** List all projects visible to the caller. */
101
119
  list: () => Promise<Project[]>;
120
+ /** Get a project by id or name. */
102
121
  get: (idOrName: string) => Promise<Project>;
122
+ /** Create a new project. */
103
123
  create: (input: CreateProjectInput) => Promise<Project>;
124
+ /** Update a project's metadata. */
104
125
  update: (idOrName: string, input: UpdateProjectInput) => Promise<Project>;
126
+ /** Permanently delete a project (requires confirmation). */
105
127
  delete: (idOrName: string, input: DeleteProjectInput) => Promise<DeleteResult>;
128
+ /** Soft-delete a project; reversible via `restore()`. */
106
129
  softDelete: (idOrName: string, input: DeleteProjectInput) => Promise<DeleteResult>;
130
+ /** Restore a soft-deleted project. */
107
131
  restore: (idOrName: string) => Promise<Project>;
132
+ /** Rename a project. */
108
133
  rename: (input: RenameProjectInput) => Promise<Project>;
134
+ /** Get aggregate summary stats for a project. */
109
135
  getSummary: (idOrName: string) => Promise<ProjectSummaryResponse>;
136
+ /** Get time-series trends for a project. */
110
137
  getTrends: (idOrName: string, query?: ProjectTrendsQuery) => Promise<ProjectTrends>;
138
+ /** List a project's issues (filtered). */
111
139
  listIssues: (idOrName: string, query?: ListProjectIssuesQuery) => Promise<Issue[]>;
140
+ /** List a project's issues with a total count for pagination. */
112
141
  listIssuesWithCount: (idOrName: string, query?: ListProjectIssuesQuery) => Promise<PaginatedIssues>;
142
+ /** Bulk-update the status of many issues in a project. */
113
143
  bulkUpdateIssueStatus: (idOrName: string, updates: BulkIssueStatusUpdate[]) => Promise<BulkIssueStatusResult>;
144
+ /** Merge duplicate issues within a project. */
114
145
  mergeIssues: (idOrName: string, input: MergeIssuesInput) => Promise<MergeIssuesResult>;
115
146
  };
116
147
  /** Execution run save, preview, diff, archive, and retrieval */
117
148
  readonly runs: {
149
+ /** Save an execution run (agents, scores, recommendations). */
118
150
  save: (input: SaveRunInput, options?: {
119
151
  _skipClientValidation?: boolean;
120
152
  }) => Promise<SaveRunResponse>;
153
+ /** Preview a save without persisting (dry-run). */
121
154
  validate: (input: SaveRunInput, options?: {
122
155
  _skipClientValidation?: boolean;
123
156
  }) => Promise<ValidateRunResponse>;
157
+ /** Diff two runs to surface regressions/improvements. */
124
158
  diff: (query: RunDiffQuery) => Promise<RunDiffResult>;
159
+ /** Archive old runs by number/date/keep-last filter. */
125
160
  archive: (input: ArchiveRunsInput) => Promise<ArchiveRunsResult>;
161
+ /** Update a run identified by project + run number. */
126
162
  update: (input: UpdateRunByNumberInput, options?: {
127
163
  _skipClientValidation?: boolean;
128
164
  }) => Promise<Run>;
165
+ /** List run summaries for a project. */
129
166
  listByProject: (projectId: string, query?: ListRunsQuery) => Promise<RunSummary[]>;
167
+ /** Get the latest run for a project (optionally by workflow type). */
130
168
  getLatest: (projectId: string, workflowType?: string) => Promise<Run>;
169
+ /** Get full details for a run (defaults to latest when runNumber omitted). */
131
170
  getDetails: (projectId: string, runNumber?: number) => Promise<RunDetails>;
171
+ /** Get a single run by its id. */
132
172
  get: (runId: string) => Promise<Run>;
173
+ /** Update a run identified directly by id. */
133
174
  updateById: (runId: string, input: UpdateRunInput, options?: {
134
175
  _skipClientValidation?: boolean;
135
176
  }) => Promise<Run>;
177
+ /** Delete a run by id. */
136
178
  delete: (runId: string) => Promise<DeleteResult>;
179
+ /** Get the structured analysis attached to a run. */
137
180
  getAnalysis: (runId: string) => Promise<RunAnalysis>;
181
+ /** List analyses across a project's runs. */
138
182
  getProjectAnalysis: (projectId: string, query?: ProjectAnalysisQuery) => Promise<ProjectAnalysisList>;
183
+ /** Query individual analysis records across runs. */
139
184
  queryAnalysisRecords: (query?: AnalysisRecordsQuery) => Promise<AnalysisRecordsList>;
185
+ /** Get per-run analysis history for a single agent. */
140
186
  getAgentRunsAnalysis: (agentName: string, query: AgentRunsAnalysisQuery) => Promise<AgentRunsAnalysis>;
141
187
  };
142
188
  /** Issue CRUD, search, status management, notes, and bulk operations */
143
189
  readonly issues: {
190
+ /** Create a user-submitted issue. */
144
191
  create: (input: CreateUserIssueInput) => Promise<Issue>;
192
+ /** Search issues by text/filters. */
145
193
  search: (query: IssueSearchQuery) => Promise<Issue[]>;
194
+ /** Get an issue by its fingerprint within a project. */
146
195
  getByFingerprint: (fingerprint: string, project: string) => Promise<Issue>;
196
+ /** Update an issue's status by fingerprint + project. */
147
197
  updateStatusByFingerprint: (fingerprint: string, project: string, input: UpdateIssueStatusInput) => Promise<StatusUpdateResult>;
198
+ /** Get an issue by id. */
148
199
  get: (issueId: string) => Promise<Issue>;
200
+ /** Get an issue with notes and history detail. */
149
201
  getDetails: (issueId: string) => Promise<IssueDetails>;
202
+ /** Get an issue's change history. */
150
203
  getHistory: (issueId: string) => Promise<IssueHistoryEnvelope>;
204
+ /** Update an issue's status by id. */
151
205
  updateStatus: (issueId: string, input: UpdateIssueStatusInput) => Promise<Issue>;
206
+ /** Update an issue's metadata by id. */
152
207
  update: (issueId: string, input: UpdateIssueInput) => Promise<Issue>;
208
+ /** Add a note to an issue. */
153
209
  addNote: (issueId: string, input: CreateIssueNoteInput) => Promise<IssueNote>;
210
+ /** Restore a soft-deleted issue. */
154
211
  restore: (issueId: string) => Promise<Issue>;
212
+ /** Soft-delete an active issue; reversible via `restore()`. */
155
213
  softDelete: (issueId: string) => Promise<DeleteResult>;
214
+ /** Undo the most recent change to an issue. */
156
215
  undoLastChange: (issueId: string) => Promise<Issue>;
216
+ /** Bulk-update issue statuses; returns `{ updated, failed }`. */
157
217
  bulkUpdateStatus: (updates: BulkStatusUpdateItem[]) => Promise<BulkIssueStatusResult>;
218
+ /** List a project's issues by project id (filtered). */
158
219
  listByProject: (projectId: string, query?: ListIssuesQuery) => Promise<Issue[]>;
159
220
  };
160
221
  /** Agent performance, taxonomy analytics, burndown, velocity, and discovery */
161
222
  readonly analytics: {
223
+ /** Get per-agent performance metrics. */
162
224
  getAgentPerformance: (query?: AnalyticsQuery) => Promise<AgentPerformance[]>;
225
+ /** Get agent reliability (convergence/recurrence) metrics. */
163
226
  getAgentReliability: (query?: AgentReliabilityQuery) => Promise<AgentReliabilityResult>;
227
+ /** Get an agent's lifecycle timeline. */
164
228
  getAgentLifecycle: (agentName: string, query?: AnalyticsQuery) => Promise<AgentLifecycleEntry[]>;
229
+ /** Get issue resolution-rate metrics. */
165
230
  getResolutionRates: (query?: AnalyticsQuery) => Promise<ResolutionRateResult[]>;
231
+ /** Get files with the most recurring issues. */
166
232
  getFileHotspots: (query?: AnalyticsQuery) => Promise<FileHotspotResult[]>;
233
+ /** Get the distribution of issues across the failure taxonomy. */
167
234
  getTaxonomyDistribution: (query?: AnalyticsQuery) => Promise<TaxonomyDistributionResult[]>;
235
+ /** Get the full taxonomy analytics breakdown. */
168
236
  getFullTaxonomy: (query?: AnalyticsQuery) => Promise<FullTaxonomyAnalyticsResult>;
237
+ /** Get issue burndown over time. */
169
238
  getBurndown: (query?: BurndownQuery) => Promise<BurndownResultResponse>;
239
+ /** Get resolution velocity over time. */
170
240
  getVelocity: (query?: VelocityQuery) => Promise<VelocityResultResponse>;
241
+ /** Get issue-discovery rate metrics. */
171
242
  getDiscovery: (query?: DiscoveryQuery) => Promise<DiscoveryResultResponse>;
243
+ /** Get the agent comparison matrix. */
172
244
  getAgentMatrix: (query?: AgentMatrixQuery) => Promise<AgentMatrixResultResponse>;
245
+ /** Get a high-level trend summary. */
173
246
  getTrendSummary: (query?: AnalyticsQuery) => Promise<TrendSummaryResult[]>;
174
247
  /**
175
248
  * Get analytics by metric name (generic endpoint).
176
249
  * Returns unvalidated data — use typed methods (getAgentPerformance, etc.) for validated responses.
250
+ *
177
251
  */
178
252
  getByMetric: (metric: analyticsOps.AnalyticsMetric, query?: AnalyticsQuery) => Promise<unknown>;
253
+ /** List agents known to the analytics layer. */
179
254
  listAgents: (query?: AnalyticsQuery) => Promise<AgentInfo[]>;
180
255
  };
181
256
  /** Failure taxonomy schema (domains, modes, severities) */
182
257
  readonly taxonomy: {
258
+ /** Get the failure-taxonomy schema (domains, modes, severities). */
183
259
  get: () => Promise<TaxonomyResponse>;
184
260
  };
185
261
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}