@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 @@
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/integration/profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,246 @@
1
+ import { z } from "zod";
2
+ import { experimentExecutionModeSchema, sourceAccessModeSchema } from "../change-debug/runner.js";
3
+ import { sha256Schema } from "../change-debug/common.js";
4
+ export const HOST_INTEGRATION_STANDARD = "PM-HIS-1";
5
+ export const INTEGRATION_PROFILE_SCHEMA_VERSION = 1;
6
+ export const CHANGE_DEBUG_INTEGRATION_PROFILE_SCHEMA_VERSION = 2;
7
+ export const hostRuntimeSchema = z.enum(["browser", "node", "worker", "cli", "custom"]);
8
+ export const conformanceLevelSchema = z.enum(["L0", "L1", "L2", "L3", "L4"]);
9
+ export const conformanceLevelNameSchema = z.enum(["connected", "observable", "diagnosable", "verifiable", "replayable"]);
10
+ export const ciIntegrationModeSchema = z.enum(["advisory", "contract_gate", "replay_gate"]);
11
+ const profileKeySchema = z.string().min(3).max(128).regex(/^[a-z0-9]+(?:[._-][a-z0-9]+)+$/u, "Profile keys must be stable lowercase dotted identifiers.");
12
+ const relativePortablePathSchema = z.string().min(1).max(1_024).superRefine((value, context) => {
13
+ if (/^(?:[A-Za-z]:[\\/]|[/\\])/u.test(value) || value.split(/[\\/]/u).includes("..")) {
14
+ context.addIssue({ code: "custom", message: "Path must be portable, relative, and remain inside the host repository." });
15
+ }
16
+ });
17
+ const boundedStringArray = z.array(z.string().min(1).max(256)).max(256);
18
+ export const capabilitySetSchema = z.strictObject({
19
+ autoCapture: z.array(z.enum(["actions", "network", "errors", "console", "navigation"])).max(5).default([]),
20
+ semanticFlows: z.boolean(),
21
+ tracePropagation: z.boolean(),
22
+ sourceMaps: z.boolean(),
23
+ visualArtifacts: z.boolean(),
24
+ reproductionCapsule: z.boolean(),
25
+ manualVerification: z.boolean(),
26
+ automatedReplay: z.boolean(),
27
+ });
28
+ export const capabilityManifestV1Schema = z.strictObject({
29
+ standard: z.literal(HOST_INTEGRATION_STANDARD),
30
+ schemaVersion: z.literal(INTEGRATION_PROFILE_SCHEMA_VERSION),
31
+ profileKey: profileKeySchema,
32
+ profileVersion: z.number().int().positive(),
33
+ runtimes: z.array(hostRuntimeSchema).min(1).max(5),
34
+ frameworks: boundedStringArray,
35
+ capabilities: capabilitySetSchema,
36
+ });
37
+ export const reviewedCommandSchema = z.strictObject({
38
+ command: z.string().min(1).max(256).regex(/^[A-Za-z0-9@._/\\:-]+$/u, "Commands must use an executable name, not a shell fragment."),
39
+ args: z.array(z.string().max(1_024)).max(128).default([]),
40
+ cwd: relativePortablePathSchema.default("."),
41
+ timeoutMs: z.number().int().min(1_000).max(30 * 60_000).default(120_000),
42
+ });
43
+ export const experimentNetworkPolicySchema = z.strictObject({
44
+ id: z.string().min(1).max(256),
45
+ mode: z.enum(["none", "loopback", "allowlist"]),
46
+ allowedHosts: z.array(z.string().min(1).max(512)).max(128).default([]),
47
+ allowedPorts: z.array(z.number().int().min(1).max(65_535)).max(128).default([]),
48
+ dnsAllowed: z.boolean().default(false),
49
+ });
50
+ export const registeredVerificationCommandSchema = reviewedCommandSchema.extend({
51
+ id: z.string().min(1).max(256).regex(/^[a-z0-9]+(?:[._-][a-z0-9]+)*$/u),
52
+ label: z.string().min(1).max(256),
53
+ phase: z.enum(["dependency", "build", "typecheck", "test", "replay"]),
54
+ environmentAllowlist: z.array(z.string().regex(/^[A-Z][A-Z0-9_]*$/u)).max(128).default([]),
55
+ networkPolicyId: z.string().min(1).max(256),
56
+ expectedExitCodes: z.array(z.number().int().min(0).max(255)).min(1).max(16).default([0]),
57
+ commandHash: sha256Schema,
58
+ installScripts: z.boolean().default(false),
59
+ });
60
+ export const replayAdapterDefinitionSchema = z.strictObject({
61
+ id: z.string().min(1).max(256),
62
+ version: z.number().int().positive(),
63
+ commandId: z.string().min(1).max(256),
64
+ flowContractVersionId: z.uuid(),
65
+ fixtureId: z.string().min(1).max(256),
66
+ readinessProbe: z.strictObject({ type: z.enum(["http", "tcp", "process"]), target: z.string().min(1).max(1_024), timeoutMs: z.number().int().min(1_000).max(300_000) }).optional(),
67
+ maxDurationMs: z.number().int().min(1_000).max(4 * 60 * 60_000),
68
+ requiredEnvironmentKeys: z.array(z.string().regex(/^[A-Z][A-Z0-9_]*$/u)).max(128).default([]),
69
+ });
70
+ export const changeDebugCapabilitiesSchema = z.strictObject({
71
+ changeCapture: z.enum(["none", "manual", "agent_lifecycle", "git_watcher"]),
72
+ sourceAccess: sourceAccessModeSchema,
73
+ experimentExecution: experimentExecutionModeSchema,
74
+ symbolAnalysis: z.array(z.enum(["typescript", "javascript"])).max(2).default([]),
75
+ containerIsolation: z.boolean(),
76
+ networkIsolation: z.boolean(),
77
+ maxParallelSandboxes: z.number().int().min(1).max(16),
78
+ });
79
+ export const changeDebugProfileExtensionSchema = z.strictObject({
80
+ capabilities: changeDebugCapabilitiesSchema,
81
+ commands: z.array(registeredVerificationCommandSchema).max(128).default([]),
82
+ networkPolicies: z.array(experimentNetworkPolicySchema).max(64).default([]),
83
+ replayAdapters: z.array(replayAdapterDefinitionSchema).max(64).default([]),
84
+ sourceDenyPaths: boundedStringArray.default([]),
85
+ allowedUntrackedPaths: boundedStringArray.default([]),
86
+ artifactRetentionDays: z.number().int().min(1).max(3_650).default(30),
87
+ });
88
+ export const capabilityManifestV2Schema = z.strictObject({
89
+ standard: z.literal(HOST_INTEGRATION_STANDARD),
90
+ schemaVersion: z.literal(CHANGE_DEBUG_INTEGRATION_PROFILE_SCHEMA_VERSION),
91
+ profileKey: profileKeySchema,
92
+ profileVersion: z.number().int().positive(),
93
+ runtimes: z.array(hostRuntimeSchema).min(1).max(5),
94
+ frameworks: boundedStringArray,
95
+ capabilities: capabilitySetSchema,
96
+ changeDebug: changeDebugCapabilitiesSchema,
97
+ });
98
+ export const capabilityManifestSchema = z.discriminatedUnion("schemaVersion", [capabilityManifestV1Schema, capabilityManifestV2Schema]);
99
+ export const profileContractSchema = z.strictObject({
100
+ stableKey: z.string().min(3).max(256).regex(/^[a-z0-9]+(?:[._-][a-z0-9]+)+$/u),
101
+ version: z.number().int().positive(),
102
+ passFixture: relativePortablePathSchema,
103
+ failureFixture: relativePortablePathSchema,
104
+ knownCoverageGaps: boundedStringArray.default([]),
105
+ });
106
+ export const profilePayloadSchema = z.strictObject({
107
+ id: z.string().min(3).max(256).regex(/^[a-z0-9]+(?:[._-][a-z0-9]+)+$/u),
108
+ version: z.number().int().positive(),
109
+ schemaFile: relativePortablePathSchema,
110
+ maxBytes: z.number().int().min(1).max(65_536).default(8_192),
111
+ });
112
+ const integrationProfileBaseSchema = z.strictObject({
113
+ standard: z.literal(HOST_INTEGRATION_STANDARD),
114
+ status: z.enum(["draft", "active"]),
115
+ profile: z.strictObject({ key: profileKeySchema, version: z.number().int().positive() }),
116
+ project: z.strictObject({ root: relativePortablePathSchema.default(".") }),
117
+ runtimes: z.array(hostRuntimeSchema).min(1).max(5),
118
+ frameworks: boundedStringArray,
119
+ capabilities: capabilitySetSchema,
120
+ connection: z.strictObject({
121
+ mode: z.enum(["localhost", "remote"]),
122
+ collectorUrl: z.url().optional(),
123
+ authentication: z.enum(["none", "api_key", "browser_token", "server_proxy"]),
124
+ allowedOrigins: z.array(z.url()).max(64).default([]),
125
+ requireHttps: z.boolean(),
126
+ }).default({ mode: "localhost", authentication: "none", allowedOrigins: [], requireHttps: false }),
127
+ distribution: z.strictObject({
128
+ method: z.enum(["registry", "tarball", "workspace"]),
129
+ packages: z.record(z.string().min(1), z.string().min(1).max(256)),
130
+ integrity: z.string().regex(/^sha256-[A-Za-z0-9+/=]+$/u).optional(),
131
+ }),
132
+ discovery: z.strictObject({
133
+ exclude: boundedStringArray.default([".next*", "dist", "build", "coverage", "vendor", "generated"]),
134
+ useGitignore: z.boolean().default(true),
135
+ maxFiles: z.number().int().min(1).max(25_000).default(5_000),
136
+ maxFileBytes: z.number().int().min(1_024).max(2_000_000).default(512_000),
137
+ }),
138
+ privacy: z.strictObject({
139
+ defaultLevel: z.enum(["safe", "redacted", "sensitive"]).default("safe"),
140
+ allowedPayloadKeys: boundedStringArray.default([]),
141
+ deniedPayloadKeys: boundedStringArray.min(1),
142
+ maxEventPayloadBytes: z.number().int().min(256).max(65_536).default(8_192),
143
+ }),
144
+ performance: z.strictObject({
145
+ maxSynchronousEnqueueP95Ms: z.number().positive().max(10).default(1),
146
+ maxEventsPerFlow: z.number().int().min(1).max(10_000).default(50),
147
+ highFrequencySampleMs: z.number().int().min(16).max(10_000).default(100),
148
+ }),
149
+ verification: z.strictObject({
150
+ build: z.array(reviewedCommandSchema).max(20).default([]),
151
+ typecheck: z.array(reviewedCommandSchema).max(20).default([]),
152
+ tests: z.array(reviewedCommandSchema).max(50).default([]),
153
+ }),
154
+ contracts: z.array(profileContractSchema).max(200).default([]),
155
+ payloadSchemas: z.array(profilePayloadSchema).max(200).default([]),
156
+ hostSafetyTests: boundedStringArray.default([]),
157
+ rollout: z.strictObject({ level: conformanceLevelSchema, ciMode: ciIntegrationModeSchema.default("advisory") }),
158
+ rollback: z.strictObject({ disableEnvironmentVariable: z.string().min(1).max(128).regex(/^[A-Z][A-Z0-9_]+$/u), steps: boundedStringArray.min(1) }),
159
+ limitations: boundedStringArray.default([]),
160
+ });
161
+ function validateIntegrationProfile(profile, context) {
162
+ if (profile.capabilities.automatedReplay && profile.rollout.level !== "L4") {
163
+ context.addIssue({ code: "custom", path: ["capabilities", "automatedReplay"], message: "Automated replay may only be declared at L4." });
164
+ }
165
+ if (profile.rollout.ciMode === "replay_gate" && profile.rollout.level !== "L4") {
166
+ context.addIssue({ code: "custom", path: ["rollout", "ciMode"], message: "Replay gate requires L4 evidence." });
167
+ }
168
+ if (profile.status === "active") {
169
+ if (profile.contracts.length === 0)
170
+ context.addIssue({ code: "custom", path: ["contracts"], message: "An active profile requires at least one reviewed Flow Contract fixture pair." });
171
+ if (profile.hostSafetyTests.length === 0)
172
+ context.addIssue({ code: "custom", path: ["hostSafetyTests"], message: "An active profile requires host-safety tests." });
173
+ }
174
+ if (profile.distribution.method === "workspace" && profile.limitations.every((item) => !item.toLowerCase().includes("monorepo"))) {
175
+ context.addIssue({ code: "custom", path: ["distribution", "method"], message: "Workspace distribution requires an explicit monorepo limitation/justification." });
176
+ }
177
+ if (profile.connection.mode === "remote") {
178
+ if (profile.connection.authentication === "none")
179
+ context.addIssue({ code: "custom", path: ["connection", "authentication"], message: "Remote integration requires an authenticated transport." });
180
+ if (!profile.connection.requireHttps)
181
+ context.addIssue({ code: "custom", path: ["connection", "requireHttps"], message: "Remote integration requires HTTPS." });
182
+ if (profile.connection.collectorUrl === undefined || !profile.connection.collectorUrl.startsWith("https://"))
183
+ context.addIssue({ code: "custom", path: ["connection", "collectorUrl"], message: "Remote integration requires an HTTPS Collector URL." });
184
+ if (profile.runtimes.includes("browser") && profile.connection.authentication === "api_key")
185
+ context.addIssue({ code: "custom", path: ["connection", "authentication"], message: "Long-lived API keys must not be embedded in a browser runtime; use browser_token or server_proxy." });
186
+ if (profile.runtimes.includes("browser") && profile.connection.authentication === "browser_token" && profile.connection.allowedOrigins.length === 0)
187
+ context.addIssue({ code: "custom", path: ["connection", "allowedOrigins"], message: "Direct browser token transport requires at least one exact trusted origin." });
188
+ }
189
+ }
190
+ export const integrationProfileV1Schema = integrationProfileBaseSchema.extend({
191
+ schemaVersion: z.literal(INTEGRATION_PROFILE_SCHEMA_VERSION),
192
+ }).superRefine(validateIntegrationProfile);
193
+ export const integrationProfileV2Schema = integrationProfileBaseSchema.extend({
194
+ schemaVersion: z.literal(CHANGE_DEBUG_INTEGRATION_PROFILE_SCHEMA_VERSION),
195
+ extensions: z.strictObject({ changeDebug: changeDebugProfileExtensionSchema }),
196
+ }).superRefine((profile, context) => {
197
+ validateIntegrationProfile(profile, context);
198
+ const changeDebug = profile.extensions.changeDebug;
199
+ const policyIds = new Set(changeDebug.networkPolicies.map((policy) => policy.id));
200
+ const commandIds = new Set(changeDebug.commands.map((command) => command.id));
201
+ if (policyIds.size !== changeDebug.networkPolicies.length)
202
+ context.addIssue({ code: "custom", path: ["extensions", "changeDebug", "networkPolicies"], message: "Network policy IDs must be unique." });
203
+ if (commandIds.size !== changeDebug.commands.length)
204
+ context.addIssue({ code: "custom", path: ["extensions", "changeDebug", "commands"], message: "Command IDs must be unique." });
205
+ for (const [index, command] of changeDebug.commands.entries())
206
+ if (!policyIds.has(command.networkPolicyId))
207
+ context.addIssue({ code: "custom", path: ["extensions", "changeDebug", "commands", index, "networkPolicyId"], message: "Command references an unknown network policy." });
208
+ for (const [index, adapter] of changeDebug.replayAdapters.entries())
209
+ if (!commandIds.has(adapter.commandId))
210
+ context.addIssue({ code: "custom", path: ["extensions", "changeDebug", "replayAdapters", index, "commandId"], message: "Replay adapter references an unknown command." });
211
+ if (changeDebug.capabilities.changeCapture !== "none" && changeDebug.capabilities.sourceAccess === "none")
212
+ context.addIssue({ code: "custom", path: ["extensions", "changeDebug", "capabilities", "sourceAccess"], message: "Change capture requires source access." });
213
+ if (changeDebug.capabilities.experimentExecution !== "disabled" && changeDebug.capabilities.sourceAccess === "none")
214
+ context.addIssue({ code: "custom", path: ["extensions", "changeDebug", "capabilities", "experimentExecution"], message: "Experiment execution requires source access." });
215
+ if (changeDebug.capabilities.experimentExecution !== "disabled" && changeDebug.commands.length === 0)
216
+ context.addIssue({ code: "custom", path: ["extensions", "changeDebug", "commands"], message: "Experiment execution requires at least one registered command." });
217
+ if (changeDebug.capabilities.sourceAccess === "server_clone" && changeDebug.capabilities.experimentExecution !== "isolated_worker")
218
+ context.addIssue({ code: "custom", path: ["extensions", "changeDebug", "capabilities", "experimentExecution"], message: "Server-cloned source may execute only in an isolated worker." });
219
+ if (profile.capabilities.automatedReplay && changeDebug.replayAdapters.length === 0)
220
+ context.addIssue({ code: "custom", path: ["extensions", "changeDebug", "replayAdapters"], message: "Automated replay requires a registered replay adapter." });
221
+ });
222
+ export const integrationProfileSchema = z.discriminatedUnion("schemaVersion", [integrationProfileV1Schema, integrationProfileV2Schema]);
223
+ export const integrationIdentitySchema = z.strictObject({
224
+ standard: z.literal(HOST_INTEGRATION_STANDARD),
225
+ schemaVersion: z.union([z.literal(INTEGRATION_PROFILE_SCHEMA_VERSION), z.literal(CHANGE_DEBUG_INTEGRATION_PROFILE_SCHEMA_VERSION)]),
226
+ profileKey: profileKeySchema,
227
+ profileVersion: z.number().int().positive(),
228
+ profileHash: z.string().regex(/^[a-f0-9]{64}$/u),
229
+ });
230
+ export const integrationRegistrationSchema = z.strictObject({
231
+ identity: integrationIdentitySchema,
232
+ manifest: capabilityManifestSchema,
233
+ }).superRefine((registration, context) => {
234
+ if (registration.identity.profileKey !== registration.manifest.profileKey || registration.identity.profileVersion !== registration.manifest.profileVersion || registration.identity.schemaVersion !== registration.manifest.schemaVersion) {
235
+ context.addIssue({ code: "custom", message: "Integration identity and capability manifest must describe the same exact profile version." });
236
+ }
237
+ });
238
+ export const changeDebugConfigRegistrationSchema = z.strictObject({
239
+ identity: integrationIdentitySchema.extend({ schemaVersion: z.literal(CHANGE_DEBUG_INTEGRATION_PROFILE_SCHEMA_VERSION) }),
240
+ changeDebug: changeDebugProfileExtensionSchema,
241
+ }).superRefine((registration, context) => {
242
+ const commandIds = registration.changeDebug.commands.map((command) => command.id);
243
+ if (new Set(commandIds).size !== commandIds.length)
244
+ context.addIssue({ code: "custom", path: ["changeDebug", "commands"], message: "Registered command IDs must be unique." });
245
+ });
246
+ //# sourceMappingURL=profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/integration/profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { z } from "zod";
2
+ export declare const oauthDeviceAuthorizationRequestSchema: z.ZodObject<{
3
+ client_id: z.ZodLiteral<"probemap-cli">;
4
+ scope: z.ZodString;
5
+ dpop_jkt: z.ZodOptional<z.ZodString>;
6
+ }, z.core.$strict>;
7
+ export declare const oauthDeviceAuthorizationResponseSchema: z.ZodObject<{
8
+ device_code: z.ZodString;
9
+ user_code: z.ZodString;
10
+ verification_uri: z.ZodURL;
11
+ verification_uri_complete: z.ZodURL;
12
+ expires_in: z.ZodNumber;
13
+ interval: z.ZodNumber;
14
+ }, z.core.$strict>;
15
+ export declare const oauthTokenRequestSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
16
+ grant_type: z.ZodLiteral<"urn:ietf:params:oauth:grant-type:device_code">;
17
+ device_code: z.ZodString;
18
+ client_id: z.ZodLiteral<"probemap-cli">;
19
+ }, z.core.$strict>, z.ZodObject<{
20
+ grant_type: z.ZodLiteral<"refresh_token">;
21
+ refresh_token: z.ZodString;
22
+ client_id: z.ZodEnum<{
23
+ "probemap-cli": "probemap-cli";
24
+ "probemap-runner": "probemap-runner";
25
+ }>;
26
+ }, z.core.$strict>], "grant_type">;
27
+ export declare const oauthTokenResponseSchema: z.ZodObject<{
28
+ access_token: z.ZodString;
29
+ token_type: z.ZodLiteral<"DPoP">;
30
+ expires_in: z.ZodNumber;
31
+ refresh_token: z.ZodString;
32
+ scope: z.ZodString;
33
+ }, z.core.$strict>;
34
+ export declare const oauthDeviceApprovalSchema: z.ZodObject<{
35
+ userCode: z.ZodString;
36
+ subjectId: z.ZodString;
37
+ tenantId: z.ZodUUID;
38
+ approve: z.ZodBoolean;
39
+ }, z.core.$strict>;
40
+ export declare const oauthRevocationRequestSchema: z.ZodObject<{
41
+ token: z.ZodString;
42
+ token_type_hint: z.ZodOptional<z.ZodLiteral<"refresh_token">>;
43
+ client_id: z.ZodLiteral<"probemap-cli">;
44
+ }, z.core.$strict>;
45
+ export declare const runnerBootstrapExchangeSchema: z.ZodObject<{
46
+ bootstrapSecret: z.ZodString;
47
+ runnerInstallationId: z.ZodString;
48
+ publicJwk: z.ZodRecord<z.ZodString, z.ZodUnknown>;
49
+ profileHash: z.ZodString;
50
+ protocolVersion: z.ZodLiteral<1>;
51
+ version: z.ZodString;
52
+ operatingSystem: z.ZodString;
53
+ architecture: z.ZodString;
54
+ }, z.core.$strict>;
55
+ export declare const ciOperatorExchangeSchema: z.ZodObject<{
56
+ cli: z.ZodObject<{
57
+ version: z.ZodString;
58
+ platform: z.ZodString;
59
+ arch: z.ZodString;
60
+ }, z.core.$strict>;
61
+ dpopPublicJwk: z.ZodRecord<z.ZodString, z.ZodUnknown>;
62
+ encryptionPublicJwk: z.ZodRecord<z.ZodString, z.ZodUnknown>;
63
+ }, z.core.$strict>;
64
+ export type OAuthDeviceAuthorizationRequest = z.infer<typeof oauthDeviceAuthorizationRequestSchema>;
65
+ export type OAuthTokenRequest = z.infer<typeof oauthTokenRequestSchema>;
66
+ export type OAuthDeviceApproval = z.infer<typeof oauthDeviceApprovalSchema>;
67
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/onboarding/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qCAAqC;;;;kBAIhD,CAAC;AAEH,eAAO,MAAM,sCAAsC;;;;;;;kBAOjD,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;kCAGlC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;kBAMnC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;kBAKpC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;kBAIvC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;kBASxC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;kBAInC,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AACpG,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { z } from "zod";
2
+ export const oauthDeviceAuthorizationRequestSchema = z.strictObject({
3
+ client_id: z.literal("probemap-cli"),
4
+ scope: z.string().min(1).max(1_024),
5
+ dpop_jkt: z.string().min(32).max(256).optional(),
6
+ });
7
+ export const oauthDeviceAuthorizationResponseSchema = z.strictObject({
8
+ device_code: z.string().min(32).max(512),
9
+ user_code: z.string().min(6).max(32),
10
+ verification_uri: z.url(),
11
+ verification_uri_complete: z.url(),
12
+ expires_in: z.number().int().min(60).max(1_800),
13
+ interval: z.number().int().min(1).max(60),
14
+ });
15
+ export const oauthTokenRequestSchema = z.discriminatedUnion("grant_type", [
16
+ z.strictObject({ grant_type: z.literal("urn:ietf:params:oauth:grant-type:device_code"), device_code: z.string().min(32).max(512), client_id: z.literal("probemap-cli") }),
17
+ z.strictObject({ grant_type: z.literal("refresh_token"), refresh_token: z.string().min(32).max(512), client_id: z.enum(["probemap-cli", "probemap-runner"]) }),
18
+ ]);
19
+ export const oauthTokenResponseSchema = z.strictObject({
20
+ access_token: z.string().min(32),
21
+ token_type: z.literal("DPoP"),
22
+ expires_in: z.number().int().positive().max(900),
23
+ refresh_token: z.string().min(32),
24
+ scope: z.string(),
25
+ });
26
+ export const oauthDeviceApprovalSchema = z.strictObject({
27
+ userCode: z.string().min(6).max(32),
28
+ subjectId: z.string().min(1).max(256),
29
+ tenantId: z.uuid(),
30
+ approve: z.boolean(),
31
+ });
32
+ export const oauthRevocationRequestSchema = z.strictObject({
33
+ token: z.string().min(32).max(512),
34
+ token_type_hint: z.literal("refresh_token").optional(),
35
+ client_id: z.literal("probemap-cli"),
36
+ });
37
+ export const runnerBootstrapExchangeSchema = z.strictObject({
38
+ bootstrapSecret: z.string().min(32).max(512),
39
+ runnerInstallationId: z.string().min(16).max(256),
40
+ publicJwk: z.record(z.string(), z.unknown()),
41
+ profileHash: z.string().regex(/^[a-f0-9]{64}$/u),
42
+ protocolVersion: z.literal(1),
43
+ version: z.string().min(1).max(64),
44
+ operatingSystem: z.string().min(1).max(64),
45
+ architecture: z.string().min(1).max(64),
46
+ });
47
+ export const ciOperatorExchangeSchema = z.strictObject({
48
+ cli: z.strictObject({ version: z.string().min(1).max(64), platform: z.string().min(1).max(64), arch: z.string().min(1).max(64) }),
49
+ dpopPublicJwk: z.record(z.string(), z.unknown()),
50
+ encryptionPublicJwk: z.record(z.string(), z.unknown()),
51
+ });
52
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/onboarding/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,YAAY,CAAC;IAClE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CACjD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,CAAC,YAAY,CAAC;IACnE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACpC,gBAAgB,EAAE,CAAC,CAAC,GAAG,EAAE;IACzB,yBAAyB,EAAE,CAAC,CAAC,GAAG,EAAE;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;CAC1C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,kBAAkB,CAAC,YAAY,EAAE;IACxE,CAAC,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,8CAA8C,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;IACzK,CAAC,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC;CAC/J,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,YAAY,CAAC;IACrD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAChC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IAChD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,YAAY,CAAC;IACtD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE;IAClB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,YAAY,CAAC;IACzD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAClC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;IACtD,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,YAAY,CAAC;IAC1D,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC5C,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC;IAChD,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;CACxC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,YAAY,CAAC;IACrD,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;IACjI,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAChD,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;CACvD,CAAC,CAAC"}