@gate-forge/pack-playwright 0.1.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 (140) hide show
  1. package/LICENSE +202 -0
  2. package/bin/gateforge-witness.js +40 -0
  3. package/dist/attestation/proxy.d.ts +40 -0
  4. package/dist/attestation/proxy.d.ts.map +1 -0
  5. package/dist/attestation/proxy.js +78 -0
  6. package/dist/attestation/proxy.js.map +1 -0
  7. package/dist/constants.d.ts +130 -0
  8. package/dist/constants.d.ts.map +1 -0
  9. package/dist/constants.js +138 -0
  10. package/dist/constants.js.map +1 -0
  11. package/dist/discovery/adapters.d.ts +167 -0
  12. package/dist/discovery/adapters.d.ts.map +1 -0
  13. package/dist/discovery/adapters.js +276 -0
  14. package/dist/discovery/adapters.js.map +1 -0
  15. package/dist/discovery/discover.d.ts +57 -0
  16. package/dist/discovery/discover.d.ts.map +1 -0
  17. package/dist/discovery/discover.js +544 -0
  18. package/dist/discovery/discover.js.map +1 -0
  19. package/dist/discovery/index.d.ts +15 -0
  20. package/dist/discovery/index.d.ts.map +1 -0
  21. package/dist/discovery/index.js +15 -0
  22. package/dist/discovery/index.js.map +1 -0
  23. package/dist/discovery/inference.d.ts +63 -0
  24. package/dist/discovery/inference.d.ts.map +1 -0
  25. package/dist/discovery/inference.js +173 -0
  26. package/dist/discovery/inference.js.map +1 -0
  27. package/dist/discovery/pytest-adapter.d.ts +205 -0
  28. package/dist/discovery/pytest-adapter.d.ts.map +1 -0
  29. package/dist/discovery/pytest-adapter.js +548 -0
  30. package/dist/discovery/pytest-adapter.js.map +1 -0
  31. package/dist/discovery/reconcile.d.ts +106 -0
  32. package/dist/discovery/reconcile.d.ts.map +1 -0
  33. package/dist/discovery/reconcile.js +268 -0
  34. package/dist/discovery/reconcile.js.map +1 -0
  35. package/dist/discovery/runner-env.d.ts +80 -0
  36. package/dist/discovery/runner-env.d.ts.map +1 -0
  37. package/dist/discovery/runner-env.js +139 -0
  38. package/dist/discovery/runner-env.js.map +1 -0
  39. package/dist/discovery/static-discovery.d.ts +121 -0
  40. package/dist/discovery/static-discovery.d.ts.map +1 -0
  41. package/dist/discovery/static-discovery.js +1028 -0
  42. package/dist/discovery/static-discovery.js.map +1 -0
  43. package/dist/discovery/supervised-run.d.ts +110 -0
  44. package/dist/discovery/supervised-run.d.ts.map +1 -0
  45. package/dist/discovery/supervised-run.js +328 -0
  46. package/dist/discovery/supervised-run.js.map +1 -0
  47. package/dist/discovery/trusted-config.d.ts +103 -0
  48. package/dist/discovery/trusted-config.d.ts.map +1 -0
  49. package/dist/discovery/trusted-config.js +117 -0
  50. package/dist/discovery/trusted-config.js.map +1 -0
  51. package/dist/fixture/evidence.d.ts +191 -0
  52. package/dist/fixture/evidence.d.ts.map +1 -0
  53. package/dist/fixture/evidence.js +366 -0
  54. package/dist/fixture/evidence.js.map +1 -0
  55. package/dist/fixture/fixture.d.ts +37 -0
  56. package/dist/fixture/fixture.d.ts.map +1 -0
  57. package/dist/fixture/fixture.js +38 -0
  58. package/dist/fixture/fixture.js.map +1 -0
  59. package/dist/fixture/witness-client.d.ts +164 -0
  60. package/dist/fixture/witness-client.d.ts.map +1 -0
  61. package/dist/fixture/witness-client.js +253 -0
  62. package/dist/fixture/witness-client.js.map +1 -0
  63. package/dist/index.d.ts +64 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +55 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/json.d.ts +16 -0
  68. package/dist/json.d.ts.map +1 -0
  69. package/dist/json.js +21 -0
  70. package/dist/json.js.map +1 -0
  71. package/dist/reporter/ledger.d.ts +105 -0
  72. package/dist/reporter/ledger.d.ts.map +1 -0
  73. package/dist/reporter/ledger.js +197 -0
  74. package/dist/reporter/ledger.js.map +1 -0
  75. package/dist/reporter/reporter.cjs +105 -0
  76. package/dist/reporter/reporter.cjs.map +1 -0
  77. package/dist/reporter/reporter.d.cts +35 -0
  78. package/dist/reporter/reporter.d.cts.map +1 -0
  79. package/dist/reporter/reporter.d.ts +167 -0
  80. package/dist/reporter/reporter.d.ts.map +1 -0
  81. package/dist/reporter/reporter.js +673 -0
  82. package/dist/reporter/reporter.js.map +1 -0
  83. package/dist/setup.d.ts +49 -0
  84. package/dist/setup.d.ts.map +1 -0
  85. package/dist/setup.js +167 -0
  86. package/dist/setup.js.map +1 -0
  87. package/dist/supervisor/client.d.ts +73 -0
  88. package/dist/supervisor/client.d.ts.map +1 -0
  89. package/dist/supervisor/client.js +164 -0
  90. package/dist/supervisor/client.js.map +1 -0
  91. package/dist/supervisor/drain.d.ts +45 -0
  92. package/dist/supervisor/drain.d.ts.map +1 -0
  93. package/dist/supervisor/drain.js +235 -0
  94. package/dist/supervisor/drain.js.map +1 -0
  95. package/dist/supervisor/index.d.ts +16 -0
  96. package/dist/supervisor/index.d.ts.map +1 -0
  97. package/dist/supervisor/index.js +13 -0
  98. package/dist/supervisor/index.js.map +1 -0
  99. package/dist/supervisor/spool.d.ts +137 -0
  100. package/dist/supervisor/spool.d.ts.map +1 -0
  101. package/dist/supervisor/spool.js +263 -0
  102. package/dist/supervisor/spool.js.map +1 -0
  103. package/dist/surface.d.ts +134 -0
  104. package/dist/surface.d.ts.map +1 -0
  105. package/dist/surface.js +139 -0
  106. package/dist/surface.js.map +1 -0
  107. package/dist/witness/adapter-registry.d.ts +38 -0
  108. package/dist/witness/adapter-registry.d.ts.map +1 -0
  109. package/dist/witness/adapter-registry.js +158 -0
  110. package/dist/witness/adapter-registry.js.map +1 -0
  111. package/dist/witness/bin.d.ts +21 -0
  112. package/dist/witness/bin.d.ts.map +1 -0
  113. package/dist/witness/bin.js +172 -0
  114. package/dist/witness/bin.js.map +1 -0
  115. package/dist/witness/browser.d.ts +173 -0
  116. package/dist/witness/browser.d.ts.map +1 -0
  117. package/dist/witness/browser.js +580 -0
  118. package/dist/witness/browser.js.map +1 -0
  119. package/dist/witness/classifications.d.ts +42 -0
  120. package/dist/witness/classifications.d.ts.map +1 -0
  121. package/dist/witness/classifications.js +87 -0
  122. package/dist/witness/classifications.js.map +1 -0
  123. package/dist/witness/env-attestation.d.ts +98 -0
  124. package/dist/witness/env-attestation.d.ts.map +1 -0
  125. package/dist/witness/env-attestation.js +202 -0
  126. package/dist/witness/env-attestation.js.map +1 -0
  127. package/dist/witness/loopback-pins.d.ts +79 -0
  128. package/dist/witness/loopback-pins.d.ts.map +1 -0
  129. package/dist/witness/loopback-pins.js +244 -0
  130. package/dist/witness/loopback-pins.js.map +1 -0
  131. package/dist/witness/server.d.ts +34 -0
  132. package/dist/witness/server.d.ts.map +1 -0
  133. package/dist/witness/server.js +2539 -0
  134. package/dist/witness/server.js.map +1 -0
  135. package/dist/witness/types.d.ts +643 -0
  136. package/dist/witness/types.d.ts.map +1 -0
  137. package/dist/witness/types.js +2 -0
  138. package/dist/witness/types.js.map +1 -0
  139. package/package.json +64 -0
  140. package/python/gateforge_persistence_intents.py +100 -0
@@ -0,0 +1,643 @@
1
+ /**
2
+ * Witness-side data shapes (pin #7 wire + adapter contract, pin #8).
3
+ */
4
+ import type { Server } from 'node:http';
5
+ import type { EvidenceRecord, TracedSession, TrustTier } from '@gate-forge/core';
6
+ /**
7
+ * Supervisor-issued session credential (plan Phase 1, work item 2): the
8
+ * trusted supervisor (the Playwright reporter process) opens one session
9
+ * per started test and the worker-side fixture RESOLVES it by the exact
10
+ * (workerIndex, testId) pair. The session token is issued by the witness,
11
+ * never derivable by the suite: submissions without a valid OPEN session
12
+ * are rejected fail-closed, so a suite-supplied testId or annotation
13
+ * alone cannot mint records for an arbitrary session.
14
+ */
15
+ export interface SessionCredential {
16
+ /** Witness-issued session id (UUID). */
17
+ sessionId: string;
18
+ /** Per-session secret; required on every submission. */
19
+ sessionToken: string;
20
+ /** The supervisor-registered testId (records are forced onto it). */
21
+ testId: string;
22
+ /** The worker the session is bound to. */
23
+ workerIndex: number;
24
+ /**
25
+ * The session's DEDICATED observation-proxy origin (its own loopback
26
+ * port), when the run wires an observation proxy: the worker's browser
27
+ * uses this origin for the whole test, so every request on it —
28
+ * absolute paths included — is attributed to THIS session. Null when
29
+ * no observation proxy is active (nothing to attribute).
30
+ */
31
+ proxyUrl: string | null;
32
+ /**
33
+ * The supervisor-registered obligation claims for this test (Phase 4
34
+ * claim injection): the merged native-annotation + sidecar-mapping
35
+ * claims the orchestrating CLI resolved from the tracked mappings and
36
+ * the supervisor carried on the session-open path. Declarations only —
37
+ * they route evidence onto obligation identities and never satisfy
38
+ * anything by themselves; every record is still forced onto the
39
+ * supervisor-registered session/test identity and graded from
40
+ * witnessed evidence. Empty/absent for runs without mappings.
41
+ */
42
+ claims?: string[];
43
+ }
44
+ /**
45
+ * `POST /records` body (pin #7, Phase 1 extension): a test-side primitive
46
+ * submitting UI-observed evidence. `claimId` is the claimed obligation id —
47
+ * the annotation's `<resourceId>:<contract>` — and `testId` binds the record
48
+ * to the test that produced the claim. Phase 1: `sessionId` +
49
+ * `sessionToken` carry the supervisor-issued session credential; the
50
+ * witness rejects submissions without a valid OPEN session and forces the
51
+ * record's testId onto the session's supervisor-registered value.
52
+ */
53
+ export interface RecordsRequest {
54
+ claimId: string;
55
+ kind: string;
56
+ payload: unknown;
57
+ testId: string;
58
+ sessionId: string;
59
+ sessionToken: string;
60
+ }
61
+ /** `POST /records` response (pin #7, minimal wire contract). */
62
+ export interface RecordsResponse {
63
+ recordId: string;
64
+ trust: TrustTier;
65
+ runId: string;
66
+ }
67
+ /**
68
+ * `POST /witness/persistence` body (pin #7): the fixture asks the
69
+ * engine-side witness to run the resource's reviewed adapter (GET-only)
70
+ * for one entity. The issued record carries the ENGINE OBSERVATION
71
+ * (`found`, adapter-normalized `fields`, and a `before` link when a
72
+ * pre-observation was consumed) — expectations NEVER come from the
73
+ * suite (audit round 5).
74
+ *
75
+ * `preObservationId` references a witness-issued pre-observation (`POST
76
+ * /witness/pre-observation`): an id-set snapshot for create
77
+ * postconditions (`before: {entityAbsent}`), or an entity-fields
78
+ * snapshot for update postconditions (`before: {found, fields}`).
79
+ */
80
+ export interface PersistenceRequest {
81
+ resourceId: string;
82
+ entityId: unknown;
83
+ preObservationId?: string;
84
+ }
85
+ /**
86
+ * `POST /witness/pre-observation` body: an engine-side snapshot taken
87
+ * BEFORE a claimed action. With `entityId` the witness snapshots that
88
+ * entity's observed fields (update postconditions); without it, the
89
+ * resource's observed id set (create postconditions). Phase 1: requires
90
+ * the supervisor-issued session credential.
91
+ */
92
+ export interface PreObservationRequest {
93
+ resourceId: string;
94
+ testId: string;
95
+ claimId: string;
96
+ entityId?: unknown;
97
+ sessionId: string;
98
+ sessionToken: string;
99
+ }
100
+ /** `POST /witness/pre-observation` response. */
101
+ export interface PreObservationResponse {
102
+ observationId: string;
103
+ observed: number;
104
+ }
105
+ /** `POST /witness/persistence` response (pin #7). */
106
+ export interface PersistenceResponse {
107
+ recordId: string;
108
+ runId: string;
109
+ verdictRelevant: {
110
+ found: boolean;
111
+ fieldsMatch: boolean;
112
+ mismatches?: string[];
113
+ };
114
+ }
115
+ /**
116
+ * `POST /runs/server-e2e-declarations` body (SUPERVISOR ONLY): the
117
+ * obligation ids the trusted mapping layer declared kind `server-e2e`.
118
+ * Registration is a PRE-run fact (like the expected set): bound once,
119
+ * identical re-registration idempotent, any change or late registration
120
+ * refused — the witness never stamps `channel: 'server'` records for
121
+ * obligations outside this set, so the suite cannot steer an intent onto
122
+ * a browser-kind obligation and a bearer of an intent can never
123
+ * self-verify.
124
+ */
125
+ export interface ServerE2eDeclarationsRequest {
126
+ obligations: readonly string[];
127
+ }
128
+ /** `POST /runs/server-e2e-declarations` response. */
129
+ export interface ServerE2eDeclarationsResponse {
130
+ bound: true;
131
+ count: number;
132
+ obligations: string[];
133
+ }
134
+ /**
135
+ * `POST /witness/server-persistence` body (SUPERVISOR ONLY — the drain
136
+ * forwards it with the verifier key; the suite can only write intent
137
+ * spool lines, never call this): one persistence claim intent, already
138
+ * drained from the runner-side intents spool.
139
+ *
140
+ * - create: `pre` (expect-absent) BEFORE the mutation stores a witness
141
+ * pre-observation; `post` (expect-present) probes, consumes it, and
142
+ * stamps `before: {entityAbsent}` into the record — the same shape the
143
+ * browser path grades.
144
+ * - update: `pre` (expect-present) snapshots the entity's fields;
145
+ * `post` consumes it into `before: {found, fields}` (the update delta
146
+ * grades against the classification's updateableFields in the engine).
147
+ * - read: `post` (expect-present) only. delete: `post` (expect-absent
148
+ * for hard; expect-present for archive states) only.
149
+ *
150
+ * `sequence` is strictly increasing per claimId; a replayed or
151
+ * out-of-order line resolves to a typed failure (fail closed), so no
152
+ * bearer of an intent can re-drive a stale observation.
153
+ */
154
+ export interface ServerPersistenceIntentRequest {
155
+ resourceId: string;
156
+ /** Obligation id `<resourceId>:persistence:<op>` the intent serves. */
157
+ claimId: string;
158
+ operation: 'create' | 'read' | 'update' | 'delete';
159
+ phase: 'pre' | 'post';
160
+ intent: 'expect-present' | 'expect-absent';
161
+ /** The entity key: scalar for single-column PKs, column-keyed object for composite. */
162
+ key: unknown;
163
+ /** Strictly increasing per claimId (replay → typed failure). */
164
+ sequence: number;
165
+ /** The claiming test's id (diagnostic attribution; the claim join key). */
166
+ testId: string;
167
+ }
168
+ /** `POST /witness/server-persistence` response for a `pre` intent. */
169
+ export interface ServerPreObservationResponse {
170
+ resolved: 'pre';
171
+ found: boolean;
172
+ }
173
+ /** `POST /witness/server-persistence` response for a `post` intent. */
174
+ export interface ServerPersistenceResponse {
175
+ recordId: string;
176
+ runId: string;
177
+ trust: TrustTier;
178
+ channel: 'server';
179
+ verdictRelevant: {
180
+ found: boolean;
181
+ };
182
+ }
183
+ /** `POST /sessions/open` body (Phase 1; Phase 4 adds claim injection). */
184
+ export interface SessionOpenRequest {
185
+ /** The test's runner-assigned id (same id the reporter writes to claims.json). */
186
+ testId: string;
187
+ /** The worker the test runs on (binds worker → session). */
188
+ workerIndex: number;
189
+ /**
190
+ * Supervisor-carried identity of the started test (enforcement-review
191
+ * fix 2a/3): repo-relative file + title path + project, as drained from
192
+ * the runner's lifecycle spool. When an expected set is registered,
193
+ * THIS identity decides membership — a test outside the registered set
194
+ * is refused. Optional only for runs without a registered expected set.
195
+ */
196
+ file?: string;
197
+ titlePath?: readonly string[];
198
+ project?: string | null;
199
+ /**
200
+ * Phase 4 claim injection: the mapped obligation claims this test must
201
+ * land its evidence on (resolved from the sidecar/native mappings by
202
+ * the orchestrating CLI and carried by the supervisor on the
203
+ * session-open path). Obligation-id-shaped, deduplicated by the
204
+ * witness; empty/absent for annotation-claimed tests, which keep
205
+ * working unchanged. Claims remain DECLARATIONS: they never satisfy
206
+ * anything by themselves.
207
+ */
208
+ claims?: readonly string[];
209
+ }
210
+ /** `POST /sessions/open` response: the session binding (runId, sessionId, testId, worker). */
211
+ export interface SessionOpenResponse extends SessionCredential {
212
+ /** Witness-monotonic tick at open (the session clock origin). */
213
+ openedTick: number;
214
+ }
215
+ /** `POST /sessions/close` body: the supervisor seals the session with the observed outcome. */
216
+ export interface SessionCloseRequest {
217
+ sessionId: string;
218
+ /** The observed test outcome (e.g. 'passed' | 'failed'); recorded, never graded here. */
219
+ outcome?: string;
220
+ }
221
+ /** `POST /sessions/close` response. */
222
+ export interface SessionCloseResponse {
223
+ sealed: true;
224
+ }
225
+ /** `POST /sessions/resolve` body: the worker proves WHICH open session it runs under. */
226
+ export interface SessionResolveRequest {
227
+ testId: string;
228
+ workerIndex: number;
229
+ }
230
+ /** `POST /sessions/resolve` response (a resolvable credential, proxy prefix included). */
231
+ export interface SessionResolveResponse extends SessionCredential {
232
+ openedTick: number;
233
+ }
234
+ /** `POST /sessions/intervals/open` body: the fixture marks a UI-action observation interval. */
235
+ export interface IntervalOpenRequest {
236
+ sessionId: string;
237
+ sessionToken: string;
238
+ /** The UI operation the interval covers ('create' | 'read' | 'update' | 'delete'). */
239
+ operation: string;
240
+ }
241
+ /** `POST /sessions/intervals/open` response. */
242
+ export interface IntervalOpenResponse {
243
+ intervalId: string;
244
+ startTick: number;
245
+ }
246
+ /** `POST /sessions/intervals/close` body. */
247
+ export interface IntervalCloseRequest {
248
+ sessionId: string;
249
+ sessionToken: string;
250
+ intervalId: string;
251
+ }
252
+ /** `POST /sessions/intervals/close` response. */
253
+ export interface IntervalCloseResponse {
254
+ startTick: number;
255
+ endTick: number;
256
+ }
257
+ /**
258
+ * `POST /browser/surface` body (plan Phase 1 item 4): the worker-side
259
+ * fixture registers the consumer-declared surface descriptor for one
260
+ * open session. The descriptor's selectors are locators only — the
261
+ * engine verifies every outcome itself. The driven ORIGIN is never part
262
+ * of this body (a present `appBaseUrl` is rejected): the engine drives
263
+ * exactly the provisioned attested subject from trusted witness
264
+ * configuration. Requires the supervisor-issued session credential on
265
+ * an OPEN session; the record's testId is forced onto the session's
266
+ * value.
267
+ */
268
+ export interface BrowserSurfaceRequest {
269
+ sessionId: string;
270
+ sessionToken: string;
271
+ testId: string;
272
+ /** The consumer-declared surface descriptor (validated engine-side). */
273
+ surface: unknown;
274
+ }
275
+ /**
276
+ * `POST /browser/action` body: perform ONE constrained surface
277
+ * operation on the session's engine-owned page and issue
278
+ * engine-observed records for it.
279
+ */
280
+ export interface BrowserActionRequest {
281
+ sessionId: string;
282
+ sessionToken: string;
283
+ testId: string;
284
+ /** Obligation ids to issue the engine-observed records under. */
285
+ claimIds: string[];
286
+ /** The constrained operation to perform. */
287
+ operation: 'create' | 'read' | 'update' | 'delete';
288
+ /** Entered input (create/update); target entity (read/update/delete). */
289
+ fields?: Record<string, string>;
290
+ entityId?: string;
291
+ }
292
+ /** `POST /browser/action` response: the engine's own observation. */
293
+ export interface BrowserActionResponse {
294
+ /** Entity id OBSERVED from the rendered list (never declared). */
295
+ entityId: string;
296
+ /** The exact input values the engine typed. */
297
+ enteredFields: Record<string, string>;
298
+ /** The rendered fields the engine read back. */
299
+ renderedFields: Record<string, string>;
300
+ /** The app response status the engine captured for the mutation. */
301
+ appStatus: number;
302
+ /** Engine-side pre-observation id (create/update; consumed by persistence verify). */
303
+ preObservationId: string | null;
304
+ /** Record ids the engine issued for this action (per claim). */
305
+ recordIds: string[];
306
+ }
307
+ /**
308
+ * `POST /browser/visible` body: re-read the rendered result for the
309
+ * engine-observed entity on the session's engine page and issue
310
+ * engine-observed visible-result records.
311
+ */
312
+ export interface BrowserVisibleRequest {
313
+ sessionId: string;
314
+ sessionToken: string;
315
+ testId: string;
316
+ /** Obligation ids to issue the engine-observed records under. */
317
+ claimIds: string[];
318
+ /** The engine-observed entity id (must match the action's). */
319
+ entityId: string;
320
+ /** The original action (decides row vs form readback). */
321
+ operation: 'create' | 'read' | 'update' | 'delete';
322
+ }
323
+ /** `POST /browser/visible` response. */
324
+ export interface BrowserVisibleResponse {
325
+ entityId: string;
326
+ /** The rendered fields the engine read. */
327
+ fields: Record<string, string>;
328
+ /** Record ids the engine issued (per claim). */
329
+ recordIds: string[];
330
+ }
331
+ /**
332
+ * Witness-held session state (plan Phase 1). Created only by
333
+ * `POST /sessions/open` (the trusted supervisor, verifier-key
334
+ * authenticated — enforcement-review fix 3); sealed by
335
+ * `POST /sessions/close` (same authority). Sealed sessions answer no
336
+ * submission, no interval, and no resolve call.
337
+ */
338
+ export interface TestSession {
339
+ /** Witness-issued session id (UUID). */
340
+ sessionId: string;
341
+ /** Per-session secret required on every submission. */
342
+ token: string;
343
+ /** The supervisor-registered testId (every record is forced onto it). */
344
+ testId: string;
345
+ /** The worker the session is bound to (one OPEN session per worker). */
346
+ workerIndex: number;
347
+ /** `open` accepts submissions; `sealed` rejects everything (fail closed). */
348
+ status: 'open' | 'sealed';
349
+ /** Witness-monotonic tick at open. */
350
+ openedTick: number;
351
+ /** Witness-monotonic tick at seal (null while open). */
352
+ sealedTick: number | null;
353
+ /** The outcome the supervisor observed at close (recorded, never graded). */
354
+ outcome: string | null;
355
+ /**
356
+ * UI-action observation intervals keyed by intervalId. End ticks are
357
+ * null while the interval is open. Exchanges are consumable as this
358
+ * session's evidence only when their tick falls inside one of these
359
+ * intervals — setup traffic outside every interval is never credited.
360
+ */
361
+ intervals: Map<string, {
362
+ startTick: number;
363
+ endTick: number | null;
364
+ operation: string;
365
+ }>;
366
+ /**
367
+ * The session's dedicated observation-proxy origin when the run wires
368
+ * an observation proxy; null otherwise.
369
+ */
370
+ proxyUrl: string | null;
371
+ /** The dedicated proxy server (closed when the session seals). */
372
+ proxyServer: Server | null;
373
+ /**
374
+ * Phase 4 claim injection: the mapped obligation claims the supervisor
375
+ * registered at open (sorted, deduplicated, obligation-id-shaped;
376
+ * empty for annotation-only tests). Echoed in the session view so the
377
+ * supervisor writes claims.json from what the witness registered.
378
+ */
379
+ claims: string[];
380
+ /**
381
+ * The registered expected-set identity this session was minted for
382
+ * (enforcement-review fix 2a/2b); null when the run has no registered
383
+ * expected set. Groups the execution trace by expected test.
384
+ */
385
+ registered: {
386
+ testId: string | null;
387
+ project: string | null;
388
+ file: string;
389
+ titlePath: string[];
390
+ } | null;
391
+ /**
392
+ * Witness-side activity bound to this session: a monotonically
393
+ * increasing count of everything the witness itself observed under
394
+ * the session — ledger records issued with the session credential,
395
+ * recorded UI-action intervals, consumed engine-observed exchanges,
396
+ * and pre-observations. Diagnostic corroboration only (execution
397
+ * authority is the supervisor-observed trusted lifecycle).
398
+ */
399
+ activity: number;
400
+ /**
401
+ * Engine-browser surface registration (plan Phase 1 item 4): the
402
+ * validated consumer descriptor the engine drives for this session.
403
+ * The driven ORIGIN is never stored here — it resolves from trusted
404
+ * witness configuration (`targetBaseUrl`) on every call, so a
405
+ * suite-named frontend can never become the engine target.
406
+ */
407
+ engineSurface: {
408
+ surface: Record<string, unknown>;
409
+ } | null;
410
+ }
411
+ /**
412
+ * One expected test registered by the supervisor BEFORE the run
413
+ * (enforcement-review fix 2a). Identity is (project, file, titlePath);
414
+ * `testId` is diagnostic (runner-assigned ids are not stable across
415
+ * enumeration and execution).
416
+ */
417
+ export interface ExpectedTestRegistration {
418
+ /** The runner-assigned test id, when enumeration bound one. */
419
+ testId?: string | null;
420
+ /** Runner project, or null when the runner reports none. */
421
+ project: string | null;
422
+ /** Repo-relative posix file (the identity join key). */
423
+ file: string;
424
+ /** Full title path (the identity join key). */
425
+ titlePath: readonly string[];
426
+ }
427
+ /** `POST /runs/expected-set` body (SUPERVISOR ONLY). */
428
+ export interface ExpectedSetRequest {
429
+ /** The expected tests, fixed before the run. */
430
+ tests: readonly ExpectedTestRegistration[];
431
+ }
432
+ /** `POST /runs/expected-set` response. */
433
+ export interface ExpectedSetResponse {
434
+ /** The set is bound to this run. */
435
+ bound: true;
436
+ /** Domain-separated digest over the registered set. */
437
+ enumerationDigest: string;
438
+ /** Number of registered expected tests. */
439
+ count: number;
440
+ }
441
+ /** `GET /runs/execution-trace` response (SUPERVISOR ONLY; fix 2b). */
442
+ export interface ExecutionTraceResponse {
443
+ /** The digest of the registered expected set (null when none). */
444
+ enumerationDigest: string | null;
445
+ /** Per expected test, every session the witness recorded. */
446
+ tests: Array<{
447
+ testId: string | null;
448
+ project: string | null;
449
+ file: string;
450
+ titlePath: string[];
451
+ sessions: TracedSession[];
452
+ }>;
453
+ }
454
+ /** Witness runtime configuration (env-derived by the bin, explicit in tests). */
455
+ export interface WitnessOptions {
456
+ /**
457
+ * ADR 0004 D7 (plan §8 / D1): when set, the witness also starts a
458
+ * loopback reverse proxy forwarding to this base URL and records
459
+ * every forwarded request as an engine observation (the runtime HTTP
460
+ * evidence channel). Transport-only: the observation proves the
461
+ * witness observed an HTTP exchange; test attribution is
462
+ * suite-claimed. Must be loopback.
463
+ */
464
+ proxyTarget?: string;
465
+ /**
466
+ * Observation-proxy mount prefix (with `proxyTarget`; e.g. `/api`).
467
+ *
468
+ * WHY this is an explicit deployment-topology declaration (same
469
+ * philosophy as `urlBuilders[].base`): in a real deployment the
470
+ * browser reaches the backend THROUGH the frontend — a dev proxy or
471
+ * edge serves `/api/ops/...` while the backend route is `/ops/...`.
472
+ * Whether such a prefix exists is a property of the deployment the
473
+ * engine cannot derive from source, and guessing wrong would silently
474
+ * mismatch obligation identities. When set, the observation proxy
475
+ * forwards the STRIPPED path to the proxy target AND records the
476
+ * STRIPPED path in observation records, so observations match the
477
+ * backend-derived obligation identities the suite claims
478
+ * (`evidence.http.observe({path: '/ops/x'})`). Requests outside the
479
+ * prefix pass through and are recorded unstripped. Absent/null strips
480
+ * nothing — forwarding and recording stay byte-identical to an
481
+ * unmounted proxy.
482
+ */
483
+ mountPath?: string | null;
484
+ /** Run manifest identity (pin #4). */
485
+ runId: string;
486
+ /** Per-run token; every call must carry `x-gateforge-run: <token>`. */
487
+ token: string;
488
+ /**
489
+ * Verifier key for the attestation surface (authenticated
490
+ * `POST /run-context` binding, `GET /ledger-attestation`, and the
491
+ * manifest v2 `attestation` envelope): shared by the orchestrator
492
+ * with the witness and the evaluating CLI, NEVER with the tested
493
+ * suite. When absent the witness serves no attestation and its
494
+ * manifest append stays unauthenticated (downstream evaluation fails
495
+ * closed for witnessed records). Environment ONLY (see
496
+ * `witness/bin.ts`) — never argv, stdout, state files, or suite env.
497
+ */
498
+ verifierKey?: string | null;
499
+ /** Run-state dir; the witness appends its issued recordIds to manifest.json at shutdown. */
500
+ stateDir?: string | null;
501
+ /** Directory of reviewed `.mjs` adapters (default `.gateforge/adapters`). */
502
+ adaptersDir?: string | null;
503
+ /**
504
+ * Operator-issued credential the witness presents on its OWN engine-side
505
+ * adapter reads (GF-10 mediation; dogfood deployment, 2026-09-05/07).
506
+ *
507
+ * WHY: adapters perform GET-only reads of the app's own collection
508
+ * routes to observe persisted state, and those routes authenticate —
509
+ * an unauthenticated loopback read is a 401, so the engine could not
510
+ * observe state at all. The credential is issued by the DEPLOYMENT
511
+ * OPERATOR to the WITNESS ONLY (env `GATEFORGE_ADAPTER_READ_AUTHORIZATION`
512
+ * or `--adapter-read-authorization`), never to the tested suite, and is
513
+ * a read-only service principal of the same trust class as the verifier
514
+ * key. When unset, adapter reads stay unauthenticated (previous
515
+ * behavior) and protected collections simply fail closed with 401/409.
516
+ */
517
+ adapterReadAuthorization?: string | null;
518
+ /** Classifications document path (YAML) for the primaryKey map + adapter aliases. */
519
+ classificationsPath?: string | null;
520
+ /**
521
+ * Attestation subject (the SUT the UI drives). MUST be loopback
522
+ * (GF-10); the witness probes its env-fingerprint marker at startup
523
+ * when `targetFingerprint` is set (GF-13 minimal v1 attestation).
524
+ */
525
+ targetBaseUrl?: string | null;
526
+ /** Expected `x-gateforge-env-fingerprint` marker at the attestation subject. */
527
+ targetFingerprint?: string | null;
528
+ /** Default base for adapter reads; a per-adapter `baseUrl` wins. */
529
+ adapterBaseUrl?: string | null;
530
+ /** Per-witness-call timeout (pin #7 default 5s). */
531
+ requestTimeoutMs?: number;
532
+ /** Injected clock for `issuedAt` (ISO-8601); default = system now. */
533
+ now?: () => string;
534
+ /** Host to bind; default `127.0.0.1` (loopback). */
535
+ host?: string;
536
+ /**
537
+ * Engine-browser launcher override (programmatic use only — never
538
+ * env-derived): the executable the engine drives stays engine code
539
+ * regardless of which Chromium launches. Tests inject a failing
540
+ * launcher to prove the fail-closed path (E16); production leaves it
541
+ * unset for the pinned Chromium.
542
+ */
543
+ engineBrowserLauncher?: import('./browser.js').EngineBrowserLauncher;
544
+ }
545
+ /**
546
+ * The normalized adapter module contract (pin #8).
547
+ *
548
+ * `probeServer` (optional; the server-witnessed persistence channel) is
549
+ * the adapter's server-side probe: the witness executes it ONLY in the
550
+ * witness process (trusted side) against the app's own database/state —
551
+ * for backend-only tables (a transactional outbox) that can never
552
+ * honestly appear in a UI. Contract:
553
+ *
554
+ * ```js
555
+ * export default {
556
+ * ...,
557
+ * async probeServer(ctx, subject) {
558
+ * const row = await db.query('select * from outbox where id = $1', [subject]);
559
+ * return { found: row !== undefined, fields: row ?? null };
560
+ * },
561
+ * };
562
+ * ```
563
+ *
564
+ * `subject` is the entity key EXACTLY as the persistence intent declared
565
+ * it (scalar for single-column primary keys, column-keyed object for
566
+ * composite keys); the return MUST be
567
+ * `{found: boolean, fields: Record<string, unknown> | null}`. A throw or
568
+ * a malformed shape resolves the intent as a typed
569
+ * SERVER_PROBE_UNAVAILABLE failure — never to satisfaction (fail
570
+ * closed). Adapters without the export simply cannot serve the server
571
+ * channel; the browser path is unaffected.
572
+ */
573
+ export interface EvidenceAdapter {
574
+ /** GET-only transport. Returns the raw entity body, or null when absent. */
575
+ read: (ctx: AdapterContext, id: unknown) => Promise<unknown> | unknown;
576
+ /**
577
+ * Optional GET-only listing of the resource's entities (raw bodies).
578
+ * Powers engine-side pre-observations for create postconditions; when
579
+ * absent the witness refuses pre-observations for the resource.
580
+ */
581
+ list?: (ctx: AdapterContext) => Promise<unknown[]> | unknown[];
582
+ /** Projects the raw body onto {entityId, fields} — stamped from the RESPONSE. */
583
+ normalize: (body: unknown) => {
584
+ entityId: unknown;
585
+ fields: unknown;
586
+ };
587
+ /** Removal semantics the adapter's resource uses. */
588
+ deletion: 'hard' | 'archive';
589
+ /** Fingerprint the adapter's target environment must present. */
590
+ environmentFingerprint: string;
591
+ /** Optional base override for THIS adapter's reads. */
592
+ baseUrl?: string;
593
+ /**
594
+ * Optional SERVER PROBE, executed witness-side only (see the interface
595
+ * doc): observes the app database directly and reports the entity's
596
+ * presence + observed column state.
597
+ */
598
+ probeServer?: (ctx: AdapterContext, subject: unknown) => Promise<ServerProbeResult> | ServerProbeResult;
599
+ }
600
+ /** The shape an adapter `probeServer` must return (validated witness-side). */
601
+ export interface ServerProbeResult {
602
+ /** Whether the probed entity exists in the engine-observed state. */
603
+ found: boolean;
604
+ /** The observed column state when found (null when absent). */
605
+ fields: Record<string, unknown> | null;
606
+ }
607
+ /** The transport handed to `read` (GET-only, engine-mediated). */
608
+ export interface AdapterContext {
609
+ /** The resolved read base for this adapter. */
610
+ baseUrl: string;
611
+ /** The resource this adapter serves. */
612
+ resourceId: string;
613
+ /**
614
+ * The ONLY outbound primitive available to adapters: a GET returning
615
+ * a minimal response view (status + JSON/text body + headers).
616
+ */
617
+ get: (path: string) => Promise<{
618
+ status: number;
619
+ json(): Promise<unknown>;
620
+ text(): Promise<string>;
621
+ headers: Headers;
622
+ }>;
623
+ /**
624
+ * Headers adapters MUST attach to any direct fetch they perform
625
+ * instead of `get` (dogfood, 2026-09-05): carries the operator-issued
626
+ * engine read credential (`WitnessOptions.adapterReadAuthorization`)
627
+ * so engine-side GET-only state observation can authenticate against
628
+ * the app's own collection routes. Never suite-supplied, never
629
+ * attached to browser traffic.
630
+ */
631
+ headers?: Record<string, string>;
632
+ }
633
+ /** Full witness-issued record (superset of the pinned wire response). */
634
+ export type IssuedRecord = EvidenceRecord;
635
+ /** Result of spawning/attaching a witness service. */
636
+ export interface WitnessHandle {
637
+ /** Base URL (loopback, OS-assigned port). */
638
+ url: string;
639
+ /** Stop the server; appends issued recordIds to the run manifest (pin #4/#7). */
640
+ proxyUrl: string | null;
641
+ stop: () => Promise<void>;
642
+ }
643
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/witness/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/witness/types.ts"],"names":[],"mappings":""}