@jmanuelcorral/openteam 0.1.42 → 0.2.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/.opencode/openteam.example.json +6 -1
- package/README.es.md +5 -5
- package/README.md +5 -5
- package/dist/capabilities/types.d.ts +4 -4
- package/dist/classifier/types.d.ts +3 -3
- package/dist/cli.js +11 -0
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/graph.d.ts +28 -2
- package/dist/commands/graph.d.ts.map +1 -1
- package/dist/config/graphFeatureGate.d.ts +101 -0
- package/dist/config/graphFeatureGate.d.ts.map +1 -0
- package/dist/config/migrations.d.ts.map +1 -1
- package/dist/config/resolve.d.ts +20 -1
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/schema.d.ts +22 -19
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/console/render.d.ts.map +1 -1
- package/dist/context/redaction.d.ts +23 -0
- package/dist/context/redaction.d.ts.map +1 -1
- package/dist/context/schema.d.ts +3 -3
- package/dist/contract/opencode.d.ts +2 -2
- package/dist/contract/opencode.d.ts.map +1 -1
- package/dist/graph/certificate.d.ts +515 -0
- package/dist/graph/certificate.d.ts.map +1 -0
- package/dist/graph/ids.d.ts +9 -0
- package/dist/graph/ids.d.ts.map +1 -1
- package/dist/graph/privacyPolicy.d.ts.map +1 -1
- package/dist/graph/reducer.d.ts.map +1 -1
- package/dist/graph/replay.d.ts.map +1 -1
- package/dist/graph/reviewerPolicy.d.ts.map +1 -1
- package/dist/graph/schema.d.ts +33 -33
- package/dist/graph/schema.d.ts.map +1 -1
- package/dist/graph/soakLedger.d.ts +167 -0
- package/dist/graph/soakLedger.d.ts.map +1 -0
- package/dist/graph/types.d.ts +2 -0
- package/dist/graph/types.d.ts.map +1 -1
- package/dist/graph/validate.d.ts.map +1 -1
- package/dist/index.d.ts +52 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2452 -279
- package/dist/local/registry.d.ts.map +1 -1
- package/dist/memory/types.d.ts +2 -2
- package/dist/orchestrator/graphFacade.d.ts +39 -0
- package/dist/orchestrator/graphFacade.d.ts.map +1 -0
- package/dist/orchestrator/graphIngress.d.ts +136 -0
- package/dist/orchestrator/graphIngress.d.ts.map +1 -0
- package/dist/orchestrator/graphShadow.d.ts +121 -0
- package/dist/orchestrator/graphShadow.d.ts.map +1 -0
- package/dist/orchestrator/ledger.d.ts +11 -30
- package/dist/orchestrator/ledger.d.ts.map +1 -1
- package/dist/orchestrator/opencodeSessionAdapter.d.ts.map +1 -1
- package/dist/orchestrator/roles.d.ts +3 -3
- package/dist/orchestrator/sddCompiler.d.ts +31 -3
- package/dist/orchestrator/sddCompiler.d.ts.map +1 -1
- package/dist/orchestrator/worktreeAdapter.d.ts.map +1 -1
- package/dist/orchestrator/worktreeDispatch.d.ts.map +1 -1
- package/dist/plugin/graphShadowIngress.d.ts +165 -0
- package/dist/plugin/graphShadowIngress.d.ts.map +1 -0
- package/dist/plugin/graphTool.d.ts +63 -0
- package/dist/plugin/graphTool.d.ts.map +1 -0
- package/dist/plugin/hooks.d.ts +6 -0
- package/dist/plugin/hooks.d.ts.map +1 -1
- package/dist/plugin/legacyRunProducer.d.ts +60 -0
- package/dist/plugin/legacyRunProducer.d.ts.map +1 -0
- package/dist/plugin/reportRunSchema.d.ts +60 -0
- package/dist/plugin/reportRunSchema.d.ts.map +1 -0
- package/dist/plugin/sessionTracker.d.ts +42 -0
- package/dist/plugin/sessionTracker.d.ts.map +1 -0
- package/dist/plugin/shadowPipeline.d.ts +49 -0
- package/dist/plugin/shadowPipeline.d.ts.map +1 -0
- package/dist/plugin/soakObserver.d.ts +73 -0
- package/dist/plugin/soakObserver.d.ts.map +1 -0
- package/dist/storage/graph/codec.d.ts.map +1 -1
- package/dist/storage/graph/migrateLegacyBriefs.d.ts.map +1 -1
- package/dist/storage/graph/migration.d.ts +91 -0
- package/dist/storage/graph/migration.d.ts.map +1 -0
- package/dist/storage/graph/provider.d.ts +1 -0
- package/dist/storage/graph/provider.d.ts.map +1 -1
- package/dist/storage/graph/recovery.d.ts.map +1 -1
- package/dist/storage/graph/runRegistry.d.ts.map +1 -1
- package/dist/storage/graph/soakRecorder.d.ts +59 -0
- package/dist/storage/graph/soakRecorder.d.ts.map +1 -0
- package/dist/storage/graph/workspaceLease.d.ts.map +1 -1
- package/dist/storage/graph/worktreeRegistry.d.ts.map +1 -1
- package/dist/storage/graph/writer.d.ts +15 -0
- package/dist/storage/graph/writer.d.ts.map +1 -1
- package/dist/storage/path.d.ts.map +1 -1
- package/dist/telemetry/events.d.ts +12 -12
- package/dist/telemetry/graphRuntimeHealth.d.ts +53 -0
- package/dist/telemetry/graphRuntimeHealth.d.ts.map +1 -0
- package/dist/telemetry/graphView.d.ts +1 -0
- package/dist/telemetry/graphView.d.ts.map +1 -1
- package/dist/telemetry/types.d.ts +4 -4
- package/package.json +7 -5
- package/dist/orchestrator/sdd.d.ts +0 -126
- package/dist/orchestrator/sdd.d.ts.map +0 -1
|
@@ -25,13 +25,13 @@ export declare const MIN_SUPPORTED_OPENCODE_VERSION = "1.17.13";
|
|
|
25
25
|
* una versión nueva hay que añadirla aquí **después** de revisar los puntos de
|
|
26
26
|
* integración documentados en {@link OPENCODE_CONTRACT_SURFACES}.
|
|
27
27
|
*/
|
|
28
|
-
export declare const SUPPORTED_OPENCODE_VERSIONS: readonly ["1.17.13"];
|
|
28
|
+
export declare const SUPPORTED_OPENCODE_VERSIONS: readonly ["1.17.13", "1.18.18"];
|
|
29
29
|
export type SupportedOpencodeVersion = (typeof SUPPORTED_OPENCODE_VERSIONS)[number];
|
|
30
30
|
/**
|
|
31
31
|
* Puntos de integración concretos que openteam asume estables. Sirve como
|
|
32
32
|
* checklist ejecutable/documental cuando se verifica una versión nueva.
|
|
33
33
|
*/
|
|
34
|
-
export declare const OPENCODE_CONTRACT_SURFACES: readonly [
|
|
34
|
+
export declare const OPENCODE_CONTRACT_SURFACES: readonly ['Hooks["chat.message"] permite mutar output.message.model', 'Hooks["chat.message"] permite mutar output.parts[].text (inyección de contexto)', "tool() + tool.schema (zod) para custom tools", "PluginModule = { id?, server } con server: (input, options?) => Promise<Hooks>", "SDK session.create / session.prompt aceptan body.model = { providerID, modelID }", 'Hooks["tool.execute.before"] / Hooks["tool.execute.after"] reciben { tool, sessionID, callID }', 'Hooks["event"] con message.updated trae properties.info (AssistantMessage) con cost:number y tokens{input,output,reasoning,cache{read,write}} y time{created,completed}', 'El frontmatter `permission` de un agente (`.opencode/agent/*.md`) ANULA el `permission` global de `opencode.json`; el catch-all `"*": allow` concede todos los permisos (base del modo YOLO)'];
|
|
35
35
|
export type Semver = {
|
|
36
36
|
readonly major: number;
|
|
37
37
|
readonly minor: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/contract/opencode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/contract/opencode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,YAC5B,qBAAqB,EACrB,kBAAkB,CACV,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,8BAA8B,YAAY,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,YAAI,SAAS,EAAE,SAAS,CAAU,CAAC;AAE3E,MAAM,MAAM,wBAAwB,GAClC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,0BAA0B,YACrC,0DAA0D,EAC1D,iFAAiF,EACjF,8CAA8C,EAC9C,gFAAgF,EAChF,kFAAkF,EAClF,gGAAgG,EAChG,yKAAyK,EACzK,8LAA8L,CACtL,CAAC;AAEX,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAIF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAanD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAc9D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,GACd,OAAO,IAAI,wBAAwB,CAErC;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAOpE"}
|
|
@@ -0,0 +1,515 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { type SoakObservation } from "./soakLedger";
|
|
3
|
+
/**
|
|
4
|
+
* **Certificado de certificación shadow** `GraphShadowCertificateV1` (GE-046).
|
|
5
|
+
*
|
|
6
|
+
* Es el STOP duro que desbloquea R1 y lo consumen GE-050, GE-054 y GE-057, así
|
|
7
|
+
* que su propiedad central no es describir la evidencia sino **no poder mentir
|
|
8
|
+
* sobre ella**:
|
|
9
|
+
*
|
|
10
|
+
* - El veredicto se **deriva** de la evidencia; `buildShadowCertificate` no lo
|
|
11
|
+
* acepta como entrada. No existe forma de pedir un certificado en verde.
|
|
12
|
+
* - `parseShadowCertificate` **recomputa** el veredicto y el digest antes de
|
|
13
|
+
* aceptarlo, así que un `"pass"` escrito a mano o una evidencia editada
|
|
14
|
+
* después de firmar fallan cerrado en vez de colarse en el arranque.
|
|
15
|
+
* - El certificado transporta la **procedencia** del espejo (GE-043), que acota
|
|
16
|
+
* qué prueba realmente la paridad: certificar dimensiones que el espejo se
|
|
17
|
+
* limita a copiar del trace no probaría nada.
|
|
18
|
+
*
|
|
19
|
+
* Módulo **puro y determinista**: sin I/O, reloj ni azar. La misma evidencia
|
|
20
|
+
* produce el mismo certificado, byte a byte.
|
|
21
|
+
*/
|
|
22
|
+
/** Tamaño mínimo de muestra: por debajo, no hay evidencia que certificar. */
|
|
23
|
+
export declare const SHADOW_CERTIFICATE_MIN_RUNS = 1000;
|
|
24
|
+
/** Puertas que el certificado evalúa, en orden determinista de reporte. */
|
|
25
|
+
export type ShadowCertificateGate = "sample" | "parity" | "one-legacy-execution" | "privacy" | "overhead";
|
|
26
|
+
/** Veredicto derivado del certificado. */
|
|
27
|
+
export type ShadowCertificateVerdict = "pass" | "fail";
|
|
28
|
+
declare const EvidenceSchema: z.ZodObject<{
|
|
29
|
+
opencodeVersion: z.ZodString;
|
|
30
|
+
parity: z.ZodObject<{
|
|
31
|
+
runs: z.ZodNumber;
|
|
32
|
+
match: z.ZodNumber;
|
|
33
|
+
divergent: z.ZodNumber;
|
|
34
|
+
inconclusive: z.ZodNumber;
|
|
35
|
+
divergences: z.ZodArray<z.ZodEnum<{
|
|
36
|
+
fixes: "fixes";
|
|
37
|
+
models: "models";
|
|
38
|
+
order: "order";
|
|
39
|
+
outcome: "outcome";
|
|
40
|
+
roles: "roles";
|
|
41
|
+
status: "status";
|
|
42
|
+
}>>;
|
|
43
|
+
}, z.core.$strict>;
|
|
44
|
+
legacy: z.ZodObject<{
|
|
45
|
+
observed: z.ZodNumber;
|
|
46
|
+
duplicated: z.ZodNumber;
|
|
47
|
+
}, z.core.$strict>;
|
|
48
|
+
privacy: z.ZodObject<{
|
|
49
|
+
surfacesScanned: z.ZodNumber;
|
|
50
|
+
rawFindings: z.ZodNumber;
|
|
51
|
+
}, z.core.$strict>;
|
|
52
|
+
overhead: z.ZodObject<{
|
|
53
|
+
p95Millis: z.ZodNumber;
|
|
54
|
+
budgetMillis: z.ZodNumber;
|
|
55
|
+
samples: z.ZodNumber;
|
|
56
|
+
}, z.core.$strict>;
|
|
57
|
+
provenance: z.ZodRecord<z.ZodEnum<{
|
|
58
|
+
fixes: "fixes";
|
|
59
|
+
models: "models";
|
|
60
|
+
order: "order";
|
|
61
|
+
outcome: "outcome";
|
|
62
|
+
roles: "roles";
|
|
63
|
+
status: "status";
|
|
64
|
+
}>, z.ZodEnum<{
|
|
65
|
+
carried: "carried";
|
|
66
|
+
compiled: "compiled";
|
|
67
|
+
recomputed: "recomputed";
|
|
68
|
+
validated: "validated";
|
|
69
|
+
}>>;
|
|
70
|
+
}, z.core.$strict>;
|
|
71
|
+
/** Evidencia bruta que alimenta el certificado. */
|
|
72
|
+
export type ShadowCertificateEvidence = z.infer<typeof EvidenceSchema>;
|
|
73
|
+
declare const CertificateSchema: z.ZodObject<{
|
|
74
|
+
version: z.ZodLiteral<1>;
|
|
75
|
+
certificate: z.ZodLiteral<"graph-shadow">;
|
|
76
|
+
opencodeVersion: z.ZodString;
|
|
77
|
+
evidence: z.ZodObject<{
|
|
78
|
+
opencodeVersion: z.ZodString;
|
|
79
|
+
parity: z.ZodObject<{
|
|
80
|
+
runs: z.ZodNumber;
|
|
81
|
+
match: z.ZodNumber;
|
|
82
|
+
divergent: z.ZodNumber;
|
|
83
|
+
inconclusive: z.ZodNumber;
|
|
84
|
+
divergences: z.ZodArray<z.ZodEnum<{
|
|
85
|
+
fixes: "fixes";
|
|
86
|
+
models: "models";
|
|
87
|
+
order: "order";
|
|
88
|
+
outcome: "outcome";
|
|
89
|
+
roles: "roles";
|
|
90
|
+
status: "status";
|
|
91
|
+
}>>;
|
|
92
|
+
}, z.core.$strict>;
|
|
93
|
+
legacy: z.ZodObject<{
|
|
94
|
+
observed: z.ZodNumber;
|
|
95
|
+
duplicated: z.ZodNumber;
|
|
96
|
+
}, z.core.$strict>;
|
|
97
|
+
privacy: z.ZodObject<{
|
|
98
|
+
surfacesScanned: z.ZodNumber;
|
|
99
|
+
rawFindings: z.ZodNumber;
|
|
100
|
+
}, z.core.$strict>;
|
|
101
|
+
overhead: z.ZodObject<{
|
|
102
|
+
p95Millis: z.ZodNumber;
|
|
103
|
+
budgetMillis: z.ZodNumber;
|
|
104
|
+
samples: z.ZodNumber;
|
|
105
|
+
}, z.core.$strict>;
|
|
106
|
+
provenance: z.ZodRecord<z.ZodEnum<{
|
|
107
|
+
fixes: "fixes";
|
|
108
|
+
models: "models";
|
|
109
|
+
order: "order";
|
|
110
|
+
outcome: "outcome";
|
|
111
|
+
roles: "roles";
|
|
112
|
+
status: "status";
|
|
113
|
+
}>, z.ZodEnum<{
|
|
114
|
+
carried: "carried";
|
|
115
|
+
compiled: "compiled";
|
|
116
|
+
recomputed: "recomputed";
|
|
117
|
+
validated: "validated";
|
|
118
|
+
}>>;
|
|
119
|
+
}, z.core.$strict>;
|
|
120
|
+
verdict: z.ZodEnum<{
|
|
121
|
+
fail: "fail";
|
|
122
|
+
pass: "pass";
|
|
123
|
+
}>;
|
|
124
|
+
failedGates: z.ZodArray<z.ZodEnum<{
|
|
125
|
+
"one-legacy-execution": "one-legacy-execution";
|
|
126
|
+
overhead: "overhead";
|
|
127
|
+
parity: "parity";
|
|
128
|
+
privacy: "privacy";
|
|
129
|
+
sample: "sample";
|
|
130
|
+
}>>;
|
|
131
|
+
digest: z.ZodString;
|
|
132
|
+
}, z.core.$strict>;
|
|
133
|
+
/** Certificado machine-readable de certificación shadow. */
|
|
134
|
+
export type GraphShadowCertificateV1 = z.infer<typeof CertificateSchema>;
|
|
135
|
+
/** Motivo tipado por el que un certificado no es aceptable. */
|
|
136
|
+
export type ShadowCertificateErrorCode = "invalid-certificate" | "verdict-mismatch" | "digest-mismatch" | "opencode-mismatch";
|
|
137
|
+
/** Error fail-closed del certificado. */
|
|
138
|
+
export declare class ShadowCertificateError extends Error {
|
|
139
|
+
readonly code: ShadowCertificateErrorCode;
|
|
140
|
+
readonly detail: string;
|
|
141
|
+
constructor(code: ShadowCertificateErrorCode, detail: string);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Construye el certificado a partir de la evidencia. El veredicto **no es un
|
|
145
|
+
* parámetro**: se deriva de las puertas, de modo que no existe un camino para
|
|
146
|
+
* emitir un certificado en verde sin la evidencia que lo sostiene.
|
|
147
|
+
*/
|
|
148
|
+
export declare function buildShadowCertificate(evidence: ShadowCertificateEvidence): GraphShadowCertificateV1;
|
|
149
|
+
/**
|
|
150
|
+
* Valida un certificado de procedencia no confiable contra el pin de opencode
|
|
151
|
+
* esperado. Fail-closed en todos los casos: esquema inválido, veredicto que no
|
|
152
|
+
* se corresponde con su evidencia, digest que no cubre la evidencia presentada,
|
|
153
|
+
* o pin distinto al certificado.
|
|
154
|
+
*/
|
|
155
|
+
export declare function parseShadowCertificate(value: unknown, opencodeVersion: string): GraphShadowCertificateV1;
|
|
156
|
+
/**
|
|
157
|
+
* Puertas del certificado de release. Cada una es condición **necesaria**: una
|
|
158
|
+
* puerta que corrió cero casos falla por vacuidad, y la ausencia de evidencia
|
|
159
|
+
* es fracaso, no éxito.
|
|
160
|
+
*/
|
|
161
|
+
export type ReleaseCertificateGate = "shadow-valid" | "determinism" | "crash-recovery" | "replay-equivalence" | "privacy" | "contract" | "migration" | "health" | "performance";
|
|
162
|
+
declare const ReleaseEvidenceSchema: z.ZodObject<{
|
|
163
|
+
opencodeVersion: z.ZodString;
|
|
164
|
+
platform: z.ZodEnum<{
|
|
165
|
+
linux: "linux";
|
|
166
|
+
win32: "win32";
|
|
167
|
+
}>;
|
|
168
|
+
shadowCertificateDigest: z.ZodString;
|
|
169
|
+
determinism: z.ZodObject<{
|
|
170
|
+
runs: z.ZodNumber;
|
|
171
|
+
allMatch: z.ZodBoolean;
|
|
172
|
+
}, z.core.$strict>;
|
|
173
|
+
crashRecovery: z.ZodObject<{
|
|
174
|
+
scenarios: z.ZodNumber;
|
|
175
|
+
allConverge: z.ZodBoolean;
|
|
176
|
+
}, z.core.$strict>;
|
|
177
|
+
replayEquivalence: z.ZodObject<{
|
|
178
|
+
checks: z.ZodNumber;
|
|
179
|
+
allEquivalent: z.ZodBoolean;
|
|
180
|
+
}, z.core.$strict>;
|
|
181
|
+
privacy: z.ZodObject<{
|
|
182
|
+
surfacesScanned: z.ZodNumber;
|
|
183
|
+
rawFindings: z.ZodNumber;
|
|
184
|
+
}, z.core.$strict>;
|
|
185
|
+
contract: z.ZodObject<{
|
|
186
|
+
roundTrips: z.ZodNumber;
|
|
187
|
+
allSettled: z.ZodBoolean;
|
|
188
|
+
}, z.core.$strict>;
|
|
189
|
+
migration: z.ZodObject<{
|
|
190
|
+
cases: z.ZodNumber;
|
|
191
|
+
allSucceeded: z.ZodBoolean;
|
|
192
|
+
}, z.core.$strict>;
|
|
193
|
+
health: z.ZodObject<{
|
|
194
|
+
samples: z.ZodNumber;
|
|
195
|
+
bounded: z.ZodBoolean;
|
|
196
|
+
idempotent: z.ZodBoolean;
|
|
197
|
+
}, z.core.$strict>;
|
|
198
|
+
performance: z.ZodObject<{
|
|
199
|
+
p95Millis: z.ZodNumber;
|
|
200
|
+
budgetMillis: z.ZodNumber;
|
|
201
|
+
samples: z.ZodNumber;
|
|
202
|
+
}, z.core.$strict>;
|
|
203
|
+
}, z.core.$strict>;
|
|
204
|
+
/** Evidencia bruta que alimenta el certificado de release. */
|
|
205
|
+
export type ReleaseCertificateEvidence = z.infer<typeof ReleaseEvidenceSchema>;
|
|
206
|
+
declare const ReleaseCertificateSchema: z.ZodObject<{
|
|
207
|
+
version: z.ZodLiteral<1>;
|
|
208
|
+
certificate: z.ZodLiteral<"graph-release">;
|
|
209
|
+
platform: z.ZodEnum<{
|
|
210
|
+
linux: "linux";
|
|
211
|
+
win32: "win32";
|
|
212
|
+
}>;
|
|
213
|
+
opencodeVersion: z.ZodString;
|
|
214
|
+
shadowCertificateDigest: z.ZodString;
|
|
215
|
+
evidence: z.ZodObject<{
|
|
216
|
+
opencodeVersion: z.ZodString;
|
|
217
|
+
platform: z.ZodEnum<{
|
|
218
|
+
linux: "linux";
|
|
219
|
+
win32: "win32";
|
|
220
|
+
}>;
|
|
221
|
+
shadowCertificateDigest: z.ZodString;
|
|
222
|
+
determinism: z.ZodObject<{
|
|
223
|
+
runs: z.ZodNumber;
|
|
224
|
+
allMatch: z.ZodBoolean;
|
|
225
|
+
}, z.core.$strict>;
|
|
226
|
+
crashRecovery: z.ZodObject<{
|
|
227
|
+
scenarios: z.ZodNumber;
|
|
228
|
+
allConverge: z.ZodBoolean;
|
|
229
|
+
}, z.core.$strict>;
|
|
230
|
+
replayEquivalence: z.ZodObject<{
|
|
231
|
+
checks: z.ZodNumber;
|
|
232
|
+
allEquivalent: z.ZodBoolean;
|
|
233
|
+
}, z.core.$strict>;
|
|
234
|
+
privacy: z.ZodObject<{
|
|
235
|
+
surfacesScanned: z.ZodNumber;
|
|
236
|
+
rawFindings: z.ZodNumber;
|
|
237
|
+
}, z.core.$strict>;
|
|
238
|
+
contract: z.ZodObject<{
|
|
239
|
+
roundTrips: z.ZodNumber;
|
|
240
|
+
allSettled: z.ZodBoolean;
|
|
241
|
+
}, z.core.$strict>;
|
|
242
|
+
migration: z.ZodObject<{
|
|
243
|
+
cases: z.ZodNumber;
|
|
244
|
+
allSucceeded: z.ZodBoolean;
|
|
245
|
+
}, z.core.$strict>;
|
|
246
|
+
health: z.ZodObject<{
|
|
247
|
+
samples: z.ZodNumber;
|
|
248
|
+
bounded: z.ZodBoolean;
|
|
249
|
+
idempotent: z.ZodBoolean;
|
|
250
|
+
}, z.core.$strict>;
|
|
251
|
+
performance: z.ZodObject<{
|
|
252
|
+
p95Millis: z.ZodNumber;
|
|
253
|
+
budgetMillis: z.ZodNumber;
|
|
254
|
+
samples: z.ZodNumber;
|
|
255
|
+
}, z.core.$strict>;
|
|
256
|
+
}, z.core.$strict>;
|
|
257
|
+
verdict: z.ZodEnum<{
|
|
258
|
+
fail: "fail";
|
|
259
|
+
pass: "pass";
|
|
260
|
+
}>;
|
|
261
|
+
failedGates: z.ZodArray<z.ZodEnum<{
|
|
262
|
+
contract: "contract";
|
|
263
|
+
"crash-recovery": "crash-recovery";
|
|
264
|
+
determinism: "determinism";
|
|
265
|
+
health: "health";
|
|
266
|
+
migration: "migration";
|
|
267
|
+
performance: "performance";
|
|
268
|
+
privacy: "privacy";
|
|
269
|
+
"replay-equivalence": "replay-equivalence";
|
|
270
|
+
"shadow-valid": "shadow-valid";
|
|
271
|
+
}>>;
|
|
272
|
+
digest: z.ZodString;
|
|
273
|
+
}, z.core.$strict>;
|
|
274
|
+
/** Certificado machine-readable de release del grafo. */
|
|
275
|
+
export type GraphReleaseCertificateV1 = z.infer<typeof ReleaseCertificateSchema>;
|
|
276
|
+
/** Motivo tipado por el que un certificado de release no es aceptable. */
|
|
277
|
+
export type ReleaseCertificateErrorCode = "invalid-certificate" | "field-inconsistency" | "verdict-mismatch" | "digest-mismatch" | "opencode-mismatch";
|
|
278
|
+
/** Error fail-closed del certificado de release. */
|
|
279
|
+
export declare class ReleaseCertificateError extends Error {
|
|
280
|
+
readonly code: ReleaseCertificateErrorCode;
|
|
281
|
+
readonly detail: string;
|
|
282
|
+
constructor(code: ReleaseCertificateErrorCode, detail: string);
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Construye el certificado de release a partir de la evidencia. El veredicto
|
|
286
|
+
* **no es un parámetro**: se deriva de las puertas.
|
|
287
|
+
*
|
|
288
|
+
* `expectedShadowDigest` es el digest del `GraphShadowCertificateV1` producido
|
|
289
|
+
* en la misma ejecución — vincula transitivamente la revisión. Si el digest no
|
|
290
|
+
* coincide, la puerta `shadow-valid` falla. Es obligatorio: un certificado
|
|
291
|
+
* nunca puede ser su propio testigo.
|
|
292
|
+
*/
|
|
293
|
+
export declare function buildReleaseCertificate(evidence: ReleaseCertificateEvidence, expectedShadowDigest: string): GraphReleaseCertificateV1;
|
|
294
|
+
/**
|
|
295
|
+
* Valida un certificado de release de procedencia no confiable. Fail-closed:
|
|
296
|
+
* `invalid-certificate` → `field-inconsistency` → `verdict-mismatch` →
|
|
297
|
+
* `digest-mismatch` → `opencode-mismatch`.
|
|
298
|
+
*
|
|
299
|
+
* `expectedShadowDigest` es el digest del shadow certificate que el llamante
|
|
300
|
+
* espera — impide que un certificado forjado declare un digest falso y pase
|
|
301
|
+
* la puerta `shadow-valid` por autocomparación.
|
|
302
|
+
*/
|
|
303
|
+
export declare function parseReleaseCertificate(value: unknown, opencodeVersion: string, expectedShadowDigest: string): GraphReleaseCertificateV1;
|
|
304
|
+
/**
|
|
305
|
+
* Puertas del certificado soak. Cada una es condición **necesaria**; cero
|
|
306
|
+
* observaciones fallan cerrado por la puerta `minimum-observations`, no por
|
|
307
|
+
* un error de schema. La ausencia de evidencia es fracaso, no éxito.
|
|
308
|
+
*/
|
|
309
|
+
export type SoakCertificateGate = "minimum-observations" | "minimum-duration" | "chain-integrity" | "zero-critical-divergence" | "zero-privacy-breach" | "zero-duplicate-effect" | "zero-model-mismatch" | "os-diversity" | "opencode-pin";
|
|
310
|
+
/**
|
|
311
|
+
* Shadow divergence codes that the soak mechanism can classify as critical.
|
|
312
|
+
* Defined here (not imported from orchestrator) to keep the graph module pure.
|
|
313
|
+
*/
|
|
314
|
+
export declare const ShadowDivergenceCodeSchema: z.ZodEnum<{
|
|
315
|
+
fixes: "fixes";
|
|
316
|
+
models: "models";
|
|
317
|
+
order: "order";
|
|
318
|
+
outcome: "outcome";
|
|
319
|
+
roles: "roles";
|
|
320
|
+
status: "status";
|
|
321
|
+
}>;
|
|
322
|
+
export type ShadowDivergenceCode = z.infer<typeof ShadowDivergenceCodeSchema>;
|
|
323
|
+
/**
|
|
324
|
+
* Códigos de divergencia cuya proyección shadow es recomputada de forma
|
|
325
|
+
* independiente por el espejo Y cuya divergencia es **demostrable** a través
|
|
326
|
+
* del pipeline completo (trace → mirrorLegacyTrace → proyecciones →
|
|
327
|
+
* compareShadowRun). Solo estos pueden producir una divergencia real y por
|
|
328
|
+
* tanto solo estos son aptos para el conjunto crítico de la política soak.
|
|
329
|
+
*
|
|
330
|
+
* `order` y `roles` fueron reclasificados de "recomputed" a "carried" (#55):
|
|
331
|
+
* `compileShadowSpec` preserva ids y roles del trace literalmente, así que
|
|
332
|
+
* ambos lados de la comparación ven las mismas secuencias. No se pudo
|
|
333
|
+
* construir ningún trace válido que los hiciera divergir por el pipeline.
|
|
334
|
+
*
|
|
335
|
+
* Un test de alcanzabilidad (`demonstrated-divergence-provenance.test.ts`)
|
|
336
|
+
* demuestra que cada código aquí listado PUEDE divergir por el pipeline real.
|
|
337
|
+
* Añadir un código sin su demostración es un test rojo.
|
|
338
|
+
*/
|
|
339
|
+
export declare const RECOMPUTED_DIVERGENCE_CODES: readonly ["fixes"];
|
|
340
|
+
declare const RecomputedDivergenceCodeSchema: z.ZodEnum<{
|
|
341
|
+
fixes: "fixes";
|
|
342
|
+
}>;
|
|
343
|
+
export type RecomputedDivergenceCode = z.infer<typeof RecomputedDivergenceCodeSchema>;
|
|
344
|
+
/**
|
|
345
|
+
* Política operativa del certificado soak. Los umbrales son configuración,
|
|
346
|
+
* no constantes — ajustables sin editar lógica de puertas. La política se
|
|
347
|
+
* embebe en el certificado y se cubre por el digest: un certificado que no
|
|
348
|
+
* registra contra qué estándar se juzgó es infalsificable.
|
|
349
|
+
*
|
|
350
|
+
* `criticalDivergenceCodes` classifies which shadow divergence codes count as
|
|
351
|
+
* critical for the `zero-critical-divergence` gate. Only codes with provenance
|
|
352
|
+
* "recomputed" are accepted: they are the only codes where the shadow mirror
|
|
353
|
+
* computes the value independently, making divergence structurally possible.
|
|
354
|
+
* Codes with provenance "carried" or "validated" copy the same trace field on
|
|
355
|
+
* both sides — including them would inflate declared coverage without
|
|
356
|
+
* measuring anything.
|
|
357
|
+
*
|
|
358
|
+
* `supportedOpencodeVersions` is the **set** of opencode versions whose contract
|
|
359
|
+
* surface openteam has verified (mirrors `SUPPORTED_OPENCODE_VERSIONS`). An
|
|
360
|
+
* observation only accrues toward the soak if its version is a member. Modelling
|
|
361
|
+
* it as a set — not a single string — is deliberate: a soak legitimately spans a
|
|
362
|
+
* mid-window upgrade between two supported versions, and the evidence field
|
|
363
|
+
* `opencodeVersionsObserved` records which of them were actually exercised, so
|
|
364
|
+
* the certificate cannot misattribute evidence to a version it never ran on.
|
|
365
|
+
*/
|
|
366
|
+
export declare const SoakPolicySchema: z.ZodObject<{
|
|
367
|
+
minimumGenuineObservations: z.ZodNumber;
|
|
368
|
+
minimumDistinctDays: z.ZodNumber;
|
|
369
|
+
requireGenuineUsageOnAllPlatforms: z.ZodBoolean;
|
|
370
|
+
supportedOpencodeVersions: z.ZodArray<z.ZodString>;
|
|
371
|
+
criticalDivergenceCodes: z.ZodArray<z.ZodEnum<{
|
|
372
|
+
fixes: "fixes";
|
|
373
|
+
}>>;
|
|
374
|
+
}, z.core.$strict>;
|
|
375
|
+
/** Política tipada del certificado soak. */
|
|
376
|
+
export type SoakPolicy = z.infer<typeof SoakPolicySchema>;
|
|
377
|
+
/** Política por defecto: solo el código cuya divergencia está demostrada. */
|
|
378
|
+
export declare const DEFAULT_SOAK_POLICY: SoakPolicy;
|
|
379
|
+
declare const SoakEvidenceSchema: z.ZodObject<{
|
|
380
|
+
totalObservations: z.ZodNumber;
|
|
381
|
+
genuineUsageObservations: z.ZodNumber;
|
|
382
|
+
ciSyntheticObservations: z.ZodNumber;
|
|
383
|
+
recorderCount: z.ZodNumber;
|
|
384
|
+
ineligibleObservations: z.ZodNumber;
|
|
385
|
+
firstTimestamp: z.ZodNullable<z.ZodString>;
|
|
386
|
+
lastTimestamp: z.ZodNullable<z.ZodString>;
|
|
387
|
+
distinctDays: z.ZodNumber;
|
|
388
|
+
criticalDivergences: z.ZodNullable<z.ZodNumber>;
|
|
389
|
+
privacy: z.ZodNullable<z.ZodObject<{
|
|
390
|
+
surfacesScanned: z.ZodNumber;
|
|
391
|
+
rawFindings: z.ZodNumber;
|
|
392
|
+
}, z.core.$strict>>;
|
|
393
|
+
duplicateEffects: z.ZodNullable<z.ZodObject<{
|
|
394
|
+
effectsExamined: z.ZodNumber;
|
|
395
|
+
duplicatesFound: z.ZodNumber;
|
|
396
|
+
}, z.core.$strict>>;
|
|
397
|
+
modelVerification: z.ZodNullable<z.ZodObject<{
|
|
398
|
+
nodesChecked: z.ZodNumber;
|
|
399
|
+
unverified: z.ZodNumber;
|
|
400
|
+
mismatched: z.ZodNumber;
|
|
401
|
+
}, z.core.$strict>>;
|
|
402
|
+
platformsGenuine: z.ZodArray<z.ZodEnum<{
|
|
403
|
+
darwin: "darwin";
|
|
404
|
+
linux: "linux";
|
|
405
|
+
win32: "win32";
|
|
406
|
+
}>>;
|
|
407
|
+
platformsSynthetic: z.ZodArray<z.ZodEnum<{
|
|
408
|
+
darwin: "darwin";
|
|
409
|
+
linux: "linux";
|
|
410
|
+
win32: "win32";
|
|
411
|
+
}>>;
|
|
412
|
+
opencodeVersionsObserved: z.ZodArray<z.ZodString>;
|
|
413
|
+
invalidChains: z.ZodNumber;
|
|
414
|
+
}, z.core.$strict>;
|
|
415
|
+
/** Evidencia agregada del soak. */
|
|
416
|
+
export type SoakCertificateEvidence = z.infer<typeof SoakEvidenceSchema>;
|
|
417
|
+
declare const SoakCertificateSchema: z.ZodObject<{
|
|
418
|
+
version: z.ZodLiteral<1>;
|
|
419
|
+
certificate: z.ZodLiteral<"graph-soak">;
|
|
420
|
+
trustBoundary: z.ZodLiteral<"contributors">;
|
|
421
|
+
policy: z.ZodObject<{
|
|
422
|
+
minimumGenuineObservations: z.ZodNumber;
|
|
423
|
+
minimumDistinctDays: z.ZodNumber;
|
|
424
|
+
requireGenuineUsageOnAllPlatforms: z.ZodBoolean;
|
|
425
|
+
supportedOpencodeVersions: z.ZodArray<z.ZodString>;
|
|
426
|
+
criticalDivergenceCodes: z.ZodArray<z.ZodEnum<{
|
|
427
|
+
fixes: "fixes";
|
|
428
|
+
}>>;
|
|
429
|
+
}, z.core.$strict>;
|
|
430
|
+
evidence: z.ZodObject<{
|
|
431
|
+
totalObservations: z.ZodNumber;
|
|
432
|
+
genuineUsageObservations: z.ZodNumber;
|
|
433
|
+
ciSyntheticObservations: z.ZodNumber;
|
|
434
|
+
recorderCount: z.ZodNumber;
|
|
435
|
+
ineligibleObservations: z.ZodNumber;
|
|
436
|
+
firstTimestamp: z.ZodNullable<z.ZodString>;
|
|
437
|
+
lastTimestamp: z.ZodNullable<z.ZodString>;
|
|
438
|
+
distinctDays: z.ZodNumber;
|
|
439
|
+
criticalDivergences: z.ZodNullable<z.ZodNumber>;
|
|
440
|
+
privacy: z.ZodNullable<z.ZodObject<{
|
|
441
|
+
surfacesScanned: z.ZodNumber;
|
|
442
|
+
rawFindings: z.ZodNumber;
|
|
443
|
+
}, z.core.$strict>>;
|
|
444
|
+
duplicateEffects: z.ZodNullable<z.ZodObject<{
|
|
445
|
+
effectsExamined: z.ZodNumber;
|
|
446
|
+
duplicatesFound: z.ZodNumber;
|
|
447
|
+
}, z.core.$strict>>;
|
|
448
|
+
modelVerification: z.ZodNullable<z.ZodObject<{
|
|
449
|
+
nodesChecked: z.ZodNumber;
|
|
450
|
+
unverified: z.ZodNumber;
|
|
451
|
+
mismatched: z.ZodNumber;
|
|
452
|
+
}, z.core.$strict>>;
|
|
453
|
+
platformsGenuine: z.ZodArray<z.ZodEnum<{
|
|
454
|
+
darwin: "darwin";
|
|
455
|
+
linux: "linux";
|
|
456
|
+
win32: "win32";
|
|
457
|
+
}>>;
|
|
458
|
+
platformsSynthetic: z.ZodArray<z.ZodEnum<{
|
|
459
|
+
darwin: "darwin";
|
|
460
|
+
linux: "linux";
|
|
461
|
+
win32: "win32";
|
|
462
|
+
}>>;
|
|
463
|
+
opencodeVersionsObserved: z.ZodArray<z.ZodString>;
|
|
464
|
+
invalidChains: z.ZodNumber;
|
|
465
|
+
}, z.core.$strict>;
|
|
466
|
+
verdict: z.ZodEnum<{
|
|
467
|
+
fail: "fail";
|
|
468
|
+
pass: "pass";
|
|
469
|
+
}>;
|
|
470
|
+
failedGates: z.ZodArray<z.ZodEnum<{
|
|
471
|
+
"chain-integrity": "chain-integrity";
|
|
472
|
+
"minimum-duration": "minimum-duration";
|
|
473
|
+
"minimum-observations": "minimum-observations";
|
|
474
|
+
"opencode-pin": "opencode-pin";
|
|
475
|
+
"os-diversity": "os-diversity";
|
|
476
|
+
"zero-critical-divergence": "zero-critical-divergence";
|
|
477
|
+
"zero-duplicate-effect": "zero-duplicate-effect";
|
|
478
|
+
"zero-model-mismatch": "zero-model-mismatch";
|
|
479
|
+
"zero-privacy-breach": "zero-privacy-breach";
|
|
480
|
+
}>>;
|
|
481
|
+
ledgerDigest: z.ZodString;
|
|
482
|
+
digest: z.ZodString;
|
|
483
|
+
}, z.core.$strict>;
|
|
484
|
+
/** Certificado machine-readable del soak del grafo. */
|
|
485
|
+
export type GraphSoakCertificateV1 = z.infer<typeof SoakCertificateSchema>;
|
|
486
|
+
/** Motivo tipado por el que un certificado soak no es aceptable. */
|
|
487
|
+
export type SoakCertificateErrorCode = "invalid-certificate" | "policy-mismatch" | "verdict-mismatch" | "digest-mismatch" | "ledger-mismatch";
|
|
488
|
+
/** Error fail-closed del certificado soak. */
|
|
489
|
+
export declare class SoakCertificateError extends Error {
|
|
490
|
+
readonly code: SoakCertificateErrorCode;
|
|
491
|
+
readonly detail: string;
|
|
492
|
+
constructor(code: SoakCertificateErrorCode, detail: string);
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* Construye el certificado soak a partir de las cadenas de observación y la
|
|
496
|
+
* política operativa. El veredicto **no es un parámetro**: se deriva de las
|
|
497
|
+
* puertas evaluadas contra la política.
|
|
498
|
+
*
|
|
499
|
+
* La política se embebe en el certificado y se cubre por el digest — un
|
|
500
|
+
* certificado que no registra contra qué estándar se juzgó es infalsificable.
|
|
501
|
+
*/
|
|
502
|
+
export declare function buildSoakCertificate(chains: readonly (readonly SoakObservation[])[], policy: SoakPolicy): GraphSoakCertificateV1;
|
|
503
|
+
/**
|
|
504
|
+
* Valida un certificado soak de procedencia no confiable. Fail-closed en
|
|
505
|
+
* todos los casos: esquema inválido → política divergente → veredicto
|
|
506
|
+
* incongruente → digest inválido → ledger incongruente.
|
|
507
|
+
*
|
|
508
|
+
* El llamante suministra la política que espera, exactamente como suministra
|
|
509
|
+
* `expectedLedgerDigest`. Si la política embebida diverge de la esperada, el
|
|
510
|
+
* certificado se rechaza con `policy-mismatch` — un veredicto `pass` bajo
|
|
511
|
+
* una política permisiva no satisface una política estricta.
|
|
512
|
+
*/
|
|
513
|
+
export declare function parseSoakCertificate(value: unknown, expectedPolicy: SoakPolicy, expectedLedgerDigest: string): GraphSoakCertificateV1;
|
|
514
|
+
export {};
|
|
515
|
+
//# sourceMappingURL=certificate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certificate.d.ts","sourceRoot":"","sources":["../../src/graph/certificate.ts"],"names":[],"mappings":"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"}
|
package/dist/graph/ids.d.ts
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
|
+
import type { GraphSpecV1 } from "./schema";
|
|
1
2
|
/** ID estable del efecto de un nodo, opcionalmente por revisión. */
|
|
2
3
|
export declare function operationID(runID: string, nodeID: string, revision?: number): string;
|
|
3
4
|
/** ID del intento `attempt` (>= 0) de una operación dada. */
|
|
4
5
|
export declare function attemptID(operation: string, attempt: number): string;
|
|
6
|
+
/**
|
|
7
|
+
* Digest SHA-256 estable del spec compilado (reproducible).
|
|
8
|
+
*
|
|
9
|
+
* Vive junto a los IDs del grafo, no en el compilador SDD: el espejo shadow lo
|
|
10
|
+
* necesita y alcanzar el compilador arrastraría el coordinador, las sesiones y
|
|
11
|
+
* la telemetría —es decir, superficie de ejecución— al grafo del espejo.
|
|
12
|
+
*/
|
|
13
|
+
export declare function graphSpecDigest(spec: GraphSpecV1): string;
|
|
5
14
|
//# sourceMappingURL=ids.d.ts.map
|
package/dist/graph/ids.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/graph/ids.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/graph/ids.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAY5C,oEAAoE;AACpE,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,SAAI,GACX,MAAM,CAKR;AAED,6DAA6D;AAC7D,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpE;AAqBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAEzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"privacyPolicy.d.ts","sourceRoot":"","sources":["../../src/graph/privacyPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,uEAAuE;AACvE,MAAM,MAAM,WAAW,GACnB,uBAAuB,GACvB,uBAAuB,GACvB,KAAK,CAAC;AAEV,oCAAoC;AACpC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAE7C,kEAAkE;AAClE,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"privacyPolicy.d.ts","sourceRoot":"","sources":["../../src/graph/privacyPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,uEAAuE;AACvE,MAAM,MAAM,WAAW,GACnB,uBAAuB,GACvB,uBAAuB,GACvB,KAAK,CAAC;AAEV,oCAAoC;AACpC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAE7C,kEAAkE;AAClE,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,MAAM,EAAE,MAAM,EAKzB;CACF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,WAAW,GAChB,OAAO,CAET;AAED,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;CACtB,GAAG,IAAI,CAOP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../src/graph/reducer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAa,WAAW,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EACL,KAAK,UAAU,EAGhB,MAAM,SAAS,CAAC;AAEjB;;;;;;;GAOG;AAEH,MAAM,MAAM,gBAAgB,GACxB,cAAc,GACd,eAAe,GACf,sBAAsB,GACtB,cAAc,GACd,0BAA0B,GAC1B,mBAAmB,GACnB,kBAAkB,GAClB,oBAAoB,GACpB,gBAAgB,CAAC;AAErB,2DAA2D;AAC3D,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../src/graph/reducer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAa,WAAW,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EACL,KAAK,UAAU,EAGhB,MAAM,SAAS,CAAC;AAEjB;;;;;;;GAOG;AAEH,MAAM,MAAM,gBAAgB,GACxB,cAAc,GACd,eAAe,GACf,sBAAsB,GACtB,cAAc,GACd,0BAA0B,GAC1B,mBAAmB,GACnB,kBAAkB,GAClB,oBAAoB,GACpB,gBAAgB,CAAC;AAErB,2DAA2D;AAC3D,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAKjD;CACF;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CAM1D;AAoLD;;;GAGG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,YAAY,GAClB,UAAU,CAkCZ;AAyBD,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../src/graph/replay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;GAMG;AAEH,yDAAyD;AACzD,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../src/graph/replay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;GAMG;AAEH,yDAAyD;AACzD,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,MAAM,EAAE,MAAM,EAKzB;CACF;AAED,gEAAgE;AAChE,wBAAgB,MAAM,CACpB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,SAAS,YAAY,EAAE,GAC9B,UAAU,CASZ;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,CACxB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,SAAS,YAAY,EAAE,GAC9B,MAAM,CAER"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewerPolicy.d.ts","sourceRoot":"","sources":["../../src/graph/reviewerPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;GAGG;AAEH,mEAAmE;AACnE,eAAO,MAAM,6BAA6B,EAAE,SAAS,UAAU,EAAa,CAAC;AAE7E,MAAM,MAAM,kBAAkB,GAC1B,aAAa,GACb,qBAAqB,GACrB,YAAY,CAAC;AAEjB,6DAA6D;AAC7D,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"reviewerPolicy.d.ts","sourceRoot":"","sources":["../../src/graph/reviewerPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;GAGG;AAEH,mEAAmE;AACnE,eAAO,MAAM,6BAA6B,EAAE,SAAS,UAAU,EAAa,CAAC;AAE7E,MAAM,MAAM,kBAAkB,GAC1B,aAAa,GACb,qBAAqB,GACrB,YAAY,CAAC;AAEjB,6DAA6D;AAC7D,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAKnD;CACF;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAET;AAED,yDAAyD;AACzD,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,IAAI,CAIN;AAED,kEAAkE;AAClE,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,SAAS,UAAU,EAAE,GAC7B,IAAI,CAMN;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC5C,IAAI,CAYN"}
|