@intutic/shared-types 2.5.0 → 2.5.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.
- package/README.md +9 -9
- package/dist/apiKeyScopes.d.ts +100 -0
- package/dist/apiKeyScopes.d.ts.map +1 -0
- package/dist/apiKeyScopes.js +142 -0
- package/dist/apiKeyScopes.js.map +1 -0
- package/dist/attenuation.d.ts +6 -2
- package/dist/attenuation.d.ts.map +1 -1
- package/dist/attenuation.js +13 -1
- package/dist/attenuation.js.map +1 -1
- package/dist/auth.d.ts +35 -4
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +26 -6
- package/dist/auth.js.map +1 -1
- package/dist/enums.d.ts +9 -26
- package/dist/enums.d.ts.map +1 -1
- package/dist/enums.js +11 -28
- package/dist/enums.js.map +1 -1
- package/dist/errors.d.ts +6 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +6 -1
- package/dist/errors.js.map +1 -1
- package/dist/finops.d.ts +4 -2
- package/dist/finops.d.ts.map +1 -1
- package/dist/guardrailRender.d.ts +51 -0
- package/dist/guardrailRender.d.ts.map +1 -1
- package/dist/guardrailRender.js +69 -1
- package/dist/guardrailRender.js.map +1 -1
- package/dist/identity.d.ts +0 -18
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +1 -5
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +12 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -10
- package/dist/index.js.map +1 -1
- package/dist/mcpDaemonPolicyCache.d.ts +32 -0
- package/dist/mcpDaemonPolicyCache.d.ts.map +1 -0
- package/dist/mcpDaemonPolicyCache.js +43 -0
- package/dist/mcpDaemonPolicyCache.js.map +1 -0
- package/dist/piiDetectors.d.ts +3 -0
- package/dist/piiDetectors.d.ts.map +1 -1
- package/dist/piiDetectors.js.map +1 -1
- package/dist/piiDetectors.json +11 -6
- package/dist/posturePresets.d.ts.map +1 -1
- package/dist/posturePresets.js +12 -3
- package/dist/posturePresets.js.map +1 -1
- package/dist/responses/common.d.ts +53 -0
- package/dist/responses/common.d.ts.map +1 -0
- package/dist/responses/common.js +43 -0
- package/dist/responses/common.js.map +1 -0
- package/dist/responses/gateways.d.ts +4999 -0
- package/dist/responses/gateways.d.ts.map +1 -0
- package/dist/responses/gateways.js +394 -0
- package/dist/responses/gateways.js.map +1 -0
- package/dist/responses/guardrails.d.ts +5200 -0
- package/dist/responses/guardrails.d.ts.map +1 -0
- package/dist/responses/guardrails.js +374 -0
- package/dist/responses/guardrails.js.map +1 -0
- package/dist/responses/identity.d.ts +1667 -0
- package/dist/responses/identity.d.ts.map +1 -0
- package/dist/responses/identity.js +292 -0
- package/dist/responses/identity.js.map +1 -0
- package/dist/responses/index.d.ts +15 -0
- package/dist/responses/index.d.ts.map +1 -0
- package/dist/responses/index.js +31 -0
- package/dist/responses/index.js.map +1 -0
- package/dist/responses/integrations.d.ts +4118 -0
- package/dist/responses/integrations.d.ts.map +1 -0
- package/dist/responses/integrations.js +400 -0
- package/dist/responses/integrations.js.map +1 -0
- package/dist/responses/observability.d.ts +3222 -0
- package/dist/responses/observability.d.ts.map +1 -0
- package/dist/responses/observability.js +598 -0
- package/dist/responses/observability.js.map +1 -0
- package/dist/responses/orgSops.d.ts +112 -0
- package/dist/responses/orgSops.d.ts.map +1 -0
- package/dist/responses/orgSops.js +29 -0
- package/dist/responses/orgSops.js.map +1 -0
- package/dist/responses/rules.d.ts +1948 -0
- package/dist/responses/rules.d.ts.map +1 -0
- package/dist/responses/rules.js +352 -0
- package/dist/responses/rules.js.map +1 -0
- package/dist/skillScan.d.ts +31 -0
- package/dist/skillScan.d.ts.map +1 -1
- package/dist/skillScan.js +25 -1
- package/dist/skillScan.js.map +1 -1
- package/dist/sop.d.ts +8 -1
- package/dist/sop.d.ts.map +1 -1
- package/dist/sop.js.map +1 -1
- package/dist/workspaceSettings.d.ts +28 -10
- package/dist/workspaceSettings.d.ts.map +1 -1
- package/dist/workspaceSettings.js +3 -1
- package/dist/workspaceSettings.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../src/responses/observability.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,598 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LoopRunReviewResponse = exports.LoopRunKillResponse = exports.LoopRunCompleteResponse = exports.LoopRunListResponse = exports.LoopRunEnvelopeResponse = exports.LoopRunResponse = exports.PullRequestRefreshResponse = exports.PullRequestUsageListResponse = exports.CommitUsageListResponse = exports.BranchUsageListResponse = exports.TeamUsageListResponse = exports.MemberUsageListResponse = exports.MemberUsageRowResponse = exports.DeviceDisconnectListResponse = exports.InventorySkillListResponse = exports.InventoryMcpServerListResponse = exports.InventoryHarnessListResponse = exports.InventoryDeviceListResponse = exports.DeviceDisconnectRowResponse = exports.InventorySkillResponse = exports.InventoryMcpServerResponse = exports.InventoryHarnessResponse = exports.InventoryDeviceResponse = exports.InventorySummaryResponse = exports.IntegrityConfigChainResponse = exports.IntegrityChainResponse = exports.IntegrityRecomputeResponse = exports.IntegrityRootDetailResponse = exports.IntegrityLeafResponse = exports.IntegrityRootRowResponse = exports.IntegrityRootListResponse = exports.IntegrityRootSummaryResponse = exports.ResponseEchoReportResponse = exports.FindingStatsResponse = exports.FindingAdjudicationResponse = exports.FindingListResponse = exports.FindingResponse = exports.TraceDetailResponse = exports.TraceListResponse = exports.TraceSummaryResponse = exports.IncidentListResponse = exports.IncidentListRowResponse = exports.ReviewBudgetResponse = exports.IncidentDetailResponse = exports.IncidentResponse = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Responses of the control plane routes in incidents.ts, traces.ts, findings.ts, integrity.ts, inventory.ts, usage.ts and loops.ts.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
const zod_1 = require("zod");
|
|
10
|
+
const enums_js_1 = require("../enums.js");
|
|
11
|
+
const common_js_1 = require("./common.js");
|
|
12
|
+
/**
|
|
13
|
+
* A timestamp a raw SQL query (`db.execute`) returned: Postgres's own text
|
|
14
|
+
* form (`2026-10-14 16:40:42.965558+00`), which the driver passes through
|
|
15
|
+
* unparsed. Not ISO 8601, though `Date.parse` reads it.
|
|
16
|
+
*/
|
|
17
|
+
const PgTimestampText = zod_1.z.string().describe('Postgres timestamptz text, e.g. `2026-10-14 16:40:42.965558+00` (not ISO 8601).');
|
|
18
|
+
const RiskLevel = zod_1.z.enum(['LOW', 'MEDIUM', 'HIGH', 'CRITICAL']);
|
|
19
|
+
// ─── Incidents (`routes/incidents.ts`) ────────────────────────────────
|
|
20
|
+
/** A governance incident, as `GET /api/v1/incidents/:id` maps its `governance_incidents` row. */
|
|
21
|
+
exports.IncidentResponse = zod_1.z.object({
|
|
22
|
+
incident_id: zod_1.z.string(),
|
|
23
|
+
workspace_id: zod_1.z.string(),
|
|
24
|
+
trace_id: zod_1.z.string().nullable(),
|
|
25
|
+
session_id: zod_1.z.string().nullable(),
|
|
26
|
+
severity: RiskLevel,
|
|
27
|
+
anomaly_type: zod_1.z.enum(enums_js_1.INCIDENT_TYPES).describe('An anomaly category or a system incident type.'),
|
|
28
|
+
description: zod_1.z.string(),
|
|
29
|
+
resolution_status: zod_1.z.string().nullable().describe('OPEN, INVESTIGATING, RESOLVED or AUTO_RESOLVED; free text in the column.'),
|
|
30
|
+
resolved_by: zod_1.z.string().nullable(),
|
|
31
|
+
resolved_at: common_js_1.IsoTimestamp.nullable(),
|
|
32
|
+
escalation_chain: zod_1.z
|
|
33
|
+
.record(zod_1.z.unknown())
|
|
34
|
+
.nullable()
|
|
35
|
+
.describe('Where the incident came from and how it was escalated (jsonb; its keys depend on the source); a resolve adds `resolution_notes`.'),
|
|
36
|
+
created_at: common_js_1.IsoTimestamp,
|
|
37
|
+
});
|
|
38
|
+
/** `GET /api/v1/incidents/:id`. */
|
|
39
|
+
exports.IncidentDetailResponse = zod_1.z.object({ data: exports.IncidentResponse });
|
|
40
|
+
/** How much of a ranked review queue the audit budget covers (`services/reviewPriority.ts` `describeBudget`). */
|
|
41
|
+
exports.ReviewBudgetResponse = zod_1.z.object({
|
|
42
|
+
budget: zod_1.z.number().int().describe('How many items a reviewer is expected to get through (INTUTIC_AUDIT_BUDGET).'),
|
|
43
|
+
matched: zod_1.z.number().int().describe('How many matched the filter in total.'),
|
|
44
|
+
withheld: zod_1.z.number().int().describe('How many are not shown because the budget ran out.'),
|
|
45
|
+
overBudget: zod_1.z.boolean(),
|
|
46
|
+
});
|
|
47
|
+
const IncidentListMeta = zod_1.z.object({
|
|
48
|
+
total: zod_1.z.number().int(),
|
|
49
|
+
page: zod_1.z.number().int(),
|
|
50
|
+
limit: zod_1.z.number().int(),
|
|
51
|
+
audit: exports.ReviewBudgetResponse,
|
|
52
|
+
});
|
|
53
|
+
/** One row of the incident list: the incident with its rank. */
|
|
54
|
+
exports.IncidentListRowResponse = exports.IncidentResponse.extend({
|
|
55
|
+
review_priority: zod_1.z.number().describe('How far up the review queue the incident ranks; the list is sorted by it, highest first.'),
|
|
56
|
+
});
|
|
57
|
+
/**
|
|
58
|
+
* `GET /api/v1/incidents`. A page of 20 or more rows is TOON-encoded: the rows
|
|
59
|
+
* are one string under `data`, and `listProperty` names where a decoder puts
|
|
60
|
+
* them (`data` again).
|
|
61
|
+
*/
|
|
62
|
+
exports.IncidentListResponse = zod_1.z.union([
|
|
63
|
+
(0, common_js_1.listEnvelope)('data', 'snake').extend({
|
|
64
|
+
format: zod_1.z.literal('toon'),
|
|
65
|
+
data: zod_1.z.string().describe('The rows, TOON-encoded (`@intutic/shared-types` `toonDecode`).'),
|
|
66
|
+
meta: IncidentListMeta,
|
|
67
|
+
}),
|
|
68
|
+
(0, common_js_1.listEnvelope)('data', 'snake').extend({ data: zod_1.z.array(exports.IncidentListRowResponse), meta: IncidentListMeta }),
|
|
69
|
+
]);
|
|
70
|
+
// ─── Traces (`routes/traces.ts`) ──────────────────────────────────────
|
|
71
|
+
/**
|
|
72
|
+
* One trace in the list (`traceQueryService.ts` `listTraces`). `breakGlass` and
|
|
73
|
+
* `breakGlassRequestId` are always sent; they are optional here because
|
|
74
|
+
* `TraceSummary` declares them so.
|
|
75
|
+
*/
|
|
76
|
+
exports.TraceSummaryResponse = zod_1.z.object({
|
|
77
|
+
traceId: zod_1.z.string(),
|
|
78
|
+
timestamp: common_js_1.IsoTimestamp,
|
|
79
|
+
requestedModel: zod_1.z.string(),
|
|
80
|
+
actualModelRouted: zod_1.z.string(),
|
|
81
|
+
enforcementAction: zod_1.z.string().describe('BYPASS, ENHANCE, HIJACK, REASK, KILL or OBSERVED.'),
|
|
82
|
+
complianceScore: zod_1.z.number(),
|
|
83
|
+
actualCostUsd: zod_1.z.number(),
|
|
84
|
+
anomalyDetected: zod_1.z.string().nullable().describe('The winning anomaly category, null when none.'),
|
|
85
|
+
breakGlass: zod_1.z.boolean().optional().describe('True when the request ran under a break-glass token.'),
|
|
86
|
+
breakGlassRequestId: zod_1.z.string().nullable().optional(),
|
|
87
|
+
});
|
|
88
|
+
/**
|
|
89
|
+
* `GET /api/v1/traces`. A page of 20 or more rows is TOON-encoded: the rows are
|
|
90
|
+
* one string under `data`, and `listProperty: 'traces'` names where a decoder
|
|
91
|
+
* puts them.
|
|
92
|
+
*/
|
|
93
|
+
exports.TraceListResponse = zod_1.z.union([
|
|
94
|
+
(0, common_js_1.listEnvelope)('traces', 'camel').extend({
|
|
95
|
+
format: zod_1.z.literal('toon'),
|
|
96
|
+
data: zod_1.z.string().describe('The rows, TOON-encoded (`@intutic/shared-types` `toonDecode`).'),
|
|
97
|
+
total: zod_1.z.number().int(),
|
|
98
|
+
}),
|
|
99
|
+
(0, common_js_1.listEnvelope)('traces', 'camel').extend({
|
|
100
|
+
traces: zod_1.z.array(exports.TraceSummaryResponse),
|
|
101
|
+
total: zod_1.z.number().int(),
|
|
102
|
+
limit: zod_1.z.number().int(),
|
|
103
|
+
offset: zod_1.z.number().int(),
|
|
104
|
+
}),
|
|
105
|
+
]);
|
|
106
|
+
/** One tool call the enforcement log recorded for the trace's request. */
|
|
107
|
+
const TraceStepResponse = zod_1.z.object({
|
|
108
|
+
logId: zod_1.z.string(),
|
|
109
|
+
toolName: zod_1.z.string(),
|
|
110
|
+
toolArguments: zod_1.z.unknown().describe('The tool call\'s arguments as logged (jsonb).'),
|
|
111
|
+
riskCategory: zod_1.z.string().nullable(),
|
|
112
|
+
verdict: zod_1.z.string(),
|
|
113
|
+
confidence: zod_1.z.number(),
|
|
114
|
+
reason: zod_1.z.string(),
|
|
115
|
+
loopDetected: zod_1.z.boolean(),
|
|
116
|
+
latencyMs: zod_1.z.number().int().nullable(),
|
|
117
|
+
timestamp: common_js_1.IsoTimestamp,
|
|
118
|
+
});
|
|
119
|
+
/** One persisted detector finding on the trace (`detector_findings`). */
|
|
120
|
+
const TraceFindingResponse = zod_1.z.object({
|
|
121
|
+
findingId: zod_1.z.string(),
|
|
122
|
+
detectorId: zod_1.z.string(),
|
|
123
|
+
anomalyKind: zod_1.z.string(),
|
|
124
|
+
severity: zod_1.z.string(),
|
|
125
|
+
disposition: zod_1.z.string().describe('STEER, REASK, ASK or KILL: what the finding did.'),
|
|
126
|
+
confidence: zod_1.z.number(),
|
|
127
|
+
reason: zod_1.z.string(),
|
|
128
|
+
shadowed: zod_1.z.boolean().describe('True when recorded in shadow mode, not enforced.'),
|
|
129
|
+
});
|
|
130
|
+
/** One thing the request touched, as the proxy's change manifest records it (`ChangeEntry` in `packages/proxy/src/manifest.rs`). */
|
|
131
|
+
const ChangeManifestEntryResponse = zod_1.z.object({
|
|
132
|
+
tool: zod_1.z.string(),
|
|
133
|
+
op: zod_1.z.enum(['write', 'edit', 'delete', 'move', 'execute', 'read', 'fetch', 'unknown']),
|
|
134
|
+
target: zod_1.z.string(),
|
|
135
|
+
target_kind: zod_1.z.enum(['path', 'url', 'command', 'opaque']),
|
|
136
|
+
risk: zod_1.z.array(zod_1.z.string()).optional(),
|
|
137
|
+
bytes: zod_1.z.number().optional(),
|
|
138
|
+
});
|
|
139
|
+
/** One upstream call the proxy made for the request (`lib/upstreamAttempts.ts`). */
|
|
140
|
+
const UpstreamAttemptResponse = zod_1.z.object({
|
|
141
|
+
model: zod_1.z.string(),
|
|
142
|
+
provider: zod_1.z.string(),
|
|
143
|
+
outcome: zod_1.z.string().describe('`ok`, `http_<status>`, `timeout`, `connect_error`, `transport_error`, or `skipped`.'),
|
|
144
|
+
status: zod_1.z.number().optional(),
|
|
145
|
+
latencyMs: zod_1.z.number(),
|
|
146
|
+
backoffMs: zod_1.z.number().optional(),
|
|
147
|
+
serverDelay: zod_1.z.boolean().optional(),
|
|
148
|
+
stopped: zod_1.z.string().optional(),
|
|
149
|
+
});
|
|
150
|
+
/** The fallback target that served the request (`lib/upstreamAttempts.ts`). */
|
|
151
|
+
const UpstreamFallbackResponse = zod_1.z.object({
|
|
152
|
+
fromModel: zod_1.z.string(),
|
|
153
|
+
toModel: zod_1.z.string(),
|
|
154
|
+
toProvider: zod_1.z.string(),
|
|
155
|
+
cacheAffinityBroken: zod_1.z.boolean().optional(),
|
|
156
|
+
});
|
|
157
|
+
/**
|
|
158
|
+
* `GET /api/v1/traces/:id` (`traceQueryService.ts` `getTraceById`). Every field
|
|
159
|
+
* is always sent; the ones marked optional are optional because `TraceDetail`
|
|
160
|
+
* declares them so.
|
|
161
|
+
*/
|
|
162
|
+
exports.TraceDetailResponse = zod_1.z.object({
|
|
163
|
+
traceId: zod_1.z.string(),
|
|
164
|
+
sessionId: zod_1.z.string(),
|
|
165
|
+
requestId: zod_1.z.string(),
|
|
166
|
+
timestamp: common_js_1.IsoTimestamp,
|
|
167
|
+
sopEffectiveDate: common_js_1.IsoTimestamp,
|
|
168
|
+
requestedModel: zod_1.z.string(),
|
|
169
|
+
actualModelRouted: zod_1.z.string(),
|
|
170
|
+
routingTier: zod_1.z.string(),
|
|
171
|
+
complexityScore: zod_1.z.number(),
|
|
172
|
+
rawInputTokens: zod_1.z.number().int(),
|
|
173
|
+
compressedInputTokens: zod_1.z.number().int(),
|
|
174
|
+
outputTokens: zod_1.z.number().int(),
|
|
175
|
+
rawCostUsd: zod_1.z.number(),
|
|
176
|
+
actualCostUsd: zod_1.z.number(),
|
|
177
|
+
savingsUsd: zod_1.z.number(),
|
|
178
|
+
tokenUtility: zod_1.z.string().nullable().describe('USEFUL or WASTED: a person\'s re-label, else the value ingest set; null when nobody classified it.'),
|
|
179
|
+
tokenUtilityClassifiedBy: zod_1.z.string().nullable().optional().describe('Who re-labelled the trace; null when it holds its insert-time value.'),
|
|
180
|
+
tokenUtilityScore: zod_1.z.number().nullable().describe('A person\'s label\'s score (1 USEFUL, 0 WASTED); null without one.'),
|
|
181
|
+
complianceScore: zod_1.z.number(),
|
|
182
|
+
enforcementAction: zod_1.z.string().describe('BYPASS, ENHANCE, HIJACK, REASK, KILL or OBSERVED.'),
|
|
183
|
+
anomalyDetected: zod_1.z.string().nullable(),
|
|
184
|
+
anomalyConfidenceScore: zod_1.z.number().nullable(),
|
|
185
|
+
taxonomyMetadata: zod_1.z.unknown().describe('jsonb, null when none.'),
|
|
186
|
+
rootCauseAttribution: zod_1.z.unknown().describe('jsonb, null when none.'),
|
|
187
|
+
correctivePromptCard: zod_1.z.unknown().describe('jsonb, null when none.'),
|
|
188
|
+
reasoningTokens: zod_1.z.number().int().nullable().optional(),
|
|
189
|
+
cacheReadInputTokens: zod_1.z.number().int().nullable().optional(),
|
|
190
|
+
cacheCreationInputTokens: zod_1.z.number().int().nullable().optional(),
|
|
191
|
+
toolCallMetrics: zod_1.z.unknown().optional().describe('Token accounting per tool (jsonb), null when none.'),
|
|
192
|
+
changeManifest: zod_1.z.array(ChangeManifestEntryResponse).nullable().optional().describe('What the request touched; null when it touched nothing the proxy recorded.'),
|
|
193
|
+
responseIntegrity: zod_1.z.number().int().nullable().optional().describe('0–100 when the response was scored; null when not measured.'),
|
|
194
|
+
qualityFault: zod_1.z.string().nullable().optional(),
|
|
195
|
+
routingShadowModel: zod_1.z.string().nullable().optional(),
|
|
196
|
+
upstreamAttempts: zod_1.z.array(UpstreamAttemptResponse).nullable().optional().describe('Every upstream call when the proxy retried or fell back; null for a single call.'),
|
|
197
|
+
upstreamFallback: UpstreamFallbackResponse.nullable().optional(),
|
|
198
|
+
breakGlass: zod_1.z.boolean().optional(),
|
|
199
|
+
breakGlassRequestId: zod_1.z.string().nullable().optional(),
|
|
200
|
+
steps: zod_1.z.array(TraceStepResponse).optional().describe('The enforcement log for the request, oldest first.'),
|
|
201
|
+
findings: zod_1.z.array(TraceFindingResponse).optional().describe('Every detector finding on the trace, most severe first.'),
|
|
202
|
+
});
|
|
203
|
+
// ─── Findings (`routes/findings.ts`) ──────────────────────────────────
|
|
204
|
+
/** One detector finding (`detector_findings`), snake_cased by the list route. */
|
|
205
|
+
exports.FindingResponse = zod_1.z.object({
|
|
206
|
+
finding_id: zod_1.z.string(),
|
|
207
|
+
trace_id: zod_1.z.string(),
|
|
208
|
+
session_id: zod_1.z.string().nullable(),
|
|
209
|
+
loop_run_id: zod_1.z.string().nullable(),
|
|
210
|
+
detector_id: zod_1.z.string(),
|
|
211
|
+
anomaly_kind: zod_1.z.string(),
|
|
212
|
+
severity: zod_1.z.string(),
|
|
213
|
+
disposition: zod_1.z.string(),
|
|
214
|
+
confidence: zod_1.z.number(),
|
|
215
|
+
reason: zod_1.z.string(),
|
|
216
|
+
harness: zod_1.z.string().nullable(),
|
|
217
|
+
shadowed: zod_1.z.boolean(),
|
|
218
|
+
suppressed: zod_1.z.boolean().describe('True when a suppression auto-labelled it; excluded from the precision counts.'),
|
|
219
|
+
outcome: zod_1.z.enum(['TRUE_POSITIVE', 'FALSE_POSITIVE']).nullable().describe('Null until a human (or a suppression) ruled.'),
|
|
220
|
+
outcome_by: zod_1.z.string().nullable(),
|
|
221
|
+
outcome_at: common_js_1.IsoTimestamp.nullable(),
|
|
222
|
+
outcome_note: zod_1.z.string().nullable().describe('Withheld (null) on a `response_injection:*` finding unless the caller is OWNER or ADMIN.'),
|
|
223
|
+
created_at: common_js_1.IsoTimestamp,
|
|
224
|
+
});
|
|
225
|
+
/** `GET /api/v1/findings`. */
|
|
226
|
+
exports.FindingListResponse = zod_1.z.object({ findings: zod_1.z.array(exports.FindingResponse) });
|
|
227
|
+
/** `POST /api/v1/findings/:findingId/adjudicate`. */
|
|
228
|
+
exports.FindingAdjudicationResponse = zod_1.z.object({
|
|
229
|
+
finding_id: zod_1.z.string(),
|
|
230
|
+
outcome: zod_1.z.enum(['TRUE_POSITIVE', 'FALSE_POSITIVE']),
|
|
231
|
+
});
|
|
232
|
+
/** `GET /api/v1/findings/stats`: precision per detector, over adjudicated findings. */
|
|
233
|
+
exports.FindingStatsResponse = zod_1.z.object({
|
|
234
|
+
detectors: zod_1.z.array(zod_1.z.object({
|
|
235
|
+
detector_id: zod_1.z.string(),
|
|
236
|
+
anomaly_kind: zod_1.z.string(),
|
|
237
|
+
shadowed: zod_1.z.boolean().describe('Findings recorded in shadow mode get their own row.'),
|
|
238
|
+
total_findings: zod_1.z.number().int(),
|
|
239
|
+
adjudicated: zod_1.z.number().int(),
|
|
240
|
+
false_positives: zod_1.z.number().int(),
|
|
241
|
+
false_positive_rate: zod_1.z.number().nullable().describe('false_positives / adjudicated; null when nothing has been ruled on.'),
|
|
242
|
+
})),
|
|
243
|
+
caveats: zod_1.z.array(zod_1.z.string()),
|
|
244
|
+
});
|
|
245
|
+
/** `GET /api/v1/findings/response-echo/report` (`responseInjectionCorpusService.ts`). */
|
|
246
|
+
exports.ResponseEchoReportResponse = zod_1.z.object({
|
|
247
|
+
window: zod_1.z.object({ since: common_js_1.IsoTimestamp, until: common_js_1.IsoTimestamp }),
|
|
248
|
+
tracesIngested: zod_1.z.number().int().describe('Traces in the window: the denominator that tells "checked, found nothing" from "did not check".'),
|
|
249
|
+
refusal: zod_1.z.string().nullable().describe('Set when no traces were ingested in the window.'),
|
|
250
|
+
patterns: zod_1.z.array(zod_1.z.object({
|
|
251
|
+
pattern: zod_1.z.enum(['override-instructions', 'reveal-system-prompt', 'role-reassignment', 'guardrail-bypass', 'instruction-boundary-forgery']),
|
|
252
|
+
findings: zod_1.z.number().int(),
|
|
253
|
+
adjudicated: zod_1.z.number().int(),
|
|
254
|
+
truePositives: zod_1.z.number().int(),
|
|
255
|
+
falsePositives: zod_1.z.number().int(),
|
|
256
|
+
falsePositiveRate: zod_1.z.number().nullable().describe('Null, with `refusal` set, below 20 adjudicated findings.'),
|
|
257
|
+
refusal: zod_1.z.string().nullable(),
|
|
258
|
+
})),
|
|
259
|
+
});
|
|
260
|
+
// ─── Trace integrity (`routes/integrity.ts`) ──────────────────────────
|
|
261
|
+
/** A sealed Merkle root as `GET /api/v1/integrity/roots` selects it (raw SQL, so snake_case and Postgres timestamp text). */
|
|
262
|
+
exports.IntegrityRootSummaryResponse = zod_1.z.object({
|
|
263
|
+
root_id: zod_1.z.string(),
|
|
264
|
+
loop_run_id: zod_1.z.string().nullable(),
|
|
265
|
+
leaf_schema_version: zod_1.z.number().int(),
|
|
266
|
+
merkle_root: zod_1.z.string(),
|
|
267
|
+
leaf_count: zod_1.z.number().int(),
|
|
268
|
+
first_trace_at: PgTimestampText,
|
|
269
|
+
last_trace_at: PgTimestampText,
|
|
270
|
+
signature_alg: zod_1.z.string().nullable(),
|
|
271
|
+
signing_key_id: zod_1.z.string().nullable(),
|
|
272
|
+
sealed_at: PgTimestampText,
|
|
273
|
+
});
|
|
274
|
+
/** `GET /api/v1/integrity/roots`: the workspace's sealed roots, newest first (at most 50). */
|
|
275
|
+
exports.IntegrityRootListResponse = (0, common_js_1.listEnvelope)('data', 'snake').extend({
|
|
276
|
+
ok: zod_1.z.literal(true),
|
|
277
|
+
data: zod_1.z.array(exports.IntegrityRootSummaryResponse),
|
|
278
|
+
leafSchemaVersion: zod_1.z.number().int().describe('The leaf encoding new roots are sealed under.'),
|
|
279
|
+
});
|
|
280
|
+
/** Every column of a `trace_merkle_roots` row (`SELECT *`). */
|
|
281
|
+
exports.IntegrityRootRowResponse = exports.IntegrityRootSummaryResponse.extend({
|
|
282
|
+
workspace_id: zod_1.z.string(),
|
|
283
|
+
sample_preimage: zod_1.z.string().describe('The preimage of leaf 0.'),
|
|
284
|
+
signature: zod_1.z.string().nullable(),
|
|
285
|
+
previous_root: zod_1.z.string().nullable().describe('The merkle_root of the workspace\'s previous root; null on the first, or from a writer before migration 108.'),
|
|
286
|
+
signing_preimage_version: zod_1.z.number().int(),
|
|
287
|
+
});
|
|
288
|
+
/** One leaf of a sealed root. */
|
|
289
|
+
exports.IntegrityLeafResponse = zod_1.z.object({
|
|
290
|
+
trace_id: zod_1.z.string(),
|
|
291
|
+
leaf_index: zod_1.z.number().int(),
|
|
292
|
+
leaf_hash: zod_1.z.string(),
|
|
293
|
+
});
|
|
294
|
+
/** `GET /api/v1/integrity/roots/:rootId`: the root and the leaves it covers, in order. */
|
|
295
|
+
exports.IntegrityRootDetailResponse = (0, common_js_1.listEnvelope)('leaves', 'snake').extend({
|
|
296
|
+
ok: zod_1.z.literal(true),
|
|
297
|
+
root: exports.IntegrityRootRowResponse,
|
|
298
|
+
leaves: zod_1.z.array(exports.IntegrityLeafResponse),
|
|
299
|
+
});
|
|
300
|
+
/** `POST /api/v1/integrity/roots/:rootId/recompute` (`traceRootSweep.ts` `recomputeRoot`). A mismatch is an answer, so every verdict is a 200. */
|
|
301
|
+
exports.IntegrityRecomputeResponse = zod_1.z.object({
|
|
302
|
+
ok: zod_1.z.literal(true),
|
|
303
|
+
verdict: zod_1.z.enum(['match', 'mismatch', 'missing_traces']),
|
|
304
|
+
storedRoot: zod_1.z.string(),
|
|
305
|
+
recomputedRoot: zod_1.z.string().nullable().describe('Null when traces are missing.'),
|
|
306
|
+
changedTraceIds: zod_1.z.array(zod_1.z.string()).describe('Traces whose leaf no longer matches.'),
|
|
307
|
+
missingTraceIds: zod_1.z.array(zod_1.z.string()),
|
|
308
|
+
retentionExpired: zod_1.z.boolean().describe('True when the missing traces were deleted by the retention schedule, not lost.'),
|
|
309
|
+
});
|
|
310
|
+
/**
|
|
311
|
+
* `GET /api/v1/integrity/chain` (`traceRootSweep.ts` `verifyRootChain`). A
|
|
312
|
+
* break answers 409 with this same body (`ok: false`, `breaks` filled); a 200
|
|
313
|
+
* never carries a break.
|
|
314
|
+
*/
|
|
315
|
+
exports.IntegrityChainResponse = zod_1.z.object({
|
|
316
|
+
ok: zod_1.z.boolean().describe('Same as `intact`.'),
|
|
317
|
+
workspaceId: zod_1.z.string(),
|
|
318
|
+
rootsWalked: zod_1.z.number().int(),
|
|
319
|
+
rootsNotWalked: zod_1.z.number().int().describe('Older roots outside the walked window; their links were not examined.'),
|
|
320
|
+
unchainedRootIds: zod_1.z.array(zod_1.z.string()).describe('Roots with no previous_root that are not the first: nothing claimed, so not a break.'),
|
|
321
|
+
breaks: zod_1.z.array(zod_1.z.object({
|
|
322
|
+
rootId: zod_1.z.string(),
|
|
323
|
+
namedPrevious: zod_1.z.string(),
|
|
324
|
+
precedingRootId: zod_1.z.string(),
|
|
325
|
+
precedingMerkleRoot: zod_1.z.string(),
|
|
326
|
+
})),
|
|
327
|
+
intact: zod_1.z.boolean(),
|
|
328
|
+
});
|
|
329
|
+
/**
|
|
330
|
+
* `GET /api/v1/integrity/config-chain` (`harnessConfigService.ts`
|
|
331
|
+
* `verifyConfigChain`). A break or an edited body answers 409 with this same
|
|
332
|
+
* body; a 200 never carries either.
|
|
333
|
+
*/
|
|
334
|
+
exports.IntegrityConfigChainResponse = zod_1.z.object({
|
|
335
|
+
ok: zod_1.z.boolean().describe('Same as `intact`.'),
|
|
336
|
+
workspaceId: zod_1.z.string(),
|
|
337
|
+
harnessType: zod_1.z.string().nullable().describe('The harness type the walk was scoped to; null for all.'),
|
|
338
|
+
snapshotsWalked: zod_1.z.number().int(),
|
|
339
|
+
snapshotsNotWalked: zod_1.z.number().int().describe('Saturates at 1: more snapshots than the walk covered.'),
|
|
340
|
+
unchainedSnapshotIds: zod_1.z.array(zod_1.z.string()),
|
|
341
|
+
breaks: zod_1.z.array(zod_1.z.object({
|
|
342
|
+
snapshotId: zod_1.z.string(),
|
|
343
|
+
harnessType: zod_1.z.string(),
|
|
344
|
+
filePath: zod_1.z.string(),
|
|
345
|
+
namedPrevious: zod_1.z.string(),
|
|
346
|
+
precedingSnapshotId: zod_1.z.string(),
|
|
347
|
+
precedingContentHash: zod_1.z.string(),
|
|
348
|
+
})),
|
|
349
|
+
contentMismatches: zod_1.z.array(zod_1.z.object({
|
|
350
|
+
snapshotId: zod_1.z.string(),
|
|
351
|
+
harnessType: zod_1.z.string(),
|
|
352
|
+
filePath: zod_1.z.string(),
|
|
353
|
+
storedHash: zod_1.z.string(),
|
|
354
|
+
recomputedHash: zod_1.z.string(),
|
|
355
|
+
})),
|
|
356
|
+
snapshotsWithoutContent: zod_1.z.number().int().describe('Walked snapshots captured without content, which cannot be re-hashed.'),
|
|
357
|
+
intact: zod_1.z.boolean(),
|
|
358
|
+
});
|
|
359
|
+
// ─── AI inventory (`routes/inventory.ts`) ─────────────────────────────
|
|
360
|
+
/** `GET /api/v1/inventory/summary` (`devInventoryService.ts` `summarize`). */
|
|
361
|
+
exports.InventorySummaryResponse = zod_1.z.object({
|
|
362
|
+
data: zod_1.z.object({
|
|
363
|
+
devices: zod_1.z.number().int(),
|
|
364
|
+
staleDevices: zod_1.z.number().int(),
|
|
365
|
+
harnesses: zod_1.z.number().int(),
|
|
366
|
+
governedHarnesses: zod_1.z.number().int(),
|
|
367
|
+
governedPercent: zod_1.z.number().int().nullable().describe('Governed harnesses as a whole percentage; null with none.'),
|
|
368
|
+
ungovernedHarnesses: zod_1.z.number().int(),
|
|
369
|
+
staleGates: zod_1.z.number().int(),
|
|
370
|
+
unverifiedHarnesses: zod_1.z.number().int(),
|
|
371
|
+
mcpServers: zod_1.z.number().int(),
|
|
372
|
+
ungovernedMcpServers: zod_1.z.number().int(),
|
|
373
|
+
skills: zod_1.z.number().int(),
|
|
374
|
+
}),
|
|
375
|
+
});
|
|
376
|
+
/** One machine (`devInventoryService.ts` `InventoryDeviceRow`). */
|
|
377
|
+
exports.InventoryDeviceResponse = zod_1.z.object({
|
|
378
|
+
deviceId: zod_1.z.string(),
|
|
379
|
+
hostname: zod_1.z.string(),
|
|
380
|
+
platform: zod_1.z.string(),
|
|
381
|
+
cliVersion: zod_1.z.string().nullable(),
|
|
382
|
+
reportedBy: zod_1.z.string().nullable().describe('Email of the member whose credentials sent the latest report.'),
|
|
383
|
+
workspace: zod_1.z.string().nullable().describe('The workspace path the daemon reported.'),
|
|
384
|
+
guardProbes: zod_1.z
|
|
385
|
+
.object({ total: zod_1.z.number(), failed: zod_1.z.number(), ranAt: zod_1.z.number().describe('Unix seconds.') })
|
|
386
|
+
.nullable(),
|
|
387
|
+
firstSeenAt: common_js_1.IsoTimestamp,
|
|
388
|
+
lastSeenAt: common_js_1.IsoTimestamp,
|
|
389
|
+
stale: zod_1.z.boolean().describe('Not reported for the stale window; never true for a disconnected machine.'),
|
|
390
|
+
disconnectedAt: common_js_1.IsoTimestamp.nullable(),
|
|
391
|
+
harnesses: zod_1.z.number().int(),
|
|
392
|
+
ungovernedHarnesses: zod_1.z.number().int(),
|
|
393
|
+
staleGates: zod_1.z.number().int(),
|
|
394
|
+
mcpServers: zod_1.z.number().int(),
|
|
395
|
+
ungovernedMcpServers: zod_1.z.number().int(),
|
|
396
|
+
skills: zod_1.z.number().int(),
|
|
397
|
+
});
|
|
398
|
+
const InventoryItemBase = zod_1.z.object({
|
|
399
|
+
itemId: zod_1.z.string(),
|
|
400
|
+
deviceId: zod_1.z.string(),
|
|
401
|
+
hostname: zod_1.z.string(),
|
|
402
|
+
deviceStale: zod_1.z.boolean(),
|
|
403
|
+
firstSeenAt: common_js_1.IsoTimestamp,
|
|
404
|
+
lastSeenAt: common_js_1.IsoTimestamp,
|
|
405
|
+
});
|
|
406
|
+
/** One harness on one machine (`InventoryHarnessRow`). */
|
|
407
|
+
exports.InventoryHarnessResponse = InventoryItemBase.extend({
|
|
408
|
+
harness: zod_1.z.string(),
|
|
409
|
+
version: zod_1.z.string().nullable(),
|
|
410
|
+
configured: zod_1.z.boolean(),
|
|
411
|
+
gateKind: zod_1.z.enum(['hook', 'sdk', 'none', 'delegated', 'bridge']),
|
|
412
|
+
gateInstalled: zod_1.z.boolean().nullable(),
|
|
413
|
+
gateFile: zod_1.z.string().nullable(),
|
|
414
|
+
lastHookEventAt: zod_1.z.string().nullable().describe('As the daemon reported it.'),
|
|
415
|
+
status: zod_1.z.enum(['governed', 'ungoverned', 'gate_stale', 'unverified']),
|
|
416
|
+
reason: zod_1.z
|
|
417
|
+
.enum([
|
|
418
|
+
'no_gate_mechanism',
|
|
419
|
+
'not_connected',
|
|
420
|
+
'gate_missing',
|
|
421
|
+
'guards_disabled',
|
|
422
|
+
'gate_silent',
|
|
423
|
+
'awaiting_first_event',
|
|
424
|
+
'gate_not_observable',
|
|
425
|
+
'disconnected',
|
|
426
|
+
])
|
|
427
|
+
.nullable()
|
|
428
|
+
.describe('Null when governed.'),
|
|
429
|
+
reasonText: zod_1.z.string().nullable(),
|
|
430
|
+
});
|
|
431
|
+
/** One MCP server on one machine (`InventoryMcpServerRow`). */
|
|
432
|
+
exports.InventoryMcpServerResponse = InventoryItemBase.extend({
|
|
433
|
+
server: zod_1.z.string(),
|
|
434
|
+
harness: zod_1.z.string(),
|
|
435
|
+
transport: zod_1.z.enum(['stdio', 'http', 'sse', 'unknown']),
|
|
436
|
+
endpoint: zod_1.z.string().nullable(),
|
|
437
|
+
status: zod_1.z.enum(['governed', 'ungoverned']).describe('Governed when the MCP governance proxy fronts it.'),
|
|
438
|
+
reason: zod_1.z.string().nullable(),
|
|
439
|
+
});
|
|
440
|
+
/** One skill bundle on one machine (`InventorySkillRow`). */
|
|
441
|
+
exports.InventorySkillResponse = InventoryItemBase.extend({
|
|
442
|
+
name: zod_1.z.string(),
|
|
443
|
+
source: zod_1.z.string(),
|
|
444
|
+
sha256: zod_1.z.string().nullable(),
|
|
445
|
+
scanned: zod_1.z.boolean(),
|
|
446
|
+
clean: zod_1.z.boolean(),
|
|
447
|
+
findingsCount: zod_1.z.number().int(),
|
|
448
|
+
scriptCount: zod_1.z.number().int(),
|
|
449
|
+
});
|
|
450
|
+
/** One `intutic disconnect` a machine reported (`deviceDisconnectService.ts` `DeviceDisconnectRow`). */
|
|
451
|
+
exports.DeviceDisconnectRowResponse = zod_1.z.object({
|
|
452
|
+
disconnectId: zod_1.z.string(),
|
|
453
|
+
hostname: zod_1.z.string(),
|
|
454
|
+
fingerprint: zod_1.z.string(),
|
|
455
|
+
scope: zod_1.z.enum(['machine', 'harness']),
|
|
456
|
+
harnesses: zod_1.z.array(zod_1.z.string()),
|
|
457
|
+
memberId: zod_1.z.string().nullable(),
|
|
458
|
+
reportedBy: zod_1.z.string().nullable(),
|
|
459
|
+
createdAt: common_js_1.IsoTimestamp,
|
|
460
|
+
});
|
|
461
|
+
/** `GET /api/v1/inventory/devices`. */
|
|
462
|
+
exports.InventoryDeviceListResponse = (0, common_js_1.listEnvelope)('data', 'camel').extend({ data: zod_1.z.array(exports.InventoryDeviceResponse) });
|
|
463
|
+
/** `GET /api/v1/inventory/harnesses` (JSON; `?format=csv` answers text). */
|
|
464
|
+
exports.InventoryHarnessListResponse = (0, common_js_1.listEnvelope)('data', 'camel').extend({ data: zod_1.z.array(exports.InventoryHarnessResponse) });
|
|
465
|
+
/** `GET /api/v1/inventory/mcp-servers` (JSON; `?format=csv` answers text). */
|
|
466
|
+
exports.InventoryMcpServerListResponse = (0, common_js_1.listEnvelope)('data', 'camel').extend({ data: zod_1.z.array(exports.InventoryMcpServerResponse) });
|
|
467
|
+
/** `GET /api/v1/inventory/skills`. */
|
|
468
|
+
exports.InventorySkillListResponse = (0, common_js_1.listEnvelope)('data', 'camel').extend({ data: zod_1.z.array(exports.InventorySkillResponse) });
|
|
469
|
+
/** `GET /api/v1/inventory/disconnects`, newest first. */
|
|
470
|
+
exports.DeviceDisconnectListResponse = (0, common_js_1.listEnvelope)('data', 'camel').extend({ data: zod_1.z.array(exports.DeviceDisconnectRowResponse) });
|
|
471
|
+
// ─── Usage (`routes/usage.ts`) ────────────────────────────────────────
|
|
472
|
+
const UsageScope = zod_1.z.enum(['workspace', 'self']).describe('`self` when the caller sees only their own calls (below EM).');
|
|
473
|
+
const UsageTotals = {
|
|
474
|
+
totalCostUsd: zod_1.z.number(),
|
|
475
|
+
totalRawCostUsd: zod_1.z.number(),
|
|
476
|
+
totalInputTokens: zod_1.z.number().int(),
|
|
477
|
+
totalOutputTokens: zod_1.z.number().int(),
|
|
478
|
+
traceCount: zod_1.z.number().int(),
|
|
479
|
+
};
|
|
480
|
+
/** One member's usage (`finopsService.ts` `getMemberUsage`). */
|
|
481
|
+
exports.MemberUsageRowResponse = zod_1.z.object({
|
|
482
|
+
memberId: zod_1.z.string().nullable().describe('Null for the unattributed bucket.'),
|
|
483
|
+
displayName: zod_1.z.string().nullable(),
|
|
484
|
+
email: zod_1.z.string().nullable(),
|
|
485
|
+
...UsageTotals,
|
|
486
|
+
models: zod_1.z.array(zod_1.z.string()).describe('Distinct requested models, sorted.'),
|
|
487
|
+
activeDays: zod_1.z.number().int().describe('Distinct UTC days with a call.'),
|
|
488
|
+
});
|
|
489
|
+
/** `GET /api/v1/usage/members`. */
|
|
490
|
+
exports.MemberUsageListResponse = (0, common_js_1.listEnvelope)('members', 'camel').extend({
|
|
491
|
+
scope: UsageScope,
|
|
492
|
+
members: zod_1.z.array(exports.MemberUsageRowResponse),
|
|
493
|
+
});
|
|
494
|
+
/** `GET /api/v1/usage/teams` (`getTeamUsage`): per SCIM group. */
|
|
495
|
+
exports.TeamUsageListResponse = (0, common_js_1.listEnvelope)('teams', 'camel').extend({
|
|
496
|
+
scimGroups: zod_1.z.boolean().describe('False when the workspace has no SCIM groups, so no teams.'),
|
|
497
|
+
teams: zod_1.z.array(zod_1.z.object({
|
|
498
|
+
groupId: zod_1.z.string(),
|
|
499
|
+
displayName: zod_1.z.string(),
|
|
500
|
+
memberCount: zod_1.z.number().int().describe('Members in the group, nested groups included.'),
|
|
501
|
+
activeMembers: zod_1.z.number().int(),
|
|
502
|
+
...UsageTotals,
|
|
503
|
+
})),
|
|
504
|
+
});
|
|
505
|
+
/** `GET /api/v1/usage/branches` (`getBranchUsage`). */
|
|
506
|
+
exports.BranchUsageListResponse = (0, common_js_1.listEnvelope)('branches', 'camel').extend({
|
|
507
|
+
scope: UsageScope,
|
|
508
|
+
branches: zod_1.z.array(zod_1.z.object({
|
|
509
|
+
repo: zod_1.z.string().nullable().describe('Normalised origin remote; null on the row for calls with no git context.'),
|
|
510
|
+
branch: zod_1.z.string().nullable(),
|
|
511
|
+
commitCount: zod_1.z.number().int(),
|
|
512
|
+
...UsageTotals,
|
|
513
|
+
lastCallAt: common_js_1.IsoTimestamp,
|
|
514
|
+
})),
|
|
515
|
+
});
|
|
516
|
+
/** `GET /api/v1/usage/commits` (`getCommitUsage`). */
|
|
517
|
+
exports.CommitUsageListResponse = (0, common_js_1.listEnvelope)('commits', 'camel').extend({
|
|
518
|
+
scope: UsageScope,
|
|
519
|
+
commits: zod_1.z.array(zod_1.z.object({
|
|
520
|
+
repo: zod_1.z.string().nullable(),
|
|
521
|
+
branch: zod_1.z.string().nullable(),
|
|
522
|
+
commit: zod_1.z.string().nullable(),
|
|
523
|
+
...UsageTotals,
|
|
524
|
+
firstCallAt: common_js_1.IsoTimestamp,
|
|
525
|
+
lastCallAt: common_js_1.IsoTimestamp,
|
|
526
|
+
})),
|
|
527
|
+
});
|
|
528
|
+
/** `GET /api/v1/usage/pull-requests` (`getPullRequestUsage`, `getPullRequestSources`). */
|
|
529
|
+
exports.PullRequestUsageListResponse = (0, common_js_1.listEnvelope)('pullRequests', 'camel').extend({
|
|
530
|
+
scope: UsageScope,
|
|
531
|
+
github: zod_1.z.object({
|
|
532
|
+
connector: zod_1.z.boolean().describe('A GitHub source connector exists.'),
|
|
533
|
+
webhook: zod_1.z.boolean().describe('The pull-request webhook is set up.'),
|
|
534
|
+
apiHost: zod_1.z.string(),
|
|
535
|
+
noAccessRepos: zod_1.z.array(zod_1.z.string()).describe('Repositories the connector\'s token was refused.'),
|
|
536
|
+
mappedPullRequests: zod_1.z.number().int(),
|
|
537
|
+
lastCheckedAt: common_js_1.IsoTimestamp.nullable(),
|
|
538
|
+
}),
|
|
539
|
+
pullRequests: zod_1.z.array(zod_1.z.object({
|
|
540
|
+
repo: zod_1.z.string(),
|
|
541
|
+
number: zod_1.z.number().int(),
|
|
542
|
+
title: zod_1.z.string(),
|
|
543
|
+
author: zod_1.z.string().nullable(),
|
|
544
|
+
state: zod_1.z.enum(['open', 'closed', 'merged']),
|
|
545
|
+
headBranch: zod_1.z.string(),
|
|
546
|
+
baseBranch: zod_1.z.string().nullable(),
|
|
547
|
+
url: zod_1.z.string(),
|
|
548
|
+
openedAt: common_js_1.IsoTimestamp,
|
|
549
|
+
mergedAt: common_js_1.IsoTimestamp.nullable(),
|
|
550
|
+
closedAt: common_js_1.IsoTimestamp.nullable(),
|
|
551
|
+
...UsageTotals,
|
|
552
|
+
memberCount: zod_1.z.number().int(),
|
|
553
|
+
firstCallAt: common_js_1.IsoTimestamp,
|
|
554
|
+
lastCallAt: common_js_1.IsoTimestamp,
|
|
555
|
+
})),
|
|
556
|
+
});
|
|
557
|
+
/** `POST /api/v1/usage/pull-requests/refresh` (`syncWorkspacePullRequests`). */
|
|
558
|
+
exports.PullRequestRefreshResponse = zod_1.z.object({
|
|
559
|
+
checked: zod_1.z.number().int().describe('Branches looked up.'),
|
|
560
|
+
notModified: zod_1.z.number().int(),
|
|
561
|
+
pullRequests: zod_1.z.number().int().describe('Pull requests written or updated.'),
|
|
562
|
+
noAccess: zod_1.z.number().int(),
|
|
563
|
+
rateLimited: zod_1.z.boolean(),
|
|
564
|
+
});
|
|
565
|
+
// ─── Loop runs (`routes/loops.ts`) ────────────────────────────────────
|
|
566
|
+
/** A `loop_runs` row. */
|
|
567
|
+
exports.LoopRunResponse = zod_1.z.object({
|
|
568
|
+
loopRunId: zod_1.z.string(),
|
|
569
|
+
workspaceId: zod_1.z.string(),
|
|
570
|
+
name: zod_1.z.string(),
|
|
571
|
+
status: zod_1.z.enum(['ACTIVE', 'PENDING_REVIEW', 'COMPLETED', 'FAILED', 'KILLED']),
|
|
572
|
+
startedBy: zod_1.z.string().nullable().describe('Member id of whoever started it.'),
|
|
573
|
+
reviewReason: zod_1.z.string().nullable().describe('Why the run was held; null unless it was.'),
|
|
574
|
+
reviewedBy: zod_1.z.string().nullable(),
|
|
575
|
+
reviewedAt: common_js_1.IsoTimestamp.nullable(),
|
|
576
|
+
reviewNote: zod_1.z.string().nullable(),
|
|
577
|
+
totalTokenCostUsd: zod_1.z.string().describe('Decimal string.'),
|
|
578
|
+
budgetLimitUsd: zod_1.z.string().describe('Decimal string.'),
|
|
579
|
+
createdAt: common_js_1.IsoTimestamp,
|
|
580
|
+
updatedAt: common_js_1.IsoTimestamp,
|
|
581
|
+
});
|
|
582
|
+
/** `POST /api/v1/loops/start` and `GET /api/v1/loops/:loopRunId`. */
|
|
583
|
+
exports.LoopRunEnvelopeResponse = zod_1.z.object({ ok: zod_1.z.literal(true), loop: exports.LoopRunResponse });
|
|
584
|
+
/** `GET /api/v1/loops`, newest first. */
|
|
585
|
+
exports.LoopRunListResponse = (0, common_js_1.listEnvelope)('loops', 'camel').extend({
|
|
586
|
+
ok: zod_1.z.literal(true),
|
|
587
|
+
loops: zod_1.z.array(exports.LoopRunResponse),
|
|
588
|
+
});
|
|
589
|
+
/** `POST /api/v1/loops/:loopRunId/complete`. */
|
|
590
|
+
exports.LoopRunCompleteResponse = zod_1.z.object({ ok: zod_1.z.literal(true), outcome: zod_1.z.enum(['SUCCEEDED', 'FAILED']) });
|
|
591
|
+
/** `POST /api/v1/loops/:loopRunId/kill`. */
|
|
592
|
+
exports.LoopRunKillResponse = zod_1.z.object({ ok: zod_1.z.literal(true) });
|
|
593
|
+
/** `POST /api/v1/loops/:loopRunId/review`: the run's status after the review. */
|
|
594
|
+
exports.LoopRunReviewResponse = zod_1.z.object({
|
|
595
|
+
ok: zod_1.z.literal(true),
|
|
596
|
+
status: zod_1.z.enum(['ACTIVE', 'KILLED']).describe('ACTIVE when approved, KILLED when rejected.'),
|
|
597
|
+
});
|
|
598
|
+
//# sourceMappingURL=observability.js.map
|