@opensteer/runtime-core 0.2.1 → 0.2.2

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/dist/index.cjs CHANGED
@@ -41,7 +41,7 @@ var vm__default = /*#__PURE__*/_interopDefault(vm);
41
41
 
42
42
  // package.json
43
43
  var package_default = {
44
- version: "0.2.1"};
44
+ version: "0.2.2"};
45
45
 
46
46
  // src/version.ts
47
47
  var OPENSTEER_RUNTIME_CORE_VERSION = package_default.version;
@@ -1481,55 +1481,6 @@ arraySchema(headerEntrySchema, {
1481
1481
  title: "OrderedHeaders"
1482
1482
  });
1483
1483
 
1484
- // ../protocol/src/captcha.ts
1485
- var captchaTypeSchema = enumSchema(
1486
- ["recaptcha-v2", "hcaptcha", "turnstile"],
1487
- {
1488
- title: "CaptchaType"
1489
- }
1490
- );
1491
- var captchaProviderSchema = enumSchema(["2captcha", "capsolver"], {
1492
- title: "CaptchaProvider"
1493
- });
1494
- var captchaDetectionResultSchema = objectSchema(
1495
- {
1496
- type: captchaTypeSchema,
1497
- siteKey: stringSchema({ minLength: 1 }),
1498
- pageUrl: stringSchema({ minLength: 1 })
1499
- },
1500
- {
1501
- title: "CaptchaDetectionResult",
1502
- required: ["type", "siteKey", "pageUrl"]
1503
- }
1504
- );
1505
- var opensteerCaptchaSolveInputSchema = objectSchema(
1506
- {
1507
- provider: captchaProviderSchema,
1508
- apiKey: stringSchema({ minLength: 1 }),
1509
- pageRef: pageRefSchema,
1510
- timeoutMs: integerSchema({ minimum: 1 }),
1511
- type: captchaTypeSchema,
1512
- siteKey: stringSchema({ minLength: 1 }),
1513
- pageUrl: stringSchema({ minLength: 1 })
1514
- },
1515
- {
1516
- title: "OpensteerCaptchaSolveInput",
1517
- required: ["provider", "apiKey"]
1518
- }
1519
- );
1520
- var opensteerCaptchaSolveOutputSchema = objectSchema(
1521
- {
1522
- captcha: captchaDetectionResultSchema,
1523
- token: stringSchema({ minLength: 1 }),
1524
- injected: { type: "boolean" },
1525
- provider: captchaProviderSchema
1526
- },
1527
- {
1528
- title: "OpensteerCaptchaSolveOutput",
1529
- required: ["captcha", "token", "injected", "provider"]
1530
- }
1531
- );
1532
-
1533
1484
  // ../protocol/src/storage.ts
1534
1485
  var jsonUnknownSchema = {};
1535
1486
  var cookieSameSiteSchema = enumSchema(["strict", "lax", "none"], {
@@ -1782,16 +1733,6 @@ var opensteerRequestPlanResponseExpectationSchema = objectSchema(
1782
1733
  required: ["status"]
1783
1734
  }
1784
1735
  );
1785
- var opensteerRecipeRefSchema = objectSchema(
1786
- {
1787
- key: stringSchema({ minLength: 1 }),
1788
- version: stringSchema({ minLength: 1 })
1789
- },
1790
- {
1791
- title: "OpensteerRecipeRef",
1792
- required: ["key"]
1793
- }
1794
- );
1795
1736
  var opensteerRequestFailurePolicyHeaderMatchSchema = objectSchema(
1796
1737
  {
1797
1738
  name: stringSchema({ minLength: 1 }),
@@ -1847,46 +1788,9 @@ var opensteerRequestRetryPolicySchema = objectSchema(
1847
1788
  required: ["maxRetries"]
1848
1789
  }
1849
1790
  );
1850
- var opensteerRecipeCachePolicySchema = enumSchema(
1851
- ["none", "untilFailure"],
1852
- {
1853
- title: "OpensteerRecipeCachePolicy"
1854
- }
1855
- );
1856
- var opensteerRequestPlanRecipeBindingSchema = objectSchema(
1857
- {
1858
- recipe: opensteerRecipeRefSchema,
1859
- cachePolicy: opensteerRecipeCachePolicySchema
1860
- },
1861
- {
1862
- title: "OpensteerRequestPlanRecipeBinding",
1863
- required: ["recipe"]
1864
- }
1865
- );
1866
- var opensteerRequestPlanRecoverBindingSchema = objectSchema(
1867
- {
1868
- recipe: opensteerRecipeRefSchema,
1869
- cachePolicy: opensteerRecipeCachePolicySchema,
1870
- failurePolicy: opensteerRequestFailurePolicySchema
1871
- },
1872
- {
1873
- title: "OpensteerRequestPlanRecoverBinding",
1874
- required: ["recipe", "failurePolicy"]
1875
- }
1876
- );
1877
- var opensteerRequestPlanRecipesSchema = objectSchema(
1878
- {
1879
- prepare: opensteerRequestPlanRecipeBindingSchema,
1880
- recover: opensteerRequestPlanRecoverBindingSchema
1881
- },
1882
- {
1883
- title: "OpensteerRequestPlanRecipes"
1884
- }
1885
- );
1886
1791
  var opensteerRequestPlanAuthSchema = objectSchema(
1887
1792
  {
1888
1793
  strategy: enumSchema(["session-cookie", "bearer-token", "api-key", "custom"]),
1889
- recipe: opensteerRecipeRefSchema,
1890
1794
  failurePolicy: opensteerRequestFailurePolicySchema,
1891
1795
  description: stringSchema({ minLength: 1 })
1892
1796
  },
@@ -1902,7 +1806,6 @@ var opensteerRequestPlanPayloadSchema = objectSchema(
1902
1806
  parameters: arraySchema(opensteerRequestPlanParameterSchema),
1903
1807
  body: opensteerRequestPlanBodySchema,
1904
1808
  response: opensteerRequestPlanResponseExpectationSchema,
1905
- recipes: opensteerRequestPlanRecipesSchema,
1906
1809
  retryPolicy: opensteerRequestRetryPolicySchema,
1907
1810
  auth: opensteerRequestPlanAuthSchema
1908
1811
  },
@@ -1993,317 +1896,6 @@ var opensteerRequestBodyInputSchema = oneOfSchema(
1993
1896
  title: "OpensteerRequestBodyInput"
1994
1897
  }
1995
1898
  );
1996
- var opensteerRecipeRetryOverridesSchema = objectSchema(
1997
- {
1998
- params: recordSchema(stringSchema(), {
1999
- title: "OpensteerRecipeParams"
2000
- }),
2001
- headers: recordSchema(stringSchema(), {
2002
- title: "OpensteerRecipeHeaders"
2003
- }),
2004
- query: recordSchema(stringSchema(), {
2005
- title: "OpensteerRecipeQuery"
2006
- }),
2007
- body: recordSchema(stringSchema(), {
2008
- title: "OpensteerRecipeBodyVariables"
2009
- })
2010
- },
2011
- {
2012
- title: "OpensteerRecipeRetryOverrides"
2013
- }
2014
- );
2015
- var opensteerRecipeStepResponseCaptureSchema = objectSchema(
2016
- {
2017
- header: objectSchema(
2018
- {
2019
- name: stringSchema({ minLength: 1 }),
2020
- saveAs: stringSchema({ minLength: 1 })
2021
- },
2022
- {
2023
- title: "OpensteerAuthRecipeHeaderCapture",
2024
- required: ["name", "saveAs"]
2025
- }
2026
- ),
2027
- bodyJsonPointer: objectSchema(
2028
- {
2029
- pointer: stringSchema({ minLength: 1 }),
2030
- saveAs: stringSchema({ minLength: 1 })
2031
- },
2032
- {
2033
- title: "OpensteerAuthRecipeBodyJsonPointerCapture",
2034
- required: ["pointer", "saveAs"]
2035
- }
2036
- ),
2037
- bodyText: objectSchema(
2038
- {
2039
- saveAs: stringSchema({ minLength: 1 })
2040
- },
2041
- {
2042
- title: "OpensteerAuthRecipeBodyTextCapture",
2043
- required: ["saveAs"]
2044
- }
2045
- )
2046
- },
2047
- {
2048
- title: "OpensteerRecipeStepResponseCapture"
2049
- }
2050
- );
2051
- var opensteerRecipeRequestStepInputSchema = objectSchema(
2052
- {
2053
- url: stringSchema({ minLength: 1 }),
2054
- transport: transportKindSchema,
2055
- pageRef: pageRefSchema,
2056
- cookieJar: stringSchema({ minLength: 1 }),
2057
- method: stringSchema({ minLength: 1 }),
2058
- headers: recordSchema(stringSchema(), {
2059
- title: "OpensteerRecipeRequestHeaders"
2060
- }),
2061
- query: recordSchema(stringSchema(), {
2062
- title: "OpensteerRecipeRequestQuery"
2063
- }),
2064
- body: opensteerRequestBodyInputSchema,
2065
- followRedirects: { type: "boolean" }
2066
- },
2067
- {
2068
- title: "OpensteerRecipeRequestStepInput",
2069
- required: ["url"]
2070
- }
2071
- );
2072
- var opensteerRecipeHookRefSchema = objectSchema(
2073
- {
2074
- specifier: stringSchema({ minLength: 1 }),
2075
- export: stringSchema({ minLength: 1 })
2076
- },
2077
- {
2078
- title: "OpensteerRecipeHookRef",
2079
- required: ["specifier", "export"]
2080
- }
2081
- );
2082
- var opensteerRecipeStepSchema = oneOfSchema(
2083
- [
2084
- objectSchema(
2085
- {
2086
- kind: enumSchema(["goto"]),
2087
- url: stringSchema({ minLength: 1 })
2088
- },
2089
- {
2090
- title: "OpensteerAuthRecipeGotoStep",
2091
- required: ["kind", "url"]
2092
- }
2093
- ),
2094
- objectSchema(
2095
- {
2096
- kind: enumSchema(["reload"])
2097
- },
2098
- {
2099
- title: "OpensteerAuthRecipeReloadStep",
2100
- required: ["kind"]
2101
- }
2102
- ),
2103
- objectSchema(
2104
- {
2105
- kind: enumSchema(["waitForUrl"]),
2106
- includes: stringSchema({ minLength: 1 }),
2107
- timeoutMs: integerSchema({ minimum: 0 })
2108
- },
2109
- {
2110
- title: "OpensteerAuthRecipeWaitForUrlStep",
2111
- required: ["kind", "includes"]
2112
- }
2113
- ),
2114
- objectSchema(
2115
- {
2116
- kind: enumSchema(["waitForNetwork"]),
2117
- url: stringSchema({ minLength: 1 }),
2118
- hostname: stringSchema({ minLength: 1 }),
2119
- path: stringSchema({ minLength: 1 }),
2120
- method: stringSchema({ minLength: 1 }),
2121
- status: stringSchema({ minLength: 1 }),
2122
- includeBodies: { type: "boolean" },
2123
- timeoutMs: integerSchema({ minimum: 0 }),
2124
- saveAs: stringSchema({ minLength: 1 })
2125
- },
2126
- {
2127
- title: "OpensteerRecipeWaitForNetworkStep",
2128
- required: ["kind"]
2129
- }
2130
- ),
2131
- objectSchema(
2132
- {
2133
- kind: enumSchema(["waitForCookie"]),
2134
- name: stringSchema({ minLength: 1 }),
2135
- url: stringSchema({ minLength: 1 }),
2136
- timeoutMs: integerSchema({ minimum: 0 }),
2137
- saveAs: stringSchema({ minLength: 1 })
2138
- },
2139
- {
2140
- title: "OpensteerAuthRecipeWaitForCookieStep",
2141
- required: ["kind", "name"]
2142
- }
2143
- ),
2144
- objectSchema(
2145
- {
2146
- kind: enumSchema(["waitForStorage"]),
2147
- area: enumSchema(["local", "session"]),
2148
- origin: stringSchema({ minLength: 1 }),
2149
- key: stringSchema({ minLength: 1 }),
2150
- timeoutMs: integerSchema({ minimum: 0 }),
2151
- saveAs: stringSchema({ minLength: 1 })
2152
- },
2153
- {
2154
- title: "OpensteerAuthRecipeWaitForStorageStep",
2155
- required: ["kind", "area", "origin", "key"]
2156
- }
2157
- ),
2158
- objectSchema(
2159
- {
2160
- kind: enumSchema(["readCookie"]),
2161
- name: stringSchema({ minLength: 1 }),
2162
- url: stringSchema({ minLength: 1 }),
2163
- saveAs: stringSchema({ minLength: 1 })
2164
- },
2165
- {
2166
- title: "OpensteerAuthRecipeReadCookieStep",
2167
- required: ["kind", "name", "saveAs"]
2168
- }
2169
- ),
2170
- objectSchema(
2171
- {
2172
- kind: enumSchema(["readStorage"]),
2173
- area: enumSchema(["local", "session"]),
2174
- origin: stringSchema({ minLength: 1 }),
2175
- key: stringSchema({ minLength: 1 }),
2176
- pageUrl: stringSchema({ minLength: 1 }),
2177
- saveAs: stringSchema({ minLength: 1 })
2178
- },
2179
- {
2180
- title: "OpensteerRecipeReadStorageStep",
2181
- required: ["kind", "area", "origin", "key", "saveAs"]
2182
- }
2183
- ),
2184
- objectSchema(
2185
- {
2186
- kind: enumSchema(["evaluate"]),
2187
- script: stringSchema({ minLength: 1 }),
2188
- args: arraySchema(jsonValueSchema),
2189
- pageRef: pageRefSchema,
2190
- saveAs: stringSchema({ minLength: 1 })
2191
- },
2192
- {
2193
- title: "OpensteerRecipeEvaluateStep",
2194
- required: ["kind", "script"]
2195
- }
2196
- ),
2197
- objectSchema(
2198
- {
2199
- kind: enumSchema(["syncCookiesToJar"]),
2200
- jar: stringSchema({ minLength: 1 }),
2201
- urls: arraySchema(stringSchema({ minLength: 1 }), {
2202
- minItems: 1
2203
- })
2204
- },
2205
- {
2206
- title: "OpensteerRecipeSyncCookiesToJarStep",
2207
- required: ["kind", "jar"]
2208
- }
2209
- ),
2210
- objectSchema(
2211
- {
2212
- kind: enumSchema(["request"]),
2213
- request: opensteerRecipeRequestStepInputSchema,
2214
- capture: opensteerRecipeStepResponseCaptureSchema
2215
- },
2216
- {
2217
- title: "OpensteerRecipeRequestStep",
2218
- required: ["kind", "request"]
2219
- }
2220
- ),
2221
- objectSchema(
2222
- {
2223
- kind: enumSchema(["sessionRequest"]),
2224
- request: opensteerRecipeRequestStepInputSchema,
2225
- capture: opensteerRecipeStepResponseCaptureSchema
2226
- },
2227
- {
2228
- title: "OpensteerAuthRecipeSessionRequestStep",
2229
- required: ["kind", "request"]
2230
- }
2231
- ),
2232
- objectSchema(
2233
- {
2234
- kind: enumSchema(["directRequest"]),
2235
- request: opensteerRecipeRequestStepInputSchema,
2236
- capture: opensteerRecipeStepResponseCaptureSchema
2237
- },
2238
- {
2239
- title: "OpensteerAuthRecipeDirectRequestStep",
2240
- required: ["kind", "request"]
2241
- }
2242
- ),
2243
- objectSchema(
2244
- {
2245
- kind: enumSchema(["solveCaptcha"]),
2246
- provider: captchaProviderSchema,
2247
- apiKey: stringSchema({ minLength: 1 }),
2248
- pageRef: pageRefSchema,
2249
- timeoutMs: integerSchema({ minimum: 1 }),
2250
- type: captchaTypeSchema,
2251
- siteKey: stringSchema({ minLength: 1 }),
2252
- pageUrl: stringSchema({ minLength: 1 }),
2253
- saveAs: stringSchema({ minLength: 1 })
2254
- },
2255
- {
2256
- title: "OpensteerRecipeSolveCaptchaStep",
2257
- required: ["kind", "provider", "apiKey"]
2258
- }
2259
- ),
2260
- objectSchema(
2261
- {
2262
- kind: enumSchema(["hook"]),
2263
- hook: opensteerRecipeHookRefSchema
2264
- },
2265
- {
2266
- title: "OpensteerRecipeHookStep",
2267
- required: ["kind", "hook"]
2268
- }
2269
- )
2270
- ],
2271
- {
2272
- title: "OpensteerRecipeStep"
2273
- }
2274
- );
2275
- var opensteerRecipePayloadSchema = objectSchema(
2276
- {
2277
- description: stringSchema({ minLength: 1 }),
2278
- steps: arraySchema(opensteerRecipeStepSchema, {
2279
- minItems: 1
2280
- }),
2281
- outputs: opensteerRecipeRetryOverridesSchema
2282
- },
2283
- {
2284
- title: "OpensteerRecipePayload",
2285
- required: ["steps"]
2286
- }
2287
- );
2288
- var opensteerRecipeRecordSchema = objectSchema(
2289
- {
2290
- id: stringSchema({ minLength: 1 }),
2291
- key: stringSchema({ minLength: 1 }),
2292
- version: stringSchema({ minLength: 1 }),
2293
- createdAt: integerSchema({ minimum: 0 }),
2294
- updatedAt: integerSchema({ minimum: 0 }),
2295
- contentHash: stringSchema({ minLength: 1 }),
2296
- tags: arraySchema(stringSchema({ minLength: 1 }), {
2297
- uniqueItems: true
2298
- }),
2299
- provenance: opensteerRegistryProvenanceSchema,
2300
- payload: opensteerRecipePayloadSchema
2301
- },
2302
- {
2303
- title: "OpensteerRecipeRecord",
2304
- required: ["id", "key", "version", "createdAt", "updatedAt", "contentHash", "tags", "payload"]
2305
- }
2306
- );
2307
1899
  var opensteerNetworkQueryInputSchema = objectSchema(
2308
1900
  {
2309
1901
  pageRef: pageRefSchema,
@@ -2702,85 +2294,6 @@ objectSchema(
2702
2294
  required: ["plans"]
2703
2295
  }
2704
2296
  );
2705
- objectSchema(
2706
- {
2707
- id: stringSchema({ minLength: 1 }),
2708
- key: stringSchema({ minLength: 1 }),
2709
- version: stringSchema({ minLength: 1 }),
2710
- tags: arraySchema(stringSchema({ minLength: 1 }), {
2711
- uniqueItems: true
2712
- }),
2713
- provenance: opensteerRegistryProvenanceSchema,
2714
- payload: opensteerRecipePayloadSchema
2715
- },
2716
- {
2717
- title: "OpensteerWriteRecipeInput",
2718
- required: ["key", "version", "payload"]
2719
- }
2720
- );
2721
- objectSchema(
2722
- {
2723
- key: stringSchema({ minLength: 1 }),
2724
- version: stringSchema({ minLength: 1 })
2725
- },
2726
- {
2727
- title: "OpensteerGetRecipeInput",
2728
- required: ["key"]
2729
- }
2730
- );
2731
- objectSchema(
2732
- {
2733
- key: stringSchema({ minLength: 1 })
2734
- },
2735
- {
2736
- title: "OpensteerListRecipesInput"
2737
- }
2738
- );
2739
- objectSchema(
2740
- {
2741
- recipes: arraySchema(opensteerRecipeRecordSchema)
2742
- },
2743
- {
2744
- title: "OpensteerListRecipesOutput",
2745
- required: ["recipes"]
2746
- }
2747
- );
2748
- objectSchema(
2749
- {
2750
- key: stringSchema({ minLength: 1 }),
2751
- version: stringSchema({ minLength: 1 }),
2752
- variables: recordSchema(stringSchema(), {
2753
- title: "OpensteerRecipeVariables"
2754
- })
2755
- },
2756
- {
2757
- title: "OpensteerRunRecipeInput",
2758
- required: ["key"]
2759
- }
2760
- );
2761
- objectSchema(
2762
- {
2763
- recipe: objectSchema(
2764
- {
2765
- id: stringSchema({ minLength: 1 }),
2766
- key: stringSchema({ minLength: 1 }),
2767
- version: stringSchema({ minLength: 1 })
2768
- },
2769
- {
2770
- title: "OpensteerResolvedRecipeRef",
2771
- required: ["id", "key", "version"]
2772
- }
2773
- ),
2774
- variables: recordSchema(stringSchema(), {
2775
- title: "OpensteerResolvedRecipeVariables"
2776
- }),
2777
- overrides: opensteerRecipeRetryOverridesSchema
2778
- },
2779
- {
2780
- title: "OpensteerRunRecipeOutput",
2781
- required: ["recipe", "variables"]
2782
- }
2783
- );
2784
2297
  objectSchema(
2785
2298
  {
2786
2299
  key: stringSchema({ minLength: 1 }),
@@ -2887,17 +2400,7 @@ objectSchema(
2887
2400
  {
2888
2401
  attempted: { type: "boolean" },
2889
2402
  succeeded: { type: "boolean" },
2890
- matchedFailurePolicy: { type: "boolean" },
2891
- recipe: objectSchema(
2892
- {
2893
- key: stringSchema({ minLength: 1 }),
2894
- version: stringSchema({ minLength: 1 })
2895
- },
2896
- {
2897
- title: "OpensteerResolvedRecoveryRecipeRef",
2898
- required: ["key", "version"]
2899
- }
2900
- )
2403
+ matchedFailurePolicy: { type: "boolean" }
2901
2404
  },
2902
2405
  {
2903
2406
  title: "OpensteerRequestRecoveryMetadata",
@@ -2936,6 +2439,69 @@ objectSchema(
2936
2439
  }
2937
2440
  );
2938
2441
 
2442
+ // ../protocol/src/state.ts
2443
+ var opensteerStateSnapshotCookieSchema = objectSchema(
2444
+ {
2445
+ name: stringSchema({ minLength: 1 }),
2446
+ value: stringSchema(),
2447
+ domain: stringSchema({ minLength: 1 }),
2448
+ path: stringSchema({ minLength: 1 }),
2449
+ secure: { type: "boolean" },
2450
+ httpOnly: { type: "boolean" },
2451
+ sameSite: enumSchema(["strict", "lax", "none"]),
2452
+ priority: enumSchema(["low", "medium", "high"]),
2453
+ partitionKey: stringSchema({ minLength: 1 }),
2454
+ session: { type: "boolean" },
2455
+ expiresAt: oneOfSchema([integerSchema({ minimum: 0 }), { type: "null" }])
2456
+ },
2457
+ {
2458
+ title: "OpensteerStateSnapshotCookie",
2459
+ required: ["name", "value", "domain", "path", "secure", "httpOnly", "session"]
2460
+ }
2461
+ );
2462
+ var opensteerStateSnapshotSchema = objectSchema(
2463
+ {
2464
+ id: stringSchema({ minLength: 1 }),
2465
+ capturedAt: integerSchema({ minimum: 0 }),
2466
+ pageRef: pageRefSchema,
2467
+ url: stringSchema({ minLength: 1 }),
2468
+ cookies: arraySchema(opensteerStateSnapshotCookieSchema),
2469
+ storage: storageSnapshotSchema,
2470
+ hiddenFields: arraySchema(
2471
+ objectSchema(
2472
+ {
2473
+ path: stringSchema({ minLength: 1 }),
2474
+ name: stringSchema({ minLength: 1 }),
2475
+ value: stringSchema()
2476
+ },
2477
+ {
2478
+ title: "OpensteerStateSnapshotHiddenField",
2479
+ required: ["path", "name", "value"]
2480
+ }
2481
+ )
2482
+ ),
2483
+ globals: recordSchema({}, { title: "OpensteerStateSnapshotGlobals" })
2484
+ },
2485
+ {
2486
+ title: "OpensteerStateSnapshot",
2487
+ required: ["id", "capturedAt"]
2488
+ }
2489
+ );
2490
+ var opensteerStateDeltaSchema = objectSchema(
2491
+ {
2492
+ beforeStateId: stringSchema({ minLength: 1 }),
2493
+ afterStateId: stringSchema({ minLength: 1 }),
2494
+ cookiesChanged: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
2495
+ storageChanged: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
2496
+ hiddenFieldsChanged: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
2497
+ globalsChanged: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
2498
+ },
2499
+ {
2500
+ title: "OpensteerStateDelta",
2501
+ required: ["cookiesChanged", "storageChanged", "hiddenFieldsChanged", "globalsChanged"]
2502
+ }
2503
+ );
2504
+
2939
2505
  // ../protocol/src/snapshots.ts
2940
2506
  var screenshotFormatSchema = enumSchema(["png", "jpeg", "webp"], {
2941
2507
  title: "ScreenshotFormat"
@@ -3709,6 +3275,55 @@ var opensteerArtifactReadOutputSchema = objectSchema(
3709
3275
  }
3710
3276
  );
3711
3277
 
3278
+ // ../protocol/src/captcha.ts
3279
+ var captchaTypeSchema = enumSchema(
3280
+ ["recaptcha-v2", "hcaptcha", "turnstile"],
3281
+ {
3282
+ title: "CaptchaType"
3283
+ }
3284
+ );
3285
+ var captchaProviderSchema = enumSchema(["2captcha", "capsolver"], {
3286
+ title: "CaptchaProvider"
3287
+ });
3288
+ var captchaDetectionResultSchema = objectSchema(
3289
+ {
3290
+ type: captchaTypeSchema,
3291
+ siteKey: stringSchema({ minLength: 1 }),
3292
+ pageUrl: stringSchema({ minLength: 1 })
3293
+ },
3294
+ {
3295
+ title: "CaptchaDetectionResult",
3296
+ required: ["type", "siteKey", "pageUrl"]
3297
+ }
3298
+ );
3299
+ var opensteerCaptchaSolveInputSchema = objectSchema(
3300
+ {
3301
+ provider: captchaProviderSchema,
3302
+ apiKey: stringSchema({ minLength: 1 }),
3303
+ pageRef: pageRefSchema,
3304
+ timeoutMs: integerSchema({ minimum: 1 }),
3305
+ type: captchaTypeSchema,
3306
+ siteKey: stringSchema({ minLength: 1 }),
3307
+ pageUrl: stringSchema({ minLength: 1 })
3308
+ },
3309
+ {
3310
+ title: "OpensteerCaptchaSolveInput",
3311
+ required: ["provider", "apiKey"]
3312
+ }
3313
+ );
3314
+ var opensteerCaptchaSolveOutputSchema = objectSchema(
3315
+ {
3316
+ captcha: captchaDetectionResultSchema,
3317
+ token: stringSchema({ minLength: 1 }),
3318
+ injected: { type: "boolean" },
3319
+ provider: captchaProviderSchema
3320
+ },
3321
+ {
3322
+ title: "OpensteerCaptchaSolveOutput",
3323
+ required: ["captcha", "token", "injected", "provider"]
3324
+ }
3325
+ );
3326
+
3712
3327
  // ../protocol/src/traces.ts
3713
3328
  var traceContextSchema = objectSchema(
3714
3329
  {
@@ -3879,1629 +3494,87 @@ var sandboxAjaxModeSchema = enumSchema(
3879
3494
  }
3880
3495
  );
3881
3496
  var sandboxAjaxRouteSchema = objectSchema(
3882
- {
3883
- urlPattern: stringSchema({ minLength: 1 }),
3884
- mode: sandboxAjaxModeSchema,
3885
- mockResponse: objectSchema(
3886
- {
3887
- status: integerSchema({ minimum: 100, maximum: 599 }),
3888
- headers: recordSchema(stringSchema(), {
3889
- title: "SandboxAjaxMockHeaders"
3890
- }),
3891
- body: stringSchema()
3892
- },
3893
- {
3894
- title: "SandboxAjaxMockResponse",
3895
- required: ["status"]
3896
- }
3897
- )
3898
- },
3899
- {
3900
- title: "SandboxAjaxRoute",
3901
- required: ["urlPattern", "mode"]
3902
- }
3903
- );
3904
- var opensteerScriptSandboxInputSchema = objectSchema(
3905
- {
3906
- artifactId: stringSchema({ minLength: 1 }),
3907
- content: stringSchema(),
3908
- fidelity: sandboxFidelitySchema,
3909
- ajaxRoutes: arraySchema(sandboxAjaxRouteSchema),
3910
- cookies: recordSchema(stringSchema(), {
3911
- title: "SandboxCookies"
3912
- }),
3913
- globals: objectSchema(
3914
- {},
3915
- {
3916
- title: "SandboxGlobals",
3917
- additionalProperties: true
3918
- }
3919
- ),
3920
- timeoutMs: integerSchema({ minimum: 1 }),
3921
- clockMode: enumSchema(["real", "manual"])
3922
- },
3923
- {
3924
- title: "OpensteerScriptSandboxInput"
3925
- }
3926
- );
3927
- var sandboxCapturedAjaxCallSchema = objectSchema(
3928
- {
3929
- method: stringSchema({ minLength: 1 }),
3930
- url: stringSchema({ minLength: 1 }),
3931
- headers: recordSchema(stringSchema(), {
3932
- title: "SandboxCapturedAjaxHeaders"
3933
- }),
3934
- body: stringSchema(),
3935
- timestamp: integerSchema({ minimum: 0 })
3936
- },
3937
- {
3938
- title: "SandboxCapturedAjaxCall",
3939
- required: ["method", "url", "headers", "timestamp"]
3940
- }
3941
- );
3942
- var opensteerScriptSandboxOutputSchema = objectSchema(
3943
- {
3944
- result: oneOfSchema(
3945
- [
3946
- objectSchema({}, { additionalProperties: true }),
3947
- arraySchema({}),
3948
- stringSchema(),
3949
- { type: "number" },
3950
- enumSchema([true, false, null])
3951
- ],
3952
- {
3953
- title: "SandboxResult"
3954
- }
3955
- ),
3956
- capturedAjax: arraySchema(sandboxCapturedAjaxCallSchema),
3957
- errors: arraySchema(stringSchema({ minLength: 1 })),
3958
- durationMs: integerSchema({ minimum: 0 })
3959
- },
3960
- {
3961
- title: "OpensteerScriptSandboxOutput",
3962
- required: ["capturedAjax", "errors", "durationMs"]
3963
- }
3964
- );
3965
-
3966
- // ../protocol/src/reverse.ts
3967
- var opensteerStateSourceKindSchema = enumSchema(
3968
- ["temporary", "persistent", "attach"],
3969
- { title: "OpensteerStateSourceKind" }
3970
- );
3971
- var opensteerReverseCaseStatusSchema = enumSchema(
3972
- ["capturing", "analyzing", "ready", "attention"],
3973
- { title: "OpensteerReverseCaseStatus" }
3974
- );
3975
- var opensteerReverseChannelKindSchema = enumSchema(
3976
- ["http", "event-stream", "websocket"],
3977
- { title: "OpensteerReverseChannelKind" }
3978
- );
3979
- var opensteerReverseManualCalibrationModeSchema = enumSchema(
3980
- ["allow", "avoid", "require"],
3981
- { title: "OpensteerReverseManualCalibrationMode" }
3982
- );
3983
- var opensteerReverseCandidateBoundarySchema = enumSchema(
3984
- ["first-party", "same-site", "third-party"],
3985
- { title: "OpensteerReverseCandidateBoundary" }
3986
- );
3987
- var opensteerReverseAdvisoryTagSchema = enumSchema(
3988
- [
3989
- "data",
3990
- "facet",
3991
- "telemetry",
3992
- "subscription",
3993
- "navigation",
3994
- "document",
3995
- "route-data",
3996
- "search",
3997
- "tracking",
3998
- "unknown"
3999
- ],
4000
- { title: "OpensteerReverseAdvisoryTag" }
4001
- );
4002
- var opensteerReverseConstraintKindSchema = enumSchema(
4003
- [
4004
- "requires-browser",
4005
- "requires-cookie",
4006
- "requires-storage",
4007
- "requires-script",
4008
- "requires-guard",
4009
- "requires-live-state",
4010
- "opaque-body",
4011
- "unsupported"
4012
- ],
4013
- { title: "OpensteerReverseConstraintKind" }
4014
- );
4015
- var opensteerRequestInputLocationSchema = enumSchema(
4016
- ["path", "query", "header", "cookie", "body-field"],
4017
- { title: "OpensteerRequestInputLocation" }
4018
- );
4019
- var opensteerRequestInputRequirednessSchema = enumSchema(
4020
- ["required", "optional", "unknown"],
4021
- { title: "OpensteerRequestInputRequiredness" }
4022
- );
4023
- var opensteerRequestInputClassificationSchema = enumSchema(
4024
- ["managed", "static", "contextual", "volatile"],
4025
- { title: "OpensteerRequestInputClassification" }
4026
- );
4027
- var opensteerRequestInputSourceSchema = enumSchema(
4028
- [
4029
- "literal",
4030
- "cookie",
4031
- "storage",
4032
- "prior-response",
4033
- "page",
4034
- "script",
4035
- "guard-output",
4036
- "runtime-managed",
4037
- "unknown"
4038
- ],
4039
- { title: "OpensteerRequestInputSource" }
4040
- );
4041
- var opensteerRequestInputMaterializationPolicySchema = enumSchema(
4042
- ["copy", "omit", "recompute", "resolve"],
4043
- { title: "OpensteerRequestInputMaterializationPolicy" }
4044
- );
4045
- var opensteerRequestInputExportPolicySchema = enumSchema(
4046
- ["portable", "browser-bound", "blocked"],
4047
- { title: "OpensteerRequestInputExportPolicy" }
4048
- );
4049
- var opensteerReverseQueryViewSchema = enumSchema(
4050
- ["records", "clusters", "candidates"],
4051
- { title: "OpensteerReverseQueryView" }
4052
- );
4053
- var opensteerReverseSortKeySchema = enumSchema(
4054
- [
4055
- "observed-at",
4056
- "advisory-rank",
4057
- "target-hint-matches",
4058
- "response-richness",
4059
- "portability",
4060
- "boundary",
4061
- "success"
4062
- ],
4063
- { title: "OpensteerReverseSortKey" }
4064
- );
4065
- var opensteerReverseSortPresetSchema = enumSchema(
4066
- [
4067
- "advisory-rank",
4068
- "observed-at",
4069
- "portability",
4070
- "first-party",
4071
- "hint-match",
4072
- "response-richness"
4073
- ],
4074
- { title: "OpensteerReverseSortPreset" }
4075
- );
4076
- var opensteerReverseSortDirectionSchema = enumSchema(
4077
- ["asc", "desc"],
4078
- {
4079
- title: "OpensteerReverseSortDirection"
4080
- }
4081
- );
4082
- var opensteerObservationClusterRelationshipKindSchema = enumSchema(
4083
- ["seed", "preflight", "redirect", "retry", "duplicate", "follow-on"],
4084
- { title: "OpensteerObservationClusterRelationshipKind" }
4085
- );
4086
- var opensteerReverseReportKindSchema = enumSchema(
4087
- ["discovery", "package"],
4088
- { title: "OpensteerReverseReportKind" }
4089
- );
4090
- var opensteerReversePackageKindSchema = enumSchema(
4091
- ["portable-http", "browser-workflow"],
4092
- { title: "OpensteerReversePackageKind" }
4093
- );
4094
- var opensteerReversePackageReadinessSchema = enumSchema(
4095
- ["runnable", "draft", "unsupported"],
4096
- { title: "OpensteerReversePackageReadiness" }
4097
- );
4098
- var opensteerBodyCodecKindSchema = enumSchema(
4099
- [
4100
- "json",
4101
- "form-urlencoded",
4102
- "multipart",
4103
- "graphql",
4104
- "persisted-graphql",
4105
- "text",
4106
- "opaque-binary",
4107
- "sse",
4108
- "websocket-json",
4109
- "websocket-text",
4110
- "unknown"
4111
- ],
4112
- { title: "OpensteerBodyCodecKind" }
4113
- );
4114
- var opensteerExecutableResolverKindSchema = enumSchema(
4115
- [
4116
- "literal",
4117
- "cookie",
4118
- "storage",
4119
- "prior-record",
4120
- "binding",
4121
- "candidate",
4122
- "case",
4123
- "state-snapshot",
4124
- "artifact",
4125
- "manual",
4126
- "runtime-managed"
4127
- ],
4128
- { title: "OpensteerExecutableResolverKind" }
4129
- );
4130
- var opensteerValueReferenceKindSchema = enumSchema(
4131
- [
4132
- "literal",
4133
- "resolver",
4134
- "binding",
4135
- "candidate",
4136
- "case",
4137
- "record",
4138
- "artifact",
4139
- "state-snapshot",
4140
- "runtime",
4141
- "manual"
4142
- ],
4143
- { title: "OpensteerValueReferenceKind" }
4144
- );
4145
- var opensteerRuntimeValueKeySchema = enumSchema(
4146
- ["pageRef", "packageId", "caseId", "candidateId", "objective"],
4147
- { title: "OpensteerRuntimeValueKey" }
4148
- );
4149
- var opensteerValidationRuleKindSchema = enumSchema(
4150
- [
4151
- "status",
4152
- "json-structure",
4153
- "text-includes",
4154
- "stream-first-chunk",
4155
- "websocket-open",
4156
- "message-count-at-least"
4157
- ],
4158
- { title: "OpensteerValidationRuleKind" }
4159
- );
4160
- enumSchema(
4161
- ["operation", "await-record", "assert"],
4162
- { title: "OpensteerReverseWorkflowStepKind" }
4163
- );
4164
- var opensteerReverseRequirementKindSchema = enumSchema(
4165
- ["resolver", "guard", "workflow-step", "state", "channel", "unsupported"],
4166
- { title: "OpensteerReverseRequirementKind" }
4167
- );
4168
- var opensteerReverseRequirementStatusSchema = enumSchema(
4169
- ["required", "recommended"],
4170
- { title: "OpensteerReverseRequirementStatus" }
4171
- );
4172
- var opensteerReverseSuggestedEditKindSchema = enumSchema(
4173
- [
4174
- "set-resolver",
4175
- "attach-trace",
4176
- "replace-workflow",
4177
- "patch-step-input",
4178
- "switch-state-source",
4179
- "inspect-evidence",
4180
- "mark-unsupported"
4181
- ],
4182
- { title: "OpensteerReverseSuggestedEditKind" }
4183
- );
4184
- var jsonValueSchema2 = defineSchema({
4185
- title: "JsonValue"
4186
- });
4187
- var opensteerValueReferenceSchema = objectSchema(
4188
- {
4189
- kind: opensteerValueReferenceKindSchema,
4190
- pointer: stringSchema({ minLength: 1 }),
4191
- resolverId: stringSchema({ minLength: 1 }),
4192
- binding: stringSchema({ minLength: 1 }),
4193
- recordId: stringSchema({ minLength: 1 }),
4194
- artifactId: stringSchema({ minLength: 1 }),
4195
- stateSnapshotId: stringSchema({ minLength: 1 }),
4196
- runtimeKey: opensteerRuntimeValueKeySchema,
4197
- value: jsonValueSchema2,
4198
- placeholder: stringSchema({ minLength: 1 })
4199
- },
4200
- {
4201
- title: "OpensteerValueReference",
4202
- required: ["kind"]
4203
- }
4204
- );
4205
- var opensteerValueTemplateSchema = defineSchema({
4206
- title: "OpensteerValueTemplate"
4207
- });
4208
- var opensteerReverseTargetHintsSchema = objectSchema(
4209
- {
4210
- hosts: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4211
- paths: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4212
- operationNames: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4213
- channels: arraySchema(opensteerReverseChannelKindSchema, { uniqueItems: true })
4214
- },
4215
- {
4216
- title: "OpensteerReverseTargetHints"
4217
- }
4218
- );
4219
- var opensteerBodyCodecDescriptorSchema = objectSchema(
4220
- {
4221
- kind: opensteerBodyCodecKindSchema,
4222
- contentType: stringSchema({ minLength: 1 }),
4223
- operationName: stringSchema({ minLength: 1 }),
4224
- fieldPaths: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
4225
- },
4226
- {
4227
- title: "OpensteerBodyCodecDescriptor",
4228
- required: ["kind", "fieldPaths"]
4229
- }
4230
- );
4231
- var opensteerObservationClusterSchema = objectSchema(
4232
- {
4233
- id: stringSchema({ minLength: 1 }),
4234
- observationId: stringSchema({ minLength: 1 }),
4235
- label: stringSchema({ minLength: 1 }),
4236
- channel: opensteerReverseChannelKindSchema,
4237
- method: stringSchema({ minLength: 1 }),
4238
- url: stringSchema({ minLength: 1 }),
4239
- matchedTargetHints: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4240
- members: arraySchema(
4241
- objectSchema(
4242
- {
4243
- recordId: stringSchema({ minLength: 1 }),
4244
- observedAt: integerSchema({ minimum: 0 }),
4245
- resourceType: stringSchema({ minLength: 1 }),
4246
- status: integerSchema({ minimum: 0 }),
4247
- relation: opensteerObservationClusterRelationshipKindSchema,
4248
- relatedRecordId: stringSchema({ minLength: 1 }),
4249
- matchedTargetHints: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
4250
- },
4251
- {
4252
- title: "OpensteerObservationClusterMember",
4253
- required: ["recordId", "relation", "matchedTargetHints"]
4254
- }
4255
- )
4256
- )
4257
- },
4258
- {
4259
- title: "OpensteerObservationCluster",
4260
- required: ["id", "observationId", "label", "channel", "url", "matchedTargetHints", "members"]
4261
- }
4262
- );
4263
- var opensteerStateSnapshotCookieSchema = objectSchema(
4264
- {
4265
- name: stringSchema({ minLength: 1 }),
4266
- value: stringSchema(),
4267
- domain: stringSchema({ minLength: 1 }),
4268
- path: stringSchema({ minLength: 1 }),
4269
- secure: { type: "boolean" },
4270
- httpOnly: { type: "boolean" },
4271
- sameSite: enumSchema(["strict", "lax", "none"]),
4272
- priority: enumSchema(["low", "medium", "high"]),
4273
- partitionKey: stringSchema({ minLength: 1 }),
4274
- session: { type: "boolean" },
4275
- expiresAt: oneOfSchema([integerSchema({ minimum: 0 }), { type: "null" }])
4276
- },
4277
- {
4278
- title: "OpensteerStateSnapshotCookie",
4279
- required: ["name", "value", "domain", "path", "secure", "httpOnly", "session"]
4280
- }
4281
- );
4282
- var opensteerStateSnapshotSchema = objectSchema(
4283
- {
4284
- id: stringSchema({ minLength: 1 }),
4285
- capturedAt: integerSchema({ minimum: 0 }),
4286
- pageRef: pageRefSchema,
4287
- url: stringSchema({ minLength: 1 }),
4288
- cookies: arraySchema(opensteerStateSnapshotCookieSchema),
4289
- storage: storageSnapshotSchema,
4290
- hiddenFields: arraySchema(
4291
- objectSchema(
4292
- {
4293
- path: stringSchema({ minLength: 1 }),
4294
- name: stringSchema({ minLength: 1 }),
4295
- value: stringSchema()
4296
- },
4297
- {
4298
- title: "OpensteerStateSnapshotHiddenField",
4299
- required: ["path", "name", "value"]
4300
- }
4301
- )
4302
- ),
4303
- globals: recordSchema({}, { title: "OpensteerStateSnapshotGlobals" })
4304
- },
4305
- {
4306
- title: "OpensteerStateSnapshot",
4307
- required: ["id", "capturedAt"]
4308
- }
4309
- );
4310
- var opensteerStateDeltaSchema = objectSchema(
4311
- {
4312
- beforeStateId: stringSchema({ minLength: 1 }),
4313
- afterStateId: stringSchema({ minLength: 1 }),
4314
- cookiesChanged: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4315
- storageChanged: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4316
- hiddenFieldsChanged: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4317
- globalsChanged: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
4318
- },
4319
- {
4320
- title: "OpensteerStateDelta",
4321
- required: ["cookiesChanged", "storageChanged", "hiddenFieldsChanged", "globalsChanged"]
4322
- }
4323
- );
4324
- var opensteerRequestInputDescriptorSchema = objectSchema(
4325
- {
4326
- name: stringSchema({ minLength: 1 }),
4327
- location: opensteerRequestInputLocationSchema,
4328
- path: stringSchema({ minLength: 1 }),
4329
- wireName: stringSchema({ minLength: 1 }),
4330
- requiredness: opensteerRequestInputRequirednessSchema,
4331
- classification: opensteerRequestInputClassificationSchema,
4332
- source: opensteerRequestInputSourceSchema,
4333
- materializationPolicy: opensteerRequestInputMaterializationPolicySchema,
4334
- exportPolicy: opensteerRequestInputExportPolicySchema,
4335
- originalValue: stringSchema(),
4336
- provenance: objectSchema(
4337
- {
4338
- recordId: stringSchema({ minLength: 1 }),
4339
- observationId: stringSchema({ minLength: 1 }),
4340
- sourcePointer: stringSchema({ minLength: 1 }),
4341
- notes: stringSchema({ minLength: 1 })
4342
- },
4343
- {
4344
- title: "OpensteerRequestInputDescriptorProvenance"
4345
- }
4346
- ),
4347
- unlockedByGuardIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
4348
- },
4349
- {
4350
- title: "OpensteerRequestInputDescriptor",
4351
- required: [
4352
- "name",
4353
- "location",
4354
- "requiredness",
4355
- "classification",
4356
- "source",
4357
- "materializationPolicy",
4358
- "exportPolicy"
4359
- ]
4360
- }
4361
- );
4362
- var opensteerExecutableResolverSchema = objectSchema(
4363
- {
4364
- id: stringSchema({ minLength: 1 }),
4365
- kind: opensteerExecutableResolverKindSchema,
4366
- label: stringSchema({ minLength: 1 }),
4367
- status: enumSchema(["ready", "missing"]),
4368
- requiresBrowser: { type: "boolean" },
4369
- requiresLiveState: { type: "boolean" },
4370
- description: stringSchema({ minLength: 1 }),
4371
- inputNames: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4372
- guardId: stringSchema({ minLength: 1 }),
4373
- traceId: stringSchema({ minLength: 1 }),
4374
- valueRef: opensteerValueReferenceSchema
4375
- },
4376
- {
4377
- title: "OpensteerExecutableResolver",
4378
- required: ["id", "kind", "label", "status", "requiresBrowser", "requiresLiveState"]
4379
- }
4380
- );
4381
- var opensteerReverseAdvisorySignalsSchema = objectSchema(
4382
- {
4383
- advisoryRank: numberSchema(),
4384
- observedAt: integerSchema({ minimum: 0 }),
4385
- targetHintMatches: integerSchema({ minimum: 0 }),
4386
- responseRichness: integerSchema({ minimum: 0 }),
4387
- portabilityWeight: integerSchema({ minimum: 0 }),
4388
- boundaryWeight: integerSchema({ minimum: 0 }),
4389
- successfulStatus: { type: "boolean" },
4390
- fetchLike: { type: "boolean" },
4391
- hasResponseBody: { type: "boolean" },
4392
- dataPathMatch: { type: "boolean" },
4393
- cookieInputCount: integerSchema({ minimum: 0 }),
4394
- storageInputCount: integerSchema({ minimum: 0 }),
4395
- volatileInputCount: integerSchema({ minimum: 0 }),
4396
- guardCount: integerSchema({ minimum: 0 })
4397
- },
4398
- {
4399
- title: "OpensteerReverseAdvisorySignals",
4400
- required: [
4401
- "advisoryRank",
4402
- "targetHintMatches",
4403
- "responseRichness",
4404
- "portabilityWeight",
4405
- "boundaryWeight",
4406
- "successfulStatus",
4407
- "fetchLike",
4408
- "hasResponseBody",
4409
- "dataPathMatch",
4410
- "cookieInputCount",
4411
- "storageInputCount",
4412
- "volatileInputCount",
4413
- "guardCount"
4414
- ]
4415
- }
4416
- );
4417
- var opensteerValidationRuleSchema = objectSchema(
4418
- {
4419
- id: stringSchema({ minLength: 1 }),
4420
- kind: opensteerValidationRuleKindSchema,
4421
- label: stringSchema({ minLength: 1 }),
4422
- required: { type: "boolean" },
4423
- expectedStatus: integerSchema({ minimum: 0 }),
4424
- structureHash: stringSchema({ minLength: 1 }),
4425
- textIncludes: stringSchema({ minLength: 1 }),
4426
- minimumCount: integerSchema({ minimum: 0 })
4427
- },
4428
- {
4429
- title: "OpensteerValidationRule",
4430
- required: ["id", "kind", "label", "required"]
4431
- }
4432
- );
4433
- var opensteerChannelDescriptorSchema = objectSchema(
4434
- {
4435
- kind: opensteerReverseChannelKindSchema,
4436
- recordKind: networkRecordKindSchema,
4437
- method: stringSchema({ minLength: 1 }),
4438
- url: stringSchema({ minLength: 1 }),
4439
- subprotocol: stringSchema({ minLength: 1 })
4440
- },
4441
- {
4442
- title: "OpensteerChannelDescriptor",
4443
- required: ["kind", "recordKind", "url"]
4444
- }
4445
- );
4446
- var opensteerReverseOperationWorkflowStepSchema = objectSchema(
4447
- {
4448
- id: stringSchema({ minLength: 1 }),
4449
- kind: enumSchema(["operation"]),
4450
- label: stringSchema({ minLength: 1 }),
4451
- operation: stringSchema({ minLength: 1 }),
4452
- input: opensteerValueTemplateSchema,
4453
- bindAs: stringSchema({ minLength: 1 })
4454
- },
4455
- {
4456
- title: "OpensteerReverseOperationWorkflowStep",
4457
- required: ["id", "kind", "label", "operation", "input"]
4458
- }
4459
- );
4460
- var opensteerReverseAwaitRecordWorkflowStepSchema = objectSchema(
4461
- {
4462
- id: stringSchema({ minLength: 1 }),
4463
- kind: enumSchema(["await-record"]),
4464
- label: stringSchema({ minLength: 1 }),
4465
- channel: opensteerChannelDescriptorSchema,
4466
- recordId: stringSchema({ minLength: 1 }),
4467
- match: objectSchema(
4468
- {
4469
- recordId: stringSchema({ minLength: 1 }),
4470
- host: stringSchema({ minLength: 1 }),
4471
- path: stringSchema({ minLength: 1 }),
4472
- method: stringSchema({ minLength: 1 }),
4473
- channel: opensteerReverseChannelKindSchema,
4474
- status: integerSchema({ minimum: 0 }),
4475
- text: stringSchema({ minLength: 1 })
4476
- },
4477
- {
4478
- title: "OpensteerReverseAwaitRecordMatch"
4479
- }
4480
- ),
4481
- validationRuleIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4482
- timeoutMs: integerSchema({ minimum: 0 }),
4483
- bindAs: stringSchema({ minLength: 1 })
4484
- },
4485
- {
4486
- title: "OpensteerReverseAwaitRecordWorkflowStep",
4487
- required: ["id", "kind", "label", "channel"]
4488
- }
4489
- );
4490
- var opensteerReverseAssertWorkflowStepSchema = objectSchema(
4491
- {
4492
- id: stringSchema({ minLength: 1 }),
4493
- kind: enumSchema(["assert"]),
4494
- label: stringSchema({ minLength: 1 }),
4495
- validationRuleIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4496
- binding: stringSchema({ minLength: 1 })
4497
- },
4498
- {
4499
- title: "OpensteerReverseAssertWorkflowStep",
4500
- required: ["id", "kind", "label", "validationRuleIds"]
4501
- }
4502
- );
4503
- var opensteerReverseWorkflowStepSchema = oneOfSchema(
4504
- [
4505
- opensteerReverseOperationWorkflowStepSchema,
4506
- opensteerReverseAwaitRecordWorkflowStepSchema,
4507
- opensteerReverseAssertWorkflowStepSchema
4508
- ],
4509
- {
4510
- title: "OpensteerReverseWorkflowStep"
4511
- }
4512
- );
4513
- var opensteerReversePackageRequirementsSchema = objectSchema(
4514
- {
4515
- requiresBrowser: { type: "boolean" },
4516
- requiresLiveState: { type: "boolean" },
4517
- manualCalibration: enumSchema(["not-needed", "recommended", "required"]),
4518
- stateSources: arraySchema(opensteerStateSourceKindSchema, { uniqueItems: true })
4519
- },
4520
- {
4521
- title: "OpensteerReversePackageRequirements",
4522
- required: ["requiresBrowser", "requiresLiveState", "manualCalibration", "stateSources"]
4523
- }
4524
- );
4525
- var opensteerReverseAdvisoryTemplateSchema = objectSchema(
4526
- {
4527
- id: stringSchema({ minLength: 1 }),
4528
- label: stringSchema({ minLength: 1 }),
4529
- channel: opensteerReverseChannelKindSchema,
4530
- execution: enumSchema(["transport", "page-observation"]),
4531
- stateSource: opensteerStateSourceKindSchema,
4532
- observationId: stringSchema({ minLength: 1 }),
4533
- transport: transportKindSchema,
4534
- guardIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4535
- resolverIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4536
- requiresBrowser: { type: "boolean" },
4537
- requiresLiveState: { type: "boolean" },
4538
- viability: enumSchema(["ready", "draft", "unsupported"]),
4539
- notes: stringSchema({ minLength: 1 })
4540
- },
4541
- {
4542
- title: "OpensteerReverseAdvisoryTemplate",
4543
- required: [
4544
- "id",
4545
- "label",
4546
- "channel",
4547
- "execution",
4548
- "stateSource",
4549
- "guardIds",
4550
- "resolverIds",
4551
- "requiresBrowser",
4552
- "requiresLiveState",
4553
- "viability"
4554
- ]
4555
- }
4556
- );
4557
- var opensteerReverseGuardRecordSchema = objectSchema(
4558
- {
4559
- id: stringSchema({ minLength: 1 }),
4560
- kind: enumSchema(["interaction", "state", "script", "manual"]),
4561
- label: stringSchema({ minLength: 1 }),
4562
- status: enumSchema(["required", "satisfied", "unresolved"]),
4563
- interactionTraceId: stringSchema({ minLength: 1 }),
4564
- notes: stringSchema({ minLength: 1 })
4565
- },
4566
- {
4567
- title: "OpensteerReverseGuardRecord",
4568
- required: ["id", "kind", "label", "status"]
4569
- }
4570
- );
4571
- var opensteerReverseObservationRecordSchema = objectSchema(
4572
- {
4573
- id: stringSchema({ minLength: 1 }),
4574
- capturedAt: integerSchema({ minimum: 0 }),
4575
- pageRef: pageRefSchema,
4576
- url: stringSchema({ minLength: 1 }),
4577
- stateSource: opensteerStateSourceKindSchema,
4578
- networkRecordIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4579
- scriptArtifactIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4580
- interactionTraceIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4581
- stateSnapshotIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4582
- notes: stringSchema({ minLength: 1 })
4583
- },
4584
- {
4585
- title: "OpensteerReverseObservationRecord",
4586
- required: [
4587
- "id",
4588
- "capturedAt",
4589
- "stateSource",
4590
- "networkRecordIds",
4591
- "scriptArtifactIds",
4592
- "interactionTraceIds",
4593
- "stateSnapshotIds"
4594
- ]
4595
- }
4596
- );
4597
- var opensteerReverseObservedRecordSchema = objectSchema(
4598
- {
4599
- recordId: stringSchema({ minLength: 1 }),
4600
- observationId: stringSchema({ minLength: 1 }),
4601
- clusterId: stringSchema({ minLength: 1 }),
4602
- observedAt: integerSchema({ minimum: 0 }),
4603
- channel: opensteerChannelDescriptorSchema,
4604
- bodyCodec: opensteerBodyCodecDescriptorSchema,
4605
- resourceType: stringSchema({ minLength: 1 }),
4606
- status: integerSchema({ minimum: 0 }),
4607
- matchedTargetHints: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4608
- relationKinds: arraySchema(opensteerObservationClusterRelationshipKindSchema, {
4609
- uniqueItems: true
4610
- })
4611
- },
4612
- {
4613
- title: "OpensteerReverseObservedRecord",
4614
- required: [
4615
- "recordId",
4616
- "observationId",
4617
- "clusterId",
4618
- "channel",
4619
- "bodyCodec",
4620
- "matchedTargetHints",
4621
- "relationKinds"
4622
- ]
4623
- }
4624
- );
4625
- var opensteerReverseCandidateRecordSchema = objectSchema(
4626
- {
4627
- id: stringSchema({ minLength: 1 }),
4628
- observationId: stringSchema({ minLength: 1 }),
4629
- clusterId: stringSchema({ minLength: 1 }),
4630
- recordId: stringSchema({ minLength: 1 }),
4631
- channel: opensteerChannelDescriptorSchema,
4632
- bodyCodec: opensteerBodyCodecDescriptorSchema,
4633
- boundary: opensteerReverseCandidateBoundarySchema,
4634
- summary: stringSchema({ minLength: 1 }),
4635
- matchedTargetHints: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4636
- advisoryTags: arraySchema(opensteerReverseAdvisoryTagSchema, { uniqueItems: true }),
4637
- constraints: arraySchema(opensteerReverseConstraintKindSchema, { uniqueItems: true }),
4638
- signals: opensteerReverseAdvisorySignalsSchema,
4639
- inputs: arraySchema(opensteerRequestInputDescriptorSchema),
4640
- resolvers: arraySchema(opensteerExecutableResolverSchema),
4641
- guardIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4642
- scriptArtifactIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4643
- advisoryTemplates: arraySchema(opensteerReverseAdvisoryTemplateSchema)
4644
- },
4645
- {
4646
- title: "OpensteerReverseCandidateRecord",
4647
- required: [
4648
- "id",
4649
- "observationId",
4650
- "clusterId",
4651
- "recordId",
4652
- "channel",
4653
- "bodyCodec",
4654
- "boundary",
4655
- "summary",
4656
- "matchedTargetHints",
4657
- "advisoryTags",
4658
- "constraints",
4659
- "signals",
4660
- "inputs",
4661
- "resolvers",
4662
- "guardIds",
4663
- "scriptArtifactIds",
4664
- "advisoryTemplates"
4665
- ]
4666
- }
4667
- );
4668
- var opensteerReverseReplayValidationSchema = objectSchema(
4669
- {
4670
- statusMatches: { type: "boolean" },
4671
- structureMatches: { type: "boolean" },
4672
- opened: { type: "boolean" },
4673
- firstChunkObserved: { type: "boolean" },
4674
- firstChunkMatches: { type: "boolean" },
4675
- messageObserved: { type: "boolean" },
4676
- messageCount: integerSchema({ minimum: 0 })
4677
- },
4678
- {
4679
- title: "OpensteerReverseReplayValidation"
4680
- }
4681
- );
4682
- var opensteerReverseReplayRunRecordSchema = objectSchema(
4683
- {
4684
- id: stringSchema({ minLength: 1 }),
4685
- createdAt: integerSchema({ minimum: 0 }),
4686
- candidateId: stringSchema({ minLength: 1 }),
4687
- templateId: stringSchema({ minLength: 1 }),
4688
- packageId: stringSchema({ minLength: 1 }),
4689
- success: { type: "boolean" },
4690
- channel: opensteerReverseChannelKindSchema,
4691
- kind: opensteerReversePackageKindSchema,
4692
- readiness: opensteerReversePackageReadinessSchema,
4693
- transport: transportKindSchema,
4694
- stateSource: opensteerStateSourceKindSchema,
4695
- executedStepIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4696
- failedStepId: stringSchema({ minLength: 1 }),
4697
- bindings: recordSchema({}, { title: "OpensteerReverseReplayRunBindings" }),
4698
- recordId: stringSchema({ minLength: 1 }),
4699
- status: integerSchema({ minimum: 0 }),
4700
- validation: opensteerReverseReplayValidationSchema,
4701
- error: stringSchema({ minLength: 1 })
4702
- },
4703
- {
4704
- title: "OpensteerReverseReplayRunRecord",
4705
- required: [
4706
- "id",
4707
- "createdAt",
4708
- "packageId",
4709
- "success",
4710
- "kind",
4711
- "readiness",
4712
- "executedStepIds",
4713
- "validation"
4714
- ]
4715
- }
4716
- );
4717
- var opensteerReverseExperimentRecordSchema = objectSchema(
4718
- {
4719
- id: stringSchema({ minLength: 1 }),
4720
- createdAt: integerSchema({ minimum: 0 }),
4721
- candidateId: stringSchema({ minLength: 1 }),
4722
- templateId: stringSchema({ minLength: 1 }),
4723
- kind: enumSchema(["replay-attempt", "field-variation"]),
4724
- hypothesis: stringSchema({ minLength: 1 }),
4725
- success: { type: "boolean" },
4726
- status: integerSchema({ minimum: 0 }),
4727
- notes: stringSchema({ minLength: 1 }),
4728
- validation: opensteerReverseReplayValidationSchema
4729
- },
4730
- {
4731
- title: "OpensteerReverseExperimentRecord",
4732
- required: ["id", "createdAt", "kind", "hypothesis", "success"]
4733
- }
4734
- );
4735
- var opensteerReverseRequirementSchema = objectSchema(
4736
- {
4737
- id: stringSchema({ minLength: 1 }),
4738
- kind: opensteerReverseRequirementKindSchema,
4739
- status: opensteerReverseRequirementStatusSchema,
4740
- label: stringSchema({ minLength: 1 }),
4741
- description: stringSchema({ minLength: 1 }),
4742
- blocking: { type: "boolean" },
4743
- resolverId: stringSchema({ minLength: 1 }),
4744
- guardId: stringSchema({ minLength: 1 }),
4745
- stepId: stringSchema({ minLength: 1 }),
4746
- inputNames: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4747
- traceId: stringSchema({ minLength: 1 }),
4748
- artifactId: stringSchema({ minLength: 1 }),
4749
- recordId: stringSchema({ minLength: 1 })
4750
- },
4751
- {
4752
- title: "OpensteerReverseRequirement",
4753
- required: ["id", "kind", "status", "label", "blocking"]
4754
- }
4755
- );
4756
- var opensteerReverseSuggestedEditSchema = objectSchema(
4757
- {
4758
- id: stringSchema({ minLength: 1 }),
4759
- kind: opensteerReverseSuggestedEditKindSchema,
4760
- label: stringSchema({ minLength: 1 }),
4761
- description: stringSchema({ minLength: 1 }),
4762
- resolverId: stringSchema({ minLength: 1 }),
4763
- guardId: stringSchema({ minLength: 1 }),
4764
- stepId: stringSchema({ minLength: 1 }),
4765
- traceId: stringSchema({ minLength: 1 }),
4766
- artifactId: stringSchema({ minLength: 1 }),
4767
- recordId: stringSchema({ minLength: 1 }),
4768
- payload: jsonValueSchema2
4769
- },
4770
- {
4771
- title: "OpensteerReverseSuggestedEdit",
4772
- required: ["id", "kind", "label"]
4773
- }
4774
- );
4775
- var opensteerReverseExportRecordSchema = objectSchema(
4776
- {
4777
- id: stringSchema({ minLength: 1 }),
4778
- createdAt: integerSchema({ minimum: 0 }),
4779
- candidateId: stringSchema({ minLength: 1 }),
4780
- templateId: stringSchema({ minLength: 1 }),
4781
- packageId: stringSchema({ minLength: 1 }),
4782
- kind: opensteerReversePackageKindSchema,
4783
- readiness: opensteerReversePackageReadinessSchema,
4784
- requestPlanId: stringSchema({ minLength: 1 })
4785
- },
4786
- {
4787
- title: "OpensteerReverseExportRecord",
4788
- required: ["id", "createdAt", "packageId", "kind", "readiness"]
4789
- }
4790
- );
4791
- var opensteerReverseCasePayloadSchema = objectSchema(
4792
- {
4793
- objective: stringSchema({ minLength: 1 }),
4794
- notes: stringSchema({ minLength: 1 }),
4795
- status: opensteerReverseCaseStatusSchema,
4796
- stateSource: opensteerStateSourceKindSchema,
4797
- observations: arraySchema(opensteerReverseObservationRecordSchema),
4798
- observationClusters: arraySchema(opensteerObservationClusterSchema),
4799
- observedRecords: arraySchema(opensteerReverseObservedRecordSchema),
4800
- candidates: arraySchema(opensteerReverseCandidateRecordSchema),
4801
- guards: arraySchema(opensteerReverseGuardRecordSchema),
4802
- stateSnapshots: arraySchema(opensteerStateSnapshotSchema),
4803
- stateDeltas: arraySchema(opensteerStateDeltaSchema),
4804
- experiments: arraySchema(opensteerReverseExperimentRecordSchema),
4805
- replayRuns: arraySchema(opensteerReverseReplayRunRecordSchema),
4806
- exports: arraySchema(opensteerReverseExportRecordSchema)
4807
- },
4808
- {
4809
- title: "OpensteerReverseCasePayload",
4810
- required: [
4811
- "objective",
4812
- "status",
4813
- "stateSource",
4814
- "observations",
4815
- "observationClusters",
4816
- "observedRecords",
4817
- "candidates",
4818
- "guards",
4819
- "stateSnapshots",
4820
- "stateDeltas",
4821
- "experiments",
4822
- "replayRuns",
4823
- "exports"
4824
- ]
4825
- }
4826
- );
4827
- objectSchema(
4828
- {
4829
- id: stringSchema({ minLength: 1 }),
4830
- key: stringSchema({ minLength: 1 }),
4831
- version: stringSchema({ minLength: 1 }),
4832
- createdAt: integerSchema({ minimum: 0 }),
4833
- updatedAt: integerSchema({ minimum: 0 }),
4834
- contentHash: stringSchema({ minLength: 1 }),
4835
- tags: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4836
- provenance: opensteerRegistryProvenanceSchema,
4837
- payload: opensteerReverseCasePayloadSchema
4838
- },
4839
- {
4840
- title: "OpensteerReverseCaseRecord",
4841
- required: ["id", "key", "version", "createdAt", "updatedAt", "contentHash", "tags", "payload"]
4842
- }
4843
- );
4844
- var opensteerReversePackagePayloadSchema = objectSchema(
4845
- {
4846
- kind: opensteerReversePackageKindSchema,
4847
- readiness: opensteerReversePackageReadinessSchema,
4848
- caseId: stringSchema({ minLength: 1 }),
4849
- objective: stringSchema({ minLength: 1 }),
4850
- source: objectSchema(
4851
- {
4852
- kind: enumSchema(["record", "candidate"]),
4853
- id: stringSchema({ minLength: 1 })
4854
- },
4855
- {
4856
- title: "OpensteerReversePackageSource",
4857
- required: ["kind", "id"]
4858
- }
4859
- ),
4860
- sourceRecordId: stringSchema({ minLength: 1 }),
4861
- candidateId: stringSchema({ minLength: 1 }),
4862
- candidate: opensteerReverseCandidateRecordSchema,
4863
- templateId: stringSchema({ minLength: 1 }),
4864
- template: opensteerReverseAdvisoryTemplateSchema,
4865
- channel: opensteerChannelDescriptorSchema,
4866
- stateSource: opensteerStateSourceKindSchema,
4867
- observationId: stringSchema({ minLength: 1 }),
4868
- transport: transportKindSchema,
4869
- guardIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4870
- workflow: arraySchema(opensteerReverseWorkflowStepSchema),
4871
- resolvers: arraySchema(opensteerExecutableResolverSchema),
4872
- validators: arraySchema(opensteerValidationRuleSchema),
4873
- stateSnapshots: arraySchema(opensteerStateSnapshotSchema),
4874
- requirements: opensteerReversePackageRequirementsSchema,
4875
- requestPlanId: stringSchema({ minLength: 1 }),
4876
- unresolvedRequirements: arraySchema(opensteerReverseRequirementSchema),
4877
- suggestedEdits: arraySchema(opensteerReverseSuggestedEditSchema),
4878
- attachedTraceIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4879
- attachedArtifactIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4880
- attachedRecordIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4881
- notes: stringSchema({ minLength: 1 }),
4882
- parentPackageId: stringSchema({ minLength: 1 })
4883
- },
4884
- {
4885
- title: "OpensteerReversePackagePayload",
4886
- required: [
4887
- "kind",
4888
- "readiness",
4889
- "caseId",
4890
- "objective",
4891
- "source",
4892
- "sourceRecordId",
4893
- "guardIds",
4894
- "workflow",
4895
- "resolvers",
4896
- "validators",
4897
- "stateSnapshots",
4898
- "requirements",
4899
- "unresolvedRequirements",
4900
- "suggestedEdits",
4901
- "attachedTraceIds",
4902
- "attachedArtifactIds",
4903
- "attachedRecordIds"
4904
- ]
4905
- }
4906
- );
4907
- var opensteerReversePackageRecordSchema = objectSchema(
4908
- {
4909
- id: stringSchema({ minLength: 1 }),
4910
- key: stringSchema({ minLength: 1 }),
4911
- version: stringSchema({ minLength: 1 }),
4912
- createdAt: integerSchema({ minimum: 0 }),
4913
- updatedAt: integerSchema({ minimum: 0 }),
4914
- contentHash: stringSchema({ minLength: 1 }),
4915
- tags: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4916
- provenance: opensteerRegistryProvenanceSchema,
4917
- payload: opensteerReversePackagePayloadSchema
4918
- },
4919
- {
4920
- title: "OpensteerReversePackageRecord",
4921
- required: ["id", "key", "version", "createdAt", "updatedAt", "contentHash", "tags", "payload"]
4922
- }
4923
- );
4924
- var opensteerReverseCandidateReportItemSchema = objectSchema(
4925
- {
4926
- candidateId: stringSchema({ minLength: 1 }),
4927
- clusterId: stringSchema({ minLength: 1 }),
4928
- advisoryRank: numberSchema(),
4929
- bodyCodec: opensteerBodyCodecDescriptorSchema,
4930
- summary: stringSchema({ minLength: 1 }),
4931
- advisoryTags: arraySchema(opensteerReverseAdvisoryTagSchema, { uniqueItems: true }),
4932
- constraints: arraySchema(opensteerReverseConstraintKindSchema, { uniqueItems: true }),
4933
- signals: opensteerReverseAdvisorySignalsSchema,
4934
- reasons: arraySchema(stringSchema({ minLength: 1 }))
4935
- },
4936
- {
4937
- title: "OpensteerReverseCandidateAdvisoryItem",
4938
- required: [
4939
- "candidateId",
4940
- "clusterId",
4941
- "advisoryRank",
4942
- "bodyCodec",
4943
- "summary",
4944
- "advisoryTags",
4945
- "constraints",
4946
- "signals",
4947
- "reasons"
4948
- ]
4949
- }
4950
- );
4951
- var opensteerReverseDiscoverySummaryCountsSchema = objectSchema(
4952
- {
4953
- hosts: recordSchema(integerSchema({ minimum: 0 }), { title: "OpensteerReverseSummaryHosts" }),
4954
- channels: recordSchema(integerSchema({ minimum: 0 }), {
4955
- title: "OpensteerReverseSummaryChannels"
4956
- }),
4957
- resourceTypes: recordSchema(integerSchema({ minimum: 0 }), {
4958
- title: "OpensteerReverseSummaryResourceTypes"
4959
- }),
4960
- advisoryTags: recordSchema(integerSchema({ minimum: 0 }), {
4961
- title: "OpensteerReverseSummaryAdvisoryTags"
4962
- }),
4963
- constraints: recordSchema(integerSchema({ minimum: 0 }), {
4964
- title: "OpensteerReverseSummaryConstraints"
4965
- }),
4966
- relationKinds: recordSchema(integerSchema({ minimum: 0 }), {
4967
- title: "OpensteerReverseSummaryRelationKinds"
4968
- })
4969
- },
4970
- {
4971
- title: "OpensteerReverseDiscoverySummaryCounts",
4972
- required: [
4973
- "hosts",
4974
- "channels",
4975
- "resourceTypes",
4976
- "advisoryTags",
4977
- "constraints",
4978
- "relationKinds"
4979
- ]
4980
- }
4981
- );
4982
- var opensteerReverseReportPayloadSchema = objectSchema(
4983
- {
4984
- kind: opensteerReverseReportKindSchema,
4985
- caseId: stringSchema({ minLength: 1 }),
4986
- objective: stringSchema({ minLength: 1 }),
4987
- packageId: stringSchema({ minLength: 1 }),
4988
- packageKind: opensteerReversePackageKindSchema,
4989
- packageReadiness: opensteerReversePackageReadinessSchema,
4990
- observations: arraySchema(opensteerReverseObservationRecordSchema),
4991
- observationClusters: arraySchema(opensteerObservationClusterSchema),
4992
- observedRecords: arraySchema(opensteerReverseObservedRecordSchema),
4993
- guards: arraySchema(opensteerReverseGuardRecordSchema),
4994
- stateDeltas: arraySchema(opensteerStateDeltaSchema),
4995
- summaryCounts: opensteerReverseDiscoverySummaryCountsSchema,
4996
- candidateAdvisories: arraySchema(opensteerReverseCandidateReportItemSchema),
4997
- query: objectSchema(
4998
- {
4999
- view: opensteerReverseQueryViewSchema,
5000
- filters: objectSchema(
5001
- {
5002
- recordId: stringSchema({ minLength: 1 }),
5003
- clusterId: stringSchema({ minLength: 1 }),
5004
- candidateId: stringSchema({ minLength: 1 }),
5005
- host: stringSchema({ minLength: 1 }),
5006
- path: stringSchema({ minLength: 1 }),
5007
- method: stringSchema({ minLength: 1 }),
5008
- status: stringSchema({ minLength: 1 }),
5009
- resourceType: stringSchema({ minLength: 1 }),
5010
- channel: opensteerReverseChannelKindSchema,
5011
- boundary: opensteerReverseCandidateBoundarySchema,
5012
- advisoryTag: opensteerReverseAdvisoryTagSchema,
5013
- constraint: opensteerReverseConstraintKindSchema,
5014
- bodyCodec: opensteerBodyCodecKindSchema,
5015
- relationKind: opensteerObservationClusterRelationshipKindSchema,
5016
- hasGuards: { type: "boolean" },
5017
- hasResolvers: { type: "boolean" },
5018
- artifactId: stringSchema({ minLength: 1 }),
5019
- stateSnapshotId: stringSchema({ minLength: 1 }),
5020
- traceId: stringSchema({ minLength: 1 }),
5021
- evidenceRef: stringSchema({ minLength: 1 }),
5022
- text: stringSchema({ minLength: 1 })
5023
- },
5024
- {
5025
- title: "OpensteerReverseReportQueryFilters"
5026
- }
5027
- ),
5028
- sort: objectSchema(
5029
- {
5030
- preset: opensteerReverseSortPresetSchema,
5031
- keys: arraySchema(
5032
- objectSchema(
5033
- {
5034
- key: opensteerReverseSortKeySchema,
5035
- direction: opensteerReverseSortDirectionSchema
5036
- },
5037
- {
5038
- title: "OpensteerReverseReportQuerySortTerm",
5039
- required: ["key"]
5040
- }
5041
- ),
5042
- { minItems: 1 }
5043
- )
5044
- },
5045
- {
5046
- title: "OpensteerReverseReportQuerySort"
5047
- }
5048
- ),
5049
- limit: integerSchema({ minimum: 1 }),
5050
- totalCount: integerSchema({ minimum: 0 }),
5051
- nextCursor: stringSchema({ minLength: 1 }),
5052
- resultIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
5053
- },
5054
- {
5055
- title: "OpensteerReverseQuerySnapshot",
5056
- required: ["view", "sort", "limit", "totalCount", "resultIds"]
5057
- }
5058
- ),
5059
- experiments: arraySchema(opensteerReverseExperimentRecordSchema),
5060
- replayRuns: arraySchema(opensteerReverseReplayRunRecordSchema),
5061
- unresolvedRequirements: arraySchema(opensteerReverseRequirementSchema),
5062
- suggestedEdits: arraySchema(opensteerReverseSuggestedEditSchema),
5063
- linkedNetworkRecordIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
5064
- linkedInteractionTraceIds: arraySchema(stringSchema({ minLength: 1 }), {
5065
- uniqueItems: true
5066
- }),
5067
- linkedArtifactIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
5068
- linkedStateSnapshotIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
5069
- package: opensteerReversePackageRecordSchema
5070
- },
5071
- {
5072
- title: "OpensteerReverseReportPayload",
5073
- required: [
5074
- "kind",
5075
- "caseId",
5076
- "objective",
5077
- "observations",
5078
- "observationClusters",
5079
- "observedRecords",
5080
- "guards",
5081
- "stateDeltas",
5082
- "summaryCounts",
5083
- "candidateAdvisories",
5084
- "experiments",
5085
- "replayRuns",
5086
- "linkedNetworkRecordIds",
5087
- "linkedInteractionTraceIds",
5088
- "linkedArtifactIds",
5089
- "linkedStateSnapshotIds"
5090
- ]
5091
- }
5092
- );
5093
- var opensteerReverseReportRecordSchema = objectSchema(
5094
- {
5095
- id: stringSchema({ minLength: 1 }),
5096
- key: stringSchema({ minLength: 1 }),
5097
- version: stringSchema({ minLength: 1 }),
5098
- createdAt: integerSchema({ minimum: 0 }),
5099
- updatedAt: integerSchema({ minimum: 0 }),
5100
- contentHash: stringSchema({ minLength: 1 }),
5101
- tags: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
5102
- provenance: opensteerRegistryProvenanceSchema,
5103
- payload: opensteerReverseReportPayloadSchema
5104
- },
5105
- {
5106
- title: "OpensteerReverseReportRecord",
5107
- required: ["id", "key", "version", "createdAt", "updatedAt", "contentHash", "tags", "payload"]
5108
- }
5109
- );
5110
- var opensteerReverseNetworkFilterSchema = objectSchema(
5111
- {
5112
- url: stringSchema({ minLength: 1 }),
5113
- hostname: stringSchema({ minLength: 1 }),
5114
- path: stringSchema({ minLength: 1 }),
5115
- method: stringSchema({ minLength: 1 }),
5116
- resourceType: stringSchema({ minLength: 1 }),
5117
- includeBodies: { type: "boolean" }
5118
- },
5119
- {
5120
- title: "OpensteerReverseCaptureNetworkFilter"
5121
- }
5122
- );
5123
- var opensteerReverseQueryFiltersSchema = objectSchema(
5124
- {
5125
- recordId: stringSchema({ minLength: 1 }),
5126
- clusterId: stringSchema({ minLength: 1 }),
5127
- candidateId: stringSchema({ minLength: 1 }),
5128
- host: stringSchema({ minLength: 1 }),
5129
- path: stringSchema({ minLength: 1 }),
5130
- method: stringSchema({ minLength: 1 }),
5131
- status: stringSchema({ minLength: 1 }),
5132
- resourceType: stringSchema({ minLength: 1 }),
5133
- channel: opensteerReverseChannelKindSchema,
5134
- boundary: opensteerReverseCandidateBoundarySchema,
5135
- advisoryTag: opensteerReverseAdvisoryTagSchema,
5136
- constraint: opensteerReverseConstraintKindSchema,
5137
- bodyCodec: opensteerBodyCodecKindSchema,
5138
- relationKind: opensteerObservationClusterRelationshipKindSchema,
5139
- hasGuards: { type: "boolean" },
5140
- hasResolvers: { type: "boolean" },
5141
- artifactId: stringSchema({ minLength: 1 }),
5142
- stateSnapshotId: stringSchema({ minLength: 1 }),
5143
- traceId: stringSchema({ minLength: 1 }),
5144
- evidenceRef: stringSchema({ minLength: 1 }),
5145
- text: stringSchema({ minLength: 1 })
5146
- },
5147
- {
5148
- title: "OpensteerReverseQueryFilters"
5149
- }
5150
- );
5151
- var opensteerReverseQuerySortSchema = objectSchema(
5152
- {
5153
- preset: opensteerReverseSortPresetSchema,
5154
- keys: arraySchema(
5155
- objectSchema(
5156
- {
5157
- key: opensteerReverseSortKeySchema,
5158
- direction: opensteerReverseSortDirectionSchema
5159
- },
5160
- {
5161
- title: "OpensteerReverseSortTerm",
5162
- required: ["key"]
5163
- }
5164
- ),
5165
- { minItems: 1 }
5166
- )
5167
- },
5168
- {
5169
- title: "OpensteerReverseQuerySort"
5170
- }
5171
- );
5172
- var opensteerReverseQuerySnapshotSchema = objectSchema(
5173
- {
5174
- view: opensteerReverseQueryViewSchema,
5175
- filters: opensteerReverseQueryFiltersSchema,
5176
- sort: opensteerReverseQuerySortSchema,
5177
- limit: integerSchema({ minimum: 1, maximum: 200 }),
5178
- totalCount: integerSchema({ minimum: 0 }),
5179
- nextCursor: stringSchema({ minLength: 1 }),
5180
- resultIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
5181
- },
5182
- {
5183
- title: "OpensteerReverseQuerySnapshot",
5184
- required: ["view", "sort", "limit", "totalCount", "resultIds"]
5185
- }
5186
- );
5187
- var opensteerReverseQueryRecordItemSchema = objectSchema(
5188
- {
5189
- record: opensteerReverseObservedRecordSchema,
5190
- candidateIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
5191
- },
5192
- {
5193
- title: "OpensteerReverseQueryRecordItem",
5194
- required: ["record", "candidateIds"]
5195
- }
5196
- );
5197
- var opensteerReverseQueryClusterItemSchema = objectSchema(
5198
- {
5199
- cluster: opensteerObservationClusterSchema,
5200
- candidateIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
5201
- },
5202
- {
5203
- title: "OpensteerReverseQueryClusterItem",
5204
- required: ["cluster", "candidateIds"]
5205
- }
5206
- );
5207
- var opensteerReverseQueryCandidateItemSchema = objectSchema(
5208
- {
5209
- candidate: opensteerReverseCandidateRecordSchema,
5210
- reasons: arraySchema(stringSchema({ minLength: 1 }))
5211
- },
5212
- {
5213
- title: "OpensteerReverseQueryCandidateItem",
5214
- required: ["candidate", "reasons"]
5215
- }
5216
- );
5217
- objectSchema(
5218
- {
5219
- caseId: stringSchema({ minLength: 1 }),
5220
- key: stringSchema({ minLength: 1 }),
5221
- objective: stringSchema({ minLength: 1 }),
5222
- notes: stringSchema({ minLength: 1 }),
5223
- tags: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
5224
- pageRef: pageRefSchema,
5225
- stateSource: opensteerStateSourceKindSchema,
5226
- network: opensteerReverseNetworkFilterSchema,
5227
- includeScripts: { type: "boolean" },
5228
- includeStorage: { type: "boolean" },
5229
- includeSessionStorage: { type: "boolean" },
5230
- includeIndexedDb: { type: "boolean" },
5231
- interactionTraceIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
5232
- targetHints: opensteerReverseTargetHintsSchema,
5233
- captureWindowMs: integerSchema({ minimum: 0 }),
5234
- manualCalibration: opensteerReverseManualCalibrationModeSchema
5235
- },
5236
- {
5237
- title: "OpensteerReverseDiscoverInput"
5238
- }
5239
- );
5240
- objectSchema(
5241
- {
5242
- caseId: stringSchema({ minLength: 1 }),
5243
- reportId: stringSchema({ minLength: 1 }),
5244
- summary: objectSchema(
5245
- {
5246
- observationIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
5247
- recordCount: integerSchema({ minimum: 0 }),
5248
- clusterCount: integerSchema({ minimum: 0 }),
5249
- candidateCount: integerSchema({ minimum: 0 })
5250
- },
5251
- {
5252
- title: "OpensteerReverseDiscoverSummary",
5253
- required: ["observationIds", "recordCount", "clusterCount", "candidateCount"]
5254
- }
5255
- ),
5256
- index: objectSchema(
5257
- {
5258
- views: arraySchema(opensteerReverseQueryViewSchema, { uniqueItems: true }),
5259
- sortableKeys: arraySchema(opensteerReverseSortKeySchema, { uniqueItems: true }),
5260
- channels: arraySchema(opensteerReverseChannelKindSchema, { uniqueItems: true }),
5261
- hosts: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
5262
- relationKinds: arraySchema(opensteerObservationClusterRelationshipKindSchema, {
5263
- uniqueItems: true
5264
- })
5265
- },
5266
- {
5267
- title: "OpensteerReverseDiscoverIndex",
5268
- required: ["views", "sortableKeys", "channels", "hosts", "relationKinds"]
5269
- }
5270
- )
5271
- },
5272
- {
5273
- title: "OpensteerReverseDiscoverOutput",
5274
- required: ["caseId", "reportId", "summary", "index"]
5275
- }
5276
- );
5277
- objectSchema(
5278
- {
5279
- caseId: stringSchema({ minLength: 1 }),
5280
- view: opensteerReverseQueryViewSchema,
5281
- filters: opensteerReverseQueryFiltersSchema,
5282
- sort: opensteerReverseQuerySortSchema,
5283
- limit: integerSchema({ minimum: 1, maximum: 200 }),
5284
- cursor: stringSchema({ minLength: 1 })
5285
- },
5286
- {
5287
- title: "OpensteerReverseQueryInput",
5288
- required: ["caseId"]
5289
- }
5290
- );
5291
- objectSchema(
5292
- {
5293
- caseId: stringSchema({ minLength: 1 }),
5294
- view: opensteerReverseQueryViewSchema,
5295
- query: opensteerReverseQuerySnapshotSchema,
5296
- totalCount: integerSchema({ minimum: 0 }),
5297
- nextCursor: stringSchema({ minLength: 1 }),
5298
- records: arraySchema(opensteerReverseQueryRecordItemSchema),
5299
- clusters: arraySchema(opensteerReverseQueryClusterItemSchema),
5300
- candidates: arraySchema(opensteerReverseQueryCandidateItemSchema)
5301
- },
5302
- {
5303
- title: "OpensteerReverseQueryOutput",
5304
- required: ["caseId", "view", "query", "totalCount"]
5305
- }
5306
- );
5307
- objectSchema(
5308
- {
5309
- caseId: stringSchema({ minLength: 1 }),
5310
- source: objectSchema(
5311
- {
5312
- kind: enumSchema(["record", "candidate"]),
5313
- id: stringSchema({ minLength: 1 })
5314
- },
5315
- {
5316
- title: "OpensteerReversePackageCreateSource",
5317
- required: ["kind", "id"]
5318
- }
5319
- ),
5320
- templateId: stringSchema({ minLength: 1 }),
5321
- key: stringSchema({ minLength: 1 }),
5322
- version: stringSchema({ minLength: 1 }),
5323
- notes: stringSchema({ minLength: 1 })
5324
- },
5325
- {
5326
- title: "OpensteerReversePackageCreateInput",
5327
- required: ["caseId", "source"]
5328
- }
5329
- );
5330
- objectSchema(
5331
- {
5332
- package: opensteerReversePackageRecordSchema,
5333
- report: opensteerReverseReportRecordSchema
5334
- },
5335
- {
5336
- title: "OpensteerReversePackageCreateOutput",
5337
- required: ["package", "report"]
5338
- }
5339
- );
5340
- objectSchema(
5341
- {
5342
- packageId: stringSchema({ minLength: 1 }),
5343
- pageRef: pageRefSchema
5344
- },
5345
- {
5346
- title: "OpensteerReversePackageRunInput",
5347
- required: ["packageId"]
5348
- }
5349
- );
5350
- objectSchema(
5351
- {
5352
- packageId: stringSchema({ minLength: 1 }),
5353
- caseId: stringSchema({ minLength: 1 }),
5354
- source: objectSchema(
5355
- {
5356
- kind: enumSchema(["record", "candidate"]),
5357
- id: stringSchema({ minLength: 1 })
5358
- },
5359
- {
5360
- title: "OpensteerReversePackageRunSource",
5361
- required: ["kind", "id"]
5362
- }
5363
- ),
5364
- candidateId: stringSchema({ minLength: 1 }),
5365
- templateId: stringSchema({ minLength: 1 }),
5366
- success: { type: "boolean" },
5367
- kind: opensteerReversePackageKindSchema,
5368
- readiness: opensteerReversePackageReadinessSchema,
5369
- channel: opensteerReverseChannelKindSchema,
5370
- transport: transportKindSchema,
5371
- stateSource: opensteerStateSourceKindSchema,
5372
- recordId: stringSchema({ minLength: 1 }),
5373
- status: integerSchema({ minimum: 0 }),
5374
- validation: opensteerReverseReplayValidationSchema,
5375
- executedStepIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
5376
- failedStepId: stringSchema({ minLength: 1 }),
5377
- bindings: recordSchema({}, { title: "OpensteerReversePackageRunBindings" }),
5378
- replayRunId: stringSchema({ minLength: 1 }),
5379
- unresolvedRequirements: arraySchema(opensteerReverseRequirementSchema),
5380
- suggestedEdits: arraySchema(opensteerReverseSuggestedEditSchema),
5381
- error: stringSchema({ minLength: 1 })
5382
- },
5383
- {
5384
- title: "OpensteerReversePackageRunOutput",
5385
- required: [
5386
- "packageId",
5387
- "source",
5388
- "success",
5389
- "kind",
5390
- "readiness",
5391
- "validation",
5392
- "executedStepIds",
5393
- "bindings",
5394
- "unresolvedRequirements",
5395
- "suggestedEdits"
5396
- ]
5397
- }
5398
- );
5399
- objectSchema(
5400
- {
5401
- packageId: stringSchema({ minLength: 1 }),
5402
- key: stringSchema({ minLength: 1 }),
5403
- version: stringSchema({ minLength: 1 })
5404
- },
5405
- {
5406
- title: "OpensteerReverseExportInput",
5407
- required: ["packageId"]
5408
- }
5409
- );
5410
- objectSchema(
5411
- {
5412
- package: opensteerReversePackageRecordSchema,
5413
- requestPlan: opensteerRequestPlanRecordSchema
5414
- },
5415
- {
5416
- title: "OpensteerReverseExportOutput",
5417
- required: ["package"]
5418
- }
5419
- );
5420
- objectSchema(
5421
- {
5422
- caseId: stringSchema({ minLength: 1 }),
5423
- packageId: stringSchema({ minLength: 1 }),
5424
- reportId: stringSchema({ minLength: 1 }),
5425
- kind: opensteerReverseReportKindSchema
5426
- },
5427
- {
5428
- title: "OpensteerReverseReportInput"
5429
- }
5430
- );
5431
- objectSchema(
5432
- {
5433
- report: opensteerReverseReportRecordSchema
5434
- },
5435
- {
5436
- title: "OpensteerReverseReportOutput",
5437
- required: ["report"]
5438
- }
5439
- );
5440
- objectSchema(
5441
- {
5442
- packageId: stringSchema({ minLength: 1 })
5443
- },
5444
- {
5445
- title: "OpensteerReversePackageGetInput",
5446
- required: ["packageId"]
5447
- }
5448
- );
5449
- objectSchema(
5450
- {
5451
- package: opensteerReversePackageRecordSchema
5452
- },
5453
- {
5454
- title: "OpensteerReversePackageGetOutput",
5455
- required: ["package"]
5456
- }
5457
- );
5458
- objectSchema(
5459
- {
5460
- caseId: stringSchema({ minLength: 1 }),
5461
- key: stringSchema({ minLength: 1 }),
5462
- kind: opensteerReversePackageKindSchema,
5463
- readiness: opensteerReversePackageReadinessSchema
3497
+ {
3498
+ urlPattern: stringSchema({ minLength: 1 }),
3499
+ mode: sandboxAjaxModeSchema,
3500
+ mockResponse: objectSchema(
3501
+ {
3502
+ status: integerSchema({ minimum: 100, maximum: 599 }),
3503
+ headers: recordSchema(stringSchema(), {
3504
+ title: "SandboxAjaxMockHeaders"
3505
+ }),
3506
+ body: stringSchema()
3507
+ },
3508
+ {
3509
+ title: "SandboxAjaxMockResponse",
3510
+ required: ["status"]
3511
+ }
3512
+ )
5464
3513
  },
5465
3514
  {
5466
- title: "OpensteerReversePackageListInput"
3515
+ title: "SandboxAjaxRoute",
3516
+ required: ["urlPattern", "mode"]
5467
3517
  }
5468
3518
  );
5469
- objectSchema(
3519
+ var opensteerScriptSandboxInputSchema = objectSchema(
5470
3520
  {
5471
- packages: arraySchema(opensteerReversePackageRecordSchema)
3521
+ artifactId: stringSchema({ minLength: 1 }),
3522
+ content: stringSchema(),
3523
+ fidelity: sandboxFidelitySchema,
3524
+ ajaxRoutes: arraySchema(sandboxAjaxRouteSchema),
3525
+ cookies: recordSchema(stringSchema(), {
3526
+ title: "SandboxCookies"
3527
+ }),
3528
+ globals: objectSchema(
3529
+ {},
3530
+ {
3531
+ title: "SandboxGlobals",
3532
+ additionalProperties: true
3533
+ }
3534
+ ),
3535
+ timeoutMs: integerSchema({ minimum: 1 }),
3536
+ clockMode: enumSchema(["real", "manual"])
5472
3537
  },
5473
3538
  {
5474
- title: "OpensteerReversePackageListOutput",
5475
- required: ["packages"]
3539
+ title: "OpensteerScriptSandboxInput"
5476
3540
  }
5477
3541
  );
5478
- objectSchema(
3542
+ var sandboxCapturedAjaxCallSchema = objectSchema(
5479
3543
  {
5480
- packageId: stringSchema({ minLength: 1 }),
5481
- key: stringSchema({ minLength: 1 }),
5482
- version: stringSchema({ minLength: 1 }),
5483
- notes: stringSchema({ minLength: 1 }),
5484
- workflow: arraySchema(opensteerReverseWorkflowStepSchema),
5485
- resolvers: arraySchema(opensteerExecutableResolverSchema),
5486
- validators: arraySchema(opensteerValidationRuleSchema),
5487
- attachedTraceIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
5488
- attachedArtifactIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
5489
- attachedRecordIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
5490
- stateSnapshotIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
3544
+ method: stringSchema({ minLength: 1 }),
3545
+ url: stringSchema({ minLength: 1 }),
3546
+ headers: recordSchema(stringSchema(), {
3547
+ title: "SandboxCapturedAjaxHeaders"
3548
+ }),
3549
+ body: stringSchema(),
3550
+ timestamp: integerSchema({ minimum: 0 })
5491
3551
  },
5492
3552
  {
5493
- title: "OpensteerReversePackagePatchInput",
5494
- required: ["packageId"]
3553
+ title: "SandboxCapturedAjaxCall",
3554
+ required: ["method", "url", "headers", "timestamp"]
5495
3555
  }
5496
3556
  );
5497
- objectSchema(
3557
+ var opensteerScriptSandboxOutputSchema = objectSchema(
5498
3558
  {
5499
- package: opensteerReversePackageRecordSchema,
5500
- report: opensteerReverseReportRecordSchema
3559
+ result: oneOfSchema(
3560
+ [
3561
+ objectSchema({}, { additionalProperties: true }),
3562
+ arraySchema({}),
3563
+ stringSchema(),
3564
+ { type: "number" },
3565
+ enumSchema([true, false, null])
3566
+ ],
3567
+ {
3568
+ title: "SandboxResult"
3569
+ }
3570
+ ),
3571
+ capturedAjax: arraySchema(sandboxCapturedAjaxCallSchema),
3572
+ errors: arraySchema(stringSchema({ minLength: 1 })),
3573
+ durationMs: integerSchema({ minimum: 0 })
5501
3574
  },
5502
3575
  {
5503
- title: "OpensteerReversePackagePatchOutput",
5504
- required: ["package", "report"]
3576
+ title: "OpensteerScriptSandboxOutput",
3577
+ required: ["capturedAjax", "errors", "durationMs"]
5505
3578
  }
5506
3579
  );
5507
3580
 
@@ -6356,12 +4429,12 @@ var opensteerDomExtractInputSchema = defineSchema({
6356
4429
  ),
6357
4430
  anyOf: [defineSchema({ required: ["persist"] }), defineSchema({ required: ["schema"] })]
6358
4431
  });
6359
- var jsonValueSchema3 = recordSchema({}, { title: "JsonValueRecord" });
4432
+ var jsonValueSchema2 = recordSchema({}, { title: "JsonValueRecord" });
6360
4433
  var opensteerDomExtractOutputSchema = objectSchema(
6361
4434
  {
6362
4435
  data: oneOfSchema(
6363
4436
  [
6364
- jsonValueSchema3,
4437
+ jsonValueSchema2,
6365
4438
  arraySchema({}),
6366
4439
  stringSchema(),
6367
4440
  numberSchema(),
@@ -6764,7 +4837,7 @@ var opensteerSemanticOperationSpecificationsBase = [
6764
4837
  }),
6765
4838
  defineSemanticOperationSpec({
6766
4839
  name: "artifact.read",
6767
- description: "Read a persisted artifact by ID so agents can inspect captured scripts, storage, cookies, or snapshots linked from reverse packages and reports.",
4840
+ description: "Read a persisted artifact by ID so agents can inspect captured scripts, storage, cookies, or snapshots linked from recorded workflows.",
6768
4841
  inputSchema: opensteerArtifactReadInputSchema,
6769
4842
  outputSchema: opensteerArtifactReadOutputSchema,
6770
4843
  requiredCapabilities: []
@@ -8084,76 +6157,6 @@ var FilesystemRequestPlanRegistry = class extends FilesystemRegistryStore {
8084
6157
  });
8085
6158
  }
8086
6159
  };
8087
- var FilesystemAuthRecipeRegistry = class extends FilesystemRegistryStore {
8088
- constructor(rootPath) {
8089
- super(rootPath, ["registry", "auth-recipes"]);
8090
- }
8091
- async write(input) {
8092
- const id = normalizeNonEmptyString("id", input.id ?? `auth-recipe:${crypto.randomUUID()}`);
8093
- const key = normalizeNonEmptyString("key", input.key);
8094
- const version = normalizeNonEmptyString("version", input.version);
8095
- const createdAt = normalizeTimestamp("createdAt", input.createdAt ?? Date.now());
8096
- const updatedAt = normalizeTimestamp("updatedAt", input.updatedAt ?? createdAt);
8097
- if (updatedAt < createdAt) {
8098
- throw new RangeError("updatedAt must be greater than or equal to createdAt");
8099
- }
8100
- const payload = input.payload;
8101
- const contentHash = sha256Hex(Buffer.from(canonicalJsonString(payload), "utf8"));
8102
- const provenance = normalizeProvenance2(input.provenance);
8103
- const record = {
8104
- id,
8105
- key,
8106
- version,
8107
- createdAt,
8108
- updatedAt,
8109
- contentHash,
8110
- tags: normalizeTags(input.tags),
8111
- ...provenance === void 0 ? {} : { provenance },
8112
- payload
8113
- };
8114
- return this.writeRecord(record);
8115
- }
8116
- async list(input = {}) {
8117
- const key = input.key === void 0 ? void 0 : normalizeNonEmptyString("key", input.key);
8118
- const records = await this.readAllRecords();
8119
- return key === void 0 ? records : records.filter((record) => record.key === key);
8120
- }
8121
- };
8122
- var FilesystemRecipeRegistry = class extends FilesystemRegistryStore {
8123
- constructor(rootPath) {
8124
- super(rootPath, ["registry", "recipes"]);
8125
- }
8126
- async write(input) {
8127
- const id = normalizeNonEmptyString("id", input.id ?? `recipe:${crypto.randomUUID()}`);
8128
- const key = normalizeNonEmptyString("key", input.key);
8129
- const version = normalizeNonEmptyString("version", input.version);
8130
- const createdAt = normalizeTimestamp("createdAt", input.createdAt ?? Date.now());
8131
- const updatedAt = normalizeTimestamp("updatedAt", input.updatedAt ?? createdAt);
8132
- if (updatedAt < createdAt) {
8133
- throw new RangeError("updatedAt must be greater than or equal to createdAt");
8134
- }
8135
- const payload = input.payload;
8136
- const contentHash = sha256Hex(Buffer.from(canonicalJsonString(payload), "utf8"));
8137
- const provenance = normalizeProvenance2(input.provenance);
8138
- const record = {
8139
- id,
8140
- key,
8141
- version,
8142
- createdAt,
8143
- updatedAt,
8144
- contentHash,
8145
- tags: normalizeTags(input.tags),
8146
- ...provenance === void 0 ? {} : { provenance },
8147
- payload
8148
- };
8149
- return this.writeRecord(record);
8150
- }
8151
- async list(input = {}) {
8152
- const key = input.key === void 0 ? void 0 : normalizeNonEmptyString("key", input.key);
8153
- const records = await this.readAllRecords();
8154
- return key === void 0 ? records : records.filter((record) => record.key === key);
8155
- }
8156
- };
8157
6160
  var FilesystemInteractionTraceRegistry = class extends FilesystemRegistryStore {
8158
6161
  constructor(rootPath) {
8159
6162
  super(rootPath, ["registry", "interaction-traces"]);
@@ -8189,163 +6192,15 @@ var FilesystemInteractionTraceRegistry = class extends FilesystemRegistryStore {
8189
6192
  return key === void 0 ? records : records.filter((record) => record.key === key);
8190
6193
  }
8191
6194
  };
8192
- var FilesystemReverseCaseRegistry = class extends FilesystemRegistryStore {
8193
- constructor(rootPath) {
8194
- super(rootPath, ["registry", "reverse-cases"]);
8195
- }
8196
- async write(input) {
8197
- const id = normalizeNonEmptyString("id", input.id ?? `reverse-case:${crypto.randomUUID()}`);
8198
- const key = normalizeNonEmptyString("key", input.key);
8199
- const version = normalizeNonEmptyString("version", input.version);
8200
- const createdAt = normalizeTimestamp("createdAt", input.createdAt ?? Date.now());
8201
- const updatedAt = normalizeTimestamp("updatedAt", input.updatedAt ?? createdAt);
8202
- if (updatedAt < createdAt) {
8203
- throw new RangeError("updatedAt must be greater than or equal to createdAt");
8204
- }
8205
- const payload = input.payload;
8206
- const contentHash = sha256Hex(Buffer.from(canonicalJsonString(payload), "utf8"));
8207
- const provenance = normalizeProvenance2(input.provenance);
8208
- const record = {
8209
- id,
8210
- key,
8211
- version,
8212
- createdAt,
8213
- updatedAt,
8214
- contentHash,
8215
- tags: normalizeTags(input.tags),
8216
- ...provenance === void 0 ? {} : { provenance },
8217
- payload
8218
- };
8219
- return this.writeRecord(record);
8220
- }
8221
- async list(input = {}) {
8222
- const key = input.key === void 0 ? void 0 : normalizeNonEmptyString("key", input.key);
8223
- const records = await this.readAllRecords();
8224
- return key === void 0 ? records : records.filter((record) => record.key === key);
8225
- }
8226
- async update(input) {
8227
- const id = normalizeNonEmptyString("id", input.id);
8228
- return withFilesystemLock(this.writeLockPath(), async () => {
8229
- const existing = await this.getById(id);
8230
- if (existing === void 0) {
8231
- throw new Error(`registry record ${id} was not found`);
8232
- }
8233
- const nextUpdatedAt = normalizeTimestamp(
8234
- "updatedAt",
8235
- input.updatedAt ?? Math.max(Date.now(), existing.updatedAt)
8236
- );
8237
- if (nextUpdatedAt < existing.createdAt) {
8238
- throw new RangeError("updatedAt must be greater than or equal to createdAt");
8239
- }
8240
- const nextPayload = input.payload;
8241
- const nextProvenance = normalizeProvenance2(input.provenance ?? existing.provenance);
8242
- const nextRecord = {
8243
- ...existing,
8244
- updatedAt: nextUpdatedAt,
8245
- contentHash: sha256Hex(Buffer.from(canonicalJsonString(nextPayload), "utf8")),
8246
- tags: normalizeTags(input.tags ?? existing.tags),
8247
- ...nextProvenance === void 0 ? {} : { provenance: nextProvenance },
8248
- payload: nextPayload
8249
- };
8250
- await writeJsonFileAtomic(this.recordPath(id), nextRecord);
8251
- return nextRecord;
8252
- });
8253
- }
8254
- };
8255
- var FilesystemReversePackageRegistry = class extends FilesystemRegistryStore {
8256
- constructor(rootPath) {
8257
- super(rootPath, ["registry", "reverse-packages"]);
8258
- }
8259
- async write(input) {
8260
- const id = normalizeNonEmptyString("id", input.id ?? `reverse-package:${crypto.randomUUID()}`);
8261
- const key = normalizeNonEmptyString("key", input.key);
8262
- const version = normalizeNonEmptyString("version", input.version);
8263
- const createdAt = normalizeTimestamp("createdAt", input.createdAt ?? Date.now());
8264
- const updatedAt = normalizeTimestamp("updatedAt", input.updatedAt ?? createdAt);
8265
- if (updatedAt < createdAt) {
8266
- throw new RangeError("updatedAt must be greater than or equal to createdAt");
8267
- }
8268
- const payload = input.payload;
8269
- const contentHash = sha256Hex(Buffer.from(canonicalJsonString(payload), "utf8"));
8270
- const provenance = normalizeProvenance2(input.provenance);
8271
- const record = {
8272
- id,
8273
- key,
8274
- version,
8275
- createdAt,
8276
- updatedAt,
8277
- contentHash,
8278
- tags: normalizeTags(input.tags),
8279
- ...provenance === void 0 ? {} : { provenance },
8280
- payload
8281
- };
8282
- return this.writeRecord(record);
8283
- }
8284
- async list(input = {}) {
8285
- const key = input.key === void 0 ? void 0 : normalizeNonEmptyString("key", input.key);
8286
- const records = await this.readAllRecords();
8287
- return key === void 0 ? records : records.filter((record) => record.key === key);
8288
- }
8289
- };
8290
- var FilesystemReverseReportRegistry = class extends FilesystemRegistryStore {
8291
- constructor(rootPath) {
8292
- super(rootPath, ["registry", "reverse-reports"]);
8293
- }
8294
- async write(input) {
8295
- const id = normalizeNonEmptyString("id", input.id ?? `reverse-report:${crypto.randomUUID()}`);
8296
- const key = normalizeNonEmptyString("key", input.key);
8297
- const version = normalizeNonEmptyString("version", input.version);
8298
- const createdAt = normalizeTimestamp("createdAt", input.createdAt ?? Date.now());
8299
- const updatedAt = normalizeTimestamp("updatedAt", input.updatedAt ?? createdAt);
8300
- if (updatedAt < createdAt) {
8301
- throw new RangeError("updatedAt must be greater than or equal to createdAt");
8302
- }
8303
- const payload = input.payload;
8304
- const contentHash = sha256Hex(Buffer.from(canonicalJsonString(payload), "utf8"));
8305
- const provenance = normalizeProvenance2(input.provenance);
8306
- const record = {
8307
- id,
8308
- key,
8309
- version,
8310
- createdAt,
8311
- updatedAt,
8312
- contentHash,
8313
- tags: normalizeTags(input.tags),
8314
- ...provenance === void 0 ? {} : { provenance },
8315
- payload
8316
- };
8317
- return this.writeRecord(record);
8318
- }
8319
- async list(input = {}) {
8320
- const key = input.key === void 0 ? void 0 : normalizeNonEmptyString("key", input.key);
8321
- const records = await this.readAllRecords();
8322
- return key === void 0 ? records : records.filter((record) => record.key === key);
8323
- }
8324
- };
8325
6195
  function createDescriptorRegistry(rootPath) {
8326
6196
  return new FilesystemDescriptorRegistry(rootPath);
8327
6197
  }
8328
6198
  function createRequestPlanRegistry(rootPath) {
8329
6199
  return new FilesystemRequestPlanRegistry(rootPath);
8330
6200
  }
8331
- function createAuthRecipeRegistry(rootPath) {
8332
- return new FilesystemAuthRecipeRegistry(rootPath);
8333
- }
8334
- function createRecipeRegistry(rootPath) {
8335
- return new FilesystemRecipeRegistry(rootPath);
8336
- }
8337
6201
  function createInteractionTraceRegistry(rootPath) {
8338
6202
  return new FilesystemInteractionTraceRegistry(rootPath);
8339
6203
  }
8340
- function createReverseCaseRegistry(rootPath) {
8341
- return new FilesystemReverseCaseRegistry(rootPath);
8342
- }
8343
- function createReversePackageRegistry(rootPath) {
8344
- return new FilesystemReversePackageRegistry(rootPath);
8345
- }
8346
- function createReverseReportRegistry(rootPath) {
8347
- return new FilesystemReverseReportRegistry(rootPath);
8348
- }
8349
6204
  var TAG_DELIMITER = "";
8350
6205
  var NODE_SQLITE_SPECIFIER = `node:${"sqlite"}`;
8351
6206
  var SAVED_NETWORK_SQLITE_SUPPORT_ERROR = "Saved-network operations require Node's built-in SQLite support. Use a Node runtime with node:sqlite enabled.";
@@ -9258,20 +7113,10 @@ async function createFilesystemOpensteerWorkspace(options) {
9258
7113
  await descriptors.initialize();
9259
7114
  const requestPlans = createRequestPlanRegistry(options.rootPath);
9260
7115
  await requestPlans.initialize();
9261
- const authRecipes = createAuthRecipeRegistry(options.rootPath);
9262
- await authRecipes.initialize();
9263
- const recipes = createRecipeRegistry(options.rootPath);
9264
- await recipes.initialize();
9265
7116
  const savedNetwork = createSavedNetworkStore(options.rootPath);
9266
7117
  await savedNetwork.initialize();
9267
- const reverseCases = createReverseCaseRegistry(options.rootPath);
9268
- await reverseCases.initialize();
9269
7118
  const interactionTraces = createInteractionTraceRegistry(options.rootPath);
9270
7119
  await interactionTraces.initialize();
9271
- const reversePackages = createReversePackageRegistry(options.rootPath);
9272
- await reversePackages.initialize();
9273
- const reverseReports = createReverseReportRegistry(options.rootPath);
9274
- await reverseReports.initialize();
9275
7120
  const traces = createTraceStore(options.rootPath, artifacts);
9276
7121
  await traces.initialize();
9277
7122
  const observations = createObservationStore(options.rootPath, artifacts);
@@ -9297,13 +7142,8 @@ async function createFilesystemOpensteerWorkspace(options) {
9297
7142
  registry: {
9298
7143
  descriptors,
9299
7144
  requestPlans,
9300
- authRecipes,
9301
- recipes,
9302
7145
  savedNetwork,
9303
- reverseCases,
9304
- interactionTraces,
9305
- reversePackages,
9306
- reverseReports
7146
+ interactionTraces
9307
7147
  },
9308
7148
  lock(task) {
9309
7149
  return withFilesystemLock(lockPath, task);