@probemap/shared 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 (129) hide show
  1. package/dist/api/collector.d.ts +535 -0
  2. package/dist/api/collector.d.ts.map +1 -0
  3. package/dist/api/collector.js +234 -0
  4. package/dist/api/collector.js.map +1 -0
  5. package/dist/api/live.d.ts +245 -0
  6. package/dist/api/live.d.ts.map +1 -0
  7. package/dist/api/live.js +32 -0
  8. package/dist/api/live.js.map +1 -0
  9. package/dist/change-debug/api.d.ts +215 -0
  10. package/dist/change-debug/api.d.ts.map +1 -0
  11. package/dist/change-debug/api.js +32 -0
  12. package/dist/change-debug/api.js.map +1 -0
  13. package/dist/change-debug/artifact.d.ts +49 -0
  14. package/dist/change-debug/artifact.d.ts.map +1 -0
  15. package/dist/change-debug/artifact.js +11 -0
  16. package/dist/change-debug/artifact.js.map +1 -0
  17. package/dist/change-debug/capture.d.ts +413 -0
  18. package/dist/change-debug/capture.d.ts.map +1 -0
  19. package/dist/change-debug/capture.js +92 -0
  20. package/dist/change-debug/capture.js.map +1 -0
  21. package/dist/change-debug/common.d.ts +23 -0
  22. package/dist/change-debug/common.d.ts.map +1 -0
  23. package/dist/change-debug/common.js +34 -0
  24. package/dist/change-debug/common.js.map +1 -0
  25. package/dist/change-debug/execution.d.ts +163 -0
  26. package/dist/change-debug/execution.d.ts.map +1 -0
  27. package/dist/change-debug/execution.js +56 -0
  28. package/dist/change-debug/execution.js.map +1 -0
  29. package/dist/change-debug/experiment.d.ts +482 -0
  30. package/dist/change-debug/experiment.d.ts.map +1 -0
  31. package/dist/change-debug/experiment.js +71 -0
  32. package/dist/change-debug/experiment.js.map +1 -0
  33. package/dist/change-debug/runner.d.ts +187 -0
  34. package/dist/change-debug/runner.d.ts.map +1 -0
  35. package/dist/change-debug/runner.js +77 -0
  36. package/dist/change-debug/runner.js.map +1 -0
  37. package/dist/contracts/flow-contract.d.ts +91 -0
  38. package/dist/contracts/flow-contract.d.ts.map +1 -0
  39. package/dist/contracts/flow-contract.js +121 -0
  40. package/dist/contracts/flow-contract.js.map +1 -0
  41. package/dist/diagnosis/claim.d.ts +28 -0
  42. package/dist/diagnosis/claim.d.ts.map +1 -0
  43. package/dist/diagnosis/claim.js +29 -0
  44. package/dist/diagnosis/claim.js.map +1 -0
  45. package/dist/diagnosis/engine.d.ts +22 -0
  46. package/dist/diagnosis/engine.d.ts.map +1 -0
  47. package/dist/diagnosis/engine.js +179 -0
  48. package/dist/diagnosis/engine.js.map +1 -0
  49. package/dist/diagnosis/reproduction-capsule.d.ts +35 -0
  50. package/dist/diagnosis/reproduction-capsule.d.ts.map +1 -0
  51. package/dist/diagnosis/reproduction-capsule.js +42 -0
  52. package/dist/diagnosis/reproduction-capsule.js.map +1 -0
  53. package/dist/diagnosis/result.d.ts +126 -0
  54. package/dist/diagnosis/result.d.ts.map +1 -0
  55. package/dist/diagnosis/result.js +31 -0
  56. package/dist/diagnosis/result.js.map +1 -0
  57. package/dist/diagnosis/verification.d.ts +35 -0
  58. package/dist/diagnosis/verification.d.ts.map +1 -0
  59. package/dist/diagnosis/verification.js +87 -0
  60. package/dist/diagnosis/verification.js.map +1 -0
  61. package/dist/evaluators/builtins.d.ts +20 -0
  62. package/dist/evaluators/builtins.d.ts.map +1 -0
  63. package/dist/evaluators/builtins.js +152 -0
  64. package/dist/evaluators/builtins.js.map +1 -0
  65. package/dist/index.d.ts +28 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +28 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/integration/conformance.d.ts +84 -0
  70. package/dist/integration/conformance.d.ts.map +1 -0
  71. package/dist/integration/conformance.js +25 -0
  72. package/dist/integration/conformance.js.map +1 -0
  73. package/dist/integration/profile.d.ts +1294 -0
  74. package/dist/integration/profile.d.ts.map +1 -0
  75. package/dist/integration/profile.js +246 -0
  76. package/dist/integration/profile.js.map +1 -0
  77. package/dist/onboarding/auth.d.ts +67 -0
  78. package/dist/onboarding/auth.d.ts.map +1 -0
  79. package/dist/onboarding/auth.js +52 -0
  80. package/dist/onboarding/auth.js.map +1 -0
  81. package/dist/onboarding/contracts.d.ts +535 -0
  82. package/dist/onboarding/contracts.d.ts.map +1 -0
  83. package/dist/onboarding/contracts.js +234 -0
  84. package/dist/onboarding/contracts.js.map +1 -0
  85. package/dist/onboarding/failure.d.ts +102 -0
  86. package/dist/onboarding/failure.d.ts.map +1 -0
  87. package/dist/onboarding/failure.js +57 -0
  88. package/dist/onboarding/failure.js.map +1 -0
  89. package/dist/onboarding/index.d.ts +5 -0
  90. package/dist/onboarding/index.d.ts.map +1 -0
  91. package/dist/onboarding/index.js +5 -0
  92. package/dist/onboarding/index.js.map +1 -0
  93. package/dist/onboarding/state-machine.d.ts +5 -0
  94. package/dist/onboarding/state-machine.d.ts.map +1 -0
  95. package/dist/onboarding/state-machine.js +27 -0
  96. package/dist/onboarding/state-machine.js.map +1 -0
  97. package/dist/protocol/causal-edge.d.ts +30 -0
  98. package/dist/protocol/causal-edge.d.ts.map +1 -0
  99. package/dist/protocol/causal-edge.js +21 -0
  100. package/dist/protocol/causal-edge.js.map +1 -0
  101. package/dist/protocol/event-batch.d.ts +102 -0
  102. package/dist/protocol/event-batch.d.ts.map +1 -0
  103. package/dist/protocol/event-batch.js +45 -0
  104. package/dist/protocol/event-batch.js.map +1 -0
  105. package/dist/protocol/event.d.ts +253 -0
  106. package/dist/protocol/event.d.ts.map +1 -0
  107. package/dist/protocol/event.js +93 -0
  108. package/dist/protocol/event.js.map +1 -0
  109. package/dist/protocol/file-hint.d.ts +24 -0
  110. package/dist/protocol/file-hint.d.ts.map +1 -0
  111. package/dist/protocol/file-hint.js +17 -0
  112. package/dist/protocol/file-hint.js.map +1 -0
  113. package/dist/protocol/trace-context.d.ts +21 -0
  114. package/dist/protocol/trace-context.d.ts.map +1 -0
  115. package/dist/protocol/trace-context.js +59 -0
  116. package/dist/protocol/trace-context.js.map +1 -0
  117. package/dist/protocol/version.d.ts +11 -0
  118. package/dist/protocol/version.d.ts.map +1 -0
  119. package/dist/protocol/version.js +28 -0
  120. package/dist/protocol/version.js.map +1 -0
  121. package/dist/security/auth.d.ts +120 -0
  122. package/dist/security/auth.d.ts.map +1 -0
  123. package/dist/security/auth.js +80 -0
  124. package/dist/security/auth.js.map +1 -0
  125. package/dist/serialization/safe-snapshot.d.ts +2 -0
  126. package/dist/serialization/safe-snapshot.d.ts.map +1 -0
  127. package/dist/serialization/safe-snapshot.js +67 -0
  128. package/dist/serialization/safe-snapshot.js.map +1 -0
  129. package/package.json +25 -0
@@ -0,0 +1,187 @@
1
+ import { z } from "zod";
2
+ export declare const CHANGE_DEBUG_PROTOCOL_VERSION: 1;
3
+ export declare const sourceAccessModeSchema: z.ZodEnum<{
4
+ local_runner: "local_runner";
5
+ none: "none";
6
+ server_clone: "server_clone";
7
+ }>;
8
+ export declare const experimentExecutionModeSchema: z.ZodEnum<{
9
+ disabled: "disabled";
10
+ isolated_worker: "isolated_worker";
11
+ local_runner: "local_runner";
12
+ }>;
13
+ export declare const runnerStatusSchema: z.ZodEnum<{
14
+ draining: "draining";
15
+ incompatible: "incompatible";
16
+ offline: "offline";
17
+ online: "online";
18
+ registering: "registering";
19
+ revoked: "revoked";
20
+ }>;
21
+ export declare const runnerCapabilitySchema: z.ZodEnum<{
22
+ "change.capture": "change.capture";
23
+ "change.symbol_analysis.javascript": "change.symbol_analysis.javascript";
24
+ "change.symbol_analysis.typescript": "change.symbol_analysis.typescript";
25
+ "experiment.bisect": "experiment.bisect";
26
+ "experiment.container": "experiment.container";
27
+ "experiment.delta_debug": "experiment.delta_debug";
28
+ "experiment.file_isolation": "experiment.file_isolation";
29
+ "experiment.hunk_isolation": "experiment.hunk_isolation";
30
+ "experiment.network_isolation": "experiment.network_isolation";
31
+ "experiment.replay": "experiment.replay";
32
+ "experiment.symbol_isolation": "experiment.symbol_isolation";
33
+ "experiment.worktree": "experiment.worktree";
34
+ }>;
35
+ export declare const runnerRegistrationSchema: z.ZodObject<{
36
+ runnerId: z.ZodUUID;
37
+ expectedProjectId: z.ZodUUID;
38
+ protocolVersion: z.ZodLiteral<1>;
39
+ version: z.ZodString;
40
+ operatingSystem: z.ZodString;
41
+ architecture: z.ZodString;
42
+ repositoryId: z.ZodString;
43
+ sourceAccess: z.ZodEnum<{
44
+ local_runner: "local_runner";
45
+ none: "none";
46
+ server_clone: "server_clone";
47
+ }>;
48
+ executionMode: z.ZodEnum<{
49
+ disabled: "disabled";
50
+ isolated_worker: "isolated_worker";
51
+ local_runner: "local_runner";
52
+ }>;
53
+ capabilities: z.ZodArray<z.ZodEnum<{
54
+ "change.capture": "change.capture";
55
+ "change.symbol_analysis.javascript": "change.symbol_analysis.javascript";
56
+ "change.symbol_analysis.typescript": "change.symbol_analysis.typescript";
57
+ "experiment.bisect": "experiment.bisect";
58
+ "experiment.container": "experiment.container";
59
+ "experiment.delta_debug": "experiment.delta_debug";
60
+ "experiment.file_isolation": "experiment.file_isolation";
61
+ "experiment.hunk_isolation": "experiment.hunk_isolation";
62
+ "experiment.network_isolation": "experiment.network_isolation";
63
+ "experiment.replay": "experiment.replay";
64
+ "experiment.symbol_isolation": "experiment.symbol_isolation";
65
+ "experiment.worktree": "experiment.worktree";
66
+ }>>;
67
+ maxParallelJobs: z.ZodNumber;
68
+ profileKey: z.ZodString;
69
+ profileVersion: z.ZodNumber;
70
+ profileHash: z.ZodString;
71
+ }, z.core.$strict>;
72
+ export declare const runnerJobFailureCodeSchema: z.ZodEnum<{
73
+ artifact_too_large: "artifact_too_large";
74
+ artifact_upload_failed: "artifact_upload_failed";
75
+ build_failed: "build_failed";
76
+ bundle_hash_mismatch: "bundle_hash_mismatch";
77
+ canceled: "canceled";
78
+ capture_incomplete: "capture_incomplete";
79
+ cleanup_failed: "cleanup_failed";
80
+ dependency_break: "dependency_break";
81
+ graph_too_large: "graph_too_large";
82
+ internal_error: "internal_error";
83
+ lease_expired: "lease_expired";
84
+ network_policy_denied: "network_policy_denied";
85
+ oracle_inconclusive: "oracle_inconclusive";
86
+ patch_conflict: "patch_conflict";
87
+ runner_capability_mismatch: "runner_capability_mismatch";
88
+ runner_incompatible: "runner_incompatible";
89
+ runner_unavailable: "runner_unavailable";
90
+ sandbox_limit_exceeded: "sandbox_limit_exceeded";
91
+ secret_exposure_detected: "secret_exposure_detected";
92
+ secret_grant_denied: "secret_grant_denied";
93
+ source_state_mismatch: "source_state_mismatch";
94
+ timeout: "timeout";
95
+ unsupported_capability: "unsupported_capability";
96
+ unsupported_payload: "unsupported_payload";
97
+ upgrade_required: "upgrade_required";
98
+ verification_failed: "verification_failed";
99
+ verification_flaky: "verification_flaky";
100
+ }>;
101
+ export declare const runnerJobLeaseSchema: z.ZodObject<{
102
+ jobId: z.ZodUUID;
103
+ projectId: z.ZodUUID;
104
+ environmentId: z.ZodOptional<z.ZodUUID>;
105
+ runnerId: z.ZodUUID;
106
+ attempt: z.ZodNumber;
107
+ leaseToken: z.ZodString;
108
+ leasedUntil: z.ZodISODateTime;
109
+ payloadHash: z.ZodString;
110
+ type: z.ZodString;
111
+ schemaVersion: z.ZodNumber;
112
+ payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
113
+ resumeState: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
114
+ }, z.core.$strict>;
115
+ export declare const runnerHeartbeatSchema: z.ZodObject<{
116
+ leaseToken: z.ZodString;
117
+ progress: z.ZodObject<{
118
+ phase: z.ZodString;
119
+ percent: z.ZodNumber;
120
+ message: z.ZodOptional<z.ZodString>;
121
+ checkpoint: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
122
+ }, z.core.$strict>;
123
+ }, z.core.$strict>;
124
+ export declare const runnerJobCompleteSchema: z.ZodObject<{
125
+ leaseToken: z.ZodString;
126
+ resultHash: z.ZodString;
127
+ result: z.ZodRecord<z.ZodString, z.ZodUnknown>;
128
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
129
+ }, z.core.$strict>;
130
+ export declare const runnerJobFailSchema: z.ZodObject<{
131
+ leaseToken: z.ZodString;
132
+ code: z.ZodEnum<{
133
+ artifact_too_large: "artifact_too_large";
134
+ artifact_upload_failed: "artifact_upload_failed";
135
+ build_failed: "build_failed";
136
+ bundle_hash_mismatch: "bundle_hash_mismatch";
137
+ canceled: "canceled";
138
+ capture_incomplete: "capture_incomplete";
139
+ cleanup_failed: "cleanup_failed";
140
+ dependency_break: "dependency_break";
141
+ graph_too_large: "graph_too_large";
142
+ internal_error: "internal_error";
143
+ lease_expired: "lease_expired";
144
+ network_policy_denied: "network_policy_denied";
145
+ oracle_inconclusive: "oracle_inconclusive";
146
+ patch_conflict: "patch_conflict";
147
+ runner_capability_mismatch: "runner_capability_mismatch";
148
+ runner_incompatible: "runner_incompatible";
149
+ runner_unavailable: "runner_unavailable";
150
+ sandbox_limit_exceeded: "sandbox_limit_exceeded";
151
+ secret_exposure_detected: "secret_exposure_detected";
152
+ secret_grant_denied: "secret_grant_denied";
153
+ source_state_mismatch: "source_state_mismatch";
154
+ timeout: "timeout";
155
+ unsupported_capability: "unsupported_capability";
156
+ unsupported_payload: "unsupported_payload";
157
+ upgrade_required: "upgrade_required";
158
+ verification_failed: "verification_failed";
159
+ verification_flaky: "verification_flaky";
160
+ }>;
161
+ summary: z.ZodString;
162
+ retryable: z.ZodBoolean;
163
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
164
+ }, z.core.$strict>;
165
+ export declare const onboardingExperimentSmokePayloadSchema: z.ZodObject<{
166
+ schemaVersion: z.ZodLiteral<1>;
167
+ projectId: z.ZodUUID;
168
+ environmentId: z.ZodUUID;
169
+ profileHash: z.ZodString;
170
+ }, z.core.$strict>;
171
+ export declare const onboardingExperimentSmokeResultSchema: z.ZodObject<{
172
+ schemaVersion: z.ZodLiteral<1>;
173
+ profileHash: z.ZodString;
174
+ commandRegistryBound: z.ZodLiteral<true>;
175
+ networkPolicyEnforced: z.ZodLiteral<true>;
176
+ worktreeSandboxed: z.ZodLiteral<true>;
177
+ mainTreeUnchanged: z.ZodLiteral<true>;
178
+ cleanupCompleted: z.ZodLiteral<true>;
179
+ sandboxFingerprintHash: z.ZodString;
180
+ }, z.core.$strict>;
181
+ export type RunnerRegistration = z.infer<typeof runnerRegistrationSchema>;
182
+ export type RunnerJobLease = z.infer<typeof runnerJobLeaseSchema>;
183
+ export type RunnerJobFailureCode = z.infer<typeof runnerJobFailureCodeSchema>;
184
+ export type RunnerHeartbeat = z.infer<typeof runnerHeartbeatSchema>;
185
+ export type RunnerJobComplete = z.infer<typeof runnerJobCompleteSchema>;
186
+ export type RunnerJobFail = z.infer<typeof runnerJobFailSchema>;
187
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/change-debug/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,6BAA6B,EAAG,CAAU,CAAC;AACxD,eAAO,MAAM,sBAAsB;;;;EAAmD,CAAC;AACvF,eAAO,MAAM,6BAA6B;;;;EAA0D,CAAC;AACrG,eAAO,MAAM,kBAAkB;;;;;;;EAAsF,CAAC;AAEtH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;EAajC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAenC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMrC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;kBAa/B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;kBAGhC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;kBAKlC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAM9B,CAAC;AAEH,eAAO,MAAM,sCAAsC;;;;;kBAA2H,CAAC;AAC/K,eAAO,MAAM,qCAAqC;;;;;;;;;kBAA6S,CAAC;AAEhW,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,77 @@
1
+ import { z } from "zod";
2
+ import { boundedMetadataSchema, jsonByteLength, sha256Schema } from "./common.js";
3
+ export const CHANGE_DEBUG_PROTOCOL_VERSION = 1;
4
+ export const sourceAccessModeSchema = z.enum(["none", "local_runner", "server_clone"]);
5
+ export const experimentExecutionModeSchema = z.enum(["disabled", "local_runner", "isolated_worker"]);
6
+ export const runnerStatusSchema = z.enum(["registering", "online", "draining", "offline", "incompatible", "revoked"]);
7
+ export const runnerCapabilitySchema = z.enum([
8
+ "change.capture",
9
+ "change.symbol_analysis.typescript",
10
+ "change.symbol_analysis.javascript",
11
+ "experiment.worktree",
12
+ "experiment.container",
13
+ "experiment.network_isolation",
14
+ "experiment.replay",
15
+ "experiment.file_isolation",
16
+ "experiment.bisect",
17
+ "experiment.hunk_isolation",
18
+ "experiment.symbol_isolation",
19
+ "experiment.delta_debug",
20
+ ]);
21
+ export const runnerRegistrationSchema = z.strictObject({
22
+ runnerId: z.uuid(),
23
+ expectedProjectId: z.uuid(),
24
+ protocolVersion: z.literal(CHANGE_DEBUG_PROTOCOL_VERSION),
25
+ version: z.string().min(1).max(128),
26
+ operatingSystem: z.string().min(1).max(128),
27
+ architecture: z.string().min(1).max(128),
28
+ repositoryId: z.string().min(1).max(512),
29
+ sourceAccess: sourceAccessModeSchema,
30
+ executionMode: experimentExecutionModeSchema,
31
+ capabilities: z.array(runnerCapabilitySchema).max(32),
32
+ maxParallelJobs: z.number().int().min(1).max(16),
33
+ profileKey: z.string().min(3).max(128),
34
+ profileVersion: z.number().int().positive(),
35
+ profileHash: sha256Schema,
36
+ });
37
+ export const runnerJobFailureCodeSchema = z.enum([
38
+ "runner_unavailable", "runner_capability_mismatch", "runner_incompatible", "upgrade_required", "unsupported_capability",
39
+ "lease_expired", "unsupported_payload", "source_state_mismatch", "capture_incomplete", "bundle_hash_mismatch",
40
+ "artifact_too_large", "graph_too_large", "patch_conflict", "dependency_break", "build_failed", "verification_failed",
41
+ "verification_flaky", "oracle_inconclusive", "timeout", "canceled", "sandbox_limit_exceeded", "secret_grant_denied",
42
+ "secret_exposure_detected", "network_policy_denied", "artifact_upload_failed", "cleanup_failed", "internal_error",
43
+ ]);
44
+ export const runnerJobLeaseSchema = z.strictObject({
45
+ jobId: z.uuid(),
46
+ projectId: z.uuid(),
47
+ environmentId: z.uuid().optional(),
48
+ runnerId: z.uuid(),
49
+ attempt: z.number().int().positive(),
50
+ leaseToken: z.string().min(32).max(8_192),
51
+ leasedUntil: z.iso.datetime({ offset: true }),
52
+ payloadHash: sha256Schema,
53
+ type: z.string().min(1).max(128),
54
+ schemaVersion: z.number().int().positive(),
55
+ payload: z.record(z.string(), z.unknown()),
56
+ resumeState: z.record(z.string(), z.unknown()).refine((value) => jsonByteLength(value) <= 1024 * 1024, "Resume state exceeds 1 MiB.").optional(),
57
+ });
58
+ export const runnerHeartbeatSchema = z.strictObject({
59
+ leaseToken: z.string().min(32).max(8_192),
60
+ progress: z.strictObject({ phase: z.string().min(1).max(128), percent: z.number().min(0).max(100), message: z.string().max(2_048).optional(), checkpoint: z.record(z.string(), z.unknown()).refine((value) => jsonByteLength(value) <= 1024 * 1024, "Checkpoint exceeds 1 MiB.").optional() }),
61
+ });
62
+ export const runnerJobCompleteSchema = z.strictObject({
63
+ leaseToken: z.string().min(32).max(8_192),
64
+ resultHash: sha256Schema,
65
+ result: z.record(z.string(), z.unknown()).refine((value) => jsonByteLength(value) <= 1024 * 1024, "Result exceeds 1 MiB."),
66
+ metadata: boundedMetadataSchema.default({}),
67
+ });
68
+ export const runnerJobFailSchema = z.strictObject({
69
+ leaseToken: z.string().min(32).max(8_192),
70
+ code: runnerJobFailureCodeSchema,
71
+ summary: z.string().min(1).max(8_000),
72
+ retryable: z.boolean(),
73
+ metadata: boundedMetadataSchema.default({}),
74
+ });
75
+ export const onboardingExperimentSmokePayloadSchema = z.strictObject({ schemaVersion: z.literal(1), projectId: z.uuid(), environmentId: z.uuid(), profileHash: sha256Schema });
76
+ export const onboardingExperimentSmokeResultSchema = z.strictObject({ schemaVersion: z.literal(1), profileHash: sha256Schema, commandRegistryBound: z.literal(true), networkPolicyEnforced: z.literal(true), worktreeSandboxed: z.literal(true), mainTreeUnchanged: z.literal(true), cleanupCompleted: z.literal(true), sandboxFingerprintHash: sha256Schema });
77
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/change-debug/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ import { z } from "zod";
2
+ declare const flowConditionSchema: z.ZodObject<{
3
+ id: z.ZodOptional<z.ZodString>;
4
+ evaluatorKey: z.ZodString;
5
+ evaluatorVersion: z.ZodNumber;
6
+ input: z.ZodOptional<z.ZodUnknown>;
7
+ negate: z.ZodOptional<z.ZodBoolean>;
8
+ }, z.core.$strict>;
9
+ declare const flowTriggerSchema: z.ZodObject<{
10
+ type: z.ZodString;
11
+ name: z.ZodOptional<z.ZodString>;
12
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
13
+ }, z.core.$strict>;
14
+ export declare const flowContractFixtureSchema: z.ZodObject<{
15
+ name: z.ZodString;
16
+ input: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
17
+ expectedStatus: z.ZodEnum<{
18
+ fail: "fail";
19
+ pass: "pass";
20
+ }>;
21
+ expectedDivergenceStepId: z.ZodOptional<z.ZodString>;
22
+ }, z.core.$strict>;
23
+ export declare const flowContractSchema: z.ZodObject<{
24
+ stableKey: z.ZodString;
25
+ version: z.ZodNumber;
26
+ name: z.ZodString;
27
+ trigger: z.ZodObject<{
28
+ type: z.ZodString;
29
+ name: z.ZodOptional<z.ZodString>;
30
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
31
+ }, z.core.$strict>;
32
+ prerequisites: z.ZodArray<z.ZodObject<{
33
+ id: z.ZodOptional<z.ZodString>;
34
+ evaluatorKey: z.ZodString;
35
+ evaluatorVersion: z.ZodNumber;
36
+ input: z.ZodOptional<z.ZodUnknown>;
37
+ negate: z.ZodOptional<z.ZodBoolean>;
38
+ }, z.core.$strict>>;
39
+ steps: z.ZodArray<z.ZodObject<{
40
+ id: z.ZodString;
41
+ name: z.ZodString;
42
+ requirement: z.ZodEnum<{
43
+ conditional: "conditional";
44
+ optional: "optional";
45
+ required: "required";
46
+ }>;
47
+ dependsOn: z.ZodArray<z.ZodString>;
48
+ expectedProbeKeys: z.ZodArray<z.ZodString>;
49
+ completionPredicate: z.ZodOptional<z.ZodString>;
50
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
51
+ }, z.core.$strict>>;
52
+ invariants: z.ZodArray<z.ZodObject<{
53
+ id: z.ZodString;
54
+ name: z.ZodString;
55
+ evaluatorKey: z.ZodString;
56
+ evaluatorVersion: z.ZodNumber;
57
+ severity: z.ZodEnum<{
58
+ critical: "critical";
59
+ error: "error";
60
+ warning: "warning";
61
+ }>;
62
+ }, z.core.$strict>>;
63
+ successConditions: z.ZodArray<z.ZodObject<{
64
+ id: z.ZodOptional<z.ZodString>;
65
+ evaluatorKey: z.ZodString;
66
+ evaluatorVersion: z.ZodNumber;
67
+ input: z.ZodOptional<z.ZodUnknown>;
68
+ negate: z.ZodOptional<z.ZodBoolean>;
69
+ }, z.core.$strict>>;
70
+ failureConditions: z.ZodArray<z.ZodObject<{
71
+ id: z.ZodOptional<z.ZodString>;
72
+ evaluatorKey: z.ZodString;
73
+ evaluatorVersion: z.ZodNumber;
74
+ input: z.ZodOptional<z.ZodUnknown>;
75
+ negate: z.ZodOptional<z.ZodBoolean>;
76
+ }, z.core.$strict>>;
77
+ fixtures: z.ZodArray<z.ZodObject<{
78
+ name: z.ZodString;
79
+ input: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
80
+ expectedStatus: z.ZodEnum<{
81
+ fail: "fail";
82
+ pass: "pass";
83
+ }>;
84
+ expectedDivergenceStepId: z.ZodOptional<z.ZodString>;
85
+ }, z.core.$strict>>;
86
+ }, z.core.$strict>;
87
+ export type FlowCondition = z.infer<typeof flowConditionSchema>;
88
+ export type FlowTrigger = z.infer<typeof flowTriggerSchema>;
89
+ export type FlowContract = z.infer<typeof flowContractSchema>;
90
+ export {};
91
+ //# sourceMappingURL=flow-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-contract.d.ts","sourceRoot":"","sources":["../../src/contracts/flow-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,mBAAmB;;;;;;kBAMvB,CAAC;AAEH,QAAA,MAAM,iBAAiB;;;;kBAIrB,CAAC;AAoBH,eAAO,MAAM,yBAAyB;;;;;;;;kBAQpC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAuF3B,CAAC;AAEL,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,121 @@
1
+ import { z } from "zod";
2
+ const flowConditionSchema = z.strictObject({
3
+ id: z.string().min(1).optional(),
4
+ evaluatorKey: z.string().min(1),
5
+ evaluatorVersion: z.number().int().positive(),
6
+ input: z.unknown().optional(),
7
+ negate: z.boolean().optional(),
8
+ });
9
+ const flowTriggerSchema = z.strictObject({
10
+ type: z.string().min(1),
11
+ name: z.string().min(1).optional(),
12
+ config: z.record(z.string(), z.unknown()).optional(),
13
+ });
14
+ const flowStepSchema = z.strictObject({
15
+ id: z.string().min(1),
16
+ name: z.string().min(1),
17
+ requirement: z.enum(["required", "optional", "conditional"]),
18
+ dependsOn: z.array(z.string().min(1)),
19
+ expectedProbeKeys: z.array(z.string().min(1)).min(1),
20
+ completionPredicate: z.string().min(1).optional(),
21
+ timeoutMs: z.number().int().positive().optional(),
22
+ });
23
+ const flowInvariantSchema = z.strictObject({
24
+ id: z.string().min(1),
25
+ name: z.string().min(1),
26
+ evaluatorKey: z.string().min(1),
27
+ evaluatorVersion: z.number().int().positive(),
28
+ severity: z.enum(["warning", "error", "critical"]),
29
+ });
30
+ export const flowContractFixtureSchema = z.strictObject({
31
+ name: z.string().min(1).max(256),
32
+ input: z.record(z.string(), z.unknown()).default({}),
33
+ expectedStatus: z.enum(["pass", "fail"]),
34
+ expectedDivergenceStepId: z.string().min(1).optional(),
35
+ }).superRefine((fixture, context) => {
36
+ if (fixture.expectedStatus === "pass" && fixture.expectedDivergenceStepId !== undefined)
37
+ context.addIssue({ code: "custom", path: ["expectedDivergenceStepId"], message: "Passing fixtures cannot declare a divergence step." });
38
+ if (fixture.expectedStatus === "fail" && fixture.expectedDivergenceStepId === undefined)
39
+ context.addIssue({ code: "custom", path: ["expectedDivergenceStepId"], message: "Failure fixtures must identify the expected divergence step." });
40
+ });
41
+ export const flowContractSchema = z
42
+ .strictObject({
43
+ stableKey: z.string().min(1),
44
+ version: z.number().int().positive(),
45
+ name: z.string().min(1),
46
+ trigger: flowTriggerSchema,
47
+ prerequisites: z.array(flowConditionSchema),
48
+ steps: z.array(flowStepSchema).min(1),
49
+ invariants: z.array(flowInvariantSchema),
50
+ successConditions: z.array(flowConditionSchema),
51
+ failureConditions: z.array(flowConditionSchema),
52
+ fixtures: z.array(flowContractFixtureSchema).min(2).max(256),
53
+ })
54
+ .superRefine((contract, context) => {
55
+ const stepIds = new Set();
56
+ const invariantIds = new Set();
57
+ const dependencies = new Map();
58
+ contract.steps.forEach((step, index) => {
59
+ if (stepIds.has(step.id)) {
60
+ context.addIssue({
61
+ code: "custom",
62
+ path: ["steps", index, "id"],
63
+ message: "Flow step IDs must be unique.",
64
+ });
65
+ }
66
+ stepIds.add(step.id);
67
+ dependencies.set(step.id, step.dependsOn);
68
+ });
69
+ contract.steps.forEach((step, stepIndex) => {
70
+ step.dependsOn.forEach((dependency, dependencyIndex) => {
71
+ if (dependency === step.id || !stepIds.has(dependency)) {
72
+ context.addIssue({
73
+ code: "custom",
74
+ path: ["steps", stepIndex, "dependsOn", dependencyIndex],
75
+ message: `Unknown or self-referencing flow dependency "${dependency}".`,
76
+ });
77
+ }
78
+ });
79
+ });
80
+ const visiting = new Set();
81
+ const visited = new Set();
82
+ const containsCycle = (stepId) => {
83
+ if (visiting.has(stepId)) {
84
+ return true;
85
+ }
86
+ if (visited.has(stepId)) {
87
+ return false;
88
+ }
89
+ visiting.add(stepId);
90
+ const hasCycle = (dependencies.get(stepId) ?? []).some((dependency) => stepIds.has(dependency) && containsCycle(dependency));
91
+ visiting.delete(stepId);
92
+ visited.add(stepId);
93
+ return hasCycle;
94
+ };
95
+ if (contract.steps.some((step) => containsCycle(step.id))) {
96
+ context.addIssue({
97
+ code: "custom",
98
+ path: ["steps"],
99
+ message: "Flow Contract dependencies must form a directed acyclic graph.",
100
+ });
101
+ }
102
+ contract.invariants.forEach((invariant, index) => {
103
+ if (invariantIds.has(invariant.id)) {
104
+ context.addIssue({
105
+ code: "custom",
106
+ path: ["invariants", index, "id"],
107
+ message: "Flow invariant IDs must be unique.",
108
+ });
109
+ }
110
+ invariantIds.add(invariant.id);
111
+ });
112
+ for (const status of ["pass", "fail"]) {
113
+ if (!contract.fixtures.some((fixture) => fixture.expectedStatus === status))
114
+ context.addIssue({ code: "custom", path: ["fixtures"], message: `Flow Contract requires at least one ${status} fixture.` });
115
+ }
116
+ contract.fixtures.forEach((fixture, index) => {
117
+ if (fixture.expectedDivergenceStepId !== undefined && !stepIds.has(fixture.expectedDivergenceStepId))
118
+ context.addIssue({ code: "custom", path: ["fixtures", index, "expectedDivergenceStepId"], message: "Fixture divergence must reference a contract step." });
119
+ });
120
+ });
121
+ //# sourceMappingURL=flow-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-contract.js","sourceRoot":"","sources":["../../src/contracts/flow-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,mBAAmB,GAAG,CAAC,CAAC,YAAY,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC7C,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,YAAY,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,YAAY,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAC5D,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrC,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,YAAY,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC7C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,YAAY,CAAC;IACtD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACvD,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAClC,IAAI,OAAO,CAAC,cAAc,KAAK,MAAM,IAAI,OAAO,CAAC,wBAAwB,KAAK,SAAS;QAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,0BAA0B,CAAC,EAAE,OAAO,EAAE,oDAAoD,EAAE,CAAC,CAAC;IACjO,IAAI,OAAO,CAAC,cAAc,KAAK,MAAM,IAAI,OAAO,CAAC,wBAAwB,KAAK,SAAS;QAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,0BAA0B,CAAC,EAAE,OAAO,EAAE,8DAA8D,EAAE,CAAC,CAAC;AAC7O,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,YAAY,CAAC;IACZ,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,iBAAiB;IAC1B,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IACxC,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IAC/C,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IAC/C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CAC7D,CAAC;KACD,WAAW,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IACjC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEjD,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACrC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;gBAC5B,OAAO,EAAE,+BAA+B;aACzC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;QACzC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE;YACrD,IAAI,UAAU,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvD,OAAO,CAAC,QAAQ,CAAC;oBACf,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC;oBACxD,OAAO,EAAE,gDAAgD,UAAU,IAAI;iBACxE,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAW,EAAE;QAChD,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrB,MAAM,QAAQ,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CACpD,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,CACrE,CAAC;QACF,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpB,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,OAAO,CAAC;YACf,OAAO,EAAE,gEAAgE;SAC1E,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QAC/C,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC;gBACjC,OAAO,EAAE,oCAAoC;aAC9C,CAAC,CAAC;QACL,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,CAAU,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,KAAK,MAAM,CAAC;YAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,uCAAuC,MAAM,WAAW,EAAE,CAAC,CAAC;IAC3M,CAAC;IACD,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAC3C,IAAI,OAAO,CAAC,wBAAwB,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC;YAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,0BAA0B,CAAC,EAAE,OAAO,EAAE,oDAAoD,EAAE,CAAC,CAAC;IACnQ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { z } from "zod";
2
+ export declare const diagnosisClaimSchema: z.ZodObject<{
3
+ id: z.ZodUUID;
4
+ type: z.ZodEnum<{
5
+ coverage_gap: "coverage_gap";
6
+ downstream_effect: "downstream_effect";
7
+ file_suspicion: "file_suspicion";
8
+ observed_divergence: "observed_divergence";
9
+ safe_area: "safe_area";
10
+ suspected_root_cause: "suspected_root_cause";
11
+ }>;
12
+ statement: z.ZodString;
13
+ confidence: z.ZodNumber;
14
+ evidence: z.ZodArray<z.ZodObject<{
15
+ eventId: z.ZodOptional<z.ZodUUID>;
16
+ probeId: z.ZodOptional<z.ZodUUID>;
17
+ artifactId: z.ZodOptional<z.ZodUUID>;
18
+ filePath: z.ZodOptional<z.ZodString>;
19
+ lineRange: z.ZodOptional<z.ZodObject<{
20
+ start: z.ZodNumber;
21
+ end: z.ZodNumber;
22
+ }, z.core.$strict>>;
23
+ reason: z.ZodString;
24
+ }, z.core.$strict>>;
25
+ limitations: z.ZodArray<z.ZodString>;
26
+ }, z.core.$strict>;
27
+ export type DiagnosisClaim = z.infer<typeof diagnosisClaimSchema>;
28
+ //# sourceMappingURL=claim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../../src/diagnosis/claim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;kBA4B/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { z } from "zod";
2
+ export const diagnosisClaimSchema = z.strictObject({
3
+ id: z.uuid(),
4
+ type: z.enum([
5
+ "observed_divergence",
6
+ "suspected_root_cause",
7
+ "downstream_effect",
8
+ "safe_area",
9
+ "file_suspicion",
10
+ "coverage_gap",
11
+ ]),
12
+ statement: z.string().min(1),
13
+ confidence: z.number().min(0).max(1),
14
+ evidence: z.array(z.strictObject({
15
+ eventId: z.uuid().optional(),
16
+ probeId: z.uuid().optional(),
17
+ artifactId: z.uuid().optional(),
18
+ filePath: z.string().min(1).optional(),
19
+ lineRange: z
20
+ .strictObject({
21
+ start: z.number().int().positive(),
22
+ end: z.number().int().positive(),
23
+ })
24
+ .optional(),
25
+ reason: z.string().min(1),
26
+ })),
27
+ limitations: z.array(z.string().min(1)),
28
+ });
29
+ //# sourceMappingURL=claim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claim.js","sourceRoot":"","sources":["../../src/diagnosis/claim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,YAAY,CAAC;IACjD,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;IACZ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QACX,qBAAqB;QACrB,sBAAsB;QACtB,mBAAmB;QACnB,WAAW;QACX,gBAAgB;QAChB,cAAc;KACf,CAAC;IACF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CACf,CAAC,CAAC,YAAY,CAAC;QACb,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QAC5B,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QAC5B,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;QAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACtC,SAAS,EAAE,CAAC;aACT,YAAY,CAAC;YACZ,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YAClC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACjC,CAAC;aACD,QAAQ,EAAE;QACb,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1B,CAAC,CACH;IACD,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACxC,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { FlowContract } from "../contracts/flow-contract.js";
2
+ import type { CollectedProbeMapEvent } from "../protocol/event.js";
3
+ import type { DeterministicDiagnosis } from "./result.js";
4
+ export declare const DIAGNOSIS_ALGORITHM_VERSION = "1.0.0";
5
+ export interface DiagnosisProbeDefinition {
6
+ id: string;
7
+ stableKey: string;
8
+ health: "active" | "never_seen" | "stale" | "broken" | "disabled";
9
+ }
10
+ export interface DiagnoseFlowInput {
11
+ contract: FlowContract;
12
+ events: CollectedProbeMapEvent[];
13
+ probeDefinitions?: DiagnosisProbeDefinition[];
14
+ scope?: {
15
+ flowId?: string;
16
+ traceId?: string;
17
+ fromServerSequence?: number;
18
+ toServerSequence?: number;
19
+ };
20
+ }
21
+ export declare function diagnoseFlow(input: DiagnoseFlowInput): DeterministicDiagnosis;
22
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/diagnosis/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEnE,OAAO,KAAK,EAAwB,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAEhF,eAAO,MAAM,2BAA2B,UAAU,CAAC;AAEnD,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;CACnE;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,gBAAgB,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC9C,KAAK,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAoED,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,sBAAsB,CAoJ7E"}