opensteer 0.9.1 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/README.md +0 -3
  2. package/dist/{chunk-4LP7QP2O.js → chunk-2TIVULZY.js} +3 -236
  3. package/dist/chunk-2TIVULZY.js.map +1 -0
  4. package/dist/{chunk-Z53HNZ7Z.js → chunk-FIMNKEG5.js} +3 -3
  5. package/dist/{chunk-Z53HNZ7Z.js.map → chunk-FIMNKEG5.js.map} +1 -1
  6. package/dist/{chunk-6PGXWW3X.js → chunk-GREXSYNC.js} +120 -2047
  7. package/dist/chunk-GREXSYNC.js.map +1 -0
  8. package/dist/{chunk-L4FWHBQJ.js → chunk-UM2Q4JD2.js} +5 -36
  9. package/dist/chunk-UM2Q4JD2.js.map +1 -0
  10. package/dist/cli/bin.cjs +422 -2616
  11. package/dist/cli/bin.cjs.map +1 -1
  12. package/dist/cli/bin.js +5 -5
  13. package/dist/cli/bin.js.map +1 -1
  14. package/dist/index.cjs +170 -2361
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.d.cts +59 -757
  17. package/dist/index.d.ts +59 -757
  18. package/dist/index.js +3 -3
  19. package/dist/local-view/public/assets/app.css +219 -55
  20. package/dist/local-view/public/assets/app.js +58 -2
  21. package/dist/local-view/public/index.html +101 -26
  22. package/dist/local-view/serve-entry.cjs +2 -235
  23. package/dist/local-view/serve-entry.cjs.map +1 -1
  24. package/dist/local-view/serve-entry.js +1 -1
  25. package/dist/opensteer-IBDPRIEX.js +6 -0
  26. package/dist/{opensteer-KZCRP425.js.map → opensteer-IBDPRIEX.js.map} +1 -1
  27. package/dist/{session-control-VGBFOH3Y.js → session-control-IFE3IPS3.js} +3 -3
  28. package/dist/{session-control-VGBFOH3Y.js.map → session-control-IFE3IPS3.js.map} +1 -1
  29. package/package.json +6 -6
  30. package/skills/opensteer/SKILL.md +1 -1
  31. package/dist/chunk-4LP7QP2O.js.map +0 -1
  32. package/dist/chunk-6PGXWW3X.js.map +0 -1
  33. package/dist/chunk-L4FWHBQJ.js.map +0 -1
  34. package/dist/opensteer-KZCRP425.js +0 -6
package/dist/cli/bin.cjs CHANGED
@@ -3109,62 +3109,6 @@ var init_network2 = __esm({
3109
3109
  }
3110
3110
  });
3111
3111
 
3112
- // ../protocol/src/captcha.ts
3113
- var captchaTypeSchema, captchaProviderSchema, captchaDetectionResultSchema, opensteerCaptchaSolveInputSchema, opensteerCaptchaSolveOutputSchema;
3114
- var init_captcha = __esm({
3115
- "../protocol/src/captcha.ts"() {
3116
- init_json2();
3117
- init_identity2();
3118
- captchaTypeSchema = enumSchema(
3119
- ["recaptcha-v2", "hcaptcha", "turnstile"],
3120
- {
3121
- title: "CaptchaType"
3122
- }
3123
- );
3124
- captchaProviderSchema = enumSchema(["2captcha", "capsolver"], {
3125
- title: "CaptchaProvider"
3126
- });
3127
- captchaDetectionResultSchema = objectSchema(
3128
- {
3129
- type: captchaTypeSchema,
3130
- siteKey: stringSchema({ minLength: 1 }),
3131
- pageUrl: stringSchema({ minLength: 1 })
3132
- },
3133
- {
3134
- title: "CaptchaDetectionResult",
3135
- required: ["type", "siteKey", "pageUrl"]
3136
- }
3137
- );
3138
- opensteerCaptchaSolveInputSchema = objectSchema(
3139
- {
3140
- provider: captchaProviderSchema,
3141
- apiKey: stringSchema({ minLength: 1 }),
3142
- pageRef: pageRefSchema,
3143
- timeoutMs: integerSchema({ minimum: 1 }),
3144
- type: captchaTypeSchema,
3145
- siteKey: stringSchema({ minLength: 1 }),
3146
- pageUrl: stringSchema({ minLength: 1 })
3147
- },
3148
- {
3149
- title: "OpensteerCaptchaSolveInput",
3150
- required: ["provider", "apiKey"]
3151
- }
3152
- );
3153
- opensteerCaptchaSolveOutputSchema = objectSchema(
3154
- {
3155
- captcha: captchaDetectionResultSchema,
3156
- token: stringSchema({ minLength: 1 }),
3157
- injected: { type: "boolean" },
3158
- provider: captchaProviderSchema
3159
- },
3160
- {
3161
- title: "OpensteerCaptchaSolveOutput",
3162
- required: ["captcha", "token", "injected", "provider"]
3163
- }
3164
- );
3165
- }
3166
- });
3167
-
3168
3112
  // ../protocol/src/storage.ts
3169
3113
  var jsonUnknownSchema, cookieSameSiteSchema, cookiePrioritySchema, cookieRecordSchema, storageEntrySchema, indexedDbRecordSchema, indexedDbIndexSnapshotSchema, indexedDbObjectStoreSnapshotSchema, indexedDbDatabaseSnapshotSchema, storageOriginSnapshotSchema, sessionStorageSnapshotSchema, storageSnapshotSchema;
3170
3114
  var init_storage2 = __esm({
@@ -3312,11 +3256,10 @@ var init_storage2 = __esm({
3312
3256
  });
3313
3257
 
3314
3258
  // ../protocol/src/requests.ts
3315
- var opensteerRequestScalarSchema, opensteerRequestScalarMapSchema, opensteerRequestEntrySchema, opensteerRequestPlanParameterLocationSchema, opensteerRequestPlanParameterSchema, opensteerRequestPlanTransportSchema, opensteerRequestPlanEndpointSchema, opensteerRequestPlanBodySchema, transportKindSchema, opensteerRequestPlanStatusSchema, opensteerRequestPlanResponseExpectationSchema, opensteerRecipeRefSchema, opensteerRequestFailurePolicyHeaderMatchSchema, opensteerRequestFailurePolicySchema, opensteerRequestRetryBackoffPolicySchema, opensteerRequestRetryPolicySchema, opensteerRecipeCachePolicySchema, opensteerRequestPlanRecipeBindingSchema, opensteerRequestPlanRecoverBindingSchema, opensteerRequestPlanRecipesSchema, opensteerRequestPlanAuthSchema, opensteerRequestPlanPayloadSchema, opensteerRegistryProvenanceSchema, opensteerRequestPlanFreshnessSchema, opensteerRequestPlanRecordSchema, jsonValueSchema, opensteerRequestBodyInputSchema, opensteerRecipeRetryOverridesSchema, opensteerRecipeStepResponseCaptureSchema, opensteerRecipeRequestStepInputSchema, opensteerRecipeHookRefSchema, opensteerRecipeStepSchema, opensteerRecipePayloadSchema, opensteerRecipeRecordSchema, opensteerNetworkQueryInputSchema, opensteerGraphqlSummarySchema, opensteerNetworkBodySummarySchema, opensteerNetworkSummaryRecordSchema, opensteerNetworkQueryOutputSchema, opensteerNetworkDetailInputSchema, opensteerParsedCookieSchema, opensteerStructuredBodyPreviewSchema, opensteerNetworkRedirectHopSchema, opensteerReplayAttemptSchema, opensteerNetworkDetailOutputSchema, opensteerSessionFetchTransportSchema, opensteerSessionFetchInputSchema, opensteerSessionFetchOutputSchema, opensteerCookieQueryInputSchema, opensteerCookieQueryOutputSchema, opensteerStorageDomainSnapshotSchema, opensteerStorageQueryInputSchema, opensteerStorageQueryOutputSchema, opensteerHiddenFieldSchema, opensteerStateDomainSnapshotSchema, opensteerStateQueryInputSchema, opensteerStateQueryOutputSchema, opensteerRequestTransportResultSchema, opensteerRequestResponseResultSchema;
3259
+ var opensteerRequestScalarSchema, opensteerRequestScalarMapSchema, opensteerRequestEntrySchema, opensteerRequestPlanParameterLocationSchema, opensteerRequestPlanParameterSchema, opensteerRequestPlanTransportSchema, opensteerRequestPlanEndpointSchema, opensteerRequestPlanBodySchema, transportKindSchema, opensteerRequestPlanStatusSchema, opensteerRequestPlanResponseExpectationSchema, opensteerRequestFailurePolicyHeaderMatchSchema, opensteerRequestFailurePolicySchema, opensteerRequestRetryBackoffPolicySchema, opensteerRequestRetryPolicySchema, opensteerRequestPlanAuthSchema, opensteerRequestPlanPayloadSchema, opensteerRegistryProvenanceSchema, opensteerRequestPlanFreshnessSchema, opensteerRequestPlanRecordSchema, jsonValueSchema, opensteerRequestBodyInputSchema, opensteerNetworkQueryInputSchema, opensteerGraphqlSummarySchema, opensteerNetworkBodySummarySchema, opensteerNetworkSummaryRecordSchema, opensteerNetworkQueryOutputSchema, opensteerNetworkDetailInputSchema, opensteerParsedCookieSchema, opensteerStructuredBodyPreviewSchema, opensteerNetworkRedirectHopSchema, opensteerReplayAttemptSchema, opensteerNetworkDetailOutputSchema, opensteerSessionFetchTransportSchema, opensteerSessionFetchInputSchema, opensteerSessionFetchOutputSchema, opensteerCookieQueryInputSchema, opensteerCookieQueryOutputSchema, opensteerStorageDomainSnapshotSchema, opensteerStorageQueryInputSchema, opensteerStorageQueryOutputSchema, opensteerHiddenFieldSchema, opensteerStateDomainSnapshotSchema, opensteerStateQueryInputSchema, opensteerStateQueryOutputSchema, opensteerRequestTransportResultSchema, opensteerRequestResponseResultSchema;
3316
3260
  var init_requests = __esm({
3317
3261
  "../protocol/src/requests.ts"() {
3318
3262
  init_network2();
3319
- init_captcha();
3320
3263
  init_identity2();
3321
3264
  init_storage2();
3322
3265
  init_json2();
@@ -3432,16 +3375,6 @@ var init_requests = __esm({
3432
3375
  required: ["status"]
3433
3376
  }
3434
3377
  );
3435
- opensteerRecipeRefSchema = objectSchema(
3436
- {
3437
- key: stringSchema({ minLength: 1 }),
3438
- version: stringSchema({ minLength: 1 })
3439
- },
3440
- {
3441
- title: "OpensteerRecipeRef",
3442
- required: ["key"]
3443
- }
3444
- );
3445
3378
  opensteerRequestFailurePolicyHeaderMatchSchema = objectSchema(
3446
3379
  {
3447
3380
  name: stringSchema({ minLength: 1 }),
@@ -3497,46 +3430,9 @@ var init_requests = __esm({
3497
3430
  required: ["maxRetries"]
3498
3431
  }
3499
3432
  );
3500
- opensteerRecipeCachePolicySchema = enumSchema(
3501
- ["none", "untilFailure"],
3502
- {
3503
- title: "OpensteerRecipeCachePolicy"
3504
- }
3505
- );
3506
- opensteerRequestPlanRecipeBindingSchema = objectSchema(
3507
- {
3508
- recipe: opensteerRecipeRefSchema,
3509
- cachePolicy: opensteerRecipeCachePolicySchema
3510
- },
3511
- {
3512
- title: "OpensteerRequestPlanRecipeBinding",
3513
- required: ["recipe"]
3514
- }
3515
- );
3516
- opensteerRequestPlanRecoverBindingSchema = objectSchema(
3517
- {
3518
- recipe: opensteerRecipeRefSchema,
3519
- cachePolicy: opensteerRecipeCachePolicySchema,
3520
- failurePolicy: opensteerRequestFailurePolicySchema
3521
- },
3522
- {
3523
- title: "OpensteerRequestPlanRecoverBinding",
3524
- required: ["recipe", "failurePolicy"]
3525
- }
3526
- );
3527
- opensteerRequestPlanRecipesSchema = objectSchema(
3528
- {
3529
- prepare: opensteerRequestPlanRecipeBindingSchema,
3530
- recover: opensteerRequestPlanRecoverBindingSchema
3531
- },
3532
- {
3533
- title: "OpensteerRequestPlanRecipes"
3534
- }
3535
- );
3536
3433
  opensteerRequestPlanAuthSchema = objectSchema(
3537
3434
  {
3538
3435
  strategy: enumSchema(["session-cookie", "bearer-token", "api-key", "custom"]),
3539
- recipe: opensteerRecipeRefSchema,
3540
3436
  failurePolicy: opensteerRequestFailurePolicySchema,
3541
3437
  description: stringSchema({ minLength: 1 })
3542
3438
  },
@@ -3552,7 +3448,6 @@ var init_requests = __esm({
3552
3448
  parameters: arraySchema(opensteerRequestPlanParameterSchema),
3553
3449
  body: opensteerRequestPlanBodySchema,
3554
3450
  response: opensteerRequestPlanResponseExpectationSchema,
3555
- recipes: opensteerRequestPlanRecipesSchema,
3556
3451
  retryPolicy: opensteerRequestRetryPolicySchema,
3557
3452
  auth: opensteerRequestPlanAuthSchema
3558
3453
  },
@@ -3643,629 +3538,318 @@ var init_requests = __esm({
3643
3538
  title: "OpensteerRequestBodyInput"
3644
3539
  }
3645
3540
  );
3646
- opensteerRecipeRetryOverridesSchema = objectSchema(
3541
+ opensteerNetworkQueryInputSchema = objectSchema(
3647
3542
  {
3648
- params: recordSchema(stringSchema(), {
3649
- title: "OpensteerRecipeParams"
3650
- }),
3651
- headers: recordSchema(stringSchema(), {
3652
- title: "OpensteerRecipeHeaders"
3653
- }),
3654
- query: recordSchema(stringSchema(), {
3655
- title: "OpensteerRecipeQuery"
3656
- }),
3657
- body: recordSchema(stringSchema(), {
3658
- title: "OpensteerRecipeBodyVariables"
3659
- })
3543
+ pageRef: pageRefSchema,
3544
+ recordId: stringSchema({ minLength: 1 }),
3545
+ requestId: stringSchema({ minLength: 1 }),
3546
+ capture: stringSchema({ minLength: 1 }),
3547
+ tag: stringSchema({ minLength: 1 }),
3548
+ url: stringSchema({ minLength: 1 }),
3549
+ hostname: stringSchema({ minLength: 1 }),
3550
+ path: stringSchema({ minLength: 1 }),
3551
+ method: stringSchema({ minLength: 1 }),
3552
+ status: oneOfSchema([
3553
+ integerSchema({ minimum: 100, maximum: 599 }),
3554
+ stringSchema({ minLength: 1 })
3555
+ ]),
3556
+ resourceType: networkResourceTypeSchema,
3557
+ includeBodies: { type: "boolean" },
3558
+ json: { type: "boolean" },
3559
+ before: stringSchema({ minLength: 1 }),
3560
+ after: stringSchema({ minLength: 1 }),
3561
+ limit: integerSchema({ minimum: 1, maximum: 1e3 })
3660
3562
  },
3661
3563
  {
3662
- title: "OpensteerRecipeRetryOverrides"
3564
+ title: "OpensteerNetworkQueryInput"
3663
3565
  }
3664
3566
  );
3665
- opensteerRecipeStepResponseCaptureSchema = objectSchema(
3567
+ opensteerGraphqlSummarySchema = objectSchema(
3666
3568
  {
3667
- header: objectSchema(
3668
- {
3669
- name: stringSchema({ minLength: 1 }),
3670
- saveAs: stringSchema({ minLength: 1 })
3671
- },
3672
- {
3673
- title: "OpensteerAuthRecipeHeaderCapture",
3674
- required: ["name", "saveAs"]
3675
- }
3676
- ),
3677
- bodyJsonPointer: objectSchema(
3678
- {
3679
- pointer: stringSchema({ minLength: 1 }),
3680
- saveAs: stringSchema({ minLength: 1 })
3681
- },
3682
- {
3683
- title: "OpensteerAuthRecipeBodyJsonPointerCapture",
3684
- required: ["pointer", "saveAs"]
3685
- }
3686
- ),
3687
- bodyText: objectSchema(
3569
+ operationType: enumSchema(["query", "mutation", "subscription", "unknown"]),
3570
+ operationName: stringSchema({ minLength: 1 }),
3571
+ persisted: { type: "boolean" }
3572
+ },
3573
+ {
3574
+ title: "OpensteerGraphqlSummary"
3575
+ }
3576
+ );
3577
+ opensteerNetworkBodySummarySchema = objectSchema(
3578
+ {
3579
+ bytes: integerSchema({ minimum: 0 }),
3580
+ contentType: stringSchema({ minLength: 1 }),
3581
+ streaming: { type: "boolean" }
3582
+ },
3583
+ {
3584
+ title: "OpensteerNetworkBodySummary"
3585
+ }
3586
+ );
3587
+ opensteerNetworkSummaryRecordSchema = objectSchema(
3588
+ {
3589
+ recordId: stringSchema({ minLength: 1 }),
3590
+ capture: stringSchema({ minLength: 1 }),
3591
+ savedAt: integerSchema({ minimum: 0 }),
3592
+ kind: enumSchema(["http", "websocket", "event-stream"]),
3593
+ method: stringSchema({ minLength: 1 }),
3594
+ status: integerSchema({ minimum: 100, maximum: 599 }),
3595
+ resourceType: networkResourceTypeSchema,
3596
+ url: stringSchema({ minLength: 1 }),
3597
+ request: opensteerNetworkBodySummarySchema,
3598
+ response: opensteerNetworkBodySummarySchema,
3599
+ graphql: opensteerGraphqlSummarySchema,
3600
+ websocket: objectSchema(
3688
3601
  {
3689
- saveAs: stringSchema({ minLength: 1 })
3602
+ subprotocol: stringSchema({ minLength: 1 })
3690
3603
  },
3691
3604
  {
3692
- title: "OpensteerAuthRecipeBodyTextCapture",
3693
- required: ["saveAs"]
3605
+ title: "OpensteerWebsocketSummary"
3694
3606
  }
3695
3607
  )
3696
3608
  },
3697
3609
  {
3698
- title: "OpensteerRecipeStepResponseCapture"
3610
+ title: "OpensteerNetworkSummaryRecord",
3611
+ required: ["recordId", "kind", "method", "resourceType", "url"]
3699
3612
  }
3700
3613
  );
3701
- opensteerRecipeRequestStepInputSchema = objectSchema(
3614
+ opensteerNetworkQueryOutputSchema = objectSchema(
3615
+ {
3616
+ records: arraySchema(opensteerNetworkSummaryRecordSchema)
3617
+ },
3618
+ {
3619
+ title: "OpensteerNetworkQueryOutput",
3620
+ required: ["records"]
3621
+ }
3622
+ );
3623
+ opensteerNetworkDetailInputSchema = objectSchema(
3624
+ {
3625
+ recordId: stringSchema({ minLength: 1 }),
3626
+ probe: { type: "boolean" }
3627
+ },
3628
+ {
3629
+ title: "OpensteerNetworkDetailInput",
3630
+ required: ["recordId"]
3631
+ }
3632
+ );
3633
+ opensteerParsedCookieSchema = objectSchema(
3634
+ {
3635
+ name: stringSchema({ minLength: 1 }),
3636
+ value: stringSchema()
3637
+ },
3638
+ {
3639
+ title: "OpensteerParsedCookie",
3640
+ required: ["name", "value"]
3641
+ }
3642
+ );
3643
+ opensteerStructuredBodyPreviewSchema = objectSchema(
3644
+ {
3645
+ contentType: stringSchema({ minLength: 1 }),
3646
+ bytes: integerSchema({ minimum: 0 }),
3647
+ truncated: { type: "boolean" },
3648
+ data: oneOfSchema([jsonValueSchema, stringSchema()]),
3649
+ note: stringSchema()
3650
+ },
3651
+ {
3652
+ title: "OpensteerStructuredBodyPreview",
3653
+ required: ["bytes", "truncated"]
3654
+ }
3655
+ );
3656
+ opensteerNetworkRedirectHopSchema = objectSchema(
3702
3657
  {
3703
- url: stringSchema({ minLength: 1 }),
3704
- transport: transportKindSchema,
3705
- pageRef: pageRefSchema,
3706
- cookieJar: stringSchema({ minLength: 1 }),
3707
3658
  method: stringSchema({ minLength: 1 }),
3708
- headers: recordSchema(stringSchema(), {
3709
- title: "OpensteerRecipeRequestHeaders"
3710
- }),
3711
- query: recordSchema(stringSchema(), {
3712
- title: "OpensteerRecipeRequestQuery"
3713
- }),
3714
- body: opensteerRequestBodyInputSchema,
3715
- followRedirects: { type: "boolean" }
3659
+ status: integerSchema({ minimum: 100, maximum: 599 }),
3660
+ url: stringSchema({ minLength: 1 }),
3661
+ location: stringSchema({ minLength: 1 }),
3662
+ setCookie: arraySchema(stringSchema())
3716
3663
  },
3717
3664
  {
3718
- title: "OpensteerRecipeRequestStepInput",
3719
- required: ["url"]
3665
+ title: "OpensteerNetworkRedirectHop",
3666
+ required: ["method", "url"]
3720
3667
  }
3721
3668
  );
3722
- opensteerRecipeHookRefSchema = objectSchema(
3669
+ opensteerReplayAttemptSchema = objectSchema(
3723
3670
  {
3724
- specifier: stringSchema({ minLength: 1 }),
3725
- export: stringSchema({ minLength: 1 })
3671
+ transport: transportKindSchema,
3672
+ status: integerSchema({ minimum: 100, maximum: 599 }),
3673
+ ok: { type: "boolean" },
3674
+ durationMs: integerSchema({ minimum: 0 }),
3675
+ note: stringSchema(),
3676
+ error: stringSchema()
3726
3677
  },
3727
3678
  {
3728
- title: "OpensteerRecipeHookRef",
3729
- required: ["specifier", "export"]
3679
+ title: "OpensteerReplayAttempt",
3680
+ required: ["transport", "ok", "durationMs"]
3730
3681
  }
3731
3682
  );
3732
- opensteerRecipeStepSchema = oneOfSchema(
3733
- [
3734
- objectSchema(
3683
+ opensteerNetworkDetailOutputSchema = objectSchema(
3684
+ {
3685
+ recordId: stringSchema({ minLength: 1 }),
3686
+ capture: stringSchema({ minLength: 1 }),
3687
+ savedAt: integerSchema({ minimum: 0 }),
3688
+ summary: opensteerNetworkSummaryRecordSchema,
3689
+ requestHeaders: arraySchema(headerEntrySchema),
3690
+ responseHeaders: arraySchema(headerEntrySchema),
3691
+ cookiesSent: arraySchema(opensteerParsedCookieSchema),
3692
+ requestBody: opensteerStructuredBodyPreviewSchema,
3693
+ responseBody: opensteerStructuredBodyPreviewSchema,
3694
+ graphql: objectSchema(
3735
3695
  {
3736
- kind: enumSchema(["goto"]),
3737
- url: stringSchema({ minLength: 1 })
3696
+ operationType: enumSchema(["query", "mutation", "subscription", "unknown"]),
3697
+ operationName: stringSchema({ minLength: 1 }),
3698
+ persisted: { type: "boolean" },
3699
+ variables: jsonValueSchema
3738
3700
  },
3739
3701
  {
3740
- title: "OpensteerAuthRecipeGotoStep",
3741
- required: ["kind", "url"]
3702
+ title: "OpensteerGraphqlDetail"
3742
3703
  }
3743
3704
  ),
3744
- objectSchema(
3705
+ redirectChain: arraySchema(opensteerNetworkRedirectHopSchema),
3706
+ notes: arraySchema(stringSchema()),
3707
+ transportProbe: objectSchema(
3745
3708
  {
3746
- kind: enumSchema(["reload"])
3709
+ recommended: transportKindSchema,
3710
+ attempts: arraySchema(opensteerReplayAttemptSchema)
3747
3711
  },
3748
3712
  {
3749
- title: "OpensteerAuthRecipeReloadStep",
3750
- required: ["kind"]
3751
- }
3752
- ),
3753
- objectSchema(
3754
- {
3755
- kind: enumSchema(["waitForUrl"]),
3756
- includes: stringSchema({ minLength: 1 }),
3757
- timeoutMs: integerSchema({ minimum: 0 })
3758
- },
3759
- {
3760
- title: "OpensteerAuthRecipeWaitForUrlStep",
3761
- required: ["kind", "includes"]
3762
- }
3763
- ),
3764
- objectSchema(
3765
- {
3766
- kind: enumSchema(["waitForNetwork"]),
3767
- url: stringSchema({ minLength: 1 }),
3768
- hostname: stringSchema({ minLength: 1 }),
3769
- path: stringSchema({ minLength: 1 }),
3770
- method: stringSchema({ minLength: 1 }),
3771
- status: stringSchema({ minLength: 1 }),
3772
- includeBodies: { type: "boolean" },
3773
- timeoutMs: integerSchema({ minimum: 0 }),
3774
- saveAs: stringSchema({ minLength: 1 })
3775
- },
3776
- {
3777
- title: "OpensteerRecipeWaitForNetworkStep",
3778
- required: ["kind"]
3779
- }
3780
- ),
3781
- objectSchema(
3782
- {
3783
- kind: enumSchema(["waitForCookie"]),
3784
- name: stringSchema({ minLength: 1 }),
3785
- url: stringSchema({ minLength: 1 }),
3786
- timeoutMs: integerSchema({ minimum: 0 }),
3787
- saveAs: stringSchema({ minLength: 1 })
3788
- },
3789
- {
3790
- title: "OpensteerAuthRecipeWaitForCookieStep",
3791
- required: ["kind", "name"]
3792
- }
3793
- ),
3794
- objectSchema(
3795
- {
3796
- kind: enumSchema(["waitForStorage"]),
3797
- area: enumSchema(["local", "session"]),
3798
- origin: stringSchema({ minLength: 1 }),
3799
- key: stringSchema({ minLength: 1 }),
3800
- timeoutMs: integerSchema({ minimum: 0 }),
3801
- saveAs: stringSchema({ minLength: 1 })
3802
- },
3803
- {
3804
- title: "OpensteerAuthRecipeWaitForStorageStep",
3805
- required: ["kind", "area", "origin", "key"]
3806
- }
3807
- ),
3808
- objectSchema(
3809
- {
3810
- kind: enumSchema(["readCookie"]),
3811
- name: stringSchema({ minLength: 1 }),
3812
- url: stringSchema({ minLength: 1 }),
3813
- saveAs: stringSchema({ minLength: 1 })
3814
- },
3815
- {
3816
- title: "OpensteerAuthRecipeReadCookieStep",
3817
- required: ["kind", "name", "saveAs"]
3818
- }
3819
- ),
3820
- objectSchema(
3821
- {
3822
- kind: enumSchema(["readStorage"]),
3823
- area: enumSchema(["local", "session"]),
3824
- origin: stringSchema({ minLength: 1 }),
3825
- key: stringSchema({ minLength: 1 }),
3826
- pageUrl: stringSchema({ minLength: 1 }),
3827
- saveAs: stringSchema({ minLength: 1 })
3828
- },
3829
- {
3830
- title: "OpensteerRecipeReadStorageStep",
3831
- required: ["kind", "area", "origin", "key", "saveAs"]
3832
- }
3833
- ),
3834
- objectSchema(
3835
- {
3836
- kind: enumSchema(["evaluate"]),
3837
- script: stringSchema({ minLength: 1 }),
3838
- args: arraySchema(jsonValueSchema),
3839
- pageRef: pageRefSchema,
3840
- saveAs: stringSchema({ minLength: 1 })
3841
- },
3842
- {
3843
- title: "OpensteerRecipeEvaluateStep",
3844
- required: ["kind", "script"]
3845
- }
3846
- ),
3847
- objectSchema(
3848
- {
3849
- kind: enumSchema(["syncCookiesToJar"]),
3850
- jar: stringSchema({ minLength: 1 }),
3851
- urls: arraySchema(stringSchema({ minLength: 1 }), {
3852
- minItems: 1
3853
- })
3854
- },
3855
- {
3856
- title: "OpensteerRecipeSyncCookiesToJarStep",
3857
- required: ["kind", "jar"]
3858
- }
3859
- ),
3860
- objectSchema(
3861
- {
3862
- kind: enumSchema(["request"]),
3863
- request: opensteerRecipeRequestStepInputSchema,
3864
- capture: opensteerRecipeStepResponseCaptureSchema
3865
- },
3866
- {
3867
- title: "OpensteerRecipeRequestStep",
3868
- required: ["kind", "request"]
3869
- }
3870
- ),
3871
- objectSchema(
3872
- {
3873
- kind: enumSchema(["sessionRequest"]),
3874
- request: opensteerRecipeRequestStepInputSchema,
3875
- capture: opensteerRecipeStepResponseCaptureSchema
3876
- },
3877
- {
3878
- title: "OpensteerAuthRecipeSessionRequestStep",
3879
- required: ["kind", "request"]
3880
- }
3881
- ),
3882
- objectSchema(
3883
- {
3884
- kind: enumSchema(["directRequest"]),
3885
- request: opensteerRecipeRequestStepInputSchema,
3886
- capture: opensteerRecipeStepResponseCaptureSchema
3887
- },
3888
- {
3889
- title: "OpensteerAuthRecipeDirectRequestStep",
3890
- required: ["kind", "request"]
3891
- }
3892
- ),
3893
- objectSchema(
3894
- {
3895
- kind: enumSchema(["solveCaptcha"]),
3896
- provider: captchaProviderSchema,
3897
- apiKey: stringSchema({ minLength: 1 }),
3898
- pageRef: pageRefSchema,
3899
- timeoutMs: integerSchema({ minimum: 1 }),
3900
- type: captchaTypeSchema,
3901
- siteKey: stringSchema({ minLength: 1 }),
3902
- pageUrl: stringSchema({ minLength: 1 }),
3903
- saveAs: stringSchema({ minLength: 1 })
3904
- },
3905
- {
3906
- title: "OpensteerRecipeSolveCaptchaStep",
3907
- required: ["kind", "provider", "apiKey"]
3908
- }
3909
- ),
3910
- objectSchema(
3911
- {
3912
- kind: enumSchema(["hook"]),
3913
- hook: opensteerRecipeHookRefSchema
3914
- },
3915
- {
3916
- title: "OpensteerRecipeHookStep",
3917
- required: ["kind", "hook"]
3713
+ title: "OpensteerTransportProbeResult",
3714
+ required: ["attempts"]
3918
3715
  }
3919
3716
  )
3920
- ],
3717
+ },
3921
3718
  {
3922
- title: "OpensteerRecipeStep"
3719
+ title: "OpensteerNetworkDetailOutput",
3720
+ required: ["recordId", "summary", "requestHeaders", "responseHeaders"]
3923
3721
  }
3924
3722
  );
3925
- opensteerRecipePayloadSchema = objectSchema(
3723
+ objectSchema(
3926
3724
  {
3927
- description: stringSchema({ minLength: 1 }),
3928
- steps: arraySchema(opensteerRecipeStepSchema, {
3929
- minItems: 1
3930
- }),
3931
- outputs: opensteerRecipeRetryOverridesSchema
3725
+ recordId: stringSchema({ minLength: 1 }),
3726
+ pageRef: pageRefSchema,
3727
+ query: opensteerRequestScalarMapSchema,
3728
+ headers: opensteerRequestScalarMapSchema,
3729
+ body: opensteerRequestBodyInputSchema,
3730
+ variables: jsonValueSchema
3932
3731
  },
3933
3732
  {
3934
- title: "OpensteerRecipePayload",
3935
- required: ["steps"]
3733
+ title: "OpensteerNetworkReplayInput",
3734
+ required: ["recordId"]
3936
3735
  }
3937
3736
  );
3938
- opensteerRecipeRecordSchema = objectSchema(
3939
- {
3940
- id: stringSchema({ minLength: 1 }),
3941
- key: stringSchema({ minLength: 1 }),
3942
- version: stringSchema({ minLength: 1 }),
3943
- createdAt: integerSchema({ minimum: 0 }),
3944
- updatedAt: integerSchema({ minimum: 0 }),
3945
- contentHash: stringSchema({ minLength: 1 }),
3946
- tags: arraySchema(stringSchema({ minLength: 1 }), {
3947
- uniqueItems: true
3948
- }),
3949
- provenance: opensteerRegistryProvenanceSchema,
3950
- payload: opensteerRecipePayloadSchema
3951
- },
3737
+ opensteerSessionFetchTransportSchema = enumSchema(
3738
+ ["auto", "direct", "matched-tls", "context", "page"],
3952
3739
  {
3953
- title: "OpensteerRecipeRecord",
3954
- required: ["id", "key", "version", "createdAt", "updatedAt", "contentHash", "tags", "payload"]
3740
+ title: "OpensteerSessionFetchTransport"
3955
3741
  }
3956
3742
  );
3957
- opensteerNetworkQueryInputSchema = objectSchema(
3743
+ opensteerSessionFetchInputSchema = objectSchema(
3958
3744
  {
3959
3745
  pageRef: pageRefSchema,
3960
- recordId: stringSchema({ minLength: 1 }),
3961
- requestId: stringSchema({ minLength: 1 }),
3962
- capture: stringSchema({ minLength: 1 }),
3963
- tag: stringSchema({ minLength: 1 }),
3964
3746
  url: stringSchema({ minLength: 1 }),
3965
- hostname: stringSchema({ minLength: 1 }),
3966
- path: stringSchema({ minLength: 1 }),
3967
3747
  method: stringSchema({ minLength: 1 }),
3968
- status: oneOfSchema([
3969
- integerSchema({ minimum: 100, maximum: 599 }),
3970
- stringSchema({ minLength: 1 })
3971
- ]),
3972
- resourceType: networkResourceTypeSchema,
3973
- includeBodies: { type: "boolean" },
3974
- json: { type: "boolean" },
3975
- before: stringSchema({ minLength: 1 }),
3976
- after: stringSchema({ minLength: 1 }),
3977
- limit: integerSchema({ minimum: 1, maximum: 1e3 })
3748
+ query: opensteerRequestScalarMapSchema,
3749
+ headers: opensteerRequestScalarMapSchema,
3750
+ body: opensteerRequestBodyInputSchema,
3751
+ transport: opensteerSessionFetchTransportSchema,
3752
+ cookies: { type: "boolean" },
3753
+ followRedirects: { type: "boolean" }
3978
3754
  },
3979
3755
  {
3980
- title: "OpensteerNetworkQueryInput"
3756
+ title: "OpensteerSessionFetchInput",
3757
+ required: ["url"]
3981
3758
  }
3982
3759
  );
3983
- opensteerGraphqlSummarySchema = objectSchema(
3760
+ opensteerCookieQueryInputSchema = objectSchema(
3984
3761
  {
3985
- operationType: enumSchema(["query", "mutation", "subscription", "unknown"]),
3986
- operationName: stringSchema({ minLength: 1 }),
3987
- persisted: { type: "boolean" }
3762
+ domain: stringSchema({ minLength: 1 })
3988
3763
  },
3989
3764
  {
3990
- title: "OpensteerGraphqlSummary"
3765
+ title: "OpensteerCookieQueryInput"
3991
3766
  }
3992
3767
  );
3993
- opensteerNetworkBodySummarySchema = objectSchema(
3768
+ opensteerCookieQueryOutputSchema = objectSchema(
3994
3769
  {
3995
- bytes: integerSchema({ minimum: 0 }),
3996
- contentType: stringSchema({ minLength: 1 }),
3997
- streaming: { type: "boolean" }
3770
+ domain: stringSchema({ minLength: 1 }),
3771
+ cookies: arraySchema(cookieRecordSchema)
3998
3772
  },
3999
3773
  {
4000
- title: "OpensteerNetworkBodySummary"
3774
+ title: "OpensteerCookieQueryOutput",
3775
+ required: ["cookies"]
4001
3776
  }
4002
3777
  );
4003
- opensteerNetworkSummaryRecordSchema = objectSchema(
3778
+ opensteerStorageDomainSnapshotSchema = objectSchema(
4004
3779
  {
4005
- recordId: stringSchema({ minLength: 1 }),
4006
- capture: stringSchema({ minLength: 1 }),
4007
- savedAt: integerSchema({ minimum: 0 }),
4008
- kind: enumSchema(["http", "websocket", "event-stream"]),
4009
- method: stringSchema({ minLength: 1 }),
4010
- status: integerSchema({ minimum: 100, maximum: 599 }),
4011
- resourceType: networkResourceTypeSchema,
4012
- url: stringSchema({ minLength: 1 }),
4013
- request: opensteerNetworkBodySummarySchema,
4014
- response: opensteerNetworkBodySummarySchema,
4015
- graphql: opensteerGraphqlSummarySchema,
4016
- websocket: objectSchema(
4017
- {
4018
- subprotocol: stringSchema({ minLength: 1 })
4019
- },
4020
- {
4021
- title: "OpensteerWebsocketSummary"
4022
- }
4023
- )
3780
+ domain: stringSchema({ minLength: 1 }),
3781
+ localStorage: arraySchema(storageEntrySchema),
3782
+ sessionStorage: arraySchema(storageEntrySchema)
4024
3783
  },
4025
3784
  {
4026
- title: "OpensteerNetworkSummaryRecord",
4027
- required: ["recordId", "kind", "method", "resourceType", "url"]
3785
+ title: "OpensteerStorageDomainSnapshot",
3786
+ required: ["domain", "localStorage", "sessionStorage"]
4028
3787
  }
4029
3788
  );
4030
- opensteerNetworkQueryOutputSchema = objectSchema(
3789
+ opensteerStorageQueryInputSchema = objectSchema(
4031
3790
  {
4032
- records: arraySchema(opensteerNetworkSummaryRecordSchema)
3791
+ domain: stringSchema({ minLength: 1 })
4033
3792
  },
4034
3793
  {
4035
- title: "OpensteerNetworkQueryOutput",
4036
- required: ["records"]
3794
+ title: "OpensteerStorageQueryInput"
4037
3795
  }
4038
3796
  );
4039
- opensteerNetworkDetailInputSchema = objectSchema(
3797
+ opensteerStorageQueryOutputSchema = objectSchema(
4040
3798
  {
4041
- recordId: stringSchema({ minLength: 1 }),
4042
- probe: { type: "boolean" }
3799
+ domains: arraySchema(opensteerStorageDomainSnapshotSchema)
4043
3800
  },
4044
3801
  {
4045
- title: "OpensteerNetworkDetailInput",
4046
- required: ["recordId"]
3802
+ title: "OpensteerStorageQueryOutput",
3803
+ required: ["domains"]
4047
3804
  }
4048
3805
  );
4049
- opensteerParsedCookieSchema = objectSchema(
3806
+ opensteerHiddenFieldSchema = objectSchema(
4050
3807
  {
3808
+ path: stringSchema({ minLength: 1 }),
4051
3809
  name: stringSchema({ minLength: 1 }),
4052
3810
  value: stringSchema()
4053
3811
  },
4054
3812
  {
4055
- title: "OpensteerParsedCookie",
4056
- required: ["name", "value"]
3813
+ title: "OpensteerHiddenField",
3814
+ required: ["path", "name", "value"]
4057
3815
  }
4058
3816
  );
4059
- opensteerStructuredBodyPreviewSchema = objectSchema(
3817
+ opensteerStateDomainSnapshotSchema = objectSchema(
4060
3818
  {
4061
- contentType: stringSchema({ minLength: 1 }),
4062
- bytes: integerSchema({ minimum: 0 }),
4063
- truncated: { type: "boolean" },
4064
- data: oneOfSchema([jsonValueSchema, stringSchema()]),
4065
- note: stringSchema()
3819
+ domain: stringSchema({ minLength: 1 }),
3820
+ cookies: arraySchema(cookieRecordSchema),
3821
+ hiddenFields: arraySchema(opensteerHiddenFieldSchema),
3822
+ localStorage: arraySchema(storageEntrySchema),
3823
+ sessionStorage: arraySchema(storageEntrySchema),
3824
+ globals: recordSchema(jsonValueSchema)
4066
3825
  },
4067
3826
  {
4068
- title: "OpensteerStructuredBodyPreview",
4069
- required: ["bytes", "truncated"]
3827
+ title: "OpensteerStateDomainSnapshot",
3828
+ required: ["domain", "cookies", "hiddenFields", "localStorage", "sessionStorage"]
4070
3829
  }
4071
3830
  );
4072
- opensteerNetworkRedirectHopSchema = objectSchema(
3831
+ opensteerStateQueryInputSchema = objectSchema(
4073
3832
  {
4074
- method: stringSchema({ minLength: 1 }),
4075
- status: integerSchema({ minimum: 100, maximum: 599 }),
4076
- url: stringSchema({ minLength: 1 }),
4077
- location: stringSchema({ minLength: 1 }),
4078
- setCookie: arraySchema(stringSchema())
3833
+ domain: stringSchema({ minLength: 1 })
4079
3834
  },
4080
3835
  {
4081
- title: "OpensteerNetworkRedirectHop",
4082
- required: ["method", "url"]
3836
+ title: "OpensteerStateQueryInput"
4083
3837
  }
4084
3838
  );
4085
- opensteerReplayAttemptSchema = objectSchema(
3839
+ opensteerStateQueryOutputSchema = objectSchema(
4086
3840
  {
4087
- transport: transportKindSchema,
4088
- status: integerSchema({ minimum: 100, maximum: 599 }),
4089
- ok: { type: "boolean" },
4090
- durationMs: integerSchema({ minimum: 0 }),
4091
- note: stringSchema(),
4092
- error: stringSchema()
3841
+ domains: arraySchema(opensteerStateDomainSnapshotSchema)
4093
3842
  },
4094
3843
  {
4095
- title: "OpensteerReplayAttempt",
4096
- required: ["transport", "ok", "durationMs"]
3844
+ title: "OpensteerStateQueryOutput",
3845
+ required: ["domains"]
4097
3846
  }
4098
3847
  );
4099
- opensteerNetworkDetailOutputSchema = objectSchema(
3848
+ objectSchema(
4100
3849
  {
3850
+ pageRef: pageRefSchema,
4101
3851
  recordId: stringSchema({ minLength: 1 }),
4102
- capture: stringSchema({ minLength: 1 }),
4103
- savedAt: integerSchema({ minimum: 0 }),
4104
- summary: opensteerNetworkSummaryRecordSchema,
4105
- requestHeaders: arraySchema(headerEntrySchema),
4106
- responseHeaders: arraySchema(headerEntrySchema),
4107
- cookiesSent: arraySchema(opensteerParsedCookieSchema),
4108
- requestBody: opensteerStructuredBodyPreviewSchema,
4109
- responseBody: opensteerStructuredBodyPreviewSchema,
4110
- graphql: objectSchema(
4111
- {
4112
- operationType: enumSchema(["query", "mutation", "subscription", "unknown"]),
4113
- operationName: stringSchema({ minLength: 1 }),
4114
- persisted: { type: "boolean" },
4115
- variables: jsonValueSchema
4116
- },
4117
- {
4118
- title: "OpensteerGraphqlDetail"
4119
- }
4120
- ),
4121
- redirectChain: arraySchema(opensteerNetworkRedirectHopSchema),
4122
- notes: arraySchema(stringSchema()),
4123
- transportProbe: objectSchema(
4124
- {
4125
- recommended: transportKindSchema,
4126
- attempts: arraySchema(opensteerReplayAttemptSchema)
4127
- },
4128
- {
4129
- title: "OpensteerTransportProbeResult",
4130
- required: ["attempts"]
4131
- }
4132
- )
4133
- },
4134
- {
4135
- title: "OpensteerNetworkDetailOutput",
4136
- required: ["recordId", "summary", "requestHeaders", "responseHeaders"]
4137
- }
4138
- );
4139
- objectSchema(
4140
- {
4141
- recordId: stringSchema({ minLength: 1 }),
4142
- pageRef: pageRefSchema,
4143
- query: opensteerRequestScalarMapSchema,
4144
- headers: opensteerRequestScalarMapSchema,
4145
- body: opensteerRequestBodyInputSchema,
4146
- variables: jsonValueSchema
4147
- },
4148
- {
4149
- title: "OpensteerNetworkReplayInput",
4150
- required: ["recordId"]
4151
- }
4152
- );
4153
- opensteerSessionFetchTransportSchema = enumSchema(
4154
- ["auto", "direct", "matched-tls", "context", "page"],
4155
- {
4156
- title: "OpensteerSessionFetchTransport"
4157
- }
4158
- );
4159
- opensteerSessionFetchInputSchema = objectSchema(
4160
- {
4161
- pageRef: pageRefSchema,
4162
- url: stringSchema({ minLength: 1 }),
4163
- method: stringSchema({ minLength: 1 }),
4164
- query: opensteerRequestScalarMapSchema,
4165
- headers: opensteerRequestScalarMapSchema,
4166
- body: opensteerRequestBodyInputSchema,
4167
- transport: opensteerSessionFetchTransportSchema,
4168
- cookies: { type: "boolean" },
4169
- followRedirects: { type: "boolean" }
4170
- },
4171
- {
4172
- title: "OpensteerSessionFetchInput",
4173
- required: ["url"]
4174
- }
4175
- );
4176
- opensteerCookieQueryInputSchema = objectSchema(
4177
- {
4178
- domain: stringSchema({ minLength: 1 })
4179
- },
4180
- {
4181
- title: "OpensteerCookieQueryInput"
4182
- }
4183
- );
4184
- opensteerCookieQueryOutputSchema = objectSchema(
4185
- {
4186
- domain: stringSchema({ minLength: 1 }),
4187
- cookies: arraySchema(cookieRecordSchema)
4188
- },
4189
- {
4190
- title: "OpensteerCookieQueryOutput",
4191
- required: ["cookies"]
4192
- }
4193
- );
4194
- opensteerStorageDomainSnapshotSchema = objectSchema(
4195
- {
4196
- domain: stringSchema({ minLength: 1 }),
4197
- localStorage: arraySchema(storageEntrySchema),
4198
- sessionStorage: arraySchema(storageEntrySchema)
4199
- },
4200
- {
4201
- title: "OpensteerStorageDomainSnapshot",
4202
- required: ["domain", "localStorage", "sessionStorage"]
4203
- }
4204
- );
4205
- opensteerStorageQueryInputSchema = objectSchema(
4206
- {
4207
- domain: stringSchema({ minLength: 1 })
4208
- },
4209
- {
4210
- title: "OpensteerStorageQueryInput"
4211
- }
4212
- );
4213
- opensteerStorageQueryOutputSchema = objectSchema(
4214
- {
4215
- domains: arraySchema(opensteerStorageDomainSnapshotSchema)
4216
- },
4217
- {
4218
- title: "OpensteerStorageQueryOutput",
4219
- required: ["domains"]
4220
- }
4221
- );
4222
- opensteerHiddenFieldSchema = objectSchema(
4223
- {
4224
- path: stringSchema({ minLength: 1 }),
4225
- name: stringSchema({ minLength: 1 }),
4226
- value: stringSchema()
4227
- },
4228
- {
4229
- title: "OpensteerHiddenField",
4230
- required: ["path", "name", "value"]
4231
- }
4232
- );
4233
- opensteerStateDomainSnapshotSchema = objectSchema(
4234
- {
4235
- domain: stringSchema({ minLength: 1 }),
4236
- cookies: arraySchema(cookieRecordSchema),
4237
- hiddenFields: arraySchema(opensteerHiddenFieldSchema),
4238
- localStorage: arraySchema(storageEntrySchema),
4239
- sessionStorage: arraySchema(storageEntrySchema),
4240
- globals: recordSchema(jsonValueSchema)
4241
- },
4242
- {
4243
- title: "OpensteerStateDomainSnapshot",
4244
- required: ["domain", "cookies", "hiddenFields", "localStorage", "sessionStorage"]
4245
- }
4246
- );
4247
- opensteerStateQueryInputSchema = objectSchema(
4248
- {
4249
- domain: stringSchema({ minLength: 1 })
4250
- },
4251
- {
4252
- title: "OpensteerStateQueryInput"
4253
- }
4254
- );
4255
- opensteerStateQueryOutputSchema = objectSchema(
4256
- {
4257
- domains: arraySchema(opensteerStateDomainSnapshotSchema)
4258
- },
4259
- {
4260
- title: "OpensteerStateQueryOutput",
4261
- required: ["domains"]
4262
- }
4263
- );
4264
- objectSchema(
4265
- {
4266
- pageRef: pageRefSchema,
4267
- recordId: stringSchema({ minLength: 1 }),
4268
- requestId: stringSchema({ minLength: 1 }),
3852
+ requestId: stringSchema({ minLength: 1 }),
4269
3853
  capture: stringSchema({ minLength: 1 }),
4270
3854
  tag: stringSchema({ minLength: 1 }),
4271
3855
  url: stringSchema({ minLength: 1 }),
@@ -4351,85 +3935,6 @@ var init_requests = __esm({
4351
3935
  required: ["plans"]
4352
3936
  }
4353
3937
  );
4354
- objectSchema(
4355
- {
4356
- id: stringSchema({ minLength: 1 }),
4357
- key: stringSchema({ minLength: 1 }),
4358
- version: stringSchema({ minLength: 1 }),
4359
- tags: arraySchema(stringSchema({ minLength: 1 }), {
4360
- uniqueItems: true
4361
- }),
4362
- provenance: opensteerRegistryProvenanceSchema,
4363
- payload: opensteerRecipePayloadSchema
4364
- },
4365
- {
4366
- title: "OpensteerWriteRecipeInput",
4367
- required: ["key", "version", "payload"]
4368
- }
4369
- );
4370
- objectSchema(
4371
- {
4372
- key: stringSchema({ minLength: 1 }),
4373
- version: stringSchema({ minLength: 1 })
4374
- },
4375
- {
4376
- title: "OpensteerGetRecipeInput",
4377
- required: ["key"]
4378
- }
4379
- );
4380
- objectSchema(
4381
- {
4382
- key: stringSchema({ minLength: 1 })
4383
- },
4384
- {
4385
- title: "OpensteerListRecipesInput"
4386
- }
4387
- );
4388
- objectSchema(
4389
- {
4390
- recipes: arraySchema(opensteerRecipeRecordSchema)
4391
- },
4392
- {
4393
- title: "OpensteerListRecipesOutput",
4394
- required: ["recipes"]
4395
- }
4396
- );
4397
- objectSchema(
4398
- {
4399
- key: stringSchema({ minLength: 1 }),
4400
- version: stringSchema({ minLength: 1 }),
4401
- variables: recordSchema(stringSchema(), {
4402
- title: "OpensteerRecipeVariables"
4403
- })
4404
- },
4405
- {
4406
- title: "OpensteerRunRecipeInput",
4407
- required: ["key"]
4408
- }
4409
- );
4410
- objectSchema(
4411
- {
4412
- recipe: objectSchema(
4413
- {
4414
- id: stringSchema({ minLength: 1 }),
4415
- key: stringSchema({ minLength: 1 }),
4416
- version: stringSchema({ minLength: 1 })
4417
- },
4418
- {
4419
- title: "OpensteerResolvedRecipeRef",
4420
- required: ["id", "key", "version"]
4421
- }
4422
- ),
4423
- variables: recordSchema(stringSchema(), {
4424
- title: "OpensteerResolvedRecipeVariables"
4425
- }),
4426
- overrides: opensteerRecipeRetryOverridesSchema
4427
- },
4428
- {
4429
- title: "OpensteerRunRecipeOutput",
4430
- required: ["recipe", "variables"]
4431
- }
4432
- );
4433
3938
  objectSchema(
4434
3939
  {
4435
3940
  key: stringSchema({ minLength: 1 }),
@@ -4536,17 +4041,7 @@ var init_requests = __esm({
4536
4041
  {
4537
4042
  attempted: { type: "boolean" },
4538
4043
  succeeded: { type: "boolean" },
4539
- matchedFailurePolicy: { type: "boolean" },
4540
- recipe: objectSchema(
4541
- {
4542
- key: stringSchema({ minLength: 1 }),
4543
- version: stringSchema({ minLength: 1 })
4544
- },
4545
- {
4546
- title: "OpensteerResolvedRecoveryRecipeRef",
4547
- required: ["key", "version"]
4548
- }
4549
- )
4044
+ matchedFailurePolicy: { type: "boolean" }
4550
4045
  },
4551
4046
  {
4552
4047
  title: "OpensteerRequestRecoveryMetadata",
@@ -4587,29 +4082,100 @@ var init_requests = __esm({
4587
4082
  }
4588
4083
  });
4589
4084
 
4590
- // ../protocol/src/snapshots.ts
4591
- var screenshotFormatSchema, screenshotArtifactSchema, htmlSnapshotSchema, domSnapshotNodeSchema, shadowDomSnapshotModeSchema, domSnapshotSchema, hitTestResultSchema;
4592
- var init_snapshots2 = __esm({
4593
- "../protocol/src/snapshots.ts"() {
4594
- init_identity2();
4595
- init_binary_location();
4596
- init_geometry2();
4085
+ // ../protocol/src/state.ts
4086
+ var opensteerStateSnapshotCookieSchema, opensteerStateSnapshotSchema, opensteerStateDeltaSchema;
4087
+ var init_state = __esm({
4088
+ "../protocol/src/state.ts"() {
4597
4089
  init_json2();
4598
- screenshotFormatSchema = enumSchema(["png", "jpeg", "webp"], {
4599
- title: "ScreenshotFormat"
4600
- });
4601
- screenshotArtifactSchema = objectSchema(
4602
- {
4603
- pageRef: pageRefSchema,
4604
- frameRef: frameRefSchema,
4605
- documentRef: documentRefSchema,
4606
- documentEpoch: documentEpochSchema,
4607
- payload: externalBinaryLocationSchema,
4608
- format: screenshotFormatSchema,
4609
- size: sizeSchema,
4610
- coordinateSpace: coordinateSpaceSchema,
4611
- clip: rectSchema
4612
- },
4090
+ init_identity2();
4091
+ init_storage2();
4092
+ opensteerStateSnapshotCookieSchema = objectSchema(
4093
+ {
4094
+ name: stringSchema({ minLength: 1 }),
4095
+ value: stringSchema(),
4096
+ domain: stringSchema({ minLength: 1 }),
4097
+ path: stringSchema({ minLength: 1 }),
4098
+ secure: { type: "boolean" },
4099
+ httpOnly: { type: "boolean" },
4100
+ sameSite: enumSchema(["strict", "lax", "none"]),
4101
+ priority: enumSchema(["low", "medium", "high"]),
4102
+ partitionKey: stringSchema({ minLength: 1 }),
4103
+ session: { type: "boolean" },
4104
+ expiresAt: oneOfSchema([integerSchema({ minimum: 0 }), { type: "null" }])
4105
+ },
4106
+ {
4107
+ title: "OpensteerStateSnapshotCookie",
4108
+ required: ["name", "value", "domain", "path", "secure", "httpOnly", "session"]
4109
+ }
4110
+ );
4111
+ opensteerStateSnapshotSchema = objectSchema(
4112
+ {
4113
+ id: stringSchema({ minLength: 1 }),
4114
+ capturedAt: integerSchema({ minimum: 0 }),
4115
+ pageRef: pageRefSchema,
4116
+ url: stringSchema({ minLength: 1 }),
4117
+ cookies: arraySchema(opensteerStateSnapshotCookieSchema),
4118
+ storage: storageSnapshotSchema,
4119
+ hiddenFields: arraySchema(
4120
+ objectSchema(
4121
+ {
4122
+ path: stringSchema({ minLength: 1 }),
4123
+ name: stringSchema({ minLength: 1 }),
4124
+ value: stringSchema()
4125
+ },
4126
+ {
4127
+ title: "OpensteerStateSnapshotHiddenField",
4128
+ required: ["path", "name", "value"]
4129
+ }
4130
+ )
4131
+ ),
4132
+ globals: recordSchema({}, { title: "OpensteerStateSnapshotGlobals" })
4133
+ },
4134
+ {
4135
+ title: "OpensteerStateSnapshot",
4136
+ required: ["id", "capturedAt"]
4137
+ }
4138
+ );
4139
+ opensteerStateDeltaSchema = objectSchema(
4140
+ {
4141
+ beforeStateId: stringSchema({ minLength: 1 }),
4142
+ afterStateId: stringSchema({ minLength: 1 }),
4143
+ cookiesChanged: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4144
+ storageChanged: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4145
+ hiddenFieldsChanged: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
4146
+ globalsChanged: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
4147
+ },
4148
+ {
4149
+ title: "OpensteerStateDelta",
4150
+ required: ["cookiesChanged", "storageChanged", "hiddenFieldsChanged", "globalsChanged"]
4151
+ }
4152
+ );
4153
+ }
4154
+ });
4155
+
4156
+ // ../protocol/src/snapshots.ts
4157
+ var screenshotFormatSchema, screenshotArtifactSchema, htmlSnapshotSchema, domSnapshotNodeSchema, shadowDomSnapshotModeSchema, domSnapshotSchema, hitTestResultSchema;
4158
+ var init_snapshots2 = __esm({
4159
+ "../protocol/src/snapshots.ts"() {
4160
+ init_identity2();
4161
+ init_binary_location();
4162
+ init_geometry2();
4163
+ init_json2();
4164
+ screenshotFormatSchema = enumSchema(["png", "jpeg", "webp"], {
4165
+ title: "ScreenshotFormat"
4166
+ });
4167
+ screenshotArtifactSchema = objectSchema(
4168
+ {
4169
+ pageRef: pageRefSchema,
4170
+ frameRef: frameRefSchema,
4171
+ documentRef: documentRefSchema,
4172
+ documentEpoch: documentEpochSchema,
4173
+ payload: externalBinaryLocationSchema,
4174
+ format: screenshotFormatSchema,
4175
+ size: sizeSchema,
4176
+ coordinateSpace: coordinateSpaceSchema,
4177
+ clip: rectSchema
4178
+ },
4613
4179
  {
4614
4180
  title: "ScreenshotArtifact",
4615
4181
  required: ["pageRef", "payload", "format", "size", "coordinateSpace"]
@@ -5491,6 +5057,62 @@ var init_artifacts2 = __esm({
5491
5057
  }
5492
5058
  });
5493
5059
 
5060
+ // ../protocol/src/captcha.ts
5061
+ var captchaTypeSchema, captchaProviderSchema, captchaDetectionResultSchema, opensteerCaptchaSolveInputSchema, opensteerCaptchaSolveOutputSchema;
5062
+ var init_captcha = __esm({
5063
+ "../protocol/src/captcha.ts"() {
5064
+ init_json2();
5065
+ init_identity2();
5066
+ captchaTypeSchema = enumSchema(
5067
+ ["recaptcha-v2", "hcaptcha", "turnstile"],
5068
+ {
5069
+ title: "CaptchaType"
5070
+ }
5071
+ );
5072
+ captchaProviderSchema = enumSchema(["2captcha", "capsolver"], {
5073
+ title: "CaptchaProvider"
5074
+ });
5075
+ captchaDetectionResultSchema = objectSchema(
5076
+ {
5077
+ type: captchaTypeSchema,
5078
+ siteKey: stringSchema({ minLength: 1 }),
5079
+ pageUrl: stringSchema({ minLength: 1 })
5080
+ },
5081
+ {
5082
+ title: "CaptchaDetectionResult",
5083
+ required: ["type", "siteKey", "pageUrl"]
5084
+ }
5085
+ );
5086
+ opensteerCaptchaSolveInputSchema = objectSchema(
5087
+ {
5088
+ provider: captchaProviderSchema,
5089
+ apiKey: stringSchema({ minLength: 1 }),
5090
+ pageRef: pageRefSchema,
5091
+ timeoutMs: integerSchema({ minimum: 1 }),
5092
+ type: captchaTypeSchema,
5093
+ siteKey: stringSchema({ minLength: 1 }),
5094
+ pageUrl: stringSchema({ minLength: 1 })
5095
+ },
5096
+ {
5097
+ title: "OpensteerCaptchaSolveInput",
5098
+ required: ["provider", "apiKey"]
5099
+ }
5100
+ );
5101
+ opensteerCaptchaSolveOutputSchema = objectSchema(
5102
+ {
5103
+ captcha: captchaDetectionResultSchema,
5104
+ token: stringSchema({ minLength: 1 }),
5105
+ injected: { type: "boolean" },
5106
+ provider: captchaProviderSchema
5107
+ },
5108
+ {
5109
+ title: "OpensteerCaptchaSolveOutput",
5110
+ required: ["captcha", "token", "injected", "provider"]
5111
+ }
5112
+ );
5113
+ }
5114
+ });
5115
+
5494
5116
  // ../protocol/src/traces.ts
5495
5117
  function traceRecordSchema(dataSchema = {}) {
5496
5118
  return objectSchema(
@@ -6668,1627 +6290,75 @@ var init_scripts = __esm({
6668
6290
  body: stringSchema()
6669
6291
  },
6670
6292
  {
6671
- title: "SandboxAjaxMockResponse",
6672
- required: ["status"]
6673
- }
6674
- )
6675
- },
6676
- {
6677
- title: "SandboxAjaxRoute",
6678
- required: ["urlPattern", "mode"]
6679
- }
6680
- );
6681
- opensteerScriptSandboxInputSchema = objectSchema(
6682
- {
6683
- artifactId: stringSchema({ minLength: 1 }),
6684
- content: stringSchema(),
6685
- fidelity: sandboxFidelitySchema,
6686
- ajaxRoutes: arraySchema(sandboxAjaxRouteSchema),
6687
- cookies: recordSchema(stringSchema(), {
6688
- title: "SandboxCookies"
6689
- }),
6690
- globals: objectSchema(
6691
- {},
6692
- {
6693
- title: "SandboxGlobals",
6694
- additionalProperties: true
6695
- }
6696
- ),
6697
- timeoutMs: integerSchema({ minimum: 1 }),
6698
- clockMode: enumSchema(["real", "manual"])
6699
- },
6700
- {
6701
- title: "OpensteerScriptSandboxInput"
6702
- }
6703
- );
6704
- sandboxCapturedAjaxCallSchema = objectSchema(
6705
- {
6706
- method: stringSchema({ minLength: 1 }),
6707
- url: stringSchema({ minLength: 1 }),
6708
- headers: recordSchema(stringSchema(), {
6709
- title: "SandboxCapturedAjaxHeaders"
6710
- }),
6711
- body: stringSchema(),
6712
- timestamp: integerSchema({ minimum: 0 })
6713
- },
6714
- {
6715
- title: "SandboxCapturedAjaxCall",
6716
- required: ["method", "url", "headers", "timestamp"]
6717
- }
6718
- );
6719
- opensteerScriptSandboxOutputSchema = objectSchema(
6720
- {
6721
- result: oneOfSchema(
6722
- [
6723
- objectSchema({}, { additionalProperties: true }),
6724
- arraySchema({}),
6725
- stringSchema(),
6726
- { type: "number" },
6727
- enumSchema([true, false, null])
6728
- ],
6729
- {
6730
- title: "SandboxResult"
6731
- }
6732
- ),
6733
- capturedAjax: arraySchema(sandboxCapturedAjaxCallSchema),
6734
- errors: arraySchema(stringSchema({ minLength: 1 })),
6735
- durationMs: integerSchema({ minimum: 0 })
6736
- },
6737
- {
6738
- title: "OpensteerScriptSandboxOutput",
6739
- required: ["capturedAjax", "errors", "durationMs"]
6740
- }
6741
- );
6742
- }
6743
- });
6744
-
6745
- // ../protocol/src/reverse.ts
6746
- var opensteerStateSourceKindSchema, opensteerReverseCaseStatusSchema, opensteerReverseChannelKindSchema, opensteerReverseManualCalibrationModeSchema, opensteerReverseCandidateBoundarySchema, opensteerReverseAdvisoryTagSchema, opensteerReverseConstraintKindSchema, opensteerRequestInputLocationSchema, opensteerRequestInputRequirednessSchema, opensteerRequestInputClassificationSchema, opensteerRequestInputSourceSchema, opensteerRequestInputMaterializationPolicySchema, opensteerRequestInputExportPolicySchema, opensteerReverseQueryViewSchema, opensteerReverseSortKeySchema, opensteerReverseSortPresetSchema, opensteerReverseSortDirectionSchema, opensteerObservationClusterRelationshipKindSchema, opensteerReverseReportKindSchema, opensteerReversePackageKindSchema, opensteerReversePackageReadinessSchema, opensteerBodyCodecKindSchema, opensteerExecutableResolverKindSchema, opensteerValueReferenceKindSchema, opensteerRuntimeValueKeySchema, opensteerValidationRuleKindSchema, opensteerReverseRequirementKindSchema, opensteerReverseRequirementStatusSchema, opensteerReverseSuggestedEditKindSchema, jsonValueSchema2, opensteerValueReferenceSchema, opensteerValueTemplateSchema, opensteerReverseTargetHintsSchema, opensteerBodyCodecDescriptorSchema, opensteerObservationClusterSchema, opensteerStateSnapshotCookieSchema, opensteerStateSnapshotSchema, opensteerStateDeltaSchema, opensteerRequestInputDescriptorSchema, opensteerExecutableResolverSchema, opensteerReverseAdvisorySignalsSchema, opensteerValidationRuleSchema, opensteerChannelDescriptorSchema, opensteerReverseOperationWorkflowStepSchema, opensteerReverseAwaitRecordWorkflowStepSchema, opensteerReverseAssertWorkflowStepSchema, opensteerReverseWorkflowStepSchema, opensteerReversePackageRequirementsSchema, opensteerReverseAdvisoryTemplateSchema, opensteerReverseGuardRecordSchema, opensteerReverseObservationRecordSchema, opensteerReverseObservedRecordSchema, opensteerReverseCandidateRecordSchema, opensteerReverseReplayValidationSchema, opensteerReverseReplayRunRecordSchema, opensteerReverseExperimentRecordSchema, opensteerReverseRequirementSchema, opensteerReverseSuggestedEditSchema, opensteerReverseExportRecordSchema, opensteerReverseCasePayloadSchema, opensteerReversePackagePayloadSchema, opensteerReversePackageRecordSchema, opensteerReverseCandidateReportItemSchema, opensteerReverseDiscoverySummaryCountsSchema, opensteerReverseReportPayloadSchema, opensteerReverseReportRecordSchema, opensteerReverseNetworkFilterSchema, opensteerReverseQueryFiltersSchema, opensteerReverseQuerySortSchema, opensteerReverseQuerySnapshotSchema, opensteerReverseQueryRecordItemSchema, opensteerReverseQueryClusterItemSchema, opensteerReverseQueryCandidateItemSchema;
6747
- var init_reverse = __esm({
6748
- "../protocol/src/reverse.ts"() {
6749
- init_json2();
6750
- init_identity2();
6751
- init_network2();
6752
- init_requests();
6753
- init_storage2();
6754
- opensteerStateSourceKindSchema = enumSchema(
6755
- ["temporary", "persistent", "attach"],
6756
- { title: "OpensteerStateSourceKind" }
6757
- );
6758
- opensteerReverseCaseStatusSchema = enumSchema(
6759
- ["capturing", "analyzing", "ready", "attention"],
6760
- { title: "OpensteerReverseCaseStatus" }
6761
- );
6762
- opensteerReverseChannelKindSchema = enumSchema(
6763
- ["http", "event-stream", "websocket"],
6764
- { title: "OpensteerReverseChannelKind" }
6765
- );
6766
- opensteerReverseManualCalibrationModeSchema = enumSchema(
6767
- ["allow", "avoid", "require"],
6768
- { title: "OpensteerReverseManualCalibrationMode" }
6769
- );
6770
- opensteerReverseCandidateBoundarySchema = enumSchema(
6771
- ["first-party", "same-site", "third-party"],
6772
- { title: "OpensteerReverseCandidateBoundary" }
6773
- );
6774
- opensteerReverseAdvisoryTagSchema = enumSchema(
6775
- [
6776
- "data",
6777
- "facet",
6778
- "telemetry",
6779
- "subscription",
6780
- "navigation",
6781
- "document",
6782
- "route-data",
6783
- "search",
6784
- "tracking",
6785
- "unknown"
6786
- ],
6787
- { title: "OpensteerReverseAdvisoryTag" }
6788
- );
6789
- opensteerReverseConstraintKindSchema = enumSchema(
6790
- [
6791
- "requires-browser",
6792
- "requires-cookie",
6793
- "requires-storage",
6794
- "requires-script",
6795
- "requires-guard",
6796
- "requires-live-state",
6797
- "opaque-body",
6798
- "unsupported"
6799
- ],
6800
- { title: "OpensteerReverseConstraintKind" }
6801
- );
6802
- opensteerRequestInputLocationSchema = enumSchema(
6803
- ["path", "query", "header", "cookie", "body-field"],
6804
- { title: "OpensteerRequestInputLocation" }
6805
- );
6806
- opensteerRequestInputRequirednessSchema = enumSchema(
6807
- ["required", "optional", "unknown"],
6808
- { title: "OpensteerRequestInputRequiredness" }
6809
- );
6810
- opensteerRequestInputClassificationSchema = enumSchema(
6811
- ["managed", "static", "contextual", "volatile"],
6812
- { title: "OpensteerRequestInputClassification" }
6813
- );
6814
- opensteerRequestInputSourceSchema = enumSchema(
6815
- [
6816
- "literal",
6817
- "cookie",
6818
- "storage",
6819
- "prior-response",
6820
- "page",
6821
- "script",
6822
- "guard-output",
6823
- "runtime-managed",
6824
- "unknown"
6825
- ],
6826
- { title: "OpensteerRequestInputSource" }
6827
- );
6828
- opensteerRequestInputMaterializationPolicySchema = enumSchema(
6829
- ["copy", "omit", "recompute", "resolve"],
6830
- { title: "OpensteerRequestInputMaterializationPolicy" }
6831
- );
6832
- opensteerRequestInputExportPolicySchema = enumSchema(
6833
- ["portable", "browser-bound", "blocked"],
6834
- { title: "OpensteerRequestInputExportPolicy" }
6835
- );
6836
- opensteerReverseQueryViewSchema = enumSchema(
6837
- ["records", "clusters", "candidates"],
6838
- { title: "OpensteerReverseQueryView" }
6839
- );
6840
- opensteerReverseSortKeySchema = enumSchema(
6841
- [
6842
- "observed-at",
6843
- "advisory-rank",
6844
- "target-hint-matches",
6845
- "response-richness",
6846
- "portability",
6847
- "boundary",
6848
- "success"
6849
- ],
6850
- { title: "OpensteerReverseSortKey" }
6851
- );
6852
- opensteerReverseSortPresetSchema = enumSchema(
6853
- [
6854
- "advisory-rank",
6855
- "observed-at",
6856
- "portability",
6857
- "first-party",
6858
- "hint-match",
6859
- "response-richness"
6860
- ],
6861
- { title: "OpensteerReverseSortPreset" }
6862
- );
6863
- opensteerReverseSortDirectionSchema = enumSchema(
6864
- ["asc", "desc"],
6865
- {
6866
- title: "OpensteerReverseSortDirection"
6867
- }
6868
- );
6869
- opensteerObservationClusterRelationshipKindSchema = enumSchema(
6870
- ["seed", "preflight", "redirect", "retry", "duplicate", "follow-on"],
6871
- { title: "OpensteerObservationClusterRelationshipKind" }
6872
- );
6873
- opensteerReverseReportKindSchema = enumSchema(
6874
- ["discovery", "package"],
6875
- { title: "OpensteerReverseReportKind" }
6876
- );
6877
- opensteerReversePackageKindSchema = enumSchema(
6878
- ["portable-http", "browser-workflow"],
6879
- { title: "OpensteerReversePackageKind" }
6880
- );
6881
- opensteerReversePackageReadinessSchema = enumSchema(
6882
- ["runnable", "draft", "unsupported"],
6883
- { title: "OpensteerReversePackageReadiness" }
6884
- );
6885
- opensteerBodyCodecKindSchema = enumSchema(
6886
- [
6887
- "json",
6888
- "form-urlencoded",
6889
- "multipart",
6890
- "graphql",
6891
- "persisted-graphql",
6892
- "text",
6893
- "opaque-binary",
6894
- "sse",
6895
- "websocket-json",
6896
- "websocket-text",
6897
- "unknown"
6898
- ],
6899
- { title: "OpensteerBodyCodecKind" }
6900
- );
6901
- opensteerExecutableResolverKindSchema = enumSchema(
6902
- [
6903
- "literal",
6904
- "cookie",
6905
- "storage",
6906
- "prior-record",
6907
- "binding",
6908
- "candidate",
6909
- "case",
6910
- "state-snapshot",
6911
- "artifact",
6912
- "manual",
6913
- "runtime-managed"
6914
- ],
6915
- { title: "OpensteerExecutableResolverKind" }
6916
- );
6917
- opensteerValueReferenceKindSchema = enumSchema(
6918
- [
6919
- "literal",
6920
- "resolver",
6921
- "binding",
6922
- "candidate",
6923
- "case",
6924
- "record",
6925
- "artifact",
6926
- "state-snapshot",
6927
- "runtime",
6928
- "manual"
6929
- ],
6930
- { title: "OpensteerValueReferenceKind" }
6931
- );
6932
- opensteerRuntimeValueKeySchema = enumSchema(
6933
- ["pageRef", "packageId", "caseId", "candidateId", "objective"],
6934
- { title: "OpensteerRuntimeValueKey" }
6935
- );
6936
- opensteerValidationRuleKindSchema = enumSchema(
6937
- [
6938
- "status",
6939
- "json-structure",
6940
- "text-includes",
6941
- "stream-first-chunk",
6942
- "websocket-open",
6943
- "message-count-at-least"
6944
- ],
6945
- { title: "OpensteerValidationRuleKind" }
6946
- );
6947
- enumSchema(
6948
- ["operation", "await-record", "assert"],
6949
- { title: "OpensteerReverseWorkflowStepKind" }
6950
- );
6951
- opensteerReverseRequirementKindSchema = enumSchema(
6952
- ["resolver", "guard", "workflow-step", "state", "channel", "unsupported"],
6953
- { title: "OpensteerReverseRequirementKind" }
6954
- );
6955
- opensteerReverseRequirementStatusSchema = enumSchema(
6956
- ["required", "recommended"],
6957
- { title: "OpensteerReverseRequirementStatus" }
6958
- );
6959
- opensteerReverseSuggestedEditKindSchema = enumSchema(
6960
- [
6961
- "set-resolver",
6962
- "attach-trace",
6963
- "replace-workflow",
6964
- "patch-step-input",
6965
- "switch-state-source",
6966
- "inspect-evidence",
6967
- "mark-unsupported"
6968
- ],
6969
- { title: "OpensteerReverseSuggestedEditKind" }
6970
- );
6971
- jsonValueSchema2 = defineSchema({
6972
- title: "JsonValue"
6973
- });
6974
- opensteerValueReferenceSchema = objectSchema(
6975
- {
6976
- kind: opensteerValueReferenceKindSchema,
6977
- pointer: stringSchema({ minLength: 1 }),
6978
- resolverId: stringSchema({ minLength: 1 }),
6979
- binding: stringSchema({ minLength: 1 }),
6980
- recordId: stringSchema({ minLength: 1 }),
6981
- artifactId: stringSchema({ minLength: 1 }),
6982
- stateSnapshotId: stringSchema({ minLength: 1 }),
6983
- runtimeKey: opensteerRuntimeValueKeySchema,
6984
- value: jsonValueSchema2,
6985
- placeholder: stringSchema({ minLength: 1 })
6986
- },
6987
- {
6988
- title: "OpensteerValueReference",
6989
- required: ["kind"]
6990
- }
6991
- );
6992
- opensteerValueTemplateSchema = defineSchema({
6993
- title: "OpensteerValueTemplate"
6994
- });
6995
- opensteerReverseTargetHintsSchema = objectSchema(
6996
- {
6997
- hosts: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
6998
- paths: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
6999
- operationNames: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7000
- channels: arraySchema(opensteerReverseChannelKindSchema, { uniqueItems: true })
7001
- },
7002
- {
7003
- title: "OpensteerReverseTargetHints"
7004
- }
7005
- );
7006
- opensteerBodyCodecDescriptorSchema = objectSchema(
7007
- {
7008
- kind: opensteerBodyCodecKindSchema,
7009
- contentType: stringSchema({ minLength: 1 }),
7010
- operationName: stringSchema({ minLength: 1 }),
7011
- fieldPaths: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
7012
- },
7013
- {
7014
- title: "OpensteerBodyCodecDescriptor",
7015
- required: ["kind", "fieldPaths"]
7016
- }
7017
- );
7018
- opensteerObservationClusterSchema = objectSchema(
7019
- {
7020
- id: stringSchema({ minLength: 1 }),
7021
- observationId: stringSchema({ minLength: 1 }),
7022
- label: stringSchema({ minLength: 1 }),
7023
- channel: opensteerReverseChannelKindSchema,
7024
- method: stringSchema({ minLength: 1 }),
7025
- url: stringSchema({ minLength: 1 }),
7026
- matchedTargetHints: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7027
- members: arraySchema(
7028
- objectSchema(
7029
- {
7030
- recordId: stringSchema({ minLength: 1 }),
7031
- observedAt: integerSchema({ minimum: 0 }),
7032
- resourceType: stringSchema({ minLength: 1 }),
7033
- status: integerSchema({ minimum: 0 }),
7034
- relation: opensteerObservationClusterRelationshipKindSchema,
7035
- relatedRecordId: stringSchema({ minLength: 1 }),
7036
- matchedTargetHints: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
7037
- },
7038
- {
7039
- title: "OpensteerObservationClusterMember",
7040
- required: ["recordId", "relation", "matchedTargetHints"]
7041
- }
7042
- )
7043
- )
7044
- },
7045
- {
7046
- title: "OpensteerObservationCluster",
7047
- required: ["id", "observationId", "label", "channel", "url", "matchedTargetHints", "members"]
7048
- }
7049
- );
7050
- opensteerStateSnapshotCookieSchema = objectSchema(
7051
- {
7052
- name: stringSchema({ minLength: 1 }),
7053
- value: stringSchema(),
7054
- domain: stringSchema({ minLength: 1 }),
7055
- path: stringSchema({ minLength: 1 }),
7056
- secure: { type: "boolean" },
7057
- httpOnly: { type: "boolean" },
7058
- sameSite: enumSchema(["strict", "lax", "none"]),
7059
- priority: enumSchema(["low", "medium", "high"]),
7060
- partitionKey: stringSchema({ minLength: 1 }),
7061
- session: { type: "boolean" },
7062
- expiresAt: oneOfSchema([integerSchema({ minimum: 0 }), { type: "null" }])
7063
- },
7064
- {
7065
- title: "OpensteerStateSnapshotCookie",
7066
- required: ["name", "value", "domain", "path", "secure", "httpOnly", "session"]
7067
- }
7068
- );
7069
- opensteerStateSnapshotSchema = objectSchema(
7070
- {
7071
- id: stringSchema({ minLength: 1 }),
7072
- capturedAt: integerSchema({ minimum: 0 }),
7073
- pageRef: pageRefSchema,
7074
- url: stringSchema({ minLength: 1 }),
7075
- cookies: arraySchema(opensteerStateSnapshotCookieSchema),
7076
- storage: storageSnapshotSchema,
7077
- hiddenFields: arraySchema(
7078
- objectSchema(
7079
- {
7080
- path: stringSchema({ minLength: 1 }),
7081
- name: stringSchema({ minLength: 1 }),
7082
- value: stringSchema()
7083
- },
7084
- {
7085
- title: "OpensteerStateSnapshotHiddenField",
7086
- required: ["path", "name", "value"]
7087
- }
7088
- )
7089
- ),
7090
- globals: recordSchema({}, { title: "OpensteerStateSnapshotGlobals" })
7091
- },
7092
- {
7093
- title: "OpensteerStateSnapshot",
7094
- required: ["id", "capturedAt"]
7095
- }
7096
- );
7097
- opensteerStateDeltaSchema = objectSchema(
7098
- {
7099
- beforeStateId: stringSchema({ minLength: 1 }),
7100
- afterStateId: stringSchema({ minLength: 1 }),
7101
- cookiesChanged: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7102
- storageChanged: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7103
- hiddenFieldsChanged: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7104
- globalsChanged: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
7105
- },
7106
- {
7107
- title: "OpensteerStateDelta",
7108
- required: ["cookiesChanged", "storageChanged", "hiddenFieldsChanged", "globalsChanged"]
7109
- }
7110
- );
7111
- opensteerRequestInputDescriptorSchema = objectSchema(
7112
- {
7113
- name: stringSchema({ minLength: 1 }),
7114
- location: opensteerRequestInputLocationSchema,
7115
- path: stringSchema({ minLength: 1 }),
7116
- wireName: stringSchema({ minLength: 1 }),
7117
- requiredness: opensteerRequestInputRequirednessSchema,
7118
- classification: opensteerRequestInputClassificationSchema,
7119
- source: opensteerRequestInputSourceSchema,
7120
- materializationPolicy: opensteerRequestInputMaterializationPolicySchema,
7121
- exportPolicy: opensteerRequestInputExportPolicySchema,
7122
- originalValue: stringSchema(),
7123
- provenance: objectSchema(
7124
- {
7125
- recordId: stringSchema({ minLength: 1 }),
7126
- observationId: stringSchema({ minLength: 1 }),
7127
- sourcePointer: stringSchema({ minLength: 1 }),
7128
- notes: stringSchema({ minLength: 1 })
7129
- },
7130
- {
7131
- title: "OpensteerRequestInputDescriptorProvenance"
7132
- }
7133
- ),
7134
- unlockedByGuardIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
7135
- },
7136
- {
7137
- title: "OpensteerRequestInputDescriptor",
7138
- required: [
7139
- "name",
7140
- "location",
7141
- "requiredness",
7142
- "classification",
7143
- "source",
7144
- "materializationPolicy",
7145
- "exportPolicy"
7146
- ]
7147
- }
7148
- );
7149
- opensteerExecutableResolverSchema = objectSchema(
7150
- {
7151
- id: stringSchema({ minLength: 1 }),
7152
- kind: opensteerExecutableResolverKindSchema,
7153
- label: stringSchema({ minLength: 1 }),
7154
- status: enumSchema(["ready", "missing"]),
7155
- requiresBrowser: { type: "boolean" },
7156
- requiresLiveState: { type: "boolean" },
7157
- description: stringSchema({ minLength: 1 }),
7158
- inputNames: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7159
- guardId: stringSchema({ minLength: 1 }),
7160
- traceId: stringSchema({ minLength: 1 }),
7161
- valueRef: opensteerValueReferenceSchema
7162
- },
7163
- {
7164
- title: "OpensteerExecutableResolver",
7165
- required: ["id", "kind", "label", "status", "requiresBrowser", "requiresLiveState"]
7166
- }
7167
- );
7168
- opensteerReverseAdvisorySignalsSchema = objectSchema(
7169
- {
7170
- advisoryRank: numberSchema(),
7171
- observedAt: integerSchema({ minimum: 0 }),
7172
- targetHintMatches: integerSchema({ minimum: 0 }),
7173
- responseRichness: integerSchema({ minimum: 0 }),
7174
- portabilityWeight: integerSchema({ minimum: 0 }),
7175
- boundaryWeight: integerSchema({ minimum: 0 }),
7176
- successfulStatus: { type: "boolean" },
7177
- fetchLike: { type: "boolean" },
7178
- hasResponseBody: { type: "boolean" },
7179
- dataPathMatch: { type: "boolean" },
7180
- cookieInputCount: integerSchema({ minimum: 0 }),
7181
- storageInputCount: integerSchema({ minimum: 0 }),
7182
- volatileInputCount: integerSchema({ minimum: 0 }),
7183
- guardCount: integerSchema({ minimum: 0 })
7184
- },
7185
- {
7186
- title: "OpensteerReverseAdvisorySignals",
7187
- required: [
7188
- "advisoryRank",
7189
- "targetHintMatches",
7190
- "responseRichness",
7191
- "portabilityWeight",
7192
- "boundaryWeight",
7193
- "successfulStatus",
7194
- "fetchLike",
7195
- "hasResponseBody",
7196
- "dataPathMatch",
7197
- "cookieInputCount",
7198
- "storageInputCount",
7199
- "volatileInputCount",
7200
- "guardCount"
7201
- ]
7202
- }
7203
- );
7204
- opensteerValidationRuleSchema = objectSchema(
7205
- {
7206
- id: stringSchema({ minLength: 1 }),
7207
- kind: opensteerValidationRuleKindSchema,
7208
- label: stringSchema({ minLength: 1 }),
7209
- required: { type: "boolean" },
7210
- expectedStatus: integerSchema({ minimum: 0 }),
7211
- structureHash: stringSchema({ minLength: 1 }),
7212
- textIncludes: stringSchema({ minLength: 1 }),
7213
- minimumCount: integerSchema({ minimum: 0 })
7214
- },
7215
- {
7216
- title: "OpensteerValidationRule",
7217
- required: ["id", "kind", "label", "required"]
7218
- }
7219
- );
7220
- opensteerChannelDescriptorSchema = objectSchema(
7221
- {
7222
- kind: opensteerReverseChannelKindSchema,
7223
- recordKind: networkRecordKindSchema,
7224
- method: stringSchema({ minLength: 1 }),
7225
- url: stringSchema({ minLength: 1 }),
7226
- subprotocol: stringSchema({ minLength: 1 })
7227
- },
7228
- {
7229
- title: "OpensteerChannelDescriptor",
7230
- required: ["kind", "recordKind", "url"]
7231
- }
7232
- );
7233
- opensteerReverseOperationWorkflowStepSchema = objectSchema(
7234
- {
7235
- id: stringSchema({ minLength: 1 }),
7236
- kind: enumSchema(["operation"]),
7237
- label: stringSchema({ minLength: 1 }),
7238
- operation: stringSchema({ minLength: 1 }),
7239
- input: opensteerValueTemplateSchema,
7240
- bindAs: stringSchema({ minLength: 1 })
7241
- },
7242
- {
7243
- title: "OpensteerReverseOperationWorkflowStep",
7244
- required: ["id", "kind", "label", "operation", "input"]
7245
- }
7246
- );
7247
- opensteerReverseAwaitRecordWorkflowStepSchema = objectSchema(
7248
- {
7249
- id: stringSchema({ minLength: 1 }),
7250
- kind: enumSchema(["await-record"]),
7251
- label: stringSchema({ minLength: 1 }),
7252
- channel: opensteerChannelDescriptorSchema,
7253
- recordId: stringSchema({ minLength: 1 }),
7254
- match: objectSchema(
7255
- {
7256
- recordId: stringSchema({ minLength: 1 }),
7257
- host: stringSchema({ minLength: 1 }),
7258
- path: stringSchema({ minLength: 1 }),
7259
- method: stringSchema({ minLength: 1 }),
7260
- channel: opensteerReverseChannelKindSchema,
7261
- status: integerSchema({ minimum: 0 }),
7262
- text: stringSchema({ minLength: 1 })
7263
- },
7264
- {
7265
- title: "OpensteerReverseAwaitRecordMatch"
7266
- }
7267
- ),
7268
- validationRuleIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7269
- timeoutMs: integerSchema({ minimum: 0 }),
7270
- bindAs: stringSchema({ minLength: 1 })
7271
- },
7272
- {
7273
- title: "OpensteerReverseAwaitRecordWorkflowStep",
7274
- required: ["id", "kind", "label", "channel"]
7275
- }
7276
- );
7277
- opensteerReverseAssertWorkflowStepSchema = objectSchema(
7278
- {
7279
- id: stringSchema({ minLength: 1 }),
7280
- kind: enumSchema(["assert"]),
7281
- label: stringSchema({ minLength: 1 }),
7282
- validationRuleIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7283
- binding: stringSchema({ minLength: 1 })
7284
- },
7285
- {
7286
- title: "OpensteerReverseAssertWorkflowStep",
7287
- required: ["id", "kind", "label", "validationRuleIds"]
7288
- }
7289
- );
7290
- opensteerReverseWorkflowStepSchema = oneOfSchema(
7291
- [
7292
- opensteerReverseOperationWorkflowStepSchema,
7293
- opensteerReverseAwaitRecordWorkflowStepSchema,
7294
- opensteerReverseAssertWorkflowStepSchema
7295
- ],
7296
- {
7297
- title: "OpensteerReverseWorkflowStep"
7298
- }
7299
- );
7300
- opensteerReversePackageRequirementsSchema = objectSchema(
7301
- {
7302
- requiresBrowser: { type: "boolean" },
7303
- requiresLiveState: { type: "boolean" },
7304
- manualCalibration: enumSchema(["not-needed", "recommended", "required"]),
7305
- stateSources: arraySchema(opensteerStateSourceKindSchema, { uniqueItems: true })
7306
- },
7307
- {
7308
- title: "OpensteerReversePackageRequirements",
7309
- required: ["requiresBrowser", "requiresLiveState", "manualCalibration", "stateSources"]
7310
- }
7311
- );
7312
- opensteerReverseAdvisoryTemplateSchema = objectSchema(
7313
- {
7314
- id: stringSchema({ minLength: 1 }),
7315
- label: stringSchema({ minLength: 1 }),
7316
- channel: opensteerReverseChannelKindSchema,
7317
- execution: enumSchema(["transport", "page-observation"]),
7318
- stateSource: opensteerStateSourceKindSchema,
7319
- observationId: stringSchema({ minLength: 1 }),
7320
- transport: transportKindSchema,
7321
- guardIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7322
- resolverIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7323
- requiresBrowser: { type: "boolean" },
7324
- requiresLiveState: { type: "boolean" },
7325
- viability: enumSchema(["ready", "draft", "unsupported"]),
7326
- notes: stringSchema({ minLength: 1 })
7327
- },
7328
- {
7329
- title: "OpensteerReverseAdvisoryTemplate",
7330
- required: [
7331
- "id",
7332
- "label",
7333
- "channel",
7334
- "execution",
7335
- "stateSource",
7336
- "guardIds",
7337
- "resolverIds",
7338
- "requiresBrowser",
7339
- "requiresLiveState",
7340
- "viability"
7341
- ]
7342
- }
7343
- );
7344
- opensteerReverseGuardRecordSchema = objectSchema(
7345
- {
7346
- id: stringSchema({ minLength: 1 }),
7347
- kind: enumSchema(["interaction", "state", "script", "manual"]),
7348
- label: stringSchema({ minLength: 1 }),
7349
- status: enumSchema(["required", "satisfied", "unresolved"]),
7350
- interactionTraceId: stringSchema({ minLength: 1 }),
7351
- notes: stringSchema({ minLength: 1 })
7352
- },
7353
- {
7354
- title: "OpensteerReverseGuardRecord",
7355
- required: ["id", "kind", "label", "status"]
7356
- }
7357
- );
7358
- opensteerReverseObservationRecordSchema = objectSchema(
7359
- {
7360
- id: stringSchema({ minLength: 1 }),
7361
- capturedAt: integerSchema({ minimum: 0 }),
7362
- pageRef: pageRefSchema,
7363
- url: stringSchema({ minLength: 1 }),
7364
- stateSource: opensteerStateSourceKindSchema,
7365
- networkRecordIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7366
- scriptArtifactIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7367
- interactionTraceIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7368
- stateSnapshotIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7369
- notes: stringSchema({ minLength: 1 })
7370
- },
7371
- {
7372
- title: "OpensteerReverseObservationRecord",
7373
- required: [
7374
- "id",
7375
- "capturedAt",
7376
- "stateSource",
7377
- "networkRecordIds",
7378
- "scriptArtifactIds",
7379
- "interactionTraceIds",
7380
- "stateSnapshotIds"
7381
- ]
7382
- }
7383
- );
7384
- opensteerReverseObservedRecordSchema = objectSchema(
7385
- {
7386
- recordId: stringSchema({ minLength: 1 }),
7387
- observationId: stringSchema({ minLength: 1 }),
7388
- clusterId: stringSchema({ minLength: 1 }),
7389
- observedAt: integerSchema({ minimum: 0 }),
7390
- channel: opensteerChannelDescriptorSchema,
7391
- bodyCodec: opensteerBodyCodecDescriptorSchema,
7392
- resourceType: stringSchema({ minLength: 1 }),
7393
- status: integerSchema({ minimum: 0 }),
7394
- matchedTargetHints: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7395
- relationKinds: arraySchema(opensteerObservationClusterRelationshipKindSchema, {
7396
- uniqueItems: true
7397
- })
7398
- },
7399
- {
7400
- title: "OpensteerReverseObservedRecord",
7401
- required: [
7402
- "recordId",
7403
- "observationId",
7404
- "clusterId",
7405
- "channel",
7406
- "bodyCodec",
7407
- "matchedTargetHints",
7408
- "relationKinds"
7409
- ]
7410
- }
7411
- );
7412
- opensteerReverseCandidateRecordSchema = objectSchema(
7413
- {
7414
- id: stringSchema({ minLength: 1 }),
7415
- observationId: stringSchema({ minLength: 1 }),
7416
- clusterId: stringSchema({ minLength: 1 }),
7417
- recordId: stringSchema({ minLength: 1 }),
7418
- channel: opensteerChannelDescriptorSchema,
7419
- bodyCodec: opensteerBodyCodecDescriptorSchema,
7420
- boundary: opensteerReverseCandidateBoundarySchema,
7421
- summary: stringSchema({ minLength: 1 }),
7422
- matchedTargetHints: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7423
- advisoryTags: arraySchema(opensteerReverseAdvisoryTagSchema, { uniqueItems: true }),
7424
- constraints: arraySchema(opensteerReverseConstraintKindSchema, { uniqueItems: true }),
7425
- signals: opensteerReverseAdvisorySignalsSchema,
7426
- inputs: arraySchema(opensteerRequestInputDescriptorSchema),
7427
- resolvers: arraySchema(opensteerExecutableResolverSchema),
7428
- guardIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7429
- scriptArtifactIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7430
- advisoryTemplates: arraySchema(opensteerReverseAdvisoryTemplateSchema)
7431
- },
7432
- {
7433
- title: "OpensteerReverseCandidateRecord",
7434
- required: [
7435
- "id",
7436
- "observationId",
7437
- "clusterId",
7438
- "recordId",
7439
- "channel",
7440
- "bodyCodec",
7441
- "boundary",
7442
- "summary",
7443
- "matchedTargetHints",
7444
- "advisoryTags",
7445
- "constraints",
7446
- "signals",
7447
- "inputs",
7448
- "resolvers",
7449
- "guardIds",
7450
- "scriptArtifactIds",
7451
- "advisoryTemplates"
7452
- ]
7453
- }
7454
- );
7455
- opensteerReverseReplayValidationSchema = objectSchema(
7456
- {
7457
- statusMatches: { type: "boolean" },
7458
- structureMatches: { type: "boolean" },
7459
- opened: { type: "boolean" },
7460
- firstChunkObserved: { type: "boolean" },
7461
- firstChunkMatches: { type: "boolean" },
7462
- messageObserved: { type: "boolean" },
7463
- messageCount: integerSchema({ minimum: 0 })
7464
- },
7465
- {
7466
- title: "OpensteerReverseReplayValidation"
7467
- }
7468
- );
7469
- opensteerReverseReplayRunRecordSchema = objectSchema(
7470
- {
7471
- id: stringSchema({ minLength: 1 }),
7472
- createdAt: integerSchema({ minimum: 0 }),
7473
- candidateId: stringSchema({ minLength: 1 }),
7474
- templateId: stringSchema({ minLength: 1 }),
7475
- packageId: stringSchema({ minLength: 1 }),
7476
- success: { type: "boolean" },
7477
- channel: opensteerReverseChannelKindSchema,
7478
- kind: opensteerReversePackageKindSchema,
7479
- readiness: opensteerReversePackageReadinessSchema,
7480
- transport: transportKindSchema,
7481
- stateSource: opensteerStateSourceKindSchema,
7482
- executedStepIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7483
- failedStepId: stringSchema({ minLength: 1 }),
7484
- bindings: recordSchema({}, { title: "OpensteerReverseReplayRunBindings" }),
7485
- recordId: stringSchema({ minLength: 1 }),
7486
- status: integerSchema({ minimum: 0 }),
7487
- validation: opensteerReverseReplayValidationSchema,
7488
- error: stringSchema({ minLength: 1 })
7489
- },
7490
- {
7491
- title: "OpensteerReverseReplayRunRecord",
7492
- required: [
7493
- "id",
7494
- "createdAt",
7495
- "packageId",
7496
- "success",
7497
- "kind",
7498
- "readiness",
7499
- "executedStepIds",
7500
- "validation"
7501
- ]
7502
- }
7503
- );
7504
- opensteerReverseExperimentRecordSchema = objectSchema(
7505
- {
7506
- id: stringSchema({ minLength: 1 }),
7507
- createdAt: integerSchema({ minimum: 0 }),
7508
- candidateId: stringSchema({ minLength: 1 }),
7509
- templateId: stringSchema({ minLength: 1 }),
7510
- kind: enumSchema(["replay-attempt", "field-variation"]),
7511
- hypothesis: stringSchema({ minLength: 1 }),
7512
- success: { type: "boolean" },
7513
- status: integerSchema({ minimum: 0 }),
7514
- notes: stringSchema({ minLength: 1 }),
7515
- validation: opensteerReverseReplayValidationSchema
7516
- },
7517
- {
7518
- title: "OpensteerReverseExperimentRecord",
7519
- required: ["id", "createdAt", "kind", "hypothesis", "success"]
7520
- }
7521
- );
7522
- opensteerReverseRequirementSchema = objectSchema(
7523
- {
7524
- id: stringSchema({ minLength: 1 }),
7525
- kind: opensteerReverseRequirementKindSchema,
7526
- status: opensteerReverseRequirementStatusSchema,
7527
- label: stringSchema({ minLength: 1 }),
7528
- description: stringSchema({ minLength: 1 }),
7529
- blocking: { type: "boolean" },
7530
- resolverId: stringSchema({ minLength: 1 }),
7531
- guardId: stringSchema({ minLength: 1 }),
7532
- stepId: stringSchema({ minLength: 1 }),
7533
- inputNames: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7534
- traceId: stringSchema({ minLength: 1 }),
7535
- artifactId: stringSchema({ minLength: 1 }),
7536
- recordId: stringSchema({ minLength: 1 })
7537
- },
7538
- {
7539
- title: "OpensteerReverseRequirement",
7540
- required: ["id", "kind", "status", "label", "blocking"]
7541
- }
7542
- );
7543
- opensteerReverseSuggestedEditSchema = objectSchema(
7544
- {
7545
- id: stringSchema({ minLength: 1 }),
7546
- kind: opensteerReverseSuggestedEditKindSchema,
7547
- label: stringSchema({ minLength: 1 }),
7548
- description: stringSchema({ minLength: 1 }),
7549
- resolverId: stringSchema({ minLength: 1 }),
7550
- guardId: stringSchema({ minLength: 1 }),
7551
- stepId: stringSchema({ minLength: 1 }),
7552
- traceId: stringSchema({ minLength: 1 }),
7553
- artifactId: stringSchema({ minLength: 1 }),
7554
- recordId: stringSchema({ minLength: 1 }),
7555
- payload: jsonValueSchema2
7556
- },
7557
- {
7558
- title: "OpensteerReverseSuggestedEdit",
7559
- required: ["id", "kind", "label"]
7560
- }
7561
- );
7562
- opensteerReverseExportRecordSchema = objectSchema(
7563
- {
7564
- id: stringSchema({ minLength: 1 }),
7565
- createdAt: integerSchema({ minimum: 0 }),
7566
- candidateId: stringSchema({ minLength: 1 }),
7567
- templateId: stringSchema({ minLength: 1 }),
7568
- packageId: stringSchema({ minLength: 1 }),
7569
- kind: opensteerReversePackageKindSchema,
7570
- readiness: opensteerReversePackageReadinessSchema,
7571
- requestPlanId: stringSchema({ minLength: 1 })
7572
- },
7573
- {
7574
- title: "OpensteerReverseExportRecord",
7575
- required: ["id", "createdAt", "packageId", "kind", "readiness"]
7576
- }
7577
- );
7578
- opensteerReverseCasePayloadSchema = objectSchema(
7579
- {
7580
- objective: stringSchema({ minLength: 1 }),
7581
- notes: stringSchema({ minLength: 1 }),
7582
- status: opensteerReverseCaseStatusSchema,
7583
- stateSource: opensteerStateSourceKindSchema,
7584
- observations: arraySchema(opensteerReverseObservationRecordSchema),
7585
- observationClusters: arraySchema(opensteerObservationClusterSchema),
7586
- observedRecords: arraySchema(opensteerReverseObservedRecordSchema),
7587
- candidates: arraySchema(opensteerReverseCandidateRecordSchema),
7588
- guards: arraySchema(opensteerReverseGuardRecordSchema),
7589
- stateSnapshots: arraySchema(opensteerStateSnapshotSchema),
7590
- stateDeltas: arraySchema(opensteerStateDeltaSchema),
7591
- experiments: arraySchema(opensteerReverseExperimentRecordSchema),
7592
- replayRuns: arraySchema(opensteerReverseReplayRunRecordSchema),
7593
- exports: arraySchema(opensteerReverseExportRecordSchema)
7594
- },
7595
- {
7596
- title: "OpensteerReverseCasePayload",
7597
- required: [
7598
- "objective",
7599
- "status",
7600
- "stateSource",
7601
- "observations",
7602
- "observationClusters",
7603
- "observedRecords",
7604
- "candidates",
7605
- "guards",
7606
- "stateSnapshots",
7607
- "stateDeltas",
7608
- "experiments",
7609
- "replayRuns",
7610
- "exports"
7611
- ]
7612
- }
7613
- );
7614
- objectSchema(
7615
- {
7616
- id: stringSchema({ minLength: 1 }),
7617
- key: stringSchema({ minLength: 1 }),
7618
- version: stringSchema({ minLength: 1 }),
7619
- createdAt: integerSchema({ minimum: 0 }),
7620
- updatedAt: integerSchema({ minimum: 0 }),
7621
- contentHash: stringSchema({ minLength: 1 }),
7622
- tags: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7623
- provenance: opensteerRegistryProvenanceSchema,
7624
- payload: opensteerReverseCasePayloadSchema
7625
- },
7626
- {
7627
- title: "OpensteerReverseCaseRecord",
7628
- required: ["id", "key", "version", "createdAt", "updatedAt", "contentHash", "tags", "payload"]
7629
- }
7630
- );
7631
- opensteerReversePackagePayloadSchema = objectSchema(
7632
- {
7633
- kind: opensteerReversePackageKindSchema,
7634
- readiness: opensteerReversePackageReadinessSchema,
7635
- caseId: stringSchema({ minLength: 1 }),
7636
- objective: stringSchema({ minLength: 1 }),
7637
- source: objectSchema(
7638
- {
7639
- kind: enumSchema(["record", "candidate"]),
7640
- id: stringSchema({ minLength: 1 })
7641
- },
7642
- {
7643
- title: "OpensteerReversePackageSource",
7644
- required: ["kind", "id"]
7645
- }
7646
- ),
7647
- sourceRecordId: stringSchema({ minLength: 1 }),
7648
- candidateId: stringSchema({ minLength: 1 }),
7649
- candidate: opensteerReverseCandidateRecordSchema,
7650
- templateId: stringSchema({ minLength: 1 }),
7651
- template: opensteerReverseAdvisoryTemplateSchema,
7652
- channel: opensteerChannelDescriptorSchema,
7653
- stateSource: opensteerStateSourceKindSchema,
7654
- observationId: stringSchema({ minLength: 1 }),
7655
- transport: transportKindSchema,
7656
- guardIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7657
- workflow: arraySchema(opensteerReverseWorkflowStepSchema),
7658
- resolvers: arraySchema(opensteerExecutableResolverSchema),
7659
- validators: arraySchema(opensteerValidationRuleSchema),
7660
- stateSnapshots: arraySchema(opensteerStateSnapshotSchema),
7661
- requirements: opensteerReversePackageRequirementsSchema,
7662
- requestPlanId: stringSchema({ minLength: 1 }),
7663
- unresolvedRequirements: arraySchema(opensteerReverseRequirementSchema),
7664
- suggestedEdits: arraySchema(opensteerReverseSuggestedEditSchema),
7665
- attachedTraceIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7666
- attachedArtifactIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7667
- attachedRecordIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7668
- notes: stringSchema({ minLength: 1 }),
7669
- parentPackageId: stringSchema({ minLength: 1 })
7670
- },
7671
- {
7672
- title: "OpensteerReversePackagePayload",
7673
- required: [
7674
- "kind",
7675
- "readiness",
7676
- "caseId",
7677
- "objective",
7678
- "source",
7679
- "sourceRecordId",
7680
- "guardIds",
7681
- "workflow",
7682
- "resolvers",
7683
- "validators",
7684
- "stateSnapshots",
7685
- "requirements",
7686
- "unresolvedRequirements",
7687
- "suggestedEdits",
7688
- "attachedTraceIds",
7689
- "attachedArtifactIds",
7690
- "attachedRecordIds"
7691
- ]
7692
- }
7693
- );
7694
- opensteerReversePackageRecordSchema = objectSchema(
7695
- {
7696
- id: stringSchema({ minLength: 1 }),
7697
- key: stringSchema({ minLength: 1 }),
7698
- version: stringSchema({ minLength: 1 }),
7699
- createdAt: integerSchema({ minimum: 0 }),
7700
- updatedAt: integerSchema({ minimum: 0 }),
7701
- contentHash: stringSchema({ minLength: 1 }),
7702
- tags: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7703
- provenance: opensteerRegistryProvenanceSchema,
7704
- payload: opensteerReversePackagePayloadSchema
7705
- },
7706
- {
7707
- title: "OpensteerReversePackageRecord",
7708
- required: ["id", "key", "version", "createdAt", "updatedAt", "contentHash", "tags", "payload"]
7709
- }
7710
- );
7711
- opensteerReverseCandidateReportItemSchema = objectSchema(
7712
- {
7713
- candidateId: stringSchema({ minLength: 1 }),
7714
- clusterId: stringSchema({ minLength: 1 }),
7715
- advisoryRank: numberSchema(),
7716
- bodyCodec: opensteerBodyCodecDescriptorSchema,
7717
- summary: stringSchema({ minLength: 1 }),
7718
- advisoryTags: arraySchema(opensteerReverseAdvisoryTagSchema, { uniqueItems: true }),
7719
- constraints: arraySchema(opensteerReverseConstraintKindSchema, { uniqueItems: true }),
7720
- signals: opensteerReverseAdvisorySignalsSchema,
7721
- reasons: arraySchema(stringSchema({ minLength: 1 }))
7722
- },
7723
- {
7724
- title: "OpensteerReverseCandidateAdvisoryItem",
7725
- required: [
7726
- "candidateId",
7727
- "clusterId",
7728
- "advisoryRank",
7729
- "bodyCodec",
7730
- "summary",
7731
- "advisoryTags",
7732
- "constraints",
7733
- "signals",
7734
- "reasons"
7735
- ]
7736
- }
7737
- );
7738
- opensteerReverseDiscoverySummaryCountsSchema = objectSchema(
7739
- {
7740
- hosts: recordSchema(integerSchema({ minimum: 0 }), { title: "OpensteerReverseSummaryHosts" }),
7741
- channels: recordSchema(integerSchema({ minimum: 0 }), {
7742
- title: "OpensteerReverseSummaryChannels"
7743
- }),
7744
- resourceTypes: recordSchema(integerSchema({ minimum: 0 }), {
7745
- title: "OpensteerReverseSummaryResourceTypes"
7746
- }),
7747
- advisoryTags: recordSchema(integerSchema({ minimum: 0 }), {
7748
- title: "OpensteerReverseSummaryAdvisoryTags"
7749
- }),
7750
- constraints: recordSchema(integerSchema({ minimum: 0 }), {
7751
- title: "OpensteerReverseSummaryConstraints"
7752
- }),
7753
- relationKinds: recordSchema(integerSchema({ minimum: 0 }), {
7754
- title: "OpensteerReverseSummaryRelationKinds"
7755
- })
7756
- },
7757
- {
7758
- title: "OpensteerReverseDiscoverySummaryCounts",
7759
- required: [
7760
- "hosts",
7761
- "channels",
7762
- "resourceTypes",
7763
- "advisoryTags",
7764
- "constraints",
7765
- "relationKinds"
7766
- ]
7767
- }
7768
- );
7769
- opensteerReverseReportPayloadSchema = objectSchema(
7770
- {
7771
- kind: opensteerReverseReportKindSchema,
7772
- caseId: stringSchema({ minLength: 1 }),
7773
- objective: stringSchema({ minLength: 1 }),
7774
- packageId: stringSchema({ minLength: 1 }),
7775
- packageKind: opensteerReversePackageKindSchema,
7776
- packageReadiness: opensteerReversePackageReadinessSchema,
7777
- observations: arraySchema(opensteerReverseObservationRecordSchema),
7778
- observationClusters: arraySchema(opensteerObservationClusterSchema),
7779
- observedRecords: arraySchema(opensteerReverseObservedRecordSchema),
7780
- guards: arraySchema(opensteerReverseGuardRecordSchema),
7781
- stateDeltas: arraySchema(opensteerStateDeltaSchema),
7782
- summaryCounts: opensteerReverseDiscoverySummaryCountsSchema,
7783
- candidateAdvisories: arraySchema(opensteerReverseCandidateReportItemSchema),
7784
- query: objectSchema(
7785
- {
7786
- view: opensteerReverseQueryViewSchema,
7787
- filters: objectSchema(
7788
- {
7789
- recordId: stringSchema({ minLength: 1 }),
7790
- clusterId: stringSchema({ minLength: 1 }),
7791
- candidateId: stringSchema({ minLength: 1 }),
7792
- host: stringSchema({ minLength: 1 }),
7793
- path: stringSchema({ minLength: 1 }),
7794
- method: stringSchema({ minLength: 1 }),
7795
- status: stringSchema({ minLength: 1 }),
7796
- resourceType: stringSchema({ minLength: 1 }),
7797
- channel: opensteerReverseChannelKindSchema,
7798
- boundary: opensteerReverseCandidateBoundarySchema,
7799
- advisoryTag: opensteerReverseAdvisoryTagSchema,
7800
- constraint: opensteerReverseConstraintKindSchema,
7801
- bodyCodec: opensteerBodyCodecKindSchema,
7802
- relationKind: opensteerObservationClusterRelationshipKindSchema,
7803
- hasGuards: { type: "boolean" },
7804
- hasResolvers: { type: "boolean" },
7805
- artifactId: stringSchema({ minLength: 1 }),
7806
- stateSnapshotId: stringSchema({ minLength: 1 }),
7807
- traceId: stringSchema({ minLength: 1 }),
7808
- evidenceRef: stringSchema({ minLength: 1 }),
7809
- text: stringSchema({ minLength: 1 })
7810
- },
7811
- {
7812
- title: "OpensteerReverseReportQueryFilters"
7813
- }
7814
- ),
7815
- sort: objectSchema(
7816
- {
7817
- preset: opensteerReverseSortPresetSchema,
7818
- keys: arraySchema(
7819
- objectSchema(
7820
- {
7821
- key: opensteerReverseSortKeySchema,
7822
- direction: opensteerReverseSortDirectionSchema
7823
- },
7824
- {
7825
- title: "OpensteerReverseReportQuerySortTerm",
7826
- required: ["key"]
7827
- }
7828
- ),
7829
- { minItems: 1 }
7830
- )
7831
- },
7832
- {
7833
- title: "OpensteerReverseReportQuerySort"
7834
- }
7835
- ),
7836
- limit: integerSchema({ minimum: 1 }),
7837
- totalCount: integerSchema({ minimum: 0 }),
7838
- nextCursor: stringSchema({ minLength: 1 }),
7839
- resultIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
7840
- },
7841
- {
7842
- title: "OpensteerReverseQuerySnapshot",
7843
- required: ["view", "sort", "limit", "totalCount", "resultIds"]
7844
- }
7845
- ),
7846
- experiments: arraySchema(opensteerReverseExperimentRecordSchema),
7847
- replayRuns: arraySchema(opensteerReverseReplayRunRecordSchema),
7848
- unresolvedRequirements: arraySchema(opensteerReverseRequirementSchema),
7849
- suggestedEdits: arraySchema(opensteerReverseSuggestedEditSchema),
7850
- linkedNetworkRecordIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7851
- linkedInteractionTraceIds: arraySchema(stringSchema({ minLength: 1 }), {
7852
- uniqueItems: true
7853
- }),
7854
- linkedArtifactIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7855
- linkedStateSnapshotIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7856
- package: opensteerReversePackageRecordSchema
7857
- },
7858
- {
7859
- title: "OpensteerReverseReportPayload",
7860
- required: [
7861
- "kind",
7862
- "caseId",
7863
- "objective",
7864
- "observations",
7865
- "observationClusters",
7866
- "observedRecords",
7867
- "guards",
7868
- "stateDeltas",
7869
- "summaryCounts",
7870
- "candidateAdvisories",
7871
- "experiments",
7872
- "replayRuns",
7873
- "linkedNetworkRecordIds",
7874
- "linkedInteractionTraceIds",
7875
- "linkedArtifactIds",
7876
- "linkedStateSnapshotIds"
7877
- ]
7878
- }
7879
- );
7880
- opensteerReverseReportRecordSchema = objectSchema(
7881
- {
7882
- id: stringSchema({ minLength: 1 }),
7883
- key: stringSchema({ minLength: 1 }),
7884
- version: stringSchema({ minLength: 1 }),
7885
- createdAt: integerSchema({ minimum: 0 }),
7886
- updatedAt: integerSchema({ minimum: 0 }),
7887
- contentHash: stringSchema({ minLength: 1 }),
7888
- tags: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
7889
- provenance: opensteerRegistryProvenanceSchema,
7890
- payload: opensteerReverseReportPayloadSchema
7891
- },
7892
- {
7893
- title: "OpensteerReverseReportRecord",
7894
- required: ["id", "key", "version", "createdAt", "updatedAt", "contentHash", "tags", "payload"]
7895
- }
7896
- );
7897
- opensteerReverseNetworkFilterSchema = objectSchema(
7898
- {
7899
- url: stringSchema({ minLength: 1 }),
7900
- hostname: stringSchema({ minLength: 1 }),
7901
- path: stringSchema({ minLength: 1 }),
7902
- method: stringSchema({ minLength: 1 }),
7903
- resourceType: stringSchema({ minLength: 1 }),
7904
- includeBodies: { type: "boolean" }
7905
- },
7906
- {
7907
- title: "OpensteerReverseCaptureNetworkFilter"
7908
- }
7909
- );
7910
- opensteerReverseQueryFiltersSchema = objectSchema(
7911
- {
7912
- recordId: stringSchema({ minLength: 1 }),
7913
- clusterId: stringSchema({ minLength: 1 }),
7914
- candidateId: stringSchema({ minLength: 1 }),
7915
- host: stringSchema({ minLength: 1 }),
7916
- path: stringSchema({ minLength: 1 }),
7917
- method: stringSchema({ minLength: 1 }),
7918
- status: stringSchema({ minLength: 1 }),
7919
- resourceType: stringSchema({ minLength: 1 }),
7920
- channel: opensteerReverseChannelKindSchema,
7921
- boundary: opensteerReverseCandidateBoundarySchema,
7922
- advisoryTag: opensteerReverseAdvisoryTagSchema,
7923
- constraint: opensteerReverseConstraintKindSchema,
7924
- bodyCodec: opensteerBodyCodecKindSchema,
7925
- relationKind: opensteerObservationClusterRelationshipKindSchema,
7926
- hasGuards: { type: "boolean" },
7927
- hasResolvers: { type: "boolean" },
7928
- artifactId: stringSchema({ minLength: 1 }),
7929
- stateSnapshotId: stringSchema({ minLength: 1 }),
7930
- traceId: stringSchema({ minLength: 1 }),
7931
- evidenceRef: stringSchema({ minLength: 1 }),
7932
- text: stringSchema({ minLength: 1 })
7933
- },
7934
- {
7935
- title: "OpensteerReverseQueryFilters"
7936
- }
7937
- );
7938
- opensteerReverseQuerySortSchema = objectSchema(
7939
- {
7940
- preset: opensteerReverseSortPresetSchema,
7941
- keys: arraySchema(
7942
- objectSchema(
7943
- {
7944
- key: opensteerReverseSortKeySchema,
7945
- direction: opensteerReverseSortDirectionSchema
7946
- },
7947
- {
7948
- title: "OpensteerReverseSortTerm",
7949
- required: ["key"]
7950
- }
7951
- ),
7952
- { minItems: 1 }
7953
- )
7954
- },
7955
- {
7956
- title: "OpensteerReverseQuerySort"
7957
- }
7958
- );
7959
- opensteerReverseQuerySnapshotSchema = objectSchema(
7960
- {
7961
- view: opensteerReverseQueryViewSchema,
7962
- filters: opensteerReverseQueryFiltersSchema,
7963
- sort: opensteerReverseQuerySortSchema,
7964
- limit: integerSchema({ minimum: 1, maximum: 200 }),
7965
- totalCount: integerSchema({ minimum: 0 }),
7966
- nextCursor: stringSchema({ minLength: 1 }),
7967
- resultIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
7968
- },
7969
- {
7970
- title: "OpensteerReverseQuerySnapshot",
7971
- required: ["view", "sort", "limit", "totalCount", "resultIds"]
7972
- }
7973
- );
7974
- opensteerReverseQueryRecordItemSchema = objectSchema(
7975
- {
7976
- record: opensteerReverseObservedRecordSchema,
7977
- candidateIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
7978
- },
7979
- {
7980
- title: "OpensteerReverseQueryRecordItem",
7981
- required: ["record", "candidateIds"]
7982
- }
7983
- );
7984
- opensteerReverseQueryClusterItemSchema = objectSchema(
7985
- {
7986
- cluster: opensteerObservationClusterSchema,
7987
- candidateIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
7988
- },
7989
- {
7990
- title: "OpensteerReverseQueryClusterItem",
7991
- required: ["cluster", "candidateIds"]
7992
- }
7993
- );
7994
- opensteerReverseQueryCandidateItemSchema = objectSchema(
7995
- {
7996
- candidate: opensteerReverseCandidateRecordSchema,
7997
- reasons: arraySchema(stringSchema({ minLength: 1 }))
7998
- },
7999
- {
8000
- title: "OpensteerReverseQueryCandidateItem",
8001
- required: ["candidate", "reasons"]
8002
- }
8003
- );
8004
- objectSchema(
8005
- {
8006
- caseId: stringSchema({ minLength: 1 }),
8007
- key: stringSchema({ minLength: 1 }),
8008
- objective: stringSchema({ minLength: 1 }),
8009
- notes: stringSchema({ minLength: 1 }),
8010
- tags: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
8011
- pageRef: pageRefSchema,
8012
- stateSource: opensteerStateSourceKindSchema,
8013
- network: opensteerReverseNetworkFilterSchema,
8014
- includeScripts: { type: "boolean" },
8015
- includeStorage: { type: "boolean" },
8016
- includeSessionStorage: { type: "boolean" },
8017
- includeIndexedDb: { type: "boolean" },
8018
- interactionTraceIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
8019
- targetHints: opensteerReverseTargetHintsSchema,
8020
- captureWindowMs: integerSchema({ minimum: 0 }),
8021
- manualCalibration: opensteerReverseManualCalibrationModeSchema
8022
- },
8023
- {
8024
- title: "OpensteerReverseDiscoverInput"
8025
- }
8026
- );
8027
- objectSchema(
8028
- {
8029
- caseId: stringSchema({ minLength: 1 }),
8030
- reportId: stringSchema({ minLength: 1 }),
8031
- summary: objectSchema(
8032
- {
8033
- observationIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
8034
- recordCount: integerSchema({ minimum: 0 }),
8035
- clusterCount: integerSchema({ minimum: 0 }),
8036
- candidateCount: integerSchema({ minimum: 0 })
8037
- },
8038
- {
8039
- title: "OpensteerReverseDiscoverSummary",
8040
- required: ["observationIds", "recordCount", "clusterCount", "candidateCount"]
8041
- }
8042
- ),
8043
- index: objectSchema(
8044
- {
8045
- views: arraySchema(opensteerReverseQueryViewSchema, { uniqueItems: true }),
8046
- sortableKeys: arraySchema(opensteerReverseSortKeySchema, { uniqueItems: true }),
8047
- channels: arraySchema(opensteerReverseChannelKindSchema, { uniqueItems: true }),
8048
- hosts: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
8049
- relationKinds: arraySchema(opensteerObservationClusterRelationshipKindSchema, {
8050
- uniqueItems: true
8051
- })
8052
- },
8053
- {
8054
- title: "OpensteerReverseDiscoverIndex",
8055
- required: ["views", "sortableKeys", "channels", "hosts", "relationKinds"]
8056
- }
8057
- )
8058
- },
8059
- {
8060
- title: "OpensteerReverseDiscoverOutput",
8061
- required: ["caseId", "reportId", "summary", "index"]
8062
- }
8063
- );
8064
- objectSchema(
8065
- {
8066
- caseId: stringSchema({ minLength: 1 }),
8067
- view: opensteerReverseQueryViewSchema,
8068
- filters: opensteerReverseQueryFiltersSchema,
8069
- sort: opensteerReverseQuerySortSchema,
8070
- limit: integerSchema({ minimum: 1, maximum: 200 }),
8071
- cursor: stringSchema({ minLength: 1 })
8072
- },
8073
- {
8074
- title: "OpensteerReverseQueryInput",
8075
- required: ["caseId"]
8076
- }
8077
- );
8078
- objectSchema(
8079
- {
8080
- caseId: stringSchema({ minLength: 1 }),
8081
- view: opensteerReverseQueryViewSchema,
8082
- query: opensteerReverseQuerySnapshotSchema,
8083
- totalCount: integerSchema({ minimum: 0 }),
8084
- nextCursor: stringSchema({ minLength: 1 }),
8085
- records: arraySchema(opensteerReverseQueryRecordItemSchema),
8086
- clusters: arraySchema(opensteerReverseQueryClusterItemSchema),
8087
- candidates: arraySchema(opensteerReverseQueryCandidateItemSchema)
8088
- },
8089
- {
8090
- title: "OpensteerReverseQueryOutput",
8091
- required: ["caseId", "view", "query", "totalCount"]
8092
- }
8093
- );
8094
- objectSchema(
8095
- {
8096
- caseId: stringSchema({ minLength: 1 }),
8097
- source: objectSchema(
8098
- {
8099
- kind: enumSchema(["record", "candidate"]),
8100
- id: stringSchema({ minLength: 1 })
8101
- },
8102
- {
8103
- title: "OpensteerReversePackageCreateSource",
8104
- required: ["kind", "id"]
8105
- }
8106
- ),
8107
- templateId: stringSchema({ minLength: 1 }),
8108
- key: stringSchema({ minLength: 1 }),
8109
- version: stringSchema({ minLength: 1 }),
8110
- notes: stringSchema({ minLength: 1 })
8111
- },
8112
- {
8113
- title: "OpensteerReversePackageCreateInput",
8114
- required: ["caseId", "source"]
8115
- }
8116
- );
8117
- objectSchema(
8118
- {
8119
- package: opensteerReversePackageRecordSchema,
8120
- report: opensteerReverseReportRecordSchema
8121
- },
8122
- {
8123
- title: "OpensteerReversePackageCreateOutput",
8124
- required: ["package", "report"]
8125
- }
8126
- );
8127
- objectSchema(
8128
- {
8129
- packageId: stringSchema({ minLength: 1 }),
8130
- pageRef: pageRefSchema
8131
- },
8132
- {
8133
- title: "OpensteerReversePackageRunInput",
8134
- required: ["packageId"]
8135
- }
8136
- );
8137
- objectSchema(
8138
- {
8139
- packageId: stringSchema({ minLength: 1 }),
8140
- caseId: stringSchema({ minLength: 1 }),
8141
- source: objectSchema(
8142
- {
8143
- kind: enumSchema(["record", "candidate"]),
8144
- id: stringSchema({ minLength: 1 })
8145
- },
8146
- {
8147
- title: "OpensteerReversePackageRunSource",
8148
- required: ["kind", "id"]
8149
- }
8150
- ),
8151
- candidateId: stringSchema({ minLength: 1 }),
8152
- templateId: stringSchema({ minLength: 1 }),
8153
- success: { type: "boolean" },
8154
- kind: opensteerReversePackageKindSchema,
8155
- readiness: opensteerReversePackageReadinessSchema,
8156
- channel: opensteerReverseChannelKindSchema,
8157
- transport: transportKindSchema,
8158
- stateSource: opensteerStateSourceKindSchema,
8159
- recordId: stringSchema({ minLength: 1 }),
8160
- status: integerSchema({ minimum: 0 }),
8161
- validation: opensteerReverseReplayValidationSchema,
8162
- executedStepIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
8163
- failedStepId: stringSchema({ minLength: 1 }),
8164
- bindings: recordSchema({}, { title: "OpensteerReversePackageRunBindings" }),
8165
- replayRunId: stringSchema({ minLength: 1 }),
8166
- unresolvedRequirements: arraySchema(opensteerReverseRequirementSchema),
8167
- suggestedEdits: arraySchema(opensteerReverseSuggestedEditSchema),
8168
- error: stringSchema({ minLength: 1 })
8169
- },
8170
- {
8171
- title: "OpensteerReversePackageRunOutput",
8172
- required: [
8173
- "packageId",
8174
- "source",
8175
- "success",
8176
- "kind",
8177
- "readiness",
8178
- "validation",
8179
- "executedStepIds",
8180
- "bindings",
8181
- "unresolvedRequirements",
8182
- "suggestedEdits"
8183
- ]
8184
- }
8185
- );
8186
- objectSchema(
8187
- {
8188
- packageId: stringSchema({ minLength: 1 }),
8189
- key: stringSchema({ minLength: 1 }),
8190
- version: stringSchema({ minLength: 1 })
8191
- },
8192
- {
8193
- title: "OpensteerReverseExportInput",
8194
- required: ["packageId"]
8195
- }
8196
- );
8197
- objectSchema(
8198
- {
8199
- package: opensteerReversePackageRecordSchema,
8200
- requestPlan: opensteerRequestPlanRecordSchema
8201
- },
8202
- {
8203
- title: "OpensteerReverseExportOutput",
8204
- required: ["package"]
8205
- }
8206
- );
8207
- objectSchema(
8208
- {
8209
- caseId: stringSchema({ minLength: 1 }),
8210
- packageId: stringSchema({ minLength: 1 }),
8211
- reportId: stringSchema({ minLength: 1 }),
8212
- kind: opensteerReverseReportKindSchema
8213
- },
8214
- {
8215
- title: "OpensteerReverseReportInput"
8216
- }
8217
- );
8218
- objectSchema(
8219
- {
8220
- report: opensteerReverseReportRecordSchema
8221
- },
8222
- {
8223
- title: "OpensteerReverseReportOutput",
8224
- required: ["report"]
8225
- }
8226
- );
8227
- objectSchema(
8228
- {
8229
- packageId: stringSchema({ minLength: 1 })
8230
- },
8231
- {
8232
- title: "OpensteerReversePackageGetInput",
8233
- required: ["packageId"]
8234
- }
8235
- );
8236
- objectSchema(
8237
- {
8238
- package: opensteerReversePackageRecordSchema
8239
- },
8240
- {
8241
- title: "OpensteerReversePackageGetOutput",
8242
- required: ["package"]
8243
- }
8244
- );
8245
- objectSchema(
8246
- {
8247
- caseId: stringSchema({ minLength: 1 }),
8248
- key: stringSchema({ minLength: 1 }),
8249
- kind: opensteerReversePackageKindSchema,
8250
- readiness: opensteerReversePackageReadinessSchema
6293
+ title: "SandboxAjaxMockResponse",
6294
+ required: ["status"]
6295
+ }
6296
+ )
8251
6297
  },
8252
6298
  {
8253
- title: "OpensteerReversePackageListInput"
6299
+ title: "SandboxAjaxRoute",
6300
+ required: ["urlPattern", "mode"]
8254
6301
  }
8255
6302
  );
8256
- objectSchema(
6303
+ opensteerScriptSandboxInputSchema = objectSchema(
8257
6304
  {
8258
- packages: arraySchema(opensteerReversePackageRecordSchema)
6305
+ artifactId: stringSchema({ minLength: 1 }),
6306
+ content: stringSchema(),
6307
+ fidelity: sandboxFidelitySchema,
6308
+ ajaxRoutes: arraySchema(sandboxAjaxRouteSchema),
6309
+ cookies: recordSchema(stringSchema(), {
6310
+ title: "SandboxCookies"
6311
+ }),
6312
+ globals: objectSchema(
6313
+ {},
6314
+ {
6315
+ title: "SandboxGlobals",
6316
+ additionalProperties: true
6317
+ }
6318
+ ),
6319
+ timeoutMs: integerSchema({ minimum: 1 }),
6320
+ clockMode: enumSchema(["real", "manual"])
8259
6321
  },
8260
6322
  {
8261
- title: "OpensteerReversePackageListOutput",
8262
- required: ["packages"]
6323
+ title: "OpensteerScriptSandboxInput"
8263
6324
  }
8264
6325
  );
8265
- objectSchema(
6326
+ sandboxCapturedAjaxCallSchema = objectSchema(
8266
6327
  {
8267
- packageId: stringSchema({ minLength: 1 }),
8268
- key: stringSchema({ minLength: 1 }),
8269
- version: stringSchema({ minLength: 1 }),
8270
- notes: stringSchema({ minLength: 1 }),
8271
- workflow: arraySchema(opensteerReverseWorkflowStepSchema),
8272
- resolvers: arraySchema(opensteerExecutableResolverSchema),
8273
- validators: arraySchema(opensteerValidationRuleSchema),
8274
- attachedTraceIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
8275
- attachedArtifactIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
8276
- attachedRecordIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true }),
8277
- stateSnapshotIds: arraySchema(stringSchema({ minLength: 1 }), { uniqueItems: true })
6328
+ method: stringSchema({ minLength: 1 }),
6329
+ url: stringSchema({ minLength: 1 }),
6330
+ headers: recordSchema(stringSchema(), {
6331
+ title: "SandboxCapturedAjaxHeaders"
6332
+ }),
6333
+ body: stringSchema(),
6334
+ timestamp: integerSchema({ minimum: 0 })
8278
6335
  },
8279
6336
  {
8280
- title: "OpensteerReversePackagePatchInput",
8281
- required: ["packageId"]
6337
+ title: "SandboxCapturedAjaxCall",
6338
+ required: ["method", "url", "headers", "timestamp"]
8282
6339
  }
8283
6340
  );
8284
- objectSchema(
6341
+ opensteerScriptSandboxOutputSchema = objectSchema(
8285
6342
  {
8286
- package: opensteerReversePackageRecordSchema,
8287
- report: opensteerReverseReportRecordSchema
6343
+ result: oneOfSchema(
6344
+ [
6345
+ objectSchema({}, { additionalProperties: true }),
6346
+ arraySchema({}),
6347
+ stringSchema(),
6348
+ { type: "number" },
6349
+ enumSchema([true, false, null])
6350
+ ],
6351
+ {
6352
+ title: "SandboxResult"
6353
+ }
6354
+ ),
6355
+ capturedAjax: arraySchema(sandboxCapturedAjaxCallSchema),
6356
+ errors: arraySchema(stringSchema({ minLength: 1 })),
6357
+ durationMs: integerSchema({ minimum: 0 })
8288
6358
  },
8289
6359
  {
8290
- title: "OpensteerReversePackagePatchOutput",
8291
- required: ["package", "report"]
6360
+ title: "OpensteerScriptSandboxOutput",
6361
+ required: ["capturedAjax", "errors", "durationMs"]
8292
6362
  }
8293
6363
  );
8294
6364
  }
@@ -8301,7 +6371,7 @@ var init_interaction = __esm({
8301
6371
  init_json2();
8302
6372
  init_identity2();
8303
6373
  init_requests();
8304
- init_reverse();
6374
+ init_state();
8305
6375
  opensteerInteractionEventRecordSchema = objectSchema(
8306
6376
  {
8307
6377
  type: stringSchema({ minLength: 1 }),
@@ -8603,7 +6673,7 @@ function assertValidSemanticOperationInput(name, input) {
8603
6673
  }
8604
6674
  );
8605
6675
  }
8606
- var opensteerComputerAnnotationNames, opensteerExposedSemanticOperationNames, opensteerPackageRunnableSemanticOperationNames, snapshotModeSchema, viewportSchema, opensteerBrowserLaunchOptionsSchema, attachBrowserOptionsSchema, opensteerBrowserOptionsSchema, opensteerBrowserContextOptionsSchema, targetByElementSchema2, targetByPersistSchema2, targetBySelectorSchema2, opensteerTargetInputSchema, opensteerResolvedTargetSchema, opensteerActionResultSchema, opensteerSnapshotCounterSchema, opensteerSessionStateSchema, opensteerOpenInputSchema, opensteerPageListInputSchema, opensteerPageListOutputSchema, opensteerPageNewInputSchema, opensteerPageActivateInputSchema, opensteerPageCloseInputSchema, opensteerPageCloseOutputSchema, opensteerPageGotoInputSchema, opensteerPageEvaluateInputSchema, opensteerPageEvaluateOutputSchema, opensteerAddInitScriptInputSchema, opensteerAddInitScriptOutputSchema, opensteerCapturedScriptSchema, opensteerCaptureScriptsInputSchema, opensteerCaptureScriptsOutputSchema, opensteerPageSnapshotInputSchema, opensteerPageSnapshotOutputSchema, opensteerComputerMouseButtonSchema, opensteerComputerKeyModifierSchema, opensteerDomClickInputSchema, opensteerDomHoverInputSchema, opensteerDomInputInputSchema, opensteerDomScrollInputSchema, opensteerExtractSchemaSchema, opensteerDomExtractInputSchema, jsonValueSchema3, opensteerDomExtractOutputSchema, opensteerSessionCloseInputSchema, opensteerSessionCloseOutputSchema, opensteerComputerAnnotationSchema, opensteerComputerClickActionSchema, opensteerComputerMoveActionSchema, opensteerComputerScrollActionSchema, opensteerComputerTypeActionSchema, opensteerComputerKeyActionSchema, opensteerComputerDragActionSchema, opensteerComputerScreenshotActionSchema, opensteerComputerWaitActionSchema, opensteerComputerActionSchema, opensteerComputerScreenshotOptionsSchema, opensteerComputerExecuteInputSchema, opensteerComputerTracePointSchema, opensteerComputerTraceEnrichmentSchema, opensteerComputerExecuteTimingSchema, opensteerComputerDisplayScaleSchema, opensteerComputerExecuteOutputSchema, opensteerSemanticOperationSpecificationsBase, exposedSemanticOperationNameSet, opensteerSemanticOperationSpecificationsInternal, opensteerSemanticOperationSpecifications, opensteerSemanticOperationSpecificationMap, semanticRestBasePath, opensteerSemanticRestEndpoints;
6676
+ var opensteerComputerAnnotationNames, opensteerExposedSemanticOperationNames, opensteerPackageRunnableSemanticOperationNames, snapshotModeSchema, viewportSchema, opensteerBrowserLaunchOptionsSchema, attachBrowserOptionsSchema, opensteerBrowserOptionsSchema, opensteerBrowserContextOptionsSchema, targetByElementSchema2, targetByPersistSchema2, targetBySelectorSchema2, opensteerTargetInputSchema, opensteerResolvedTargetSchema, opensteerActionResultSchema, opensteerSnapshotCounterSchema, opensteerSessionStateSchema, opensteerOpenInputSchema, opensteerPageListInputSchema, opensteerPageListOutputSchema, opensteerPageNewInputSchema, opensteerPageActivateInputSchema, opensteerPageCloseInputSchema, opensteerPageCloseOutputSchema, opensteerPageGotoInputSchema, opensteerPageEvaluateInputSchema, opensteerPageEvaluateOutputSchema, opensteerAddInitScriptInputSchema, opensteerAddInitScriptOutputSchema, opensteerCapturedScriptSchema, opensteerCaptureScriptsInputSchema, opensteerCaptureScriptsOutputSchema, opensteerPageSnapshotInputSchema, opensteerPageSnapshotOutputSchema, opensteerComputerMouseButtonSchema, opensteerComputerKeyModifierSchema, opensteerDomClickInputSchema, opensteerDomHoverInputSchema, opensteerDomInputInputSchema, opensteerDomScrollInputSchema, opensteerExtractSchemaSchema, opensteerDomExtractInputSchema, jsonValueSchema2, opensteerDomExtractOutputSchema, opensteerSessionCloseInputSchema, opensteerSessionCloseOutputSchema, opensteerComputerAnnotationSchema, opensteerComputerClickActionSchema, opensteerComputerMoveActionSchema, opensteerComputerScrollActionSchema, opensteerComputerTypeActionSchema, opensteerComputerKeyActionSchema, opensteerComputerDragActionSchema, opensteerComputerScreenshotActionSchema, opensteerComputerWaitActionSchema, opensteerComputerActionSchema, opensteerComputerScreenshotOptionsSchema, opensteerComputerExecuteInputSchema, opensteerComputerTracePointSchema, opensteerComputerTraceEnrichmentSchema, opensteerComputerExecuteTimingSchema, opensteerComputerDisplayScaleSchema, opensteerComputerExecuteOutputSchema, opensteerSemanticOperationSpecificationsBase, exposedSemanticOperationNameSet, opensteerSemanticOperationSpecificationsInternal, opensteerSemanticOperationSpecifications, opensteerSemanticOperationSpecificationMap, semanticRestBasePath, opensteerSemanticRestEndpoints;
8607
6677
  var init_semantic = __esm({
8608
6678
  "../protocol/src/semantic.ts"() {
8609
6679
  init_json2();
@@ -9190,12 +7260,12 @@ var init_semantic = __esm({
9190
7260
  ),
9191
7261
  anyOf: [defineSchema({ required: ["persist"] }), defineSchema({ required: ["schema"] })]
9192
7262
  });
9193
- jsonValueSchema3 = recordSchema({}, { title: "JsonValueRecord" });
7263
+ jsonValueSchema2 = recordSchema({}, { title: "JsonValueRecord" });
9194
7264
  opensteerDomExtractOutputSchema = objectSchema(
9195
7265
  {
9196
7266
  data: oneOfSchema(
9197
7267
  [
9198
- jsonValueSchema3,
7268
+ jsonValueSchema2,
9199
7269
  arraySchema({}),
9200
7270
  stringSchema(),
9201
7271
  numberSchema(),
@@ -9580,7 +7650,7 @@ var init_semantic = __esm({
9580
7650
  }),
9581
7651
  defineSemanticOperationSpec({
9582
7652
  name: "artifact.read",
9583
- description: "Read a persisted artifact by ID so agents can inspect captured scripts, storage, cookies, or snapshots linked from reverse packages and reports.",
7653
+ description: "Read a persisted artifact by ID so agents can inspect captured scripts, storage, cookies, or snapshots linked from recorded workflows.",
9584
7654
  inputSchema: opensteerArtifactReadInputSchema,
9585
7655
  outputSchema: opensteerArtifactReadOutputSchema,
9586
7656
  requiredCapabilities: []
@@ -9823,6 +7893,7 @@ var init_src2 = __esm({
9823
7893
  init_network2();
9824
7894
  init_requests();
9825
7895
  init_storage2();
7896
+ init_state();
9826
7897
  init_snapshots2();
9827
7898
  init_capabilities2();
9828
7899
  init_cloud();
@@ -9840,7 +7911,6 @@ var init_src2 = __esm({
9840
7911
  init_rest();
9841
7912
  init_mcp();
9842
7913
  init_scripts();
9843
- init_reverse();
9844
7914
  init_interaction();
9845
7915
  init_semantic();
9846
7916
  init_computer_use_bridge();
@@ -9894,25 +7964,10 @@ function createDescriptorRegistry(rootPath) {
9894
7964
  function createRequestPlanRegistry(rootPath) {
9895
7965
  return new FilesystemRequestPlanRegistry(rootPath);
9896
7966
  }
9897
- function createAuthRecipeRegistry(rootPath) {
9898
- return new FilesystemAuthRecipeRegistry(rootPath);
9899
- }
9900
- function createRecipeRegistry(rootPath) {
9901
- return new FilesystemRecipeRegistry(rootPath);
9902
- }
9903
7967
  function createInteractionTraceRegistry(rootPath) {
9904
7968
  return new FilesystemInteractionTraceRegistry(rootPath);
9905
7969
  }
9906
- function createReverseCaseRegistry(rootPath) {
9907
- return new FilesystemReverseCaseRegistry(rootPath);
9908
- }
9909
- function createReversePackageRegistry(rootPath) {
9910
- return new FilesystemReversePackageRegistry(rootPath);
9911
- }
9912
- function createReverseReportRegistry(rootPath) {
9913
- return new FilesystemReverseReportRegistry(rootPath);
9914
- }
9915
- var FilesystemRegistryStore, FilesystemDescriptorRegistry, FilesystemRequestPlanRegistry, FilesystemAuthRecipeRegistry, FilesystemRecipeRegistry, FilesystemInteractionTraceRegistry, FilesystemReverseCaseRegistry, FilesystemReversePackageRegistry, FilesystemReverseReportRegistry;
7970
+ var FilesystemRegistryStore, FilesystemDescriptorRegistry, FilesystemRequestPlanRegistry, FilesystemInteractionTraceRegistry;
9916
7971
  var init_registry = __esm({
9917
7972
  "../runtime-core/src/registry.ts"() {
9918
7973
  init_filesystem();
@@ -10132,76 +8187,6 @@ var init_registry = __esm({
10132
8187
  });
10133
8188
  }
10134
8189
  };
10135
- FilesystemAuthRecipeRegistry = class extends FilesystemRegistryStore {
10136
- constructor(rootPath) {
10137
- super(rootPath, ["registry", "auth-recipes"]);
10138
- }
10139
- async write(input) {
10140
- const id = normalizeNonEmptyString("id", input.id ?? `auth-recipe:${crypto.randomUUID()}`);
10141
- const key = normalizeNonEmptyString("key", input.key);
10142
- const version = normalizeNonEmptyString("version", input.version);
10143
- const createdAt = normalizeTimestamp("createdAt", input.createdAt ?? Date.now());
10144
- const updatedAt = normalizeTimestamp("updatedAt", input.updatedAt ?? createdAt);
10145
- if (updatedAt < createdAt) {
10146
- throw new RangeError("updatedAt must be greater than or equal to createdAt");
10147
- }
10148
- const payload = input.payload;
10149
- const contentHash = sha256Hex(Buffer.from(canonicalJsonString(payload), "utf8"));
10150
- const provenance = normalizeProvenance2(input.provenance);
10151
- const record = {
10152
- id,
10153
- key,
10154
- version,
10155
- createdAt,
10156
- updatedAt,
10157
- contentHash,
10158
- tags: normalizeTags(input.tags),
10159
- ...provenance === void 0 ? {} : { provenance },
10160
- payload
10161
- };
10162
- return this.writeRecord(record);
10163
- }
10164
- async list(input = {}) {
10165
- const key = input.key === void 0 ? void 0 : normalizeNonEmptyString("key", input.key);
10166
- const records = await this.readAllRecords();
10167
- return key === void 0 ? records : records.filter((record) => record.key === key);
10168
- }
10169
- };
10170
- FilesystemRecipeRegistry = class extends FilesystemRegistryStore {
10171
- constructor(rootPath) {
10172
- super(rootPath, ["registry", "recipes"]);
10173
- }
10174
- async write(input) {
10175
- const id = normalizeNonEmptyString("id", input.id ?? `recipe:${crypto.randomUUID()}`);
10176
- const key = normalizeNonEmptyString("key", input.key);
10177
- const version = normalizeNonEmptyString("version", input.version);
10178
- const createdAt = normalizeTimestamp("createdAt", input.createdAt ?? Date.now());
10179
- const updatedAt = normalizeTimestamp("updatedAt", input.updatedAt ?? createdAt);
10180
- if (updatedAt < createdAt) {
10181
- throw new RangeError("updatedAt must be greater than or equal to createdAt");
10182
- }
10183
- const payload = input.payload;
10184
- const contentHash = sha256Hex(Buffer.from(canonicalJsonString(payload), "utf8"));
10185
- const provenance = normalizeProvenance2(input.provenance);
10186
- const record = {
10187
- id,
10188
- key,
10189
- version,
10190
- createdAt,
10191
- updatedAt,
10192
- contentHash,
10193
- tags: normalizeTags(input.tags),
10194
- ...provenance === void 0 ? {} : { provenance },
10195
- payload
10196
- };
10197
- return this.writeRecord(record);
10198
- }
10199
- async list(input = {}) {
10200
- const key = input.key === void 0 ? void 0 : normalizeNonEmptyString("key", input.key);
10201
- const records = await this.readAllRecords();
10202
- return key === void 0 ? records : records.filter((record) => record.key === key);
10203
- }
10204
- };
10205
8190
  FilesystemInteractionTraceRegistry = class extends FilesystemRegistryStore {
10206
8191
  constructor(rootPath) {
10207
8192
  super(rootPath, ["registry", "interaction-traces"]);
@@ -10237,139 +8222,6 @@ var init_registry = __esm({
10237
8222
  return key === void 0 ? records : records.filter((record) => record.key === key);
10238
8223
  }
10239
8224
  };
10240
- FilesystemReverseCaseRegistry = class extends FilesystemRegistryStore {
10241
- constructor(rootPath) {
10242
- super(rootPath, ["registry", "reverse-cases"]);
10243
- }
10244
- async write(input) {
10245
- const id = normalizeNonEmptyString("id", input.id ?? `reverse-case:${crypto.randomUUID()}`);
10246
- const key = normalizeNonEmptyString("key", input.key);
10247
- const version = normalizeNonEmptyString("version", input.version);
10248
- const createdAt = normalizeTimestamp("createdAt", input.createdAt ?? Date.now());
10249
- const updatedAt = normalizeTimestamp("updatedAt", input.updatedAt ?? createdAt);
10250
- if (updatedAt < createdAt) {
10251
- throw new RangeError("updatedAt must be greater than or equal to createdAt");
10252
- }
10253
- const payload = input.payload;
10254
- const contentHash = sha256Hex(Buffer.from(canonicalJsonString(payload), "utf8"));
10255
- const provenance = normalizeProvenance2(input.provenance);
10256
- const record = {
10257
- id,
10258
- key,
10259
- version,
10260
- createdAt,
10261
- updatedAt,
10262
- contentHash,
10263
- tags: normalizeTags(input.tags),
10264
- ...provenance === void 0 ? {} : { provenance },
10265
- payload
10266
- };
10267
- return this.writeRecord(record);
10268
- }
10269
- async list(input = {}) {
10270
- const key = input.key === void 0 ? void 0 : normalizeNonEmptyString("key", input.key);
10271
- const records = await this.readAllRecords();
10272
- return key === void 0 ? records : records.filter((record) => record.key === key);
10273
- }
10274
- async update(input) {
10275
- const id = normalizeNonEmptyString("id", input.id);
10276
- return withFilesystemLock(this.writeLockPath(), async () => {
10277
- const existing = await this.getById(id);
10278
- if (existing === void 0) {
10279
- throw new Error(`registry record ${id} was not found`);
10280
- }
10281
- const nextUpdatedAt = normalizeTimestamp(
10282
- "updatedAt",
10283
- input.updatedAt ?? Math.max(Date.now(), existing.updatedAt)
10284
- );
10285
- if (nextUpdatedAt < existing.createdAt) {
10286
- throw new RangeError("updatedAt must be greater than or equal to createdAt");
10287
- }
10288
- const nextPayload = input.payload;
10289
- const nextProvenance = normalizeProvenance2(input.provenance ?? existing.provenance);
10290
- const nextRecord = {
10291
- ...existing,
10292
- updatedAt: nextUpdatedAt,
10293
- contentHash: sha256Hex(Buffer.from(canonicalJsonString(nextPayload), "utf8")),
10294
- tags: normalizeTags(input.tags ?? existing.tags),
10295
- ...nextProvenance === void 0 ? {} : { provenance: nextProvenance },
10296
- payload: nextPayload
10297
- };
10298
- await writeJsonFileAtomic(this.recordPath(id), nextRecord);
10299
- return nextRecord;
10300
- });
10301
- }
10302
- };
10303
- FilesystemReversePackageRegistry = class extends FilesystemRegistryStore {
10304
- constructor(rootPath) {
10305
- super(rootPath, ["registry", "reverse-packages"]);
10306
- }
10307
- async write(input) {
10308
- const id = normalizeNonEmptyString("id", input.id ?? `reverse-package:${crypto.randomUUID()}`);
10309
- const key = normalizeNonEmptyString("key", input.key);
10310
- const version = normalizeNonEmptyString("version", input.version);
10311
- const createdAt = normalizeTimestamp("createdAt", input.createdAt ?? Date.now());
10312
- const updatedAt = normalizeTimestamp("updatedAt", input.updatedAt ?? createdAt);
10313
- if (updatedAt < createdAt) {
10314
- throw new RangeError("updatedAt must be greater than or equal to createdAt");
10315
- }
10316
- const payload = input.payload;
10317
- const contentHash = sha256Hex(Buffer.from(canonicalJsonString(payload), "utf8"));
10318
- const provenance = normalizeProvenance2(input.provenance);
10319
- const record = {
10320
- id,
10321
- key,
10322
- version,
10323
- createdAt,
10324
- updatedAt,
10325
- contentHash,
10326
- tags: normalizeTags(input.tags),
10327
- ...provenance === void 0 ? {} : { provenance },
10328
- payload
10329
- };
10330
- return this.writeRecord(record);
10331
- }
10332
- async list(input = {}) {
10333
- const key = input.key === void 0 ? void 0 : normalizeNonEmptyString("key", input.key);
10334
- const records = await this.readAllRecords();
10335
- return key === void 0 ? records : records.filter((record) => record.key === key);
10336
- }
10337
- };
10338
- FilesystemReverseReportRegistry = class extends FilesystemRegistryStore {
10339
- constructor(rootPath) {
10340
- super(rootPath, ["registry", "reverse-reports"]);
10341
- }
10342
- async write(input) {
10343
- const id = normalizeNonEmptyString("id", input.id ?? `reverse-report:${crypto.randomUUID()}`);
10344
- const key = normalizeNonEmptyString("key", input.key);
10345
- const version = normalizeNonEmptyString("version", input.version);
10346
- const createdAt = normalizeTimestamp("createdAt", input.createdAt ?? Date.now());
10347
- const updatedAt = normalizeTimestamp("updatedAt", input.updatedAt ?? createdAt);
10348
- if (updatedAt < createdAt) {
10349
- throw new RangeError("updatedAt must be greater than or equal to createdAt");
10350
- }
10351
- const payload = input.payload;
10352
- const contentHash = sha256Hex(Buffer.from(canonicalJsonString(payload), "utf8"));
10353
- const provenance = normalizeProvenance2(input.provenance);
10354
- const record = {
10355
- id,
10356
- key,
10357
- version,
10358
- createdAt,
10359
- updatedAt,
10360
- contentHash,
10361
- tags: normalizeTags(input.tags),
10362
- ...provenance === void 0 ? {} : { provenance },
10363
- payload
10364
- };
10365
- return this.writeRecord(record);
10366
- }
10367
- async list(input = {}) {
10368
- const key = input.key === void 0 ? void 0 : normalizeNonEmptyString("key", input.key);
10369
- const records = await this.readAllRecords();
10370
- return key === void 0 ? records : records.filter((record) => record.key === key);
10371
- }
10372
- };
10373
8225
  }
10374
8226
  });
10375
8227
  function buildSavedNetworkWhere(input) {
@@ -11837,20 +9689,10 @@ async function createFilesystemOpensteerWorkspace(options) {
11837
9689
  await descriptors.initialize();
11838
9690
  const requestPlans = createRequestPlanRegistry(options.rootPath);
11839
9691
  await requestPlans.initialize();
11840
- const authRecipes = createAuthRecipeRegistry(options.rootPath);
11841
- await authRecipes.initialize();
11842
- const recipes = createRecipeRegistry(options.rootPath);
11843
- await recipes.initialize();
11844
9692
  const savedNetwork = createSavedNetworkStore(options.rootPath);
11845
9693
  await savedNetwork.initialize();
11846
- const reverseCases = createReverseCaseRegistry(options.rootPath);
11847
- await reverseCases.initialize();
11848
9694
  const interactionTraces = createInteractionTraceRegistry(options.rootPath);
11849
9695
  await interactionTraces.initialize();
11850
- const reversePackages = createReversePackageRegistry(options.rootPath);
11851
- await reversePackages.initialize();
11852
- const reverseReports = createReverseReportRegistry(options.rootPath);
11853
- await reverseReports.initialize();
11854
9696
  const traces = createTraceStore(options.rootPath, artifacts);
11855
9697
  await traces.initialize();
11856
9698
  const observations = createObservationStore(options.rootPath, artifacts);
@@ -11876,13 +9718,8 @@ async function createFilesystemOpensteerWorkspace(options) {
11876
9718
  registry: {
11877
9719
  descriptors,
11878
9720
  requestPlans,
11879
- authRecipes,
11880
- recipes,
11881
9721
  savedNetwork,
11882
- reverseCases,
11883
- interactionTraces,
11884
- reversePackages,
11885
- reverseReports
9722
+ interactionTraces
11886
9723
  },
11887
9724
  lock(task) {
11888
9725
  return withFilesystemLock(lockPath, task);
@@ -14320,7 +12157,7 @@ var init_package = __esm({
14320
12157
  "../runtime-core/package.json"() {
14321
12158
  package_default2 = {
14322
12159
  name: "@opensteer/runtime-core",
14323
- version: "0.2.1",
12160
+ version: "0.2.3",
14324
12161
  description: "Shared semantic runtime for Opensteer local and cloud execution.",
14325
12162
  license: "MIT",
14326
12163
  type: "module",
@@ -32184,7 +30021,7 @@ var init_opensteer = __esm({
32184
30021
  scroll: (input) => this.scroll(input)
32185
30022
  };
32186
30023
  this.network = {
32187
- query: (input = {}) => this.queryNetwork(input),
30024
+ query: (input = {}) => this.runtime.queryNetwork(input),
32188
30025
  detail: (recordId, options2) => this.runtime.getNetworkDetail({ recordId, ...options2 })
32189
30026
  };
32190
30027
  }
@@ -32218,9 +30055,6 @@ var init_opensteer = __esm({
32218
30055
  } : input;
32219
30056
  return (await this.runtime.evaluate(normalized)).value;
32220
30057
  }
32221
- async evaluateJson(input) {
32222
- return this.evaluate(input);
32223
- }
32224
30058
  async addInitScript(input) {
32225
30059
  return this.runtime.addInitScript(
32226
30060
  typeof input === "string" ? {
@@ -32257,34 +30091,6 @@ var init_opensteer = __esm({
32257
30091
  async extract(input) {
32258
30092
  return (await this.runtime.extract(input)).data;
32259
30093
  }
32260
- async queryNetwork(input = {}) {
32261
- return this.runtime.queryNetwork(input);
32262
- }
32263
- async waitForNetwork(input) {
32264
- const { timeoutMs, pollIntervalMs, ...query } = input;
32265
- const timeoutAt = Date.now() + (timeoutMs ?? 3e4);
32266
- const pollInterval = pollIntervalMs ?? 100;
32267
- const baseline = new Set(
32268
- (await this.runtime.queryNetwork({ ...query, limit: 200 })).records.map(
32269
- (record) => record.recordId
32270
- )
32271
- );
32272
- while (true) {
32273
- const next = (await this.runtime.queryNetwork({ ...query, limit: 200 })).records.find(
32274
- (record) => !baseline.has(record.recordId)
32275
- );
32276
- if (next !== void 0) {
32277
- return next;
32278
- }
32279
- if (Date.now() >= timeoutAt) {
32280
- throw new Error("waitForNetwork timed out");
32281
- }
32282
- await delay5(pollInterval);
32283
- }
32284
- }
32285
- async waitForResponse(input) {
32286
- return this.waitForNetwork(input);
32287
- }
32288
30094
  async waitForPage(input = {}) {
32289
30095
  const baseline = new Set((await this.runtime.listPages()).pages.map((page) => page.pageRef));
32290
30096
  const timeoutAt = Date.now() + (input.timeoutMs ?? 3e4);
@@ -32371,7 +30177,7 @@ var init_opensteer = __esm({
32371
30177
 
32372
30178
  // package.json
32373
30179
  var package_default = {
32374
- version: "0.9.1"};
30180
+ version: "0.9.3"};
32375
30181
 
32376
30182
  // src/cli/bin.ts
32377
30183
  init_browser_manager();