freecodego 0.1.6-alpha.2.3 → 0.1.7-alpha.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/client.cjs CHANGED
@@ -8936,6 +8936,20 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8936
8936
  "scope": union([literal("project"), literal("user")]).readonly()
8937
8937
  })]).readonly().optional()
8938
8938
  });
8939
+ let _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_mediaGenerationSetEnabled_parameter_0$schema$value;
8940
+ const _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_mediaGenerationSetEnabled_parameter_0$schema = () => _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_mediaGenerationSetEnabled_parameter_0$schema$value ??= boolean();
8941
+ let _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_mediaGenerationSetEnabled_result$schema$value;
8942
+ const _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_mediaGenerationSetEnabled_result$schema = () => _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_mediaGenerationSetEnabled_result$schema$value ??= object$1({
8943
+ "enabled": boolean().readonly(),
8944
+ "gated": array(string()).readonly(),
8945
+ "registered": array(string()).readonly()
8946
+ });
8947
+ let _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_mediaGenerationStatus_result$schema$value;
8948
+ const _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_mediaGenerationStatus_result$schema = () => _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_mediaGenerationStatus_result$schema$value ??= object$1({
8949
+ "enabled": boolean().readonly(),
8950
+ "gated": array(string()).readonly(),
8951
+ "registered": array(string()).readonly()
8952
+ });
8939
8953
  let _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_modelAvailability_result$schema$value;
8940
8954
  const _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_modelAvailability_result$schema = () => _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_modelAvailability_result$schema$value ??= array(object$1({
8941
8955
  "provider": string().readonly(),
@@ -11795,6 +11809,34 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11795
11809
  "name": string().readonly()
11796
11810
  })).readonly()
11797
11811
  });
11812
+ let _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_webSearchBind_parameter_0$schema$value;
11813
+ const _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_webSearchBind_parameter_0$schema = () => _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_webSearchBind_parameter_0$schema$value ??= object$1({
11814
+ "provider": string().readonly().optional(),
11815
+ "model": string().readonly().optional()
11816
+ });
11817
+ let _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_webSearchBind_result$schema$value;
11818
+ const _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_webSearchBind_result$schema = () => _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_webSearchBind_result$schema$value ??= object$1({
11819
+ "provider": string().readonly(),
11820
+ "model": string().readonly(),
11821
+ "baseURL": string().readonly(),
11822
+ "apiKeyEnv": string().readonly(),
11823
+ "apiKey": string().readonly(),
11824
+ "durable": boolean().readonly()
11825
+ });
11826
+ let _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_webSearchBindingStatus_result$schema$value;
11827
+ const _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_webSearchBindingStatus_result$schema = () => _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_webSearchBindingStatus_result$schema$value ??= object$1({
11828
+ "state": union([
11829
+ literal("other"),
11830
+ literal("bridge"),
11831
+ literal("none"),
11832
+ literal("durable")
11833
+ ]).readonly(),
11834
+ "alive": boolean().readonly(),
11835
+ "remembered": object$1({
11836
+ "provider": string().readonly(),
11837
+ "model": string().readonly()
11838
+ }).readonly().optional()
11839
+ });
11798
11840
  let _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_workbuddyImportDesktopLogin_result$schema$value;
11799
11841
  const _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_workbuddyImportDesktopLogin_result$schema = () => _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_workbuddyImportDesktopLogin_result$schema$value ??= object$1({
11800
11842
  "configured": boolean().readonly(),
@@ -12219,7 +12261,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12219
12261
  },
12220
12262
  sourceLocation: {
12221
12263
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12222
- "line": 5575,
12264
+ "line": 5926,
12223
12265
  "column": 9
12224
12266
  }
12225
12267
  },
@@ -12238,7 +12280,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12238
12280
  },
12239
12281
  sourceLocation: {
12240
12282
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12241
- "line": 5699,
12283
+ "line": 6050,
12242
12284
  "column": 9
12243
12285
  }
12244
12286
  },
@@ -12266,7 +12308,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12266
12308
  },
12267
12309
  sourceLocation: {
12268
12310
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12269
- "line": 5605,
12311
+ "line": 5956,
12270
12312
  "column": 9
12271
12313
  }
12272
12314
  },
@@ -12285,7 +12327,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12285
12327
  },
12286
12328
  sourceLocation: {
12287
12329
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12288
- "line": 5691,
12330
+ "line": 6042,
12289
12331
  "column": 9
12290
12332
  }
12291
12333
  },
@@ -12323,7 +12365,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12323
12365
  },
12324
12366
  sourceLocation: {
12325
12367
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12326
- "line": 5672,
12368
+ "line": 6023,
12327
12369
  "column": 9
12328
12370
  }
12329
12371
  },
@@ -12351,7 +12393,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12351
12393
  },
12352
12394
  sourceLocation: {
12353
12395
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12354
- "line": 5626,
12396
+ "line": 5977,
12355
12397
  "column": 9
12356
12398
  }
12357
12399
  },
@@ -12379,7 +12421,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12379
12421
  },
12380
12422
  sourceLocation: {
12381
12423
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12382
- "line": 5652,
12424
+ "line": 6003,
12383
12425
  "column": 9
12384
12426
  }
12385
12427
  },
@@ -12407,7 +12449,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12407
12449
  },
12408
12450
  sourceLocation: {
12409
12451
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12410
- "line": 5661,
12452
+ "line": 6012,
12411
12453
  "column": 9
12412
12454
  }
12413
12455
  },
@@ -12435,7 +12477,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12435
12477
  },
12436
12478
  sourceLocation: {
12437
12479
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12438
- "line": 5643,
12480
+ "line": 5994,
12439
12481
  "column": 9
12440
12482
  }
12441
12483
  },
@@ -12454,7 +12496,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12454
12496
  },
12455
12497
  sourceLocation: {
12456
12498
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12457
- "line": 5634,
12499
+ "line": 5985,
12458
12500
  "column": 9
12459
12501
  }
12460
12502
  },
@@ -12483,7 +12525,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12483
12525
  },
12484
12526
  sourceLocation: {
12485
12527
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12486
- "line": 5682,
12528
+ "line": 6033,
12487
12529
  "column": 9
12488
12530
  }
12489
12531
  },
@@ -12511,7 +12553,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12511
12553
  },
12512
12554
  sourceLocation: {
12513
12555
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12514
- "line": 5585,
12556
+ "line": 5936,
12515
12557
  "column": 9
12516
12558
  }
12517
12559
  },
@@ -12530,7 +12572,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12530
12572
  },
12531
12573
  sourceLocation: {
12532
12574
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12533
- "line": 5614,
12575
+ "line": 5965,
12534
12576
  "column": 9
12535
12577
  }
12536
12578
  },
@@ -12549,7 +12591,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12549
12591
  },
12550
12592
  sourceLocation: {
12551
12593
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12552
- "line": 5717,
12594
+ "line": 6068,
12553
12595
  "column": 9
12554
12596
  }
12555
12597
  },
@@ -12577,7 +12619,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12577
12619
  },
12578
12620
  sourceLocation: {
12579
12621
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12580
- "line": 5709,
12622
+ "line": 6060,
12581
12623
  "column": 9
12582
12624
  }
12583
12625
  },
@@ -12605,7 +12647,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12605
12647
  },
12606
12648
  sourceLocation: {
12607
12649
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12608
- "line": 5595,
12650
+ "line": 5946,
12609
12651
  "column": 9
12610
12652
  }
12611
12653
  },
@@ -12623,7 +12665,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12623
12665
  },
12624
12666
  sourceLocation: {
12625
12667
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12626
- "line": 5566,
12668
+ "line": 5917,
12627
12669
  "column": 9
12628
12670
  }
12629
12671
  },
@@ -12641,7 +12683,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12641
12683
  },
12642
12684
  sourceLocation: {
12643
12685
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12644
- "line": 1951,
12686
+ "line": 2255,
12645
12687
  "column": 9
12646
12688
  }
12647
12689
  },
@@ -12659,7 +12701,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12659
12701
  },
12660
12702
  sourceLocation: {
12661
12703
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12662
- "line": 1959,
12704
+ "line": 2263,
12663
12705
  "column": 3
12664
12706
  }
12665
12707
  },
@@ -12686,7 +12728,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12686
12728
  },
12687
12729
  sourceLocation: {
12688
12730
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12689
- "line": 1972,
12731
+ "line": 2276,
12690
12732
  "column": 3
12691
12733
  }
12692
12734
  },
@@ -12704,7 +12746,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12704
12746
  },
12705
12747
  sourceLocation: {
12706
12748
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12707
- "line": 1934,
12749
+ "line": 2238,
12708
12750
  "column": 3
12709
12751
  }
12710
12752
  },
@@ -12731,7 +12773,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12731
12773
  },
12732
12774
  sourceLocation: {
12733
12775
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12734
- "line": 1943,
12776
+ "line": 2247,
12735
12777
  "column": 9
12736
12778
  }
12737
12779
  },
@@ -12759,7 +12801,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12759
12801
  },
12760
12802
  sourceLocation: {
12761
12803
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12762
- "line": 6307,
12804
+ "line": 6658,
12763
12805
  "column": 9
12764
12806
  }
12765
12807
  },
@@ -12795,7 +12837,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12795
12837
  },
12796
12838
  sourceLocation: {
12797
12839
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12798
- "line": 6289,
12840
+ "line": 6640,
12799
12841
  "column": 9
12800
12842
  }
12801
12843
  },
@@ -12823,7 +12865,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12823
12865
  },
12824
12866
  sourceLocation: {
12825
12867
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12826
- "line": 6331,
12868
+ "line": 6682,
12827
12869
  "column": 9
12828
12870
  }
12829
12871
  },
@@ -12851,7 +12893,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12851
12893
  },
12852
12894
  sourceLocation: {
12853
12895
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12854
- "line": 6323,
12896
+ "line": 6674,
12855
12897
  "column": 9
12856
12898
  }
12857
12899
  },
@@ -12900,7 +12942,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12900
12942
  },
12901
12943
  sourceLocation: {
12902
12944
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12903
- "line": 6299,
12945
+ "line": 6650,
12904
12946
  "column": 9
12905
12947
  }
12906
12948
  },
@@ -12927,7 +12969,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12927
12969
  },
12928
12970
  sourceLocation: {
12929
12971
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12930
- "line": 6315,
12972
+ "line": 6666,
12931
12973
  "column": 9
12932
12974
  }
12933
12975
  },
@@ -12976,7 +13018,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12976
13018
  },
12977
13019
  sourceLocation: {
12978
13020
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12979
- "line": 6280,
13021
+ "line": 6631,
12980
13022
  "column": 9
12981
13023
  }
12982
13024
  },
@@ -13003,7 +13045,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13003
13045
  },
13004
13046
  sourceLocation: {
13005
13047
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13006
- "line": 6270,
13048
+ "line": 6621,
13007
13049
  "column": 9
13008
13050
  }
13009
13051
  },
@@ -13030,7 +13072,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13030
13072
  },
13031
13073
  sourceLocation: {
13032
13074
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13033
- "line": 6262,
13075
+ "line": 6613,
13034
13076
  "column": 9
13035
13077
  }
13036
13078
  },
@@ -13048,7 +13090,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13048
13090
  },
13049
13091
  sourceLocation: {
13050
13092
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13051
- "line": 6254,
13093
+ "line": 6605,
13052
13094
  "column": 9
13053
13095
  }
13054
13096
  },
@@ -13066,7 +13108,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13066
13108
  },
13067
13109
  sourceLocation: {
13068
13110
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13069
- "line": 4707,
13111
+ "line": 5041,
13070
13112
  "column": 9
13071
13113
  }
13072
13114
  },
@@ -13093,7 +13135,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13093
13135
  },
13094
13136
  sourceLocation: {
13095
13137
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13096
- "line": 4734,
13138
+ "line": 5068,
13097
13139
  "column": 9
13098
13140
  }
13099
13141
  },
@@ -13111,7 +13153,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13111
13153
  },
13112
13154
  sourceLocation: {
13113
13155
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13114
- "line": 6189,
13156
+ "line": 6540,
13115
13157
  "column": 9
13116
13158
  }
13117
13159
  },
@@ -13129,7 +13171,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13129
13171
  },
13130
13172
  sourceLocation: {
13131
13173
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13132
- "line": 5730,
13174
+ "line": 6081,
13133
13175
  "column": 9
13134
13176
  }
13135
13177
  },
@@ -13147,7 +13189,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13147
13189
  },
13148
13190
  sourceLocation: {
13149
13191
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13150
- "line": 6197,
13192
+ "line": 6548,
13151
13193
  "column": 9
13152
13194
  }
13153
13195
  },
@@ -13165,7 +13207,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13165
13207
  },
13166
13208
  sourceLocation: {
13167
13209
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13168
- "line": 6205,
13210
+ "line": 6556,
13169
13211
  "column": 9
13170
13212
  }
13171
13213
  },
@@ -13192,7 +13234,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13192
13234
  },
13193
13235
  sourceLocation: {
13194
13236
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13195
- "line": 6215,
13237
+ "line": 6566,
13196
13238
  "column": 9
13197
13239
  }
13198
13240
  },
@@ -13211,7 +13253,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13211
13253
  },
13212
13254
  sourceLocation: {
13213
13255
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13214
- "line": 5059,
13256
+ "line": 5410,
13215
13257
  "column": 9
13216
13258
  }
13217
13259
  },
@@ -13238,7 +13280,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13238
13280
  },
13239
13281
  sourceLocation: {
13240
13282
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13241
- "line": 5068,
13283
+ "line": 5419,
13242
13284
  "column": 9
13243
13285
  }
13244
13286
  },
@@ -13265,7 +13307,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13265
13307
  },
13266
13308
  sourceLocation: {
13267
13309
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13268
- "line": 5164,
13310
+ "line": 5515,
13269
13311
  "column": 9
13270
13312
  }
13271
13313
  },
@@ -13283,7 +13325,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13283
13325
  },
13284
13326
  sourceLocation: {
13285
13327
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13286
- "line": 5441,
13328
+ "line": 5792,
13287
13329
  "column": 3
13288
13330
  }
13289
13331
  },
@@ -13311,7 +13353,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13311
13353
  },
13312
13354
  sourceLocation: {
13313
13355
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13314
- "line": 5512,
13356
+ "line": 5863,
13315
13357
  "column": 9
13316
13358
  }
13317
13359
  },
@@ -13329,7 +13371,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13329
13371
  },
13330
13372
  sourceLocation: {
13331
13373
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13332
- "line": 5521,
13374
+ "line": 5872,
13333
13375
  "column": 3
13334
13376
  }
13335
13377
  },
@@ -13347,7 +13389,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13347
13389
  },
13348
13390
  sourceLocation: {
13349
13391
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13350
- "line": 5528,
13392
+ "line": 5879,
13351
13393
  "column": 9
13352
13394
  }
13353
13395
  },
@@ -13365,7 +13407,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13365
13407
  },
13366
13408
  sourceLocation: {
13367
13409
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13368
- "line": 5504,
13410
+ "line": 5855,
13369
13411
  "column": 3
13370
13412
  }
13371
13413
  },
@@ -13392,7 +13434,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13392
13434
  },
13393
13435
  sourceLocation: {
13394
13436
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13395
- "line": 6152,
13437
+ "line": 6503,
13396
13438
  "column": 9
13397
13439
  }
13398
13440
  },
@@ -13410,7 +13452,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13410
13452
  },
13411
13453
  sourceLocation: {
13412
13454
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13413
- "line": 6181,
13455
+ "line": 6532,
13414
13456
  "column": 9
13415
13457
  }
13416
13458
  },
@@ -13437,7 +13479,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13437
13479
  },
13438
13480
  sourceLocation: {
13439
13481
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13440
- "line": 6142,
13482
+ "line": 6493,
13441
13483
  "column": 9
13442
13484
  }
13443
13485
  },
@@ -13465,7 +13507,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13465
13507
  },
13466
13508
  sourceLocation: {
13467
13509
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13468
- "line": 6172,
13510
+ "line": 6523,
13469
13511
  "column": 9
13470
13512
  }
13471
13513
  },
@@ -13492,7 +13534,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13492
13534
  },
13493
13535
  sourceLocation: {
13494
13536
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13495
- "line": 6162,
13537
+ "line": 6513,
13496
13538
  "column": 9
13497
13539
  }
13498
13540
  },
@@ -13510,7 +13552,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13510
13552
  },
13511
13553
  sourceLocation: {
13512
13554
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13513
- "line": 6132,
13555
+ "line": 6483,
13514
13556
  "column": 9
13515
13557
  }
13516
13558
  },
@@ -13528,7 +13570,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13528
13570
  },
13529
13571
  sourceLocation: {
13530
13572
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13531
- "line": 6123,
13573
+ "line": 6474,
13532
13574
  "column": 9
13533
13575
  }
13534
13576
  },
@@ -13556,7 +13598,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13556
13598
  },
13557
13599
  sourceLocation: {
13558
13600
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13559
- "line": 5479,
13601
+ "line": 5830,
13560
13602
  "column": 9
13561
13603
  }
13562
13604
  },
@@ -13574,7 +13616,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13574
13616
  },
13575
13617
  sourceLocation: {
13576
13618
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13577
- "line": 5488,
13619
+ "line": 5839,
13578
13620
  "column": 9
13579
13621
  }
13580
13622
  },
@@ -13592,7 +13634,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13592
13634
  },
13593
13635
  sourceLocation: {
13594
13636
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13595
- "line": 5495,
13637
+ "line": 5846,
13596
13638
  "column": 9
13597
13639
  }
13598
13640
  },
@@ -13610,7 +13652,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13610
13652
  },
13611
13653
  sourceLocation: {
13612
13654
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13613
- "line": 5471,
13655
+ "line": 5822,
13614
13656
  "column": 3
13615
13657
  }
13616
13658
  },
@@ -13628,7 +13670,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13628
13670
  },
13629
13671
  sourceLocation: {
13630
13672
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13631
- "line": 5304,
13673
+ "line": 5655,
13632
13674
  "column": 9
13633
13675
  }
13634
13676
  },
@@ -13655,7 +13697,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13655
13697
  },
13656
13698
  sourceLocation: {
13657
13699
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13658
- "line": 5313,
13700
+ "line": 5664,
13659
13701
  "column": 9
13660
13702
  }
13661
13703
  },
@@ -13673,7 +13715,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13673
13715
  },
13674
13716
  sourceLocation: {
13675
13717
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13676
- "line": 5322,
13718
+ "line": 5673,
13677
13719
  "column": 9
13678
13720
  }
13679
13721
  },
@@ -13700,7 +13742,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13700
13742
  },
13701
13743
  sourceLocation: {
13702
13744
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13703
- "line": 5341,
13745
+ "line": 5692,
13704
13746
  "column": 9
13705
13747
  }
13706
13748
  },
@@ -13718,7 +13760,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13718
13760
  },
13719
13761
  sourceLocation: {
13720
13762
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13721
- "line": 5331,
13763
+ "line": 5682,
13722
13764
  "column": 9
13723
13765
  }
13724
13766
  },
@@ -13745,7 +13787,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13745
13787
  },
13746
13788
  sourceLocation: {
13747
13789
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13748
- "line": 5350,
13790
+ "line": 5701,
13749
13791
  "column": 9
13750
13792
  }
13751
13793
  },
@@ -13772,7 +13814,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13772
13814
  },
13773
13815
  sourceLocation: {
13774
13816
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13775
- "line": 2483,
13817
+ "line": 2787,
13776
13818
  "column": 9
13777
13819
  }
13778
13820
  },
@@ -13790,7 +13832,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13790
13832
  },
13791
13833
  sourceLocation: {
13792
13834
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13793
- "line": 2474,
13835
+ "line": 2778,
13794
13836
  "column": 3
13795
13837
  }
13796
13838
  },
@@ -13826,7 +13868,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13826
13868
  },
13827
13869
  sourceLocation: {
13828
13870
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13829
- "line": 2364,
13871
+ "line": 2668,
13830
13872
  "column": 9
13831
13873
  }
13832
13874
  },
@@ -13862,7 +13904,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13862
13904
  },
13863
13905
  sourceLocation: {
13864
13906
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13865
- "line": 2403,
13907
+ "line": 2707,
13866
13908
  "column": 3
13867
13909
  }
13868
13910
  },
@@ -13889,7 +13931,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13889
13931
  },
13890
13932
  sourceLocation: {
13891
13933
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13892
- "line": 2373,
13934
+ "line": 2677,
13893
13935
  "column": 3
13894
13936
  }
13895
13937
  },
@@ -13925,7 +13967,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13925
13967
  },
13926
13968
  sourceLocation: {
13927
13969
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13928
- "line": 2393,
13970
+ "line": 2697,
13929
13971
  "column": 3
13930
13972
  }
13931
13973
  },
@@ -13961,7 +14003,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13961
14003
  },
13962
14004
  sourceLocation: {
13963
14005
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13964
- "line": 2383,
14006
+ "line": 2687,
13965
14007
  "column": 9
13966
14008
  }
13967
14009
  },
@@ -13997,7 +14039,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13997
14039
  },
13998
14040
  sourceLocation: {
13999
14041
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14000
- "line": 2413,
14042
+ "line": 2717,
14001
14043
  "column": 3
14002
14044
  }
14003
14045
  },
@@ -14034,7 +14076,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14034
14076
  },
14035
14077
  sourceLocation: {
14036
14078
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14037
- "line": 5012,
14079
+ "line": 5346,
14038
14080
  "column": 3
14039
14081
  }
14040
14082
  },
@@ -14061,7 +14103,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14061
14103
  },
14062
14104
  sourceLocation: {
14063
14105
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14064
- "line": 5032,
14106
+ "line": 5366,
14065
14107
  "column": 3
14066
14108
  }
14067
14109
  },
@@ -14088,7 +14130,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14088
14130
  },
14089
14131
  sourceLocation: {
14090
14132
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14091
- "line": 5042,
14133
+ "line": 5376,
14092
14134
  "column": 3
14093
14135
  }
14094
14136
  },
@@ -14115,7 +14157,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14115
14157
  },
14116
14158
  sourceLocation: {
14117
14159
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14118
- "line": 5002,
14160
+ "line": 5336,
14119
14161
  "column": 3
14120
14162
  }
14121
14163
  },
@@ -14133,7 +14175,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14133
14175
  },
14134
14176
  sourceLocation: {
14135
14177
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14136
- "line": 4985,
14178
+ "line": 5319,
14137
14179
  "column": 3
14138
14180
  }
14139
14181
  },
@@ -14151,7 +14193,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14151
14193
  },
14152
14194
  sourceLocation: {
14153
14195
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14154
- "line": 4977,
14196
+ "line": 5311,
14155
14197
  "column": 3
14156
14198
  }
14157
14199
  },
@@ -14169,7 +14211,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14169
14211
  },
14170
14212
  sourceLocation: {
14171
14213
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14172
- "line": 4993,
14214
+ "line": 5327,
14173
14215
  "column": 3
14174
14216
  }
14175
14217
  },
@@ -14187,7 +14229,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14187
14229
  },
14188
14230
  sourceLocation: {
14189
14231
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14190
- "line": 4969,
14232
+ "line": 5303,
14191
14233
  "column": 3
14192
14234
  }
14193
14235
  },
@@ -14214,7 +14256,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14214
14256
  },
14215
14257
  sourceLocation: {
14216
14258
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14217
- "line": 5022,
14259
+ "line": 5356,
14218
14260
  "column": 3
14219
14261
  }
14220
14262
  },
@@ -14241,7 +14283,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14241
14283
  },
14242
14284
  sourceLocation: {
14243
14285
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14244
- "line": 2019,
14286
+ "line": 2323,
14245
14287
  "column": 9
14246
14288
  }
14247
14289
  },
@@ -14268,7 +14310,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14268
14310
  },
14269
14311
  sourceLocation: {
14270
14312
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14271
- "line": 2010,
14313
+ "line": 2314,
14272
14314
  "column": 3
14273
14315
  }
14274
14316
  },
@@ -14286,7 +14328,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14286
14328
  },
14287
14329
  sourceLocation: {
14288
14330
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14289
- "line": 2458,
14331
+ "line": 2762,
14290
14332
  "column": 9
14291
14333
  }
14292
14334
  },
@@ -14323,7 +14365,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14323
14365
  },
14324
14366
  sourceLocation: {
14325
14367
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14326
- "line": 4922,
14368
+ "line": 5256,
14327
14369
  "column": 3
14328
14370
  }
14329
14371
  },
@@ -14350,7 +14392,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14350
14392
  },
14351
14393
  sourceLocation: {
14352
14394
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14353
- "line": 4941,
14395
+ "line": 5275,
14354
14396
  "column": 3
14355
14397
  }
14356
14398
  },
@@ -14387,7 +14429,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14387
14429
  },
14388
14430
  sourceLocation: {
14389
14431
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14390
- "line": 4951,
14432
+ "line": 5285,
14391
14433
  "column": 3
14392
14434
  }
14393
14435
  },
@@ -14414,7 +14456,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14414
14456
  },
14415
14457
  sourceLocation: {
14416
14458
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14417
- "line": 4961,
14459
+ "line": 5295,
14418
14460
  "column": 3
14419
14461
  }
14420
14462
  },
@@ -14441,7 +14483,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14441
14483
  },
14442
14484
  sourceLocation: {
14443
14485
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14444
- "line": 4912,
14486
+ "line": 5246,
14445
14487
  "column": 3
14446
14488
  }
14447
14489
  },
@@ -14468,7 +14510,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14468
14510
  },
14469
14511
  sourceLocation: {
14470
14512
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14471
- "line": 4895,
14513
+ "line": 5229,
14472
14514
  "column": 3
14473
14515
  }
14474
14516
  },
@@ -14486,7 +14528,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14486
14528
  },
14487
14529
  sourceLocation: {
14488
14530
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14489
- "line": 4886,
14531
+ "line": 5220,
14490
14532
  "column": 3
14491
14533
  }
14492
14534
  },
@@ -14504,7 +14546,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14504
14546
  },
14505
14547
  sourceLocation: {
14506
14548
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14507
- "line": 4903,
14549
+ "line": 5237,
14508
14550
  "column": 3
14509
14551
  }
14510
14552
  },
@@ -14522,7 +14564,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14522
14564
  },
14523
14565
  sourceLocation: {
14524
14566
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14525
- "line": 4878,
14567
+ "line": 5212,
14526
14568
  "column": 3
14527
14569
  }
14528
14570
  },
@@ -14549,7 +14591,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14549
14591
  },
14550
14592
  sourceLocation: {
14551
14593
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14552
- "line": 4932,
14594
+ "line": 5266,
14553
14595
  "column": 3
14554
14596
  }
14555
14597
  },
@@ -14576,7 +14618,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14576
14618
  },
14577
14619
  sourceLocation: {
14578
14620
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14579
- "line": 2150,
14621
+ "line": 2454,
14580
14622
  "column": 9
14581
14623
  }
14582
14624
  },
@@ -14603,7 +14645,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14603
14645
  },
14604
14646
  sourceLocation: {
14605
14647
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14606
- "line": 2141,
14648
+ "line": 2445,
14607
14649
  "column": 9
14608
14650
  }
14609
14651
  },
@@ -14630,7 +14672,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14630
14672
  },
14631
14673
  sourceLocation: {
14632
14674
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14633
- "line": 2159,
14675
+ "line": 2463,
14634
14676
  "column": 9
14635
14677
  }
14636
14678
  },
@@ -14657,7 +14699,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14657
14699
  },
14658
14700
  sourceLocation: {
14659
14701
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14660
- "line": 2268,
14702
+ "line": 2572,
14661
14703
  "column": 3
14662
14704
  }
14663
14705
  },
@@ -14684,7 +14726,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14684
14726
  },
14685
14727
  sourceLocation: {
14686
14728
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14687
- "line": 2305,
14729
+ "line": 2609,
14688
14730
  "column": 9
14689
14731
  }
14690
14732
  },
@@ -14720,7 +14762,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14720
14762
  },
14721
14763
  sourceLocation: {
14722
14764
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14723
- "line": 2240,
14765
+ "line": 2544,
14724
14766
  "column": 3
14725
14767
  }
14726
14768
  },
@@ -14747,7 +14789,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14747
14789
  },
14748
14790
  sourceLocation: {
14749
14791
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14750
- "line": 2259,
14792
+ "line": 2563,
14751
14793
  "column": 3
14752
14794
  }
14753
14795
  },
@@ -14784,7 +14826,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14784
14826
  },
14785
14827
  sourceLocation: {
14786
14828
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14787
- "line": 2344,
14829
+ "line": 2648,
14788
14830
  "column": 3
14789
14831
  }
14790
14832
  },
@@ -14820,7 +14862,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14820
14862
  },
14821
14863
  sourceLocation: {
14822
14864
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14823
- "line": 2220,
14865
+ "line": 2524,
14824
14866
  "column": 3
14825
14867
  }
14826
14868
  },
@@ -14857,7 +14899,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14857
14899
  },
14858
14900
  sourceLocation: {
14859
14901
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14860
- "line": 2169,
14902
+ "line": 2473,
14861
14903
  "column": 3
14862
14904
  }
14863
14905
  },
@@ -14884,7 +14926,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14884
14926
  },
14885
14927
  sourceLocation: {
14886
14928
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14887
- "line": 2323,
14929
+ "line": 2627,
14888
14930
  "column": 3
14889
14931
  }
14890
14932
  },
@@ -14921,7 +14963,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14921
14963
  },
14922
14964
  sourceLocation: {
14923
14965
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14924
- "line": 2250,
14966
+ "line": 2554,
14925
14967
  "column": 3
14926
14968
  }
14927
14969
  },
@@ -14948,7 +14990,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14948
14990
  },
14949
14991
  sourceLocation: {
14950
14992
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14951
- "line": 2189,
14993
+ "line": 2493,
14952
14994
  "column": 3
14953
14995
  }
14954
14996
  },
@@ -14985,7 +15027,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14985
15027
  },
14986
15028
  sourceLocation: {
14987
15029
  "file": "packages/freecodego/harness-plugin/src/index.ts",
14988
- "line": 2278,
15030
+ "line": 2582,
14989
15031
  "column": 3
14990
15032
  }
14991
15033
  },
@@ -15021,7 +15063,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15021
15063
  },
15022
15064
  sourceLocation: {
15023
15065
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15024
- "line": 2230,
15066
+ "line": 2534,
15025
15067
  "column": 3
15026
15068
  }
15027
15069
  },
@@ -15072,7 +15114,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15072
15114
  },
15073
15115
  sourceLocation: {
15074
15116
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15075
- "line": 2180,
15117
+ "line": 2484,
15076
15118
  "column": 3
15077
15119
  }
15078
15120
  },
@@ -15108,7 +15150,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15108
15150
  },
15109
15151
  sourceLocation: {
15110
15152
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15111
- "line": 2210,
15153
+ "line": 2514,
15112
15154
  "column": 3
15113
15155
  }
15114
15156
  },
@@ -15135,7 +15177,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15135
15177
  },
15136
15178
  sourceLocation: {
15137
15179
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15138
- "line": 2123,
15180
+ "line": 2427,
15139
15181
  "column": 9
15140
15182
  }
15141
15183
  },
@@ -15162,7 +15204,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15162
15204
  },
15163
15205
  sourceLocation: {
15164
15206
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15165
- "line": 2132,
15207
+ "line": 2436,
15166
15208
  "column": 9
15167
15209
  }
15168
15210
  },
@@ -15189,7 +15231,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15189
15231
  },
15190
15232
  sourceLocation: {
15191
15233
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15192
- "line": 2427,
15234
+ "line": 2731,
15193
15235
  "column": 9
15194
15236
  }
15195
15237
  },
@@ -15225,7 +15267,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15225
15267
  },
15226
15268
  sourceLocation: {
15227
15269
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15228
- "line": 2443,
15270
+ "line": 2747,
15229
15271
  "column": 9
15230
15272
  }
15231
15273
  },
@@ -15243,7 +15285,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15243
15285
  },
15244
15286
  sourceLocation: {
15245
15287
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15246
- "line": 2114,
15288
+ "line": 2418,
15247
15289
  "column": 9
15248
15290
  }
15249
15291
  },
@@ -15270,7 +15312,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15270
15312
  },
15271
15313
  sourceLocation: {
15272
15314
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15273
- "line": 2060,
15315
+ "line": 2364,
15274
15316
  "column": 3
15275
15317
  }
15276
15318
  },
@@ -15306,7 +15348,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15306
15348
  },
15307
15349
  sourceLocation: {
15308
15350
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15309
- "line": 2080,
15351
+ "line": 2384,
15310
15352
  "column": 9
15311
15353
  }
15312
15354
  },
@@ -15342,7 +15384,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15342
15384
  },
15343
15385
  sourceLocation: {
15344
15386
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15345
- "line": 2106,
15387
+ "line": 2410,
15346
15388
  "column": 9
15347
15389
  }
15348
15390
  },
@@ -15369,7 +15411,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15369
15411
  },
15370
15412
  sourceLocation: {
15371
15413
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15372
- "line": 2051,
15414
+ "line": 2355,
15373
15415
  "column": 9
15374
15416
  }
15375
15417
  },
@@ -15396,7 +15438,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15396
15438
  },
15397
15439
  sourceLocation: {
15398
15440
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15399
- "line": 2070,
15441
+ "line": 2374,
15400
15442
  "column": 9
15401
15443
  }
15402
15444
  },
@@ -15432,7 +15474,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15432
15474
  },
15433
15475
  sourceLocation: {
15434
15476
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15435
- "line": 2042,
15477
+ "line": 2346,
15436
15478
  "column": 3
15437
15479
  }
15438
15480
  },
@@ -15468,7 +15510,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15468
15510
  },
15469
15511
  sourceLocation: {
15470
15512
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15471
- "line": 2093,
15513
+ "line": 2397,
15472
15514
  "column": 9
15473
15515
  }
15474
15516
  },
@@ -15495,7 +15537,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15495
15537
  },
15496
15538
  sourceLocation: {
15497
15539
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15498
- "line": 6365,
15540
+ "line": 6716,
15499
15541
  "column": 9
15500
15542
  }
15501
15543
  },
@@ -15545,7 +15587,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15545
15587
  },
15546
15588
  sourceLocation: {
15547
15589
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15548
- "line": 5761,
15590
+ "line": 6112,
15549
15591
  "column": 9
15550
15592
  }
15551
15593
  },
@@ -15563,7 +15605,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15563
15605
  },
15564
15606
  sourceLocation: {
15565
15607
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15566
- "line": 3013,
15608
+ "line": 3347,
15567
15609
  "column": 9
15568
15610
  }
15569
15611
  },
@@ -15590,7 +15632,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15590
15632
  },
15591
15633
  sourceLocation: {
15592
15634
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15593
- "line": 4747,
15635
+ "line": 5081,
15594
15636
  "column": 9
15595
15637
  }
15596
15638
  },
@@ -15617,7 +15659,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15617
15659
  },
15618
15660
  sourceLocation: {
15619
15661
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15620
- "line": 4764,
15662
+ "line": 5098,
15621
15663
  "column": 9
15622
15664
  }
15623
15665
  },
@@ -15635,7 +15677,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15635
15677
  },
15636
15678
  sourceLocation: {
15637
15679
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15638
- "line": 2466,
15680
+ "line": 2770,
15639
15681
  "column": 3
15640
15682
  }
15641
15683
  },
@@ -15662,7 +15704,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15662
15704
  },
15663
15705
  sourceLocation: {
15664
15706
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15665
- "line": 4776,
15707
+ "line": 5110,
15666
15708
  "column": 9
15667
15709
  }
15668
15710
  },
@@ -15680,7 +15722,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15680
15722
  },
15681
15723
  sourceLocation: {
15682
15724
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15683
- "line": 3657,
15725
+ "line": 3991,
15684
15726
  "column": 9
15685
15727
  }
15686
15728
  },
@@ -15707,7 +15749,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15707
15749
  },
15708
15750
  sourceLocation: {
15709
15751
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15710
- "line": 5790,
15752
+ "line": 6141,
15711
15753
  "column": 9
15712
15754
  }
15713
15755
  },
@@ -15734,7 +15776,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15734
15776
  },
15735
15777
  sourceLocation: {
15736
15778
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15737
- "line": 5780,
15779
+ "line": 6131,
15738
15780
  "column": 9
15739
15781
  }
15740
15782
  },
@@ -15761,7 +15803,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15761
15803
  },
15762
15804
  sourceLocation: {
15763
15805
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15764
- "line": 5800,
15806
+ "line": 6151,
15765
15807
  "column": 9
15766
15808
  }
15767
15809
  },
@@ -15779,7 +15821,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15779
15821
  },
15780
15822
  sourceLocation: {
15781
15823
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15782
- "line": 5770,
15824
+ "line": 6121,
15783
15825
  "column": 9
15784
15826
  }
15785
15827
  },
@@ -15797,7 +15839,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15797
15839
  },
15798
15840
  sourceLocation: {
15799
15841
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15800
- "line": 2494,
15842
+ "line": 2828,
15801
15843
  "column": 9
15802
15844
  }
15803
15845
  },
@@ -15824,7 +15866,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15824
15866
  },
15825
15867
  sourceLocation: {
15826
15868
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15827
- "line": 5173,
15869
+ "line": 5524,
15828
15870
  "column": 9
15829
15871
  }
15830
15872
  },
@@ -15851,7 +15893,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15851
15893
  },
15852
15894
  sourceLocation: {
15853
15895
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15854
- "line": 5112,
15896
+ "line": 5463,
15855
15897
  "column": 9
15856
15898
  }
15857
15899
  },
@@ -15878,10 +15920,55 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15878
15920
  },
15879
15921
  sourceLocation: {
15880
15922
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15881
- "line": 5103,
15923
+ "line": 5454,
15924
+ "column": 9
15925
+ }
15926
+ },
15927
+ {
15928
+ id: "@deepseek-ai/dsh-freecodego-harness-plugin#freeCodeGoHarness/mediaGenerationSetEnabled",
15929
+ service: "freeCodeGoHarness",
15930
+ namespace: "freeCodeGoHarness",
15931
+ method: "mediaGenerationSetEnabled",
15932
+ invocation: { kind: "direct" },
15933
+ parameters: [{
15934
+ name: "enabled",
15935
+ wire: "enabled",
15936
+ source: "json",
15937
+ codec: {
15938
+ mode: "strict",
15939
+ typeSymbol: "@deepseek-ai/dsh-freecodego-harness-plugin#freeCodeGoHarness/mediaGenerationSetEnabled:enabled",
15940
+ create: _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_mediaGenerationSetEnabled_parameter_0$schema
15941
+ }
15942
+ }],
15943
+ result: {
15944
+ mode: "strict",
15945
+ typeSymbol: "@deepseek-ai/dsh-freecodego-harness-plugin/types#FreeCodeGoMediaToolStatus",
15946
+ create: _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_mediaGenerationSetEnabled_result$schema
15947
+ },
15948
+ sourceLocation: {
15949
+ "file": "packages/freecodego/harness-plugin/src/index.ts",
15950
+ "line": 2818,
15882
15951
  "column": 9
15883
15952
  }
15884
15953
  },
15954
+ {
15955
+ id: "@deepseek-ai/dsh-freecodego-harness-plugin#freeCodeGoHarness/mediaGenerationStatus",
15956
+ service: "freeCodeGoHarness",
15957
+ namespace: "freeCodeGoHarness",
15958
+ method: "mediaGenerationStatus",
15959
+ invocation: { kind: "direct" },
15960
+ parameters: [],
15961
+ result: {
15962
+ mode: "strict",
15963
+ typeSymbol: "@deepseek-ai/dsh-freecodego-harness-plugin/types#FreeCodeGoMediaToolStatus",
15964
+ create: _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_mediaGenerationStatus_result$schema
15965
+ },
15966
+ sourceLocation: {
15967
+ "file": "packages/freecodego/harness-plugin/src/index.ts",
15968
+ "line": 2804,
15969
+ "column": 3
15970
+ }
15971
+ },
15885
15972
  {
15886
15973
  id: "@deepseek-ai/dsh-freecodego-harness-plugin#freeCodeGoHarness/modelAvailability",
15887
15974
  service: "freeCodeGoHarness",
@@ -15896,7 +15983,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15896
15983
  },
15897
15984
  sourceLocation: {
15898
15985
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15899
- "line": 5452,
15986
+ "line": 5803,
15900
15987
  "column": 9
15901
15988
  }
15902
15989
  },
@@ -15923,7 +16010,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15923
16010
  },
15924
16011
  sourceLocation: {
15925
16012
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15926
- "line": 5077,
16013
+ "line": 5428,
15927
16014
  "column": 9
15928
16015
  }
15929
16016
  },
@@ -15950,7 +16037,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15950
16037
  },
15951
16038
  sourceLocation: {
15952
16039
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15953
- "line": 5838,
16040
+ "line": 6189,
15954
16041
  "column": 9
15955
16042
  }
15956
16043
  },
@@ -15968,7 +16055,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15968
16055
  },
15969
16056
  sourceLocation: {
15970
16057
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15971
- "line": 5828,
16058
+ "line": 6179,
15972
16059
  "column": 9
15973
16060
  }
15974
16061
  },
@@ -15995,7 +16082,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15995
16082
  },
15996
16083
  sourceLocation: {
15997
16084
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15998
- "line": 6423,
16085
+ "line": 6774,
15999
16086
  "column": 9
16000
16087
  }
16001
16088
  },
@@ -16013,7 +16100,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16013
16100
  },
16014
16101
  sourceLocation: {
16015
16102
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16016
- "line": 6347,
16103
+ "line": 6698,
16017
16104
  "column": 9
16018
16105
  }
16019
16106
  },
@@ -16073,7 +16160,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16073
16160
  },
16074
16161
  sourceLocation: {
16075
16162
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16076
- "line": 6394,
16163
+ "line": 6745,
16077
16164
  "column": 9
16078
16165
  }
16079
16166
  },
@@ -16091,7 +16178,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16091
16178
  },
16092
16179
  sourceLocation: {
16093
16180
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16094
- "line": 6355,
16181
+ "line": 6706,
16095
16182
  "column": 9
16096
16183
  }
16097
16184
  },
@@ -16118,7 +16205,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16118
16205
  },
16119
16206
  sourceLocation: {
16120
16207
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16121
- "line": 6403,
16208
+ "line": 6754,
16122
16209
  "column": 9
16123
16210
  }
16124
16211
  },
@@ -16136,7 +16223,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16136
16223
  },
16137
16224
  sourceLocation: {
16138
16225
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16139
- "line": 6382,
16226
+ "line": 6733,
16140
16227
  "column": 9
16141
16228
  }
16142
16229
  },
@@ -16154,7 +16241,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16154
16241
  },
16155
16242
  sourceLocation: {
16156
16243
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16157
- "line": 6338,
16244
+ "line": 6689,
16158
16245
  "column": 9
16159
16246
  }
16160
16247
  },
@@ -16181,7 +16268,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16181
16268
  },
16182
16269
  sourceLocation: {
16183
16270
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16184
- "line": 6443,
16271
+ "line": 6794,
16185
16272
  "column": 9
16186
16273
  }
16187
16274
  },
@@ -16208,7 +16295,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16208
16295
  },
16209
16296
  sourceLocation: {
16210
16297
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16211
- "line": 6433,
16298
+ "line": 6784,
16212
16299
  "column": 9
16213
16300
  }
16214
16301
  },
@@ -16235,7 +16322,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16235
16322
  },
16236
16323
  sourceLocation: {
16237
16324
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16238
- "line": 6458,
16325
+ "line": 6809,
16239
16326
  "column": 9
16240
16327
  }
16241
16328
  },
@@ -16262,7 +16349,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16262
16349
  },
16263
16350
  sourceLocation: {
16264
16351
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16265
- "line": 6413,
16352
+ "line": 6764,
16266
16353
  "column": 9
16267
16354
  }
16268
16355
  },
@@ -16289,7 +16376,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16289
16376
  },
16290
16377
  sourceLocation: {
16291
16378
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16292
- "line": 3202,
16379
+ "line": 3536,
16293
16380
  "column": 3
16294
16381
  }
16295
16382
  },
@@ -16316,7 +16403,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16316
16403
  },
16317
16404
  sourceLocation: {
16318
16405
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16319
- "line": 3175,
16406
+ "line": 3509,
16320
16407
  "column": 9
16321
16408
  }
16322
16409
  },
@@ -16343,7 +16430,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16343
16430
  },
16344
16431
  sourceLocation: {
16345
16432
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16346
- "line": 5094,
16433
+ "line": 5445,
16347
16434
  "column": 9
16348
16435
  }
16349
16436
  },
@@ -16361,7 +16448,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16361
16448
  },
16362
16449
  sourceLocation: {
16363
16450
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16364
- "line": 5085,
16451
+ "line": 5436,
16365
16452
  "column": 3
16366
16453
  }
16367
16454
  },
@@ -16379,7 +16466,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16379
16466
  },
16380
16467
  sourceLocation: {
16381
16468
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16382
- "line": 5540,
16469
+ "line": 5891,
16383
16470
  "column": 9
16384
16471
  }
16385
16472
  },
@@ -16397,7 +16484,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16397
16484
  },
16398
16485
  sourceLocation: {
16399
16486
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16400
- "line": 5559,
16487
+ "line": 5910,
16401
16488
  "column": 9
16402
16489
  }
16403
16490
  },
@@ -16415,7 +16502,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16415
16502
  },
16416
16503
  sourceLocation: {
16417
16504
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16418
- "line": 5553,
16505
+ "line": 5904,
16419
16506
  "column": 9
16420
16507
  }
16421
16508
  },
@@ -16442,7 +16529,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16442
16529
  },
16443
16530
  sourceLocation: {
16444
16531
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16445
- "line": 5547,
16532
+ "line": 5898,
16446
16533
  "column": 9
16447
16534
  }
16448
16535
  },
@@ -16460,7 +16547,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16460
16547
  },
16461
16548
  sourceLocation: {
16462
16549
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16463
- "line": 5534,
16550
+ "line": 5885,
16464
16551
  "column": 3
16465
16552
  }
16466
16553
  },
@@ -16488,7 +16575,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16488
16575
  },
16489
16576
  sourceLocation: {
16490
16577
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16491
- "line": 2724,
16578
+ "line": 3058,
16492
16579
  "column": 9
16493
16580
  }
16494
16581
  },
@@ -16506,7 +16593,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16506
16593
  },
16507
16594
  sourceLocation: {
16508
16595
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16509
- "line": 6013,
16596
+ "line": 6364,
16510
16597
  "column": 9
16511
16598
  }
16512
16599
  },
@@ -16524,7 +16611,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16524
16611
  },
16525
16612
  sourceLocation: {
16526
16613
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16527
- "line": 5975,
16614
+ "line": 6326,
16528
16615
  "column": 9
16529
16616
  }
16530
16617
  },
@@ -16551,7 +16638,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16551
16638
  },
16552
16639
  sourceLocation: {
16553
16640
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16554
- "line": 5966,
16641
+ "line": 6317,
16555
16642
  "column": 9
16556
16643
  }
16557
16644
  },
@@ -16569,7 +16656,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16569
16656
  },
16570
16657
  sourceLocation: {
16571
16658
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16572
- "line": 6004,
16659
+ "line": 6355,
16573
16660
  "column": 9
16574
16661
  }
16575
16662
  },
@@ -16596,7 +16683,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16596
16683
  },
16597
16684
  sourceLocation: {
16598
16685
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16599
- "line": 5985,
16686
+ "line": 6336,
16600
16687
  "column": 9
16601
16688
  }
16602
16689
  },
@@ -16623,7 +16710,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16623
16710
  },
16624
16711
  sourceLocation: {
16625
16712
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16626
- "line": 5995,
16713
+ "line": 6346,
16627
16714
  "column": 9
16628
16715
  }
16629
16716
  },
@@ -16641,7 +16728,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16641
16728
  },
16642
16729
  sourceLocation: {
16643
16730
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16644
- "line": 5956,
16731
+ "line": 6307,
16645
16732
  "column": 9
16646
16733
  }
16647
16734
  },
@@ -16659,7 +16746,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16659
16746
  },
16660
16747
  sourceLocation: {
16661
16748
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16662
- "line": 5947,
16749
+ "line": 6298,
16663
16750
  "column": 9
16664
16751
  }
16665
16752
  },
@@ -16695,7 +16782,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16695
16782
  },
16696
16783
  sourceLocation: {
16697
16784
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16698
- "line": 1991,
16785
+ "line": 2295,
16699
16786
  "column": 9
16700
16787
  }
16701
16788
  },
@@ -16722,7 +16809,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16722
16809
  },
16723
16810
  sourceLocation: {
16724
16811
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16725
- "line": 1981,
16812
+ "line": 2285,
16726
16813
  "column": 9
16727
16814
  }
16728
16815
  },
@@ -16758,7 +16845,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16758
16845
  },
16759
16846
  sourceLocation: {
16760
16847
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16761
- "line": 2001,
16848
+ "line": 2305,
16762
16849
  "column": 9
16763
16850
  }
16764
16851
  },
@@ -16794,7 +16881,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16794
16881
  },
16795
16882
  sourceLocation: {
16796
16883
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16797
- "line": 2552,
16884
+ "line": 2886,
16798
16885
  "column": 9
16799
16886
  }
16800
16887
  },
@@ -16821,7 +16908,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16821
16908
  },
16822
16909
  sourceLocation: {
16823
16910
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16824
- "line": 2511,
16911
+ "line": 2845,
16825
16912
  "column": 9
16826
16913
  }
16827
16914
  },
@@ -16848,7 +16935,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16848
16935
  },
16849
16936
  sourceLocation: {
16850
16937
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16851
- "line": 5819,
16938
+ "line": 6170,
16852
16939
  "column": 9
16853
16940
  }
16854
16941
  },
@@ -16866,7 +16953,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16866
16953
  },
16867
16954
  sourceLocation: {
16868
16955
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16869
- "line": 5809,
16956
+ "line": 6160,
16870
16957
  "column": 9
16871
16958
  }
16872
16959
  },
@@ -16893,7 +16980,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16893
16980
  },
16894
16981
  sourceLocation: {
16895
16982
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16896
- "line": 5051,
16983
+ "line": 5385,
16897
16984
  "column": 9
16898
16985
  }
16899
16986
  },
@@ -16920,7 +17007,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16920
17007
  },
16921
17008
  sourceLocation: {
16922
17009
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16923
- "line": 5462,
17010
+ "line": 5813,
16924
17011
  "column": 9
16925
17012
  }
16926
17013
  },
@@ -16947,7 +17034,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16947
17034
  },
16948
17035
  sourceLocation: {
16949
17036
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16950
- "line": 1917,
17037
+ "line": 2221,
16951
17038
  "column": 9
16952
17039
  }
16953
17040
  },
@@ -16974,7 +17061,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16974
17061
  },
16975
17062
  sourceLocation: {
16976
17063
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16977
- "line": 1926,
17064
+ "line": 2230,
16978
17065
  "column": 9
16979
17066
  }
16980
17067
  },
@@ -17001,7 +17088,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17001
17088
  },
17002
17089
  sourceLocation: {
17003
17090
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17004
- "line": 5155,
17091
+ "line": 5506,
17005
17092
  "column": 9
17006
17093
  }
17007
17094
  },
@@ -17028,7 +17115,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17028
17115
  },
17029
17116
  sourceLocation: {
17030
17117
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17031
- "line": 5140,
17118
+ "line": 5491,
17032
17119
  "column": 9
17033
17120
  }
17034
17121
  },
@@ -17056,7 +17143,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17056
17143
  },
17057
17144
  sourceLocation: {
17058
17145
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17059
- "line": 5210,
17146
+ "line": 5561,
17060
17147
  "column": 9
17061
17148
  }
17062
17149
  },
@@ -17074,7 +17161,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17074
17161
  },
17075
17162
  sourceLocation: {
17076
17163
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17077
- "line": 5196,
17164
+ "line": 5547,
17078
17165
  "column": 9
17079
17166
  }
17080
17167
  },
@@ -17111,7 +17198,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17111
17198
  },
17112
17199
  sourceLocation: {
17113
17200
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17114
- "line": 5182,
17201
+ "line": 5533,
17115
17202
  "column": 9
17116
17203
  }
17117
17204
  },
@@ -17138,7 +17225,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17138
17225
  },
17139
17226
  sourceLocation: {
17140
17227
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17141
- "line": 5222,
17228
+ "line": 5573,
17142
17229
  "column": 9
17143
17230
  }
17144
17231
  },
@@ -17165,7 +17252,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17165
17252
  },
17166
17253
  sourceLocation: {
17167
17254
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17168
- "line": 5130,
17255
+ "line": 5481,
17169
17256
  "column": 9
17170
17257
  }
17171
17258
  },
@@ -17192,7 +17279,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17192
17279
  },
17193
17280
  sourceLocation: {
17194
17281
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17195
- "line": 5121,
17282
+ "line": 5472,
17196
17283
  "column": 9
17197
17284
  }
17198
17285
  },
@@ -17219,7 +17306,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17219
17306
  },
17220
17307
  sourceLocation: {
17221
17308
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17222
- "line": 6245,
17309
+ "line": 6596,
17223
17310
  "column": 9
17224
17311
  }
17225
17312
  },
@@ -17246,7 +17333,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17246
17333
  },
17247
17334
  sourceLocation: {
17248
17335
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17249
- "line": 6235,
17336
+ "line": 6586,
17250
17337
  "column": 9
17251
17338
  }
17252
17339
  },
@@ -17273,7 +17360,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17273
17360
  },
17274
17361
  sourceLocation: {
17275
17362
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17276
- "line": 6225,
17363
+ "line": 6576,
17277
17364
  "column": 9
17278
17365
  }
17279
17366
  },
@@ -17291,7 +17378,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17291
17378
  },
17292
17379
  sourceLocation: {
17293
17380
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17294
- "line": 6065,
17381
+ "line": 6416,
17295
17382
  "column": 9
17296
17383
  }
17297
17384
  },
@@ -17309,7 +17396,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17309
17396
  },
17310
17397
  sourceLocation: {
17311
17398
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17312
- "line": 6112,
17399
+ "line": 6463,
17313
17400
  "column": 9
17314
17401
  }
17315
17402
  },
@@ -17327,7 +17414,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17327
17414
  },
17328
17415
  sourceLocation: {
17329
17416
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17330
- "line": 6083,
17417
+ "line": 6434,
17331
17418
  "column": 9
17332
17419
  }
17333
17420
  },
@@ -17345,7 +17432,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17345
17432
  },
17346
17433
  sourceLocation: {
17347
17434
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17348
- "line": 6074,
17435
+ "line": 6425,
17349
17436
  "column": 9
17350
17437
  }
17351
17438
  },
@@ -17363,7 +17450,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17363
17450
  },
17364
17451
  sourceLocation: {
17365
17452
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17366
- "line": 6046,
17453
+ "line": 6397,
17367
17454
  "column": 9
17368
17455
  }
17369
17456
  },
@@ -17390,7 +17477,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17390
17477
  },
17391
17478
  sourceLocation: {
17392
17479
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17393
- "line": 6093,
17480
+ "line": 6444,
17394
17481
  "column": 9
17395
17482
  }
17396
17483
  },
@@ -17417,7 +17504,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17417
17504
  },
17418
17505
  sourceLocation: {
17419
17506
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17420
- "line": 6103,
17507
+ "line": 6454,
17421
17508
  "column": 9
17422
17509
  }
17423
17510
  },
@@ -17445,7 +17532,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17445
17532
  },
17446
17533
  sourceLocation: {
17447
17534
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17448
- "line": 6036,
17535
+ "line": 6387,
17449
17536
  "column": 9
17450
17537
  }
17451
17538
  },
@@ -17463,7 +17550,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17463
17550
  },
17464
17551
  sourceLocation: {
17465
17552
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17466
- "line": 6026,
17553
+ "line": 6377,
17467
17554
  "column": 9
17468
17555
  }
17469
17556
  },
@@ -17490,7 +17577,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17490
17577
  },
17491
17578
  sourceLocation: {
17492
17579
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17493
- "line": 6056,
17580
+ "line": 6407,
17494
17581
  "column": 9
17495
17582
  }
17496
17583
  },
@@ -17517,7 +17604,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17517
17604
  },
17518
17605
  sourceLocation: {
17519
17606
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17520
- "line": 2605,
17607
+ "line": 2939,
17521
17608
  "column": 9
17522
17609
  }
17523
17610
  },
@@ -17544,7 +17631,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17544
17631
  },
17545
17632
  sourceLocation: {
17546
17633
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17547
- "line": 2640,
17634
+ "line": 2974,
17548
17635
  "column": 9
17549
17636
  }
17550
17637
  },
@@ -17572,7 +17659,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17572
17659
  },
17573
17660
  sourceLocation: {
17574
17661
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17575
- "line": 2583,
17662
+ "line": 2917,
17576
17663
  "column": 9
17577
17664
  }
17578
17665
  },
@@ -17599,7 +17686,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17599
17686
  },
17600
17687
  sourceLocation: {
17601
17688
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17602
- "line": 5749,
17689
+ "line": 6100,
17603
17690
  "column": 9
17604
17691
  }
17605
17692
  },
@@ -17617,7 +17704,52 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17617
17704
  },
17618
17705
  sourceLocation: {
17619
17706
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17620
- "line": 5739,
17707
+ "line": 6090,
17708
+ "column": 9
17709
+ }
17710
+ },
17711
+ {
17712
+ id: "@deepseek-ai/dsh-freecodego-harness-plugin#freeCodeGoHarness/webSearchBind",
17713
+ service: "freeCodeGoHarness",
17714
+ namespace: "freeCodeGoHarness",
17715
+ method: "webSearchBind",
17716
+ invocation: { kind: "direct" },
17717
+ parameters: [{
17718
+ name: "input",
17719
+ wire: "input",
17720
+ source: "json",
17721
+ codec: {
17722
+ mode: "strict",
17723
+ typeSymbol: "@deepseek-ai/dsh-freecodego-harness-plugin#freeCodeGoHarness/webSearchBind:input",
17724
+ create: _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_webSearchBind_parameter_0$schema
17725
+ }
17726
+ }],
17727
+ result: {
17728
+ mode: "strict",
17729
+ typeSymbol: "@deepseek-ai/dsh-freecodego-harness-plugin/types#FreeCodeGoWebSearchBinding",
17730
+ create: _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_webSearchBind_result$schema
17731
+ },
17732
+ sourceLocation: {
17733
+ "file": "packages/freecodego/harness-plugin/src/index.ts",
17734
+ "line": 5394,
17735
+ "column": 9
17736
+ }
17737
+ },
17738
+ {
17739
+ id: "@deepseek-ai/dsh-freecodego-harness-plugin#freeCodeGoHarness/webSearchBindingStatus",
17740
+ service: "freeCodeGoHarness",
17741
+ namespace: "freeCodeGoHarness",
17742
+ method: "webSearchBindingStatus",
17743
+ invocation: { kind: "direct" },
17744
+ parameters: [],
17745
+ result: {
17746
+ mode: "strict",
17747
+ typeSymbol: "@deepseek-ai/dsh-freecodego-harness-plugin/types#FreeCodeGoWebSearchBindingStatus",
17748
+ create: _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_webSearchBindingStatus_result$schema
17749
+ },
17750
+ sourceLocation: {
17751
+ "file": "packages/freecodego/harness-plugin/src/index.ts",
17752
+ "line": 5402,
17621
17753
  "column": 9
17622
17754
  }
17623
17755
  },
@@ -17635,7 +17767,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17635
17767
  },
17636
17768
  sourceLocation: {
17637
17769
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17638
- "line": 5860,
17770
+ "line": 6211,
17639
17771
  "column": 9
17640
17772
  }
17641
17773
  },
@@ -17653,7 +17785,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17653
17785
  },
17654
17786
  sourceLocation: {
17655
17787
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17656
- "line": 5897,
17788
+ "line": 6248,
17657
17789
  "column": 9
17658
17790
  }
17659
17791
  },
@@ -17671,7 +17803,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17671
17803
  },
17672
17804
  sourceLocation: {
17673
17805
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17674
- "line": 5869,
17806
+ "line": 6220,
17675
17807
  "column": 9
17676
17808
  }
17677
17809
  },
@@ -17698,7 +17830,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17698
17830
  },
17699
17831
  sourceLocation: {
17700
17832
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17701
- "line": 5888,
17833
+ "line": 6239,
17702
17834
  "column": 9
17703
17835
  }
17704
17836
  },
@@ -17716,7 +17848,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17716
17848
  },
17717
17849
  sourceLocation: {
17718
17850
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17719
- "line": 5936,
17851
+ "line": 6287,
17720
17852
  "column": 9
17721
17853
  }
17722
17854
  },
@@ -17743,7 +17875,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17743
17875
  },
17744
17876
  sourceLocation: {
17745
17877
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17746
- "line": 5927,
17878
+ "line": 6278,
17747
17879
  "column": 9
17748
17880
  }
17749
17881
  },
@@ -17770,7 +17902,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17770
17902
  },
17771
17903
  sourceLocation: {
17772
17904
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17773
- "line": 5907,
17905
+ "line": 6258,
17774
17906
  "column": 9
17775
17907
  }
17776
17908
  },
@@ -17797,7 +17929,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17797
17929
  },
17798
17930
  sourceLocation: {
17799
17931
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17800
- "line": 5917,
17932
+ "line": 6268,
17801
17933
  "column": 9
17802
17934
  }
17803
17935
  },
@@ -17815,7 +17947,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17815
17947
  },
17816
17948
  sourceLocation: {
17817
17949
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17818
- "line": 5878,
17950
+ "line": 6229,
17819
17951
  "column": 9
17820
17952
  }
17821
17953
  },
@@ -17833,7 +17965,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17833
17965
  },
17834
17966
  sourceLocation: {
17835
17967
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17836
- "line": 5851,
17968
+ "line": 6202,
17837
17969
  "column": 9
17838
17970
  }
17839
17971
  }
@@ -18064,13 +18196,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
18064
18196
  }
18065
18197
  //#endregion
18066
18198
  //#region \0dsh-css:/home/runner/work/dsh-plugin-freecodego/dsh-plugin-freecodego/plugin/packages/freecodego/harness-ui/src/client/settings-tab.module.css.mjs
18067
- const css$5 = ".fnB0BW_root{box-sizing:border-box;width:100%;min-width:0;max-width:100%;color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg);overflow:hidden}.fnB0BW_toolbar{border-bottom:1px solid var(--fcg-line);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:0 0 12px;display:flex}.fnB0BW_toolbarTitle{min-width:0}.fnB0BW_kicker{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);letter-spacing:.08em;text-transform:uppercase;font-weight:600;line-height:18px}.fnB0BW_title{font-size:var(--fcg-font-section);margin:1px 0 0;font-weight:600;line-height:24px}.fnB0BW_toolbarAction,.fnB0BW_button{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);min-height:32px;color:var(--fcg-text-primary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);white-space:nowrap;transition:background var(--fcg-fast) var(--fcg-ease), border-color var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);justify-content:center;align-items:center;padding:5px 13px;line-height:18px;text-decoration:none;display:inline-flex}.fnB0BW_toolbarAction:hover,.fnB0BW_button:hover{background:var(--fcg-bg-hover)}.fnB0BW_button:disabled{cursor:not-allowed;opacity:.45}.fnB0BW_button:focus-visible,.fnB0BW_toolbarAction:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_buttonPrimary:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-btn-primary-fill) 30%, transparent)}.fnB0BW_buttonPrimary{background:var(--fcg-btn-primary-fill);color:var(--fcg-text-on-brand);border-color:#0000}.fnB0BW_buttonPrimary:hover:not(:disabled){background:var(--fcg-btn-primary-hover);border-color:#0000}.fnB0BW_buttonPrimary:hover{background:var(--fcg-btn-primary-hover)}.fnB0BW_buttonDanger{color:var(--fcg-danger)}.fnB0BW_loading,.fnB0BW_error{color:var(--fcg-text-tertiary);padding:18px 0}.fnB0BW_error{color:var(--fcg-danger)}.fnB0BW_syncNotice{border:1px solid color-mix(in srgb, var(--fcg-brand) 24%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-brand) 6%, var(--fcg-bg-layer-1));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:center;gap:10px;margin:14px 0 0;padding:10px 14px;line-height:18px;display:flex}.fnB0BW_syncNoticeOffline{border-color:color-mix(in srgb, var(--fcg-warn-label) 34%, var(--fcg-line));background:color-mix(in srgb, var(--fcg-warn-label) 7%, var(--fcg-bg-layer-1));color:var(--fcg-warn-label)}.fnB0BW_syncDot{border-radius:var(--fcg-radius-full);background:var(--fcg-brand);flex:none;width:7px;height:7px;animation:1.25s ease-in-out infinite fnB0BW_sync-pulse}.fnB0BW_syncNoticeOffline .fnB0BW_syncDot{background:var(--fcg-warn-label);animation:none}@keyframes fnB0BW_sync-pulse{50%{opacity:.38;transform:scale(.8)}}.fnB0BW_sections{gap:0;display:grid}.fnB0BW_pageTabs{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-tip);gap:4px;margin:0 0 14px;padding:3px;display:flex}.fnB0BW_pageTab{min-height:30px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);transition:background var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);background:0 0;border:0;border-radius:5px;flex:1;padding:5px 10px}.fnB0BW_pageTabActive{background:var(--fcg-bg-layer-2);color:var(--fcg-text-primary);box-shadow:var(--fcg-shadow-1);font-weight:600}.fnB0BW_modelCategoryActions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;margin-top:8px;display:grid}.fnB0BW_modelCategoryActions .fnB0BW_select{width:100%;min-width:0}.fnB0BW_routingCell:has(.fnB0BW_modelCategoryActions){align-items:start}.fnB0BW_routingCell:has(.fnB0BW_modelCategoryActions)>.fnB0BW_pageTabs{box-sizing:border-box;grid-column:2;width:100%;margin:0}.fnB0BW_routingCell:has(.fnB0BW_modelCategoryActions)>.fnB0BW_select{grid-area:2/1;width:100%}.fnB0BW_routingCell:has(.fnB0BW_modelCategoryActions)>.fnB0BW_modelCategoryActions{grid-area:2/2;margin-top:0}.fnB0BW_modelCategoryActions .fnB0BW_button{min-height:42px}.fnB0BW_community{min-width:0;padding:4px 0 17px}.fnB0BW_communityHeader{border-bottom:1px solid var(--fcg-line);justify-content:space-between;align-items:flex-start;gap:12px;padding:13px 0 14px;display:flex}.fnB0BW_communityIntro{max-width:520px;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin:5px 0 0;line-height:18px}.fnB0BW_communityFilterBar{justify-content:space-between;align-items:center;gap:12px;padding:12px 0 2px;display:flex}.fnB0BW_communityFilters{scrollbar-width:none;gap:6px;min-width:0;display:flex;overflow-x:auto}.fnB0BW_communityFilter{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);min-height:28px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);white-space:nowrap;padding:4px 10px}.fnB0BW_communityFilter:hover{background:var(--fcg-bg-hover)}.fnB0BW_communityFilterActive{border-color:var(--fcg-text-primary);background:var(--fcg-text-primary);color:var(--fcg-bg-layer-2)}.fnB0BW_communityInstalledEntry{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);min-height:30px;color:var(--fcg-text-primary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);white-space:nowrap;flex:none;padding:5px 10px;font-weight:600}.fnB0BW_communityInstalledEntry:hover{background:var(--fcg-bg-hover)}.fnB0BW_communityInstalledEntryActive{border-color:var(--fcg-text-primary);background:var(--fcg-text-primary);color:var(--fcg-bg-layer-2)}.fnB0BW_capabilityCommunity{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);margin-top:12px;padding:14px}.fnB0BW_capabilityCommunityHeader{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.fnB0BW_capabilityCommunityGrid{grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:9px;margin-top:11px;display:grid}.fnB0BW_marketplaceGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-top:13px;display:grid}.fnB0BW_capabilityCommunityCard{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:8px;min-width:0;padding:12px 14px;display:grid}.fnB0BW_capabilityCommunityCard strong{font-size:var(--fcg-font-body)}.fnB0BW_capabilityCommunityCard p{min-height:36px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);margin:0;line-height:18px}.fnB0BW_capabilityCommunityCard small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_capabilityCommunityCard .fnB0BW_button{width:100%;margin-top:2px}.fnB0BW_capabilityCommunityTop{justify-content:space-between;align-items:center;gap:8px;display:flex}.fnB0BW_capabilityCommunityKind{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);letter-spacing:.07em;font-weight:700}.fnB0BW_marketplaceIdentity{align-items:center;gap:6px;min-width:0;display:inline-flex}.fnB0BW_capabilityIcon{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);width:28px;height:28px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);object-fit:cover;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex;overflow:hidden}.fnB0BW_capabilityIconMcp{border-color:color-mix(in srgb, var(--fcg-brand) 35%, var(--fcg-line));background:color-mix(in srgb, var(--fcg-brand) 11%, var(--fcg-bg-layer-1));color:var(--fcg-brand)}.fnB0BW_marketplaceControls{grid-template-columns:minmax(0,1fr) minmax(140px,.4fr);gap:8px;margin-top:12px;display:grid}.fnB0BW_marketplaceLink{appearance:none;cursor:pointer;font:inherit;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);background:0 0;border:0;padding:0;text-decoration:none}.fnB0BW_marketplaceLink:hover{color:var(--fcg-text-primary);text-decoration:underline}.fnB0BW_marketplacePagination{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:center;align-items:center;gap:10px;margin-top:13px;display:flex}.fnB0BW_communitySearch{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:5px;margin-top:12px;display:grid}.fnB0BW_communityGrid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;padding-top:14px;display:grid}.fnB0BW_communityCard{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);cursor:pointer;min-width:0;transition:border-color var(--fcg-fast) var(--fcg-ease), transform var(--fcg-fast) var(--fcg-ease), box-shadow var(--fcg-fast) var(--fcg-ease);flex-direction:column;gap:9px;padding:12px;display:flex}.fnB0BW_communityCard:hover,.fnB0BW_communityCard:focus-visible{border-color:var(--fcg-line-strong);box-shadow:var(--fcg-shadow-2);outline:none;transform:translateY(-1px)}.fnB0BW_communityCardTop{align-items:center;gap:8px;min-width:0;display:flex}img.fnB0BW_communityPluginIcon{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);object-fit:cover;flex:none;width:34px;height:34px;display:block;overflow:hidden}.fnB0BW_communityIdentity{gap:1px;min-width:0;display:grid}.fnB0BW_communityIdentity strong{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-body);overflow:hidden}.fnB0BW_communityIdentity small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_communityCategory{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-left:auto;padding:2px 6px}.fnB0BW_communityDescription{min-height:54px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;line-height:18px;display:-webkit-box;overflow:hidden}.fnB0BW_communityFeatures,.fnB0BW_communityFeatureList{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_communityStats{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);gap:10px;display:flex}.fnB0BW_communityState{color:var(--fcg-success);font-size:var(--fcg-font-caption);font-weight:600}.fnB0BW_communityIncompatible{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);min-height:30px;color:var(--fcg-warn-label);font-size:var(--fcg-font-caption);padding:5px 8px;line-height:18px}.fnB0BW_communityInstall{width:100%;margin-top:auto}.fnB0BW_communityProgress{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_communityRestart{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 6%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding:10px 11px;line-height:18px;display:flex}.fnB0BW_communityFootnote{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-top:13px;line-height:18px;display:block}.fnB0BW_communityModalBackdrop{z-index:20;background:#0f172a61;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.fnB0BW_communityModal{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-2);width:min(760px,100%);min-width:0;max-height:min(820px,92vh);box-shadow:var(--fcg-shadow-pop);flex-direction:column;gap:12px;padding:18px;display:flex;overflow:hidden}.fnB0BW_communityModalHeader{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.fnB0BW_communityModalTitle{font-size:var(--fcg-font-section);margin:2px 0 0;line-height:25px}.fnB0BW_communityModalOwner{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_communityModalSummary{color:var(--fcg-text-secondary);font-size:var(--fcg-font-body);margin:0;line-height:20px}.fnB0BW_communityModalHeader img.fnB0BW_communityPluginIcon{width:40px;height:40px;margin-top:8px}.fnB0BW_communityModalStats{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);align-items:center;gap:12px;display:flex}.fnB0BW_communityModalStats a{color:var(--fcg-text-primary)}.fnB0BW_communityReadme{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);min-height:180px;overflow:auto}.fnB0BW_communityReadme pre{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--fcg-text-secondary);font:var(--fcg-font-caption)/19px var(--fcg-font-mono);margin:0;padding:13px}.fnB0BW_communityModalFooter{justify-content:flex-end;gap:8px;display:flex}.fnB0BW_section{border-bottom:1px solid var(--fcg-line-subtle);min-width:0;padding:24px 0}.fnB0BW_section:last-child{border-bottom:0}.fnB0BW_sectionHeader{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.fnB0BW_sectionName{font-size:var(--fcg-font-body-lg);letter-spacing:-.01em;font-weight:650;line-height:20px}.fnB0BW_sectionMeta{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_badge{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:3px 8px;line-height:18px}.fnB0BW_badgeLive{color:var(--fcg-success)}.fnB0BW_badgeDanger{color:var(--fcg-danger)}.fnB0BW_inspectStatus{background:0 0;align-self:start}.fnB0BW_diagnosticsDump{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-input);max-height:240px;color:var(--fcg-text-secondary);font-family:var(--fcg-font-mono);font-size:var(--fcg-font-caption);white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 0;padding:8px 10px;line-height:18px;overflow:auto}.fnB0BW_grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.fnB0BW_routingGrid{grid-template-columns:1fr;gap:8px}.fnB0BW_routingCell{grid-template-columns:minmax(150px,.7fr) minmax(0,1fr);align-items:center;gap:18px;min-height:0;padding:12px 14px;display:grid}.fnB0BW_routingCell.fnB0BW_selectCell{grid-template-rows:none;align-content:normal}.fnB0BW_routingCell .fnB0BW_select{min-height:42px}.fnB0BW_routingCopy{gap:2px;min-width:0;display:grid}.fnB0BW_routingCell:not(.fnB0BW_selectCell) .fnB0BW_routingCopy{grid-column:1/-1;grid-template-columns:minmax(150px,.7fr) auto minmax(0,1fr);align-items:center;gap:10px}.fnB0BW_routingCell:not(.fnB0BW_selectCell) .fnB0BW_cellHint{margin-top:0}.fnB0BW_infoCell{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);min-width:0;padding:14px}.fnB0BW_cellLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-bottom:4px;display:block}.fnB0BW_cellValue{text-overflow:ellipsis;white-space:nowrap;font-weight:500;display:block;overflow:hidden}.fnB0BW_cellHint{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-top:3px;display:block}.fnB0BW_feedbackRow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 18px;display:flex}.fnB0BW_feedbackRow>.fnB0BW_routingCopy{flex:220px}.fnB0BW_telegramLink{flex:none;gap:7px;text-decoration:none}.fnB0BW_telegramIcon{flex:none;display:block}.fnB0BW_selectCell{gap:5px;display:grid}.fnB0BW_select,.fnB0BW_input{box-sizing:border-box;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-input);width:100%;min-width:0;color:var(--fcg-text-primary);font:inherit;font-size:var(--fcg-font-body);transition:border-color var(--fcg-fast) var(--fcg-ease), box-shadow var(--fcg-fast) var(--fcg-ease);outline:none;padding:8px 11px}.fnB0BW_select:hover,.fnB0BW_input:hover{border-color:var(--fcg-line-strong)}.fnB0BW_select:focus,.fnB0BW_input:focus{border-color:var(--fcg-brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_accountList{flex-direction:column;gap:8px;display:flex}.fnB0BW_accountManager{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:10px;margin-top:10px;padding:14px;display:grid}.fnB0BW_extensionList{gap:6px;margin-top:14px;display:grid}.fnB0BW_extensionRow{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:11px 12px;display:flex}.fnB0BW_extensionRow span{gap:3px;min-width:0;display:grid}.fnB0BW_extensionRow small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_engineSelect{cursor:pointer;flex:none;width:216px}.fnB0BW_switch{-webkit-appearance:none;appearance:none;border:1px solid var(--fcg-line-strong);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-tip);cursor:pointer;width:36px;height:20px;transition:background var(--fcg-fast) var(--fcg-ease), border-color var(--fcg-fast) var(--fcg-ease);outline:none;flex:none;margin:0;position:relative}.fnB0BW_switch:before{content:\"\";corner-shape:round;background:var(--fcg-bg-layer-2);width:14px;height:14px;box-shadow:var(--fcg-shadow-1);transition:transform var(--fcg-fast) var(--fcg-ease);border-radius:50%;position:absolute;top:2px;left:2px}.fnB0BW_switch:checked{border-color:var(--fcg-brand);background:var(--fcg-brand)}.fnB0BW_switch:checked:before{transform:translate(16px)}.fnB0BW_switch:hover:not(:disabled){border-color:var(--fcg-brand)}.fnB0BW_switch:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent)}.fnB0BW_switch:disabled{cursor:not-allowed;opacity:.45}.fnB0BW_capabilityForm{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px;padding:14px;display:grid}.fnB0BW_capabilityForm label{min-width:0;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:5px;display:grid}.fnB0BW_capabilityFormHead{grid-column:1/-1;justify-content:space-between;align-items:center;gap:10px;display:flex}.fnB0BW_capabilityFull{grid-column:1/-1}.fnB0BW_skillList{gap:8px;margin-top:12px;display:grid}.fnB0BW_capabilityStats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.fnB0BW_capabilityStats div{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);gap:2px;padding:12px 14px;display:grid}.fnB0BW_capabilityStats strong{font-size:var(--fcg-font-section);line-height:21px}.fnB0BW_capabilityStats small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_advisorStandalone{padding-top:2px}.fnB0BW_engineeringSection .fnB0BW_capabilityStats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.fnB0BW_advisorStats{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.fnB0BW_advisorStats div{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);gap:3px;min-width:0;padding:12px 14px;display:grid}.fnB0BW_advisorStats strong{font-size:var(--fcg-font-body-lg);text-overflow:ellipsis;white-space:nowrap;line-height:20px;overflow:hidden}.fnB0BW_advisorStats small,.fnB0BW_advisorEvidence small{overflow-wrap:anywhere;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_advisorWarning{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 6%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin-top:10px;padding:9px 11px;line-height:18px}.fnB0BW_advisorEvidence{border-left:2px solid var(--fcg-text-primary);background:var(--fcg-bg-layer-1);gap:3px;margin-top:12px;padding:10px 11px;display:grid}.fnB0BW_advisorEvidence strong{font-size:var(--fcg-font-caption)}.fnB0BW_advisorEvidence span{color:var(--fcg-text-secondary);font:var(--fcg-font-caption)/16px var(--fcg-font-mono)}.fnB0BW_advisorModelField{min-width:0;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:5px;display:grid}.fnB0BW_advisorModelTrigger{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);width:100%;min-height:42px;color:var(--fcg-text-primary);cursor:pointer;font:inherit;text-align:left;gap:2px;padding:8px 9px;display:grid;overflow:hidden}.fnB0BW_advisorModelTrigger:hover{border-color:var(--fcg-line-strong)}.fnB0BW_advisorModelTrigger:disabled{cursor:not-allowed;opacity:.55}.fnB0BW_advisorModelTrigger small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_advisorPickerBackdrop{z-index:30;background:#0f172a61;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.fnB0BW_advisorPicker{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-2);width:min(680px,100%);height:min(720px,92vh);box-shadow:var(--fcg-shadow-pop);grid-template-rows:auto auto minmax(0,1fr) auto;gap:11px;padding:17px;display:grid;overflow:hidden}.fnB0BW_advisorPickerHeader{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.fnB0BW_advisorPickerHeader>div{gap:3px;display:grid}.fnB0BW_advisorPickerHeader strong{font-size:16px}.fnB0BW_advisorPickerHeader small,.fnB0BW_advisorManual>small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_advisorModelList{overscroll-behavior:contain;scrollbar-gutter:stable;gap:7px;min-height:0;padding-right:6px;display:grid;overflow:hidden auto}.fnB0BW_advisorModelOption{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);width:100%;color:var(--fcg-text-primary);cursor:pointer;font:inherit;text-align:left;justify-content:space-between;align-items:center;gap:14px;padding:11px 12px;display:flex}.fnB0BW_advisorModelOption:hover{border-color:var(--fcg-line-strong);background:var(--fcg-bg-layer-2)}.fnB0BW_advisorModelSelected{border-color:var(--fcg-brand);background:var(--fcg-bg-layer-2);box-shadow:inset 0 0 0 1px var(--fcg-brand)}.fnB0BW_advisorModelOption>span{gap:2px;min-width:0;display:grid}.fnB0BW_advisorModelOption small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_advisorModelOption code{max-width:45%;color:var(--fcg-text-secondary);font:var(--fcg-font-caption)/16px var(--fcg-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_advisorManual{border-top:1px solid var(--fcg-line);gap:6px;padding-top:10px;display:grid}.fnB0BW_advisorManual summary{cursor:pointer;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_advisorNotes{gap:8px;margin-top:12px;display:grid}.fnB0BW_advisorNote{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:7px;padding:14px;display:grid}.fnB0BW_advisorNoteHeader{justify-content:space-between;align-items:center;gap:8px;display:flex}.fnB0BW_advisorNoteHeader small,.fnB0BW_advisorNote footer{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_advisorNote p{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin:0;line-height:18px}.fnB0BW_advisorSeverity{border-radius:var(--fcg-radius-full);width:fit-content;font-size:var(--fcg-font-caption);letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;font-weight:700;display:inline-flex}.fnB0BW_advisorSeverityNit{background:var(--fcg-bg-hover);color:var(--fcg-text-secondary)}.fnB0BW_advisorSeverityConcern{background:color-mix(in srgb, var(--fcg-warn) 13%, var(--fcg-bg-layer-2));color:var(--fcg-warn-label)}.fnB0BW_advisorSeverityBlocker{background:color-mix(in srgb, var(--fcg-danger) 11%, var(--fcg-bg-layer-2));color:var(--fcg-danger)}.fnB0BW_memoryPanel{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:12px;margin-top:16px;padding:14px;display:grid}.fnB0BW_memoryHeader,.fnB0BW_memoryDetailHeader{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.fnB0BW_memoryHeader>div:first-child,.fnB0BW_memoryDetailHeader>div{gap:3px;min-width:0;display:grid}.fnB0BW_memoryHeader strong,.fnB0BW_memoryDetailHeader strong{font-size:var(--fcg-font-body)}.fnB0BW_memoryHeader small,.fnB0BW_memoryDetailHeader small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_memoryActions,.fnB0BW_memoryRecordActions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:6px;display:flex}.fnB0BW_memoryActions .fnB0BW_button,.fnB0BW_memoryRecordActions .fnB0BW_button{min-height:26px;font-size:var(--fcg-font-caption);padding:3px 8px}.fnB0BW_memorySearchRow{align-items:center;gap:7px;display:flex}.fnB0BW_memorySearchRow .fnB0BW_input{flex:auto}.fnB0BW_memorySearchRow .fnB0BW_button{min-height:30px;font-size:var(--fcg-font-caption);flex:none;padding:4px 10px}.fnB0BW_memoryRecall{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:6px;padding:9px 11px;display:grid}.fnB0BW_memoryRecallHead{justify-content:space-between;align-items:center;gap:12px;display:flex}.fnB0BW_memoryRecallHead span{gap:2px;min-width:0;display:grid}.fnB0BW_memoryRecallHead small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_memoryRecallHead .fnB0BW_button{min-height:24px;font-size:var(--fcg-font-caption);flex:none;padding:2px 8px}.fnB0BW_memoryRecallList{flex-wrap:wrap;gap:6px;display:flex}.fnB0BW_memoryRecallList span{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:3px 9px}.fnB0BW_memoryList{gap:7px;max-height:360px;padding-right:3px;display:grid;overflow:auto}.fnB0BW_memoryRecord{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 12px;display:grid}.fnB0BW_memoryRecordSelected{box-shadow:inset 0 0 0 1px var(--fcg-brand)}.fnB0BW_memoryRecordSelect{min-width:0;color:var(--fcg-text-primary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:0;display:flex}.fnB0BW_memoryRecordSelect:disabled{cursor:not-allowed;opacity:.6}.fnB0BW_memoryRecordSelect>span{gap:3px;min-width:0;display:grid}.fnB0BW_memoryRecordSelect strong,.fnB0BW_memoryRecordSelect small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_memoryRecordSelect strong{font-size:var(--fcg-font-caption)}.fnB0BW_memoryRecordSelect small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_memoryTrust{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);flex:none;padding:2px 6px;font-weight:600}.fnB0BW_memoryTrustReviewed{background:color-mix(in srgb, var(--fcg-success) 12%, var(--fcg-bg-layer-2));color:var(--fcg-success)}.fnB0BW_memoryTrustDraft{background:color-mix(in srgb, var(--fcg-warn) 13%, var(--fcg-bg-layer-2));color:var(--fcg-warn-label)}.fnB0BW_memoryDetail{border:1px solid color-mix(in srgb, var(--fcg-text-primary) 18%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:9px;padding:11px;display:grid}.fnB0BW_memoryDetail p{max-height:240px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:19px;overflow:auto}.fnB0BW_memoryTags{flex-wrap:wrap;gap:5px;display:flex}.fnB0BW_memoryTags span{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);padding:2px 6px}.fnB0BW_memoryTimeline{border-top:1px solid var(--fcg-line);gap:5px;padding-top:9px;display:grid}.fnB0BW_memoryTimeline strong{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_memoryTimeline button{color:var(--fcg-text-tertiary);cursor:pointer;font:var(--fcg-font-caption)/16px var(--fcg-font-mono);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;padding:0;overflow:hidden}.fnB0BW_memoryTimeline button:hover,.fnB0BW_memoryTimelineCurrent{color:var(--fcg-text-primary)!important}.fnB0BW_graphPanel{border:1px solid color-mix(in srgb, var(--fcg-brand) 24%, var(--fcg-line));border-radius:var(--fcg-radius-md);background:linear-gradient(135deg, color-mix(in srgb, var(--fcg-brand) 5%, var(--fcg-bg-layer-2)), var(--fcg-bg-layer-1));gap:10px;margin-top:14px;padding:12px;display:grid}.fnB0BW_graphState{border-left:2px solid var(--fcg-brand);background:var(--fcg-bg-layer-2);gap:3px;padding:10px 11px;display:grid}.fnB0BW_graphState strong{font-size:var(--fcg-font-caption)}.fnB0BW_graphState small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_graphInstallList{gap:8px;display:grid}.fnB0BW_graphInstallRow{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.fnB0BW_graphInstallRow>div{flex:1;gap:4px;min-width:0;display:grid}.fnB0BW_graphInstallRow strong{font-size:var(--fcg-font-caption)}.fnB0BW_graphInstallRow small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_graphInstallRow .fnB0BW_input{margin-top:4px}.fnB0BW_verificationGrid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:7px;display:grid}.fnB0BW_verificationGrid article{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:4px;min-width:0;padding:10px 12px;display:grid}.fnB0BW_verificationGrid strong{font-size:var(--fcg-font-caption);text-transform:uppercase}.fnB0BW_verificationGrid small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_verificationGrid pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:120px;color:var(--fcg-text-secondary);font:var(--fcg-font-caption)/19px var(--fcg-font-mono);margin:0;overflow:auto}.fnB0BW_mcpTemplateBar{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);align-items:center;gap:7px;margin-top:12px;display:flex}.fnB0BW_templateButton{border:1px dashed var(--fcg-line-strong);border-radius:var(--fcg-radius-sm);min-height:26px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;align-items:center;gap:4px;padding:3px 8px;display:inline-flex}.fnB0BW_templateButton:hover{border-style:solid;border-color:var(--fcg-text-primary);color:var(--fcg-text-primary)}.fnB0BW_mcpPresetHeading{justify-content:space-between;align-items:baseline;gap:10px;margin-top:14px;display:flex}.fnB0BW_mcpPresetHeading strong{font-size:var(--fcg-font-caption)}.fnB0BW_mcpPresetHeading small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_mcpPresetGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.fnB0BW_mcpPresetCard{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:linear-gradient(135deg, var(--fcg-bg-layer-2), var(--fcg-bg-layer-1));min-width:0;color:var(--fcg-text-primary);cursor:pointer;font:inherit;text-align:left;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px;display:grid}.fnB0BW_mcpPresetCard:hover{border-color:var(--fcg-line-strong);box-shadow:var(--fcg-shadow-1);transform:translateY(-1px)}.fnB0BW_mcpPresetCard:disabled{cursor:not-allowed;opacity:.55;transform:none}.fnB0BW_mcpPresetCard>span:not(.fnB0BW_mcpPresetIcon){gap:2px;min-width:0;display:grid}.fnB0BW_mcpPresetCard strong{font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_mcpPresetCard small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.fnB0BW_mcpPresetCard b{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);white-space:nowrap;font-weight:500}.fnB0BW_mcpPresetIcon,.fnB0BW_mcpServerIcon{border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-brand) 12%, var(--fcg-bg-layer-2));width:30px;height:30px;color:var(--fcg-brand);flex:none;place-items:center;display:grid}.fnB0BW_mcpServerIcon{width:32px;height:32px}.fnB0BW_mcpMarketplaceGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.fnB0BW_mcpMarketplaceCard{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:linear-gradient(135deg, var(--fcg-bg-layer-2), var(--fcg-bg-layer-1));grid-template-columns:auto minmax(0,1fr);gap:9px;min-width:0;padding:10px;display:grid}.fnB0BW_mcpMarketplaceIcon{object-fit:cover;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);flex:none;width:30px;height:30px}.fnB0BW_mcpMarketplaceCopy{gap:3px;min-width:0;display:grid}.fnB0BW_mcpMarketplaceCopy>div{justify-content:space-between;align-items:center;gap:6px;display:flex}.fnB0BW_mcpMarketplaceCopy strong,.fnB0BW_mcpMarketplaceCopy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_mcpMarketplaceCopy strong{font-size:var(--fcg-font-caption)}.fnB0BW_mcpMarketplaceCopy span{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);flex:none;padding:2px 6px}.fnB0BW_mcpMarketplaceCopy small,.fnB0BW_mcpMarketplaceCopy em{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);font-style:normal;line-height:18px}.fnB0BW_mcpMarketplaceActions{grid-column:1/-1;justify-content:space-between;align-items:center;gap:8px;display:flex}.fnB0BW_mcpMarketplaceActions a{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-decoration:none}.fnB0BW_mcpMarketplaceActions a:hover{color:var(--fcg-text-primary);text-decoration:underline}.fnB0BW_mcpMarketplaceActions .fnB0BW_button{min-height:27px;font-size:var(--fcg-font-caption);padding:3px 8px}.fnB0BW_mcpJsonPanel{border:1px solid color-mix(in srgb, var(--fcg-brand) 32%, var(--fcg-line));border-radius:var(--fcg-radius-md);background:color-mix(in srgb, var(--fcg-brand) 4%, var(--fcg-bg-layer-1));gap:9px;margin-top:12px;padding:11px;display:grid}.fnB0BW_mcpJsonPanel .fnB0BW_capabilityFormHead{grid-template-columns:1fr auto;align-items:start;gap:4px 10px;display:grid}.fnB0BW_mcpJsonPanel .fnB0BW_capabilityFormHead small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);grid-column:1/-1;line-height:18px}.fnB0BW_mcpJsonInput{box-sizing:border-box;resize:vertical;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);width:100%;min-height:170px;color:var(--fcg-text-primary);font:var(--fcg-font-caption)/18px var(--fcg-font-mono);outline:none;padding:10px}.fnB0BW_mcpJsonInput:focus{border-color:var(--fcg-brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_mcpServerList{gap:8px;margin-top:12px;display:grid}.fnB0BW_mcpServerCard{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:12px 14px;display:flex}.fnB0BW_mcpServerMain{gap:4px;min-width:0;display:grid}.fnB0BW_mcpServerMain>small{color:var(--fcg-text-tertiary);font:var(--fcg-font-caption)/16px var(--fcg-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_mcpServerTitle{align-items:center;gap:7px;min-width:0;display:flex}.fnB0BW_mcpServerTitle strong{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-body);overflow:hidden}.fnB0BW_mcpServerActions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:7px;display:flex}.fnB0BW_inlineSwitch{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:center;gap:4px;display:inline-flex}.fnB0BW_inlineSwitch input{width:14px;height:14px;accent-color:var(--fcg-brand);cursor:pointer;margin:0}.fnB0BW_emptyCapability{border:1px dashed var(--fcg-line-strong);border-radius:var(--fcg-radius-md);color:var(--fcg-text-secondary);text-align:center;gap:4px;margin-top:12px;padding:18px 14px;display:grid}.fnB0BW_emptyCapability small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_skillPanel{gap:8px;margin-top:14px;padding-top:1px;display:grid}.fnB0BW_skillPanelHeader{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.fnB0BW_skillPanelHeader small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_skillCard{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);border:1px solid #0000;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.fnB0BW_skillCard:hover{border-color:var(--fcg-line);background:var(--fcg-bg-layer-2)}.fnB0BW_skillCardBody{min-width:0;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;flex:1;gap:4px;padding:0;display:grid}.fnB0BW_skillCardBody:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_skillCardControl{flex:none;justify-items:end;gap:2px;padding-top:2px;display:grid}.fnB0BW_skillCardToggle{color:var(--fcg-text-tertiary);cursor:pointer;font-size:var(--fcg-font-caption);white-space:nowrap;align-items:center;gap:6px;display:flex}.fnB0BW_skillCardToggle input{margin:0}.fnB0BW_skillCardClear{color:var(--fcg-brand);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;padding:0}.fnB0BW_skillCardClear:disabled{opacity:.5;cursor:default}.fnB0BW_skillDetailControl{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:10px;padding:9px 12px;display:flex}.fnB0BW_skillDetailControl>small{flex-basis:100%}.fnB0BW_skillForward{margin-top:12px}.fnB0BW_skillForwardHead{gap:2px;margin-bottom:6px;display:grid}.fnB0BW_skillForwardHead strong{font-size:var(--fcg-font-caption)}.fnB0BW_skillForwardHead small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_skillCardHead{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.fnB0BW_skillCard strong{font-size:var(--fcg-font-caption)}.fnB0BW_skillCard p{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);margin:0;line-height:18px}.fnB0BW_skillCard small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_skillFileBar{flex-wrap:wrap;gap:6px;margin:12px 0 0;display:flex}.fnB0BW_skillFileChip{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);max-width:100%;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;padding:4px 9px;overflow:hidden}.fnB0BW_skillFileChip:hover{background:var(--fcg-bg-hover);color:var(--fcg-text-primary)}.fnB0BW_skillFileChipActive{border-color:var(--fcg-brand);color:var(--fcg-text-primary)}.fnB0BW_skillFileChip:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_workbuddyHeaderActions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.fnB0BW_accountManagerButton{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);min-height:28px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);white-space:nowrap;padding:4px 9px}.fnB0BW_accountManagerButton:hover{background:var(--fcg-bg-hover);color:var(--fcg-text-primary)}.fnB0BW_accountRow{justify-content:space-between;align-items:center;gap:14px;min-width:0;display:flex}.fnB0BW_accountIdentity{min-width:0}.fnB0BW_accountIdentityWithAvatar{align-items:center;gap:10px;min-width:0;display:flex}.fnB0BW_accountText{min-width:0}.fnB0BW_accountAvatar{border-radius:var(--fcg-radius-md);border:1px solid #0000;flex:none;place-items:center;width:42px;height:42px;display:inline-grid;overflow:hidden;box-shadow:0 2px 8px #0f172a1a}.fnB0BW_accountAvatarRemote{border-color:var(--fcg-line);background:#fff}.fnB0BW_accountAvatarRemote img{object-fit:cover;width:100%;height:100%}.fnB0BW_accountAvatarMonogram{font-size:var(--fcg-font-section);letter-spacing:-.04em;font-weight:800;line-height:1}.fnB0BW_accountAvatarQq{color:#fff;background:linear-gradient(145deg,#38bdf8,#1263bd);border-color:#1688d8}.fnB0BW_accountAvatarGoogle{background:linear-gradient(145deg, var(--fcg-bg-layer-2), var(--fcg-bg-layer-1));color:#4285f4;text-shadow:1px 0 #ea4335,0 1px #34a853,-1px 0 #fbbc05;border-color:#d8dce5}.fnB0BW_accountAvatarGeneric{border-color:var(--fcg-line);background:var(--fcg-bg-layer-1);color:var(--fcg-text-tertiary)}.fnB0BW_accountAvatarGeneric svg{fill:currentColor;width:22px;height:22px}.fnB0BW_accountName{text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.fnB0BW_accountEmail{text-overflow:ellipsis;white-space:nowrap;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-top:3px;display:block;overflow:hidden}.fnB0BW_accountActions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:9px;display:flex}.fnB0BW_clineUsage{gap:7px;margin-top:4px;display:grid}.fnB0BW_clineUsageHead{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_clineUsageRow{grid-template-columns:84px minmax(0,1fr) 44px;align-items:center;gap:10px;display:grid}.fnB0BW_clineUsageLabel{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-caption);overflow:hidden}.fnB0BW_clineUsageValue{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;text-align:right}.fnB0BW_clineUsageMeter{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);height:4px;overflow:hidden}.fnB0BW_clineUsageFill{border-radius:inherit;background:var(--fcg-brand);height:100%;transition:width .3s}.fnB0BW_clineUsageFillHigh{background:var(--fcg-warn)}.fnB0BW_balance{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:var(--fcg-success);font-size:var(--fcg-font-body-lg);font-variant-numeric:tabular-nums;align-items:baseline;gap:7px;padding:5px 11px;font-weight:600;display:inline-flex}.fnB0BW_balanceLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);font-weight:500}.fnB0BW_authForm{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.fnB0BW_authPanel{box-sizing:border-box;border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-1);width:100%;box-shadow:var(--fcg-shadow-2);gap:16px;padding:26px 24px 22px;display:grid}.fnB0BW_authLayout{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:20px;margin-top:6px;display:grid}.fnB0BW_authHead{text-align:center;justify-items:center;gap:6px;display:grid}.fnB0BW_authTitle{color:var(--fcg-text-primary);letter-spacing:-.01em;font-size:17px;font-weight:650;line-height:24px}.fnB0BW_authSubtitle{max-width:300px;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_authTabs{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-tip);grid-template-columns:1fr 1fr;gap:2px;padding:3px;display:grid}.fnB0BW_authTab{min-height:32px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);transition:background var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);background:0 0;border:0;border-radius:8px}.fnB0BW_authTab:hover{color:var(--fcg-text-primary)}.fnB0BW_authTab:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_authTabActive{background:var(--fcg-bg-layer-1);box-shadow:var(--fcg-shadow-1);color:var(--fcg-text-primary);font-weight:600}.fnB0BW_authStack{gap:11px;display:grid}.fnB0BW_authPanel .fnB0BW_input{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-tip);min-height:42px;font-size:var(--fcg-font-body);border-color:#0000;padding:10px 13px}.fnB0BW_authPanel .fnB0BW_input::placeholder{color:var(--fcg-text-tertiary)}.fnB0BW_authPanel .fnB0BW_input:hover:not(:focus){border-color:var(--fcg-line)}.fnB0BW_authPanel .fnB0BW_input:focus{border-color:var(--fcg-brand);background:var(--fcg-bg-layer-1);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_authPanel .fnB0BW_input:-webkit-autofill,.fnB0BW_authPanel .fnB0BW_input:-webkit-autofill:hover,.fnB0BW_authPanel .fnB0BW_input:-webkit-autofill:focus{-webkit-text-fill-color:var(--fcg-text-primary);box-shadow:0 0 0 60px var(--fcg-bg-tip) inset}.fnB0BW_authCodeRow{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.fnB0BW_authCodeSend{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);min-height:42px;color:var(--fcg-text-primary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;white-space:nowrap;transition:background var(--fcg-fast) var(--fcg-ease), border-color var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);padding:0 14px}.fnB0BW_authCodeSend:hover:not(:disabled){border-color:var(--fcg-line-strong);background:var(--fcg-bg-hover)}.fnB0BW_authCodeSend:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_authCodeSend:disabled{cursor:not-allowed;color:var(--fcg-text-tertiary)}.fnB0BW_authSubmit{border-radius:var(--fcg-radius-md);background:var(--fcg-brand);width:100%;min-height:42px;color:var(--fcg-text-on-brand-fixed);cursor:pointer;font:inherit;font-size:var(--fcg-font-body);letter-spacing:.01em;transition:background var(--fcg-fast) var(--fcg-ease), box-shadow var(--fcg-fast) var(--fcg-ease), transform var(--fcg-fast) var(--fcg-ease);border:1px solid #0000;font-weight:600}.fnB0BW_authSubmit:hover:not(:disabled){background:var(--fcg-brand-strong)}.fnB0BW_authSubmit:active:not(:disabled){transform:translateY(1px)}.fnB0BW_authSubmit:disabled{cursor:not-allowed;opacity:.5}.fnB0BW_authSubmit:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 30%, transparent);outline:none}.fnB0BW_authNote,.fnB0BW_authStep{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-align:center;line-height:18px}.fnB0BW_authStep{color:var(--fcg-text-secondary)}.fnB0BW_authSocialRow{grid-template-columns:1fr 1fr;gap:9px;display:grid}.fnB0BW_authSocialButton{box-sizing:border-box;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);min-height:42px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-body);transition:border-color var(--fcg-fast) var(--fcg-ease), background var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);justify-content:center;align-items:center;gap:8px;font-weight:550;display:inline-flex}.fnB0BW_authSocialButton svg{flex:none;width:16px;height:16px}.fnB0BW_authSocialButton:hover:not(:disabled){border-color:var(--fcg-line-strong);background:var(--fcg-bg-hover);color:var(--fcg-text-primary)}.fnB0BW_authSocialButton:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_authSocialButton:disabled{cursor:progress;opacity:.6}.fnB0BW_authDivider{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);align-items:center;gap:10px;display:flex}.fnB0BW_authDivider:before,.fnB0BW_authDivider:after{background:var(--fcg-line);content:\"\";flex:1;height:1px}.fnB0BW_authNotice{border:1px solid color-mix(in srgb, var(--fcg-brand) 26%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-brand) 6%, var(--fcg-bg-layer-1));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-align:center;padding:9px 11px;line-height:18px}.fnB0BW_authFull{grid-column:1/-1}.fnB0BW_remember{color:var(--fcg-text-secondary);cursor:pointer;font-size:var(--fcg-font-caption);align-items:center;gap:8px;display:flex}.fnB0BW_remember input{width:15px;height:15px;accent-color:var(--fcg-brand);cursor:pointer;margin:0}.fnB0BW_rememberRow{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.fnB0BW_passwordField{min-width:0;display:flex;position:relative}.fnB0BW_authPanel .fnB0BW_passwordField .fnB0BW_input{width:100%;padding-right:64px}.fnB0BW_passwordToggle{border-radius:var(--fcg-radius-sm);color:var(--fcg-text-tertiary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;padding:4px 6px;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.fnB0BW_passwordToggle:hover{color:var(--fcg-text-primary)}.fnB0BW_paymentBar{border-bottom:1px solid var(--fcg-line-subtle);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px 16px;margin-bottom:18px;padding-bottom:16px;display:grid}.fnB0BW_paymentBarDetail{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;grid-column:1/-1;line-height:17px}.fnB0BW_paymentPicker{justify-items:end;gap:6px;min-width:0;display:grid}.fnB0BW_paymentHeading{font-size:var(--fcg-font-title);letter-spacing:-.01em;color:var(--fcg-text-primary);margin-bottom:3px;font-weight:600;display:block}.fnB0BW_paymentMethod{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:center;gap:8px;display:inline-flex}.fnB0BW_paymentMethod>span{white-space:nowrap;flex:none}.fnB0BW_paymentMethod .fnB0BW_select{width:auto;min-width:176px;max-width:100%}.fnB0BW_alert{border:1px solid color-mix(in srgb, var(--fcg-danger) 28%, transparent);border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-danger) 7%, var(--fcg-bg-layer-2));color:var(--fcg-danger);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin-bottom:10px;padding:9px 11px;line-height:18px}.fnB0BW_alert button{color:inherit;font-size:var(--fcg-font-caption);cursor:pointer;white-space:nowrap;background:0 0;border:0;margin-left:10px;padding:0;text-decoration:underline}.fnB0BW_pending{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 6%, var(--fcg-bg-layer-2));gap:8px;margin-bottom:12px;padding:10px 11px;display:grid}.fnB0BW_pendingTitle{font-weight:600}.fnB0BW_pendingHint{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_pendingRow{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:space-between;align-items:center;gap:8px;display:flex}.fnB0BW_pendingText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.fnB0BW_plans,.fnB0BW_planShared,.fnB0BW_payDialog{--pixel-ink:color-mix(in srgb, var(--fcg-brand) 58%, var(--fcg-text-primary));--pixel-face:var(--fcg-bg-layer-1);--pixel-recess:color-mix(in srgb, var(--fcg-text-primary) 4%, var(--fcg-bg-layer-1));--pixel-recess-edge:color-mix(in srgb, var(--pixel-ink) 26%, transparent);--pixel-recess-rule:color-mix(in srgb, var(--pixel-ink) 22%, transparent);--pixel-rule:color-mix(in srgb, var(--pixel-ink) 18%, transparent);--pixel-notch:polygon(0 8px, 4px 8px, 4px 4px, 8px 4px, 8px 0, calc(100% - 8px) 0, calc(100% - 8px) 4px, calc(100% - 4px) 4px, calc(100% - 4px) 8px, 100% 8px, 100% calc(100% - 8px), calc(100% - 4px) calc(100% - 8px), calc(100% - 4px) calc(100% - 4px), calc(100% - 8px) calc(100% - 4px), calc(100% - 8px) 100%, 8px 100%, 8px calc(100% - 4px), 4px calc(100% - 4px), 4px calc(100% - 8px), 0 calc(100% - 8px));--pixel-chip:polygon(0 3px, 3px 3px, 3px 0, calc(100% - 3px) 0, calc(100% - 3px) 3px, 100% 3px, 100% calc(100% - 3px), calc(100% - 3px) calc(100% - 3px), calc(100% - 3px) 100%, 3px 100%, 3px calc(100% - 3px), 0 calc(100% - 3px))}.fnB0BW_plans{grid-template-columns:repeat(auto-fit,minmax(236px,1fr));gap:16px;padding:0 6px 6px 0;display:grid}.fnB0BW_planShell{display:flex;position:relative}.fnB0BW_planShell:before{background:var(--pixel-ink);clip-path:var(--pixel-notch);content:\"\";transition:transform var(--fcg-fast) var(--fcg-ease);position:absolute;inset:0;transform:translate(6px,6px)}.fnB0BW_planShell:hover:before{transform:translate(8px,8px)}.fnB0BW_plan{border:2px solid var(--pixel-ink);background:var(--pixel-face);min-width:0;clip-path:var(--pixel-notch);transition:transform var(--fcg-fast) var(--fcg-ease);flex-direction:column;flex:1;gap:11px;padding:16px 16px 14px;display:flex;position:relative}.fnB0BW_plan:hover{transform:translate(-2px,-2px)}.fnB0BW_planTop{border-bottom:2px solid var(--pixel-rule);align-items:center;gap:8px;padding-bottom:9px;display:flex}.fnB0BW_planDot{border:1px solid var(--pixel-ink);background:var(--fcg-brand);width:9px;height:9px;box-shadow:1px 1px 0 0 var(--pixel-ink);flex:none}.fnB0BW_planName{min-width:0;color:var(--fcg-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-body-lg);letter-spacing:-.012em;flex:1;font-weight:800;overflow:hidden}.fnB0BW_planTag{border:1px solid var(--pixel-ink);background:var(--fcg-brand);color:var(--fcg-text-on-brand-fixed);font-family:var(--fcg-font-mono);letter-spacing:.06em;white-space:nowrap;clip-path:var(--pixel-chip);flex:none;padding:2px 8px;font-size:10px;font-weight:700}.fnB0BW_planSave{border:1px solid color-mix(in srgb, var(--fcg-success) 52%, var(--pixel-ink));background:color-mix(in srgb, var(--fcg-success) 13%, transparent);color:var(--fcg-success);letter-spacing:.04em;white-space:nowrap;clip-path:var(--pixel-chip);flex:none;padding:2px 7px;font-size:10px;font-weight:700}.fnB0BW_planFeatured .fnB0BW_planRecess{background:color-mix(in srgb, var(--fcg-brand) 8%, var(--pixel-recess))}.fnB0BW_planShared{border:2px solid var(--pixel-ink);background:var(--pixel-recess);box-shadow:inset 2px 2px 0 0 var(--pixel-recess-edge);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);flex-wrap:wrap;align-items:center;gap:14px;margin-top:16px;padding:10px 12px;display:flex}.fnB0BW_planShared small{color:var(--fcg-text-tertiary);font-family:var(--fcg-font-mono);letter-spacing:.1em;font-size:10px;font-weight:700}.fnB0BW_planShared span{align-items:center;gap:6px;display:inline-flex}.fnB0BW_planRecess{border:2px solid var(--pixel-ink);background:var(--pixel-recess);box-shadow:inset 2px 2px 0 0 var(--pixel-recess-edge);align-items:stretch;padding:10px 12px;display:flex}.fnB0BW_planCreditBlock{flex:auto;gap:3px;min-width:0;display:grid}.fnB0BW_planPriceLabel{color:var(--fcg-brand);letter-spacing:.08em;align-items:center;gap:5px;font-size:10px;font-weight:700;display:flex}.fnB0BW_planRecessCode{font-family:var(--fcg-font-mono);letter-spacing:.14em}.fnB0BW_planPriceRow{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.fnB0BW_planPrice{color:var(--fcg-text-primary);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:800;line-height:1}.fnB0BW_planOriginalPrice{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-decoration:line-through}.fnB0BW_planPayBlock{border-left:2px solid var(--pixel-recess-rule);align-content:center;justify-items:end;gap:3px;margin-left:12px;padding-left:12px;display:grid}.fnB0BW_planPayLabel{color:var(--fcg-text-tertiary);font-size:10px;font-weight:600}.fnB0BW_planPayable{color:var(--fcg-brand);font-size:var(--fcg-font-title);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:800}.fnB0BW_features{border-top:2px solid var(--pixel-rule);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:6px;padding-top:10px;line-height:17px;display:grid}.fnB0BW_features>span{grid-template-columns:12px minmax(0,1fr);align-items:start;gap:8px;display:grid}.fnB0BW_planCheck{border:1px solid var(--pixel-ink);background:var(--fcg-brand);width:7px;height:7px;margin-top:5px;display:block}.fnB0BW_planFeatureText{min-width:0}.fnB0BW_planButton{border:2px solid var(--pixel-ink);background:var(--fcg-brand);width:100%;min-height:40px;color:var(--fcg-text-on-brand-fixed);letter-spacing:.04em;box-shadow:inset 0 2px 0 0 #ffffff61, 0 3px 0 0 var(--pixel-ink);transition:background var(--fcg-fast) var(--fcg-ease), box-shadow 60ms linear, transform 60ms linear;border-radius:0;margin-top:auto;font-weight:700}.fnB0BW_planButton:hover:not(:disabled){background:var(--fcg-brand-strong);box-shadow:inset 0 2px 0 0 #ffffff7a, 0 4px 0 0 var(--pixel-ink)}.fnB0BW_planButton:active:not(:disabled){box-shadow:inset 0 1px 0 0 #0000002e, 0 0 0 0 var(--pixel-ink);transform:translateY(3px)}.fnB0BW_planBlurb{gap:3px;display:grid}.fnB0BW_planPerk{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);line-height:17px}.fnB0BW_planLead{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:17px}.fnB0BW_planFootnote{color:var(--fcg-text-tertiary);align-items:center;gap:6px;font-size:11px;display:flex}.fnB0BW_planDotOk{background:var(--fcg-success);flex:none;width:6px;height:6px}.fnB0BW_planBrandMark{color:var(--fcg-brand);font-family:var(--fcg-font-mono);letter-spacing:.05em;margin-left:auto;font-size:10px;font-weight:700}.fnB0BW_pricingSection{border-top:1px solid var(--fcg-line);gap:10px;margin-top:20px;padding-top:18px;display:grid}.fnB0BW_pricingHeader{justify-content:space-between;align-items:end;gap:14px;display:flex}.fnB0BW_pricingHeader>div{gap:3px;display:grid}.fnB0BW_pricingSearch{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);width:min(250px,100%);min-height:32px;color:var(--fcg-text-primary);font:inherit;font-size:var(--fcg-font-caption);outline:none;padding:6px 10px}.fnB0BW_pricingSearch:focus{border-color:var(--fcg-brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_pricingNotice{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 7%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:8px 10px}.fnB0BW_pricingTableWrap{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);width:100%;overflow:auto hidden}.fnB0BW_pricingTable{table-layout:fixed;border-collapse:collapse;width:100%;min-width:660px;font-size:var(--fcg-font-caption)}.fnB0BW_pricingTable th{border-bottom:1px solid var(--fcg-line-subtle);background:var(--fcg-bg-layer-1);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);letter-spacing:.02em;text-align:left;white-space:nowrap;padding:10px 14px;font-weight:600}.fnB0BW_pricingTable td{border-bottom:1px solid var(--fcg-line-subtle);color:var(--fcg-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;padding:10px 12px}.fnB0BW_pricingTable tbody tr:last-child td{border-bottom:0}.fnB0BW_pricingTable tbody tr:hover{background:var(--fcg-bg-hover)}.fnB0BW_pricingFreeSection{border-top:1px dashed var(--fcg-line-subtle);gap:8px;margin-top:6px;padding-top:14px;display:grid}.fnB0BW_pricingFreeHeader{gap:2px;display:grid}.fnB0BW_pricingFreeHeader strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-body);font-weight:650}.fnB0BW_paymentMethods{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;margin-top:0;display:flex}.fnB0BW_paymentMethodChip{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);letter-spacing:.01em;white-space:nowrap;padding:2px 9px;font-weight:550}@media (width<=520px){.fnB0BW_paymentBar{grid-template-columns:minmax(0,1fr)}.fnB0BW_paymentPicker{justify-items:stretch}.fnB0BW_paymentMethod .fnB0BW_select{width:100%}.fnB0BW_paymentMethods{justify-content:flex-start}}.fnB0BW_pricingTable th:first-child,.fnB0BW_pricingTable td:first-child{width:34%}.fnB0BW_pricingTable td:first-child{white-space:normal}.fnB0BW_pricingSection .fnB0BW_pricingTable th:first-child,.fnB0BW_pricingSection .fnB0BW_pricingTable td:first-child{width:26%}.fnB0BW_pricingSection .fnB0BW_pricingTable th:nth-child(2),.fnB0BW_pricingSection .fnB0BW_pricingTable td:nth-child(2){width:22%}.fnB0BW_pricingSection .fnB0BW_pricingTable td.fnB0BW_pricingGroup{white-space:normal}.fnB0BW_pricingTable strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption);font-weight:600;display:block}.fnB0BW_pricingTable code{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;display:block;overflow:hidden}.fnB0BW_pricingTable small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-top:3px;display:block}.fnB0BW_tokenHero{border-bottom:1px solid var(--fcg-line);justify-content:space-between;align-items:flex-end;gap:16px;margin:-2px 0 14px;padding:10px 0 14px;display:flex}.fnB0BW_tokenEyebrow{color:var(--fcg-brand);font-weight:650;font-size:var(--fcg-font-caption);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:8px;display:flex}.fnB0BW_tokenPulse{corner-shape:round;background:var(--fcg-success);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-success) 18%, transparent);border-radius:50%}.fnB0BW_tokenTitle{font-size:var(--fcg-font-display);letter-spacing:-.03em;margin:3px 0 0;line-height:31px}.fnB0BW_tokenSourceTabs{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);gap:2px;padding:3px;display:inline-flex}.fnB0BW_tokenSourceTabs button{min-height:30px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;border-radius:5px;padding:5px 14px}.fnB0BW_tokenSourceTabs button:hover{background:var(--fcg-bg-hover)}.fnB0BW_tokenSourceTabs .fnB0BW_tokenSourceActive{background:var(--fcg-bg-layer-2);color:var(--fcg-text-primary);box-shadow:var(--fcg-shadow-1);font-weight:600}.fnB0BW_tokenBalRow{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);align-items:center;gap:10px;margin-top:14px;padding:12px 16px;display:flex}.fnB0BW_tokenBalDot{corner-shape:round;background:var(--fcg-success);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-success) 18%, transparent);border-radius:50%;flex:none}.fnB0BW_tokenBalDot[data-level=low]{background:var(--fcg-warn);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-warn) 18%, transparent)}.fnB0BW_tokenBalDot[data-level=danger]{background:var(--fcg-danger);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-danger) 18%, transparent)}.fnB0BW_tokenBalAmount{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:20px;font-weight:700}.fnB0BW_tokenBalBadge{border-radius:var(--fcg-radius-full);background:color-mix(in srgb, var(--fcg-success) 12%, transparent);color:var(--fcg-success);font-size:var(--fcg-font-caption);white-space:nowrap;padding:2px 9px;line-height:18px}.fnB0BW_tokenBalBadge[data-level=low]{background:color-mix(in srgb, var(--fcg-warn) 13%, transparent);color:var(--fcg-warn-label)}.fnB0BW_tokenBalBadge[data-level=danger]{background:color-mix(in srgb, var(--fcg-danger) 12%, transparent);color:var(--fcg-danger)}.fnB0BW_tokenBalUpdated{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_tokenBalHint{min-width:0;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.fnB0BW_tokenBalRefresh{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);min-height:28px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);transition:color var(--fcg-fast) var(--fcg-ease), border-color var(--fcg-fast) var(--fcg-ease);background:0 0;margin-left:auto;padding:4px 12px}.fnB0BW_tokenBalRefresh:hover{border-color:var(--fcg-line-strong);color:var(--fcg-text-primary)}.fnB0BW_tokenSessionRow{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding:10px 16px;display:flex}.fnB0BW_tokenSessionRow strong{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWaste{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);flex-direction:column;gap:10px;margin-top:10px;padding:14px 16px;display:flex}.fnB0BW_tokenCacheWasteHead{align-items:baseline;gap:8px;display:flex}.fnB0BW_tokenCacheWasteHead strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-body)}.fnB0BW_tokenCacheWasteClean{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_tokenCacheWasteStats{flex-wrap:wrap;gap:8px;display:flex}.fnB0BW_tokenCacheWasteStat{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);flex-direction:column;flex:120px;gap:2px;padding:8px 10px;display:flex}.fnB0BW_tokenCacheWasteStat span{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_tokenCacheWasteStat b{color:var(--fcg-text-primary);font-size:var(--fcg-font-body);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWasteStat[data-tone=warn] b{color:var(--fcg-warn-label)}.fnB0BW_tokenCacheWasteCauses{flex-wrap:wrap;gap:6px;display:flex}.fnB0BW_tokenCacheWasteCause{border-radius:var(--fcg-radius-full);font-size:var(--fcg-font-caption);background:color-mix(in srgb, var(--fcg-warn) 10%, transparent);color:var(--fcg-text-secondary);padding:2px 9px;line-height:18px}.fnB0BW_tokenCacheWasteCause[data-cause=idle-gap]{background:color-mix(in srgb, var(--fcg-warn) 10%, transparent)}.fnB0BW_tokenCacheWasteCause[data-cause=model-changed]{background:color-mix(in srgb, var(--fcg-danger) 10%, transparent)}.fnB0BW_tokenCacheWasteCause[data-cause=prefix-changed]{background:color-mix(in srgb, var(--fcg-text-tertiary) 12%, transparent)}.fnB0BW_tokenCacheWasteCause b{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWasteWorst{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.fnB0BW_tokenCacheWasteWorst li{font-size:var(--fcg-font-caption);color:var(--fcg-text-secondary);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:baseline;gap:10px;display:grid}.fnB0BW_tokenCacheWasteWorstHead{color:var(--fcg-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.fnB0BW_tokenCacheWasteWorstModel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_tokenCacheWasteWorstTokens{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWasteWorstCause{text-align:right;color:var(--fcg-text-tertiary)}.fnB0BW_tokenCacheWasteFoot{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWasteHint{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin:0;line-height:1.5}.fnB0BW_tokenSummaryGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:9px;display:grid}.fnB0BW_tokenMetric{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:4px;min-width:0;padding:12px 14px;display:grid}.fnB0BW_tokenMetric span{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_tokenMetric strong{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;font-size:22px;font-weight:700;line-height:26px;overflow:hidden}.fnB0BW_tokenMetric small{color:var(--fcg-text-tertiary);font-variant-numeric:tabular-nums;font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.fnB0BW_tokenPanel{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);margin-top:12px;padding:14px 16px}.fnB0BW_tokenPanelHeader{justify-content:space-between;align-items:center;gap:10px;min-height:30px;margin-bottom:10px;display:flex}.fnB0BW_tokenPanelTitle{gap:2px;min-width:0;display:grid}.fnB0BW_tokenPanelHeader strong{font-size:15px}.fnB0BW_tokenPanelKicker{color:var(--fcg-brand);font:700 var(--fcg-font-caption)/16px var(--fcg-font-mono);letter-spacing:.11em}.fnB0BW_tokenRangePills{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);scrollbar-width:none;flex-wrap:nowrap;flex:0 auto;gap:2px;max-width:100%;padding:2px;display:inline-flex;overflow-x:auto}.fnB0BW_tokenRangePills::-webkit-scrollbar{display:none}.fnB0BW_tokenRangePills button{min-height:22px;color:var(--fcg-text-tertiary);cursor:pointer;font:var(--fcg-font-caption)/16px var(--fcg-font-mono);white-space:nowrap;background:0 0;border:0;border-radius:5px;flex:none;padding:2px 8px}.fnB0BW_tokenRangePills .fnB0BW_tokenRangeActive{background:var(--fcg-brand-subtle);color:var(--fcg-brand);font-weight:650}.fnB0BW_tokenHeatFilter{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:10px;display:flex}.fnB0BW_tokenHeatFilterLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-right:2px}.fnB0BW_tokenHeatFilterBtn{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);max-width:150px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;background:0 0;align-items:center;gap:6px;padding:2px 9px;line-height:18px;display:inline-flex;overflow:hidden}.fnB0BW_tokenHeatFilterBtn:hover{border-color:var(--fcg-line-strong);color:var(--fcg-text-primary)}.fnB0BW_tokenHeatFilterBtnActive{background:color-mix(in srgb, var(--model-color,var(--fcg-brand)) 14%, transparent);color:var(--model-color,var(--fcg-brand));border-color:#0000;font-weight:600}.fnB0BW_tokenPillDot{corner-shape:round;background:var(--model-color,var(--fcg-text-tertiary));border-radius:50%;flex:none;width:7px;height:7px}.fnB0BW_tokenChartHead{align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.fnB0BW_tokenChartTitle{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-weight:600}.fnB0BW_tokenChartTotal{color:var(--fcg-text-primary);font-size:var(--fcg-font-body);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:650}.fnB0BW_tokenChartModel{color:var(--model-color,var(--fcg-brand));font:600 var(--fcg-font-caption)/18px var(--fcg-font-mono);margin-left:auto}.fnB0BW_tokenChartWrap{--fcg-chart-hit:#bcd7f8;--fcg-chart-miss:#7aaff0;--fcg-chart-out:#2f6fe0;--fcg-chart-tip-bg:#fff;--fcg-chart-tip-fg:#1a1a1c;--fcg-chart-tip-muted:#6b7280;min-width:0;position:relative}body[data-ds-dark-theme] .fnB0BW_tokenChartWrap{--fcg-chart-hit:#a9c8f0;--fcg-chart-miss:#5f97e8;--fcg-chart-out:#3d7ef0;--fcg-chart-tip-bg:#1f1f21;--fcg-chart-tip-fg:#f5f6f8;--fcg-chart-tip-muted:#a1a1a8}.fnB0BW_tokenChartPlot{position:relative}.fnB0BW_tokenChartGrid{background:var(--fcg-line-subtle);opacity:.8;pointer-events:none;height:1px;position:absolute;left:0;right:0}.fnB0BW_tokenChartGrid span{color:var(--fcg-text-tertiary);font-variant-numeric:tabular-nums;font-size:11px;line-height:1;position:absolute;bottom:3px;left:0}.fnB0BW_tokenChartBar{background:var(--fcg-chart-out);transition:filter 90ms var(--fcg-ease);cursor:pointer;border-radius:3px 3px 0 0;position:absolute;bottom:0;overflow:hidden}.fnB0BW_tokenChartBar[data-active]{filter:brightness(1.14)}.fnB0BW_tokenChartBar[data-empty]{background:var(--fcg-line-subtle);opacity:.3}.fnB0BW_tokenChartCross{pointer-events:none;border-left:1px solid color-mix(in srgb, var(--fcg-text-tertiary) 40%, transparent);position:absolute;top:0;bottom:0}.fnB0BW_tokenChartSeg{width:100%;position:absolute;left:0}.fnB0BW_tokenChartSeg[data-top]{border-radius:3px 3px 0 0}.fnB0BW_tokenChartLegend{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 16px;margin-top:6px;line-height:18px;display:flex}.fnB0BW_tokenChartLegend span{align-items:center;gap:6px;min-width:0;display:inline-flex}.fnB0BW_tokenChartLegend i{border-radius:2px;flex:none;width:8px;height:8px}.fnB0BW_tokenChartTip{z-index:5;background:var(--fcg-chart-tip-bg);color:var(--fcg-chart-tip-muted);pointer-events:none;font-size:var(--fcg-font-caption);border-radius:8px;gap:3px;padding:8px 10px;line-height:14px;display:grid;position:absolute;box-shadow:0 10px 30px #00000047}.fnB0BW_tokenChartTipHead{color:var(--fcg-chart-tip-fg);justify-content:space-between;gap:14px;margin-bottom:2px;font-size:13px;display:flex}.fnB0BW_tokenChartTipHead b{font-variant-numeric:tabular-nums}.fnB0BW_tokenChartTipRow{align-items:center;gap:7px;min-width:0;display:flex}.fnB0BW_tokenChartTipRow b{color:var(--fcg-chart-tip-fg);font-variant-numeric:tabular-nums;margin-left:auto;font-weight:600}.fnB0BW_tokenChartSwatch{background:var(--fcg-line-strong);border-radius:2px;flex:none;width:8px;height:8px}.fnB0BW_tokenChartSwatch[data-tone=hit]{background:var(--fcg-chart-hit)}.fnB0BW_tokenChartSwatch[data-tone=miss]{background:var(--fcg-chart-miss)}.fnB0BW_tokenChartSwatch[data-tone=out]{background:var(--fcg-chart-out)}.fnB0BW_tokenChartSwatch[data-tone=req]{corner-shape:round;background:var(--fcg-chart-tip-muted);border-radius:50%}.fnB0BW_tokenChartAxis{height:18px;margin-top:2px;padding-left:46px;position:relative}.fnB0BW_tokenChartAxis span{color:var(--fcg-text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px;position:absolute;transform:translate(-50%)}.fnB0BW_tokenChartAxis span:first-child{transform:none}.fnB0BW_tokenChartAxis span:last-child{transform:translate(-100%)}.fnB0BW_tokenHeatTotals{border-top:1px solid var(--fcg-line-subtle);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-top:10px;padding-top:9px;display:flex}.fnB0BW_tokenHeatTotals b{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;margin-right:3px;font-weight:650}.fnB0BW_tokenHeatDaily{margin-left:auto}.fnB0BW_tokenModelBars{gap:6px;margin-bottom:12px;display:grid}.fnB0BW_tokenModelBarRow{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;grid-template-columns:minmax(90px,180px) minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.fnB0BW_tokenModelBarName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_tokenModelBarTrack{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-tip);height:4px;overflow:hidden}.fnB0BW_tokenModelBarTrack i{border-radius:inherit;background:var(--model-color,var(--fcg-brand));height:100%;display:block}.fnB0BW_tokenModelBarRow b{color:var(--fcg-text-primary);font-weight:600}.fnB0BW_tokenModelDot{corner-shape:round;background:var(--model-color,var(--fcg-text-tertiary));border-radius:50%;flex:none;width:7px;height:7px;margin-right:6px;display:inline-block}.fnB0BW_tokenNotice{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line-subtle));border-radius:var(--fcg-radius-md);background:color-mix(in srgb, var(--fcg-warn) 8%, var(--fcg-bg-layer-1));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);margin-top:10px;padding:10px 14px}.fnB0BW_tokenGatewayTable{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);overflow-x:auto}.fnB0BW_tokenGatewayTable .fnB0BW_pricingTable{min-width:560px}.fnB0BW_tokenEmpty{min-height:90px;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);place-items:center;display:grid}@media (width<=700px){.fnB0BW_tokenSummaryGrid{grid-template-columns:1fr 1fr}}@media (width<=520px){.fnB0BW_tokenHero{flex-direction:column;align-items:flex-start}.fnB0BW_tokenTitle{font-size:22px}.fnB0BW_tokenSummaryGrid{grid-template-columns:1fr}.fnB0BW_tokenPanelHeader{gap:6px}.fnB0BW_tokenChartTip{width:190px}.fnB0BW_tokenHeatTotals{gap:4px 10px}.fnB0BW_tokenHeatDaily{margin-left:0}.fnB0BW_tokenModelBarRow{grid-template-columns:minmax(70px,110px) minmax(0,1fr) auto}}.fnB0BW_pricePair{gap:1px;min-width:0;line-height:18px;display:grid}.fnB0BW_priceOriginal{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;text-decoration:line-through;overflow:hidden}.fnB0BW_pricingTable .fnB0BW_priceCurrent,.fnB0BW_pricingTable .fnB0BW_priceCurrentDiscount{color:var(--fcg-brand);font-size:var(--fcg-font-body);letter-spacing:-.01em;font-weight:650;display:block}.fnB0BW_pricingTable .fnB0BW_priceCurrentDiscount{color:var(--fcg-success)}.fnB0BW_pricingRequest{font-weight:600;color:var(--fcg-text-primary)!important}.fnB0BW_imageTiers{flex-wrap:wrap;align-items:start;gap:4px 18px;display:inline-flex}.fnB0BW_imageTier{gap:1px;min-width:0;display:grid}.fnB0BW_imageTierLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);letter-spacing:.02em;font-style:normal;font-weight:600}.fnB0BW_pricingEmpty{text-align:center;color:var(--fcg-text-tertiary)!important;padding:28px!important}.fnB0BW_order{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-1);gap:10px;margin-top:20px;padding:18px;display:grid}.fnB0BW_orderTitle{font-size:var(--fcg-font-body);letter-spacing:-.01em;font-weight:600}.fnB0BW_orderActions{flex-wrap:wrap;gap:7px;display:flex}.fnB0BW_qr{object-fit:contain;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:#fff;width:160px;max-width:100%;height:160px}.fnB0BW_qrWrap{justify-items:start;gap:8px;display:grid}.fnB0BW_textarea{resize:vertical;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-input);width:100%;min-height:72px;color:var(--fcg-text-primary);font:inherit;transition:border-color var(--fcg-fast) var(--fcg-ease), box-shadow var(--fcg-fast) var(--fcg-ease);outline:none;padding:10px 12px;line-height:1.5}.fnB0BW_textarea:focus{border-color:var(--fcg-brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_qrText{overflow-wrap:anywhere;max-width:min(100%,520px);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}@media (width<=800px){.fnB0BW_marketplaceGrid,.fnB0BW_mcpMarketplaceGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}.fnB0BW_poolManager{gap:12px;display:grid}.fnB0BW_poolToolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.fnB0BW_poolToolbarNote{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_poolToolbarActions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.fnB0BW_poolToggle{color:var(--fcg-text-secondary);cursor:pointer;font-size:var(--fcg-font-caption);align-items:center;gap:7px;display:inline-flex}.fnB0BW_poolToggle input{width:14px;height:14px;accent-color:var(--fcg-brand);cursor:pointer;margin:0}.fnB0BW_poolList{gap:10px;display:grid}.fnB0BW_poolAccount{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);transition:border-color var(--fcg-fast) var(--fcg-ease), background var(--fcg-fast) var(--fcg-ease);gap:10px;padding:12px;display:grid}.fnB0BW_poolAccount:hover{border-color:var(--fcg-line-strong);background:var(--fcg-bg-layer-2)}.fnB0BW_poolAccountHead{align-items:center;gap:10px;min-width:0;display:flex}.fnB0BW_poolIdentity{flex:auto;align-items:center;gap:10px;min-width:0;display:flex}.fnB0BW_poolMonogram{background:var(--fcg-brand-subtle);width:30px;height:30px;color:var(--fcg-brand);font:650 11px/1 var(--fcg-font-mono);letter-spacing:.02em;text-transform:uppercase;border-radius:9px;flex:none;place-items:center;display:grid}.fnB0BW_poolIdentityText{min-width:0}.fnB0BW_poolName{text-overflow:ellipsis;white-space:nowrap;color:var(--fcg-text-primary);font-size:var(--fcg-font-body);font-weight:600;display:block;overflow:hidden}.fnB0BW_poolSub{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;margin-top:2px;display:block;overflow:hidden}.fnB0BW_poolChips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.fnB0BW_poolChip{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-secondary);white-space:nowrap;padding:2px 8px;font-size:11px;line-height:16px}.fnB0BW_poolChipLive{background:color-mix(in srgb, var(--fcg-success) 14%, transparent);color:var(--fcg-success)}.fnB0BW_poolChipWarn{background:color-mix(in srgb, var(--fcg-warn) 16%, transparent);color:var(--fcg-warn)}.fnB0BW_poolChipDanger{background:color-mix(in srgb, var(--fcg-danger) 14%, transparent);color:var(--fcg-danger)}.fnB0BW_poolMeterRow{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.fnB0BW_poolMeterTrack{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);height:5px;display:block;overflow:hidden}.fnB0BW_poolMeterFill{border-radius:inherit;background:var(--fcg-brand);height:100%;transition:width .3s var(--fcg-ease);display:block}.fnB0BW_poolMeterFillWarn{background:var(--fcg-warn)}.fnB0BW_poolMeterFillDanger{background:var(--fcg-danger)}.fnB0BW_poolMetric{color:var(--fcg-text-secondary);font:600 var(--fcg-font-caption)/1 var(--fcg-font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.fnB0BW_poolActions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.fnB0BW_poolFootnote{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}@media (width<=520px){.fnB0BW_poolAccountHead{flex-wrap:wrap;align-items:flex-start}.fnB0BW_poolIdentity{flex-basis:100%}.fnB0BW_poolActions{justify-content:flex-start}.fnB0BW_mcpServerCard{flex-direction:column;align-items:flex-start}.fnB0BW_mcpServerActions{justify-content:flex-start}.fnB0BW_skillPanelHeader,.fnB0BW_pricingHeader{flex-direction:column;align-items:flex-start;gap:7px}.fnB0BW_pricingSearch{width:100%}.fnB0BW_marketplaceControls,.fnB0BW_mcpMarketplaceGrid,.fnB0BW_marketplaceGrid{grid-template-columns:1fr}.fnB0BW_communityGrid,.fnB0BW_capabilityCommunityGrid{grid-template-columns:1fr}.fnB0BW_capabilityCommunityHeader{flex-direction:column;align-items:flex-start}.fnB0BW_communityFilterBar{gap:8px}.fnB0BW_communityInstalledEntry{padding-inline:8px}.fnB0BW_communityRestart,.fnB0BW_advisorPickerHeader{flex-direction:column;align-items:flex-start}.fnB0BW_communityModalBackdrop,.fnB0BW_advisorPickerBackdrop{padding:10px}.fnB0BW_advisorPicker{height:95vh;padding:14px}.fnB0BW_communityModalStats,.fnB0BW_advisorModelOption{flex-direction:column;align-items:flex-start;gap:4px}.fnB0BW_advisorModelOption code{max-width:100%}.fnB0BW_routingCell{grid-template-columns:1fr;gap:8px}.fnB0BW_routingCell:not(.fnB0BW_selectCell) .fnB0BW_routingCopy{grid-template-columns:1fr;gap:2px}.fnB0BW_authForm,.fnB0BW_capabilityForm{grid-template-columns:1fr}.fnB0BW_authFull,.fnB0BW_capabilityFull{grid-column:auto}.fnB0BW_capabilityStats,.fnB0BW_advisorStats{grid-template-columns:1fr}.fnB0BW_accountRow{flex-direction:column;align-items:flex-start}.fnB0BW_accountActions{justify-content:flex-start}.fnB0BW_plans{grid-template-columns:repeat(2,minmax(0,1fr))}.fnB0BW_communityGrid,.fnB0BW_capabilityCommunityGrid{grid-template-columns:1fr}.fnB0BW_communityRestart{flex-direction:column;align-items:flex-start}.fnB0BW_communityModalBackdrop{padding:10px}.fnB0BW_communityModal{max-height:95vh;padding:14px}.fnB0BW_communityModalStats{flex-direction:column;align-items:flex-start;gap:4px}}@media (width<=360px){.fnB0BW_plans{grid-template-columns:1fr}}.fnB0BW_statGrid{gap:var(--fcg-space-2);margin-top:var(--fcg-space-3);grid-template-columns:repeat(auto-fit,minmax(112px,1fr));display:grid}.fnB0BW_statCell{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:2px;min-width:0;padding:10px 12px;display:grid}.fnB0BW_statLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:16px;overflow:hidden}.fnB0BW_statValue{color:var(--fcg-text-primary);font-size:var(--fcg-font-title);font-variant-numeric:tabular-nums;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-weight:650;line-height:20px;overflow:hidden}.fnB0BW_details{margin-top:var(--fcg-space-2)}.fnB0BW_detailsSummary{color:var(--fcg-text-secondary);cursor:pointer;font-size:var(--fcg-font-caption);padding:5px 0;line-height:18px}.fnB0BW_detailsSummary:hover{color:var(--fcg-text-primary)}.fnB0BW_detailsSummary:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);border-radius:var(--fcg-radius-sm);outline:none}.fnB0BW_chipGrid{padding:var(--fcg-space-1) 0 var(--fcg-space-2);flex-wrap:wrap;gap:6px;display:flex}.fnB0BW_statChip{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);white-space:nowrap;align-items:center;gap:6px;padding:3px 9px;line-height:18px;display:inline-flex}.fnB0BW_statChip b{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;font-weight:650}.fnB0BW_statChipIdle{color:var(--fcg-text-tertiary);opacity:.62}.fnB0BW_statChipIdle b{color:var(--fcg-text-tertiary)}@media (width<=520px){.fnB0BW_statGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}.fnB0BW_toggleGrid{gap:var(--fcg-space-2);margin-top:var(--fcg-space-2);grid-template-columns:repeat(auto-fit,minmax(168px,1fr));display:grid}.fnB0BW_toggleCard{justify-content:space-between;align-items:center;gap:var(--fcg-space-2);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);cursor:pointer;min-width:0;transition:border-color var(--fcg-fast) var(--fcg-ease), background var(--fcg-fast) var(--fcg-ease);padding:9px 11px;display:flex}.fnB0BW_toggleCard:hover{border-color:var(--fcg-line);background:var(--fcg-bg-layer-2)}.fnB0BW_toggleCardDisabled{cursor:not-allowed;opacity:.55}.fnB0BW_toggleCardDisabled:hover{border-color:var(--fcg-line-subtle);background:var(--fcg-bg-layer-1)}.fnB0BW_toggleCardText{gap:1px;min-width:0;display:grid}.fnB0BW_toggleCardText strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:18px;overflow:hidden}.fnB0BW_toggleCardText small{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:15px;overflow:hidden}.fnB0BW_toggleCardNote{color:var(--fcg-warn-label);font-size:11px;line-height:15px}.fnB0BW_tuningGrid{gap:var(--fcg-space-2);margin-top:var(--fcg-space-3);grid-template-columns:repeat(auto-fit,minmax(132px,1fr));display:grid}.fnB0BW_tuningCell{gap:4px;min-width:0;display:grid}.fnB0BW_tuningLabel{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:16px;overflow:hidden}.fnB0BW_tuningHint{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:15px;overflow:hidden}.fnB0BW_tuningCell .fnB0BW_select{min-height:32px;padding:5px 9px}.fnB0BW_subGroup{gap:var(--fcg-space-2);margin-top:var(--fcg-space-4);display:grid}.fnB0BW_subGroupLabel{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);letter-spacing:.02em;font-weight:600;line-height:18px}.fnB0BW_councilJob{gap:var(--fcg-space-3);display:grid}.fnB0BW_councilJobHead{align-items:baseline;gap:var(--fcg-space-2);flex-wrap:wrap;min-width:0;display:flex}.fnB0BW_councilJobId{color:var(--fcg-text-tertiary);font-family:var(--fcg-font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.fnB0BW_councilReport{gap:var(--fcg-space-2);min-width:0;display:grid}.fnB0BW_councilReportTurn{font-size:var(--fcg-font-body)}.fnB0BW_councilState{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;font-weight:600;line-height:18px}.fnB0BW_councilStateOk{background:var(--fcg-success-subtle);color:var(--fcg-success)}.fnB0BW_councilStateBlocked{background:var(--fcg-danger-subtle);color:var(--fcg-danger)}.fnB0BW_councilStateNowrap{white-space:nowrap;word-break:keep-all;flex:none;max-width:none}.fnB0BW_councilCallout{border-left:2px solid var(--fcg-line-strong);border-radius:0 var(--fcg-radius-sm) var(--fcg-radius-sm) 0;background:var(--fcg-bg-layer-2);gap:2px;padding:9px 11px;display:grid}.fnB0BW_councilCallout p{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin:0;line-height:18px}.fnB0BW_councilCalloutBlocked{border-left-color:var(--fcg-danger);background:color-mix(in srgb, var(--fcg-danger) 6%, var(--fcg-bg-layer-2))}.fnB0BW_findingList{gap:6px;margin:0;padding:0;list-style:none;display:grid}.fnB0BW_findingRow{align-items:start;gap:var(--fcg-space-2);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);grid-template-columns:auto minmax(0,1fr) auto;padding:8px 10px;display:grid}.fnB0BW_findingBody{gap:2px;min-width:0;display:grid}.fnB0BW_findingTitle{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption);font-weight:600;line-height:18px}.fnB0BW_findingEvidence{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin:0;line-height:17px}.fnB0BW_findingEngine{color:var(--fcg-text-tertiary);white-space:nowrap;flex:none;font-size:11px;line-height:18px}.fnB0BW_findingSeverity{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-tip);color:var(--fcg-text-secondary);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;flex:none;padding:1px 7px;font-size:10px;font-weight:600;line-height:16px}.fnB0BW_findingSeverity_blocker{background:var(--fcg-danger-subtle);color:var(--fcg-danger)}.fnB0BW_findingSeverity_warning{background:var(--fcg-warn-subtle);color:var(--fcg-warn-label)}.fnB0BW_findingSeverity_info{background:var(--fcg-bg-hover);color:var(--fcg-text-tertiary)}.fnB0BW_findingSeverity_unknown{background:var(--fcg-bg-tip);color:var(--fcg-text-tertiary)}@media (width<=520px){.fnB0BW_toggleGrid,.fnB0BW_tuningGrid{grid-template-columns:1fr}.fnB0BW_findingRow{grid-template-columns:auto minmax(0,1fr)}.fnB0BW_findingEngine{grid-column:2}}.fnB0BW_advisorFormGrid{gap:var(--fcg-space-3);margin-top:var(--fcg-space-3);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.fnB0BW_advisorField{min-width:0;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:5px;display:grid}.fnB0BW_advisorField>span{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);line-height:16px}.fnB0BW_advisorField .fnB0BW_advisorModelTrigger{height:100%}.fnB0BW_advisorModelTrigger{align-content:center;gap:2px;display:grid}.fnB0BW_advisorModelTrigger strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-body);text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:18px;overflow:hidden}.fnB0BW_advisorFoot{justify-content:space-between;align-items:flex-end;gap:var(--fcg-space-3);margin-top:var(--fcg-space-4);flex-wrap:wrap;display:flex}.fnB0BW_advisorFoot .fnB0BW_advisorEvidence{flex:320px;margin-top:0}.fnB0BW_advisorFoot .fnB0BW_buttonPrimary{flex:none}@media (width<=520px){.fnB0BW_advisorFormGrid{grid-template-columns:1fr}.fnB0BW_advisorFoot{flex-direction:column;align-items:stretch}.fnB0BW_advisorFoot .fnB0BW_buttonPrimary{width:100%}}.fnB0BW_engineeringHeader{justify-content:space-between;align-items:flex-start;gap:var(--fcg-space-3);display:flex}.fnB0BW_engineeringHeader>div:first-child{gap:3px;min-width:0;display:grid}.fnB0BW_engineeringHeader strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg)}.fnB0BW_engineeringHeader small{max-width:620px;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_engineeringKicker{color:var(--fcg-text-tertiary);letter-spacing:.08em;font-size:11px;font-weight:650}.fnB0BW_engineeringSummary{margin-top:var(--fcg-space-2);flex-wrap:wrap;gap:6px;display:flex}.fnB0BW_engineeringSummary span{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:3px 9px}.fnB0BW_engineeringSummary b{color:var(--fcg-text-primary)}.fnB0BW_actionMenu{position:relative}.fnB0BW_actionMenu summary{list-style:none}.fnB0BW_actionMenu summary::-webkit-details-marker{display:none}.fnB0BW_actionMenuPop{z-index:4;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);min-width:150px;box-shadow:var(--fcg-shadow-2);gap:4px;padding:6px;display:grid;position:absolute;top:calc(100% + 5px);right:0}.fnB0BW_actionMenuPop .fnB0BW_button{background:0 0;border-color:#0000;justify-content:flex-start}.fnB0BW_actionMenuPop .fnB0BW_button:hover{background:var(--fcg-bg-hover)}.fnB0BW_engineeringComposer{gap:var(--fcg-space-2);margin-top:var(--fcg-space-3);padding:var(--fcg-space-3);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);grid-template-columns:minmax(0,1fr) auto;display:grid}.fnB0BW_engineeringComposer .fnB0BW_input{min-width:0}@media (width<=520px){.fnB0BW_engineeringHeader{flex-direction:column}.fnB0BW_engineeringComposer{grid-template-columns:1fr}}.fnB0BW_composerLabel{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);margin-bottom:5px;font-weight:600;line-height:16px;display:block}.fnB0BW_engineeringComposer>div{min-width:0}.fnB0BW_engineeringComposer>div:first-child,.fnB0BW_engineeringComposer>div:nth-child(2){align-content:start;display:grid}.fnB0BW_pricingTable .fnB0BW_priceFree{border-radius:var(--fcg-radius-full);background:color-mix(in srgb, var(--fcg-success) 14%, transparent);color:var(--fcg-success);font-size:var(--fcg-font-caption);letter-spacing:.04em;padding:1px 7px;font-weight:700}.fnB0BW_paymentNotice{border:1px solid color-mix(in srgb, var(--fcg-warn) 38%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 7%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:space-between;align-items:flex-start;gap:10px;margin-top:14px;padding:10px 12px;line-height:19px;display:flex}.fnB0BW_invoicePanel{border-top:1px solid var(--fcg-line);gap:12px;margin-top:20px;padding-top:18px;display:grid}.fnB0BW_invoiceHead{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.fnB0BW_invoiceOrders{gap:6px;display:grid}.fnB0BW_invoiceOrderRow{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.fnB0BW_invoiceOrderText{gap:2px;min-width:0;display:grid}.fnB0BW_invoiceOrderText small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_invoiceForm{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.fnB0BW_invoiceForm label{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:5px;display:grid}.fnB0BW_invoiceForm .fnB0BW_input{min-width:0}.fnB0BW_invoiceActions{flex-wrap:wrap;gap:8px;display:flex}.fnB0BW_invoiceNotice{border:1px solid color-mix(in srgb, var(--fcg-warn) 38%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 7%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:8px 10px}.fnB0BW_invoicePreview{box-sizing:border-box;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);width:100%;color:var(--fcg-text-primary);font-family:var(--fcg-font-mono);font-size:var(--fcg-font-caption);resize:vertical;padding:10px 12px;line-height:18px}.fnB0BW_invoicePanel>.fnB0BW_sectionMeta{line-height:18px}body .fnB0BW_payDialog{border:2px solid var(--pixel-ink);background:var(--pixel-face);width:min(392px,100vw - 36px);box-shadow:6px 6px 0 0 var(--pixel-ink);border-radius:0;padding-bottom:20px}.fnB0BW_payDialog h2{color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg);letter-spacing:-.012em;margin:0;font-weight:800}.fnB0BW_payDialog h2+button{border:1px solid var(--pixel-ink);color:var(--pixel-ink);border-radius:0}.fnB0BW_payDialog h2+button:hover{background:var(--pixel-recess)}.fnB0BW_payDialogBody{gap:12px;display:grid}.fnB0BW_payDialogHead{border:2px solid var(--pixel-ink);background:var(--pixel-recess);box-shadow:inset 2px 2px 0 0 var(--pixel-recess-edge);gap:3px;padding:12px;display:grid}.fnB0BW_payDialogLabel{color:var(--fcg-brand);font-family:var(--fcg-font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700}.fnB0BW_payDialogAmount{color:var(--fcg-text-primary);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:27px;font-weight:800;line-height:34px}.fnB0BW_payDialogMeta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:5px;display:flex}.fnB0BW_payDialogCredit{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_payDialogCredit strong{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;font-weight:700}.fnB0BW_payDialogState{border:1px solid var(--pixel-ink);background:var(--pixel-face);color:var(--fcg-text-secondary);font-family:var(--fcg-font-mono);letter-spacing:.06em;white-space:nowrap;clip-path:var(--pixel-chip);margin-left:auto;padding:2px 9px;font-size:10px;font-weight:700}.fnB0BW_payDialogSlot{border:2px solid var(--pixel-ink);background:var(--pixel-recess);box-shadow:inset 2px 2px 0 0 var(--pixel-recess-edge);justify-items:start;gap:10px;padding:12px;display:grid}.fnB0BW_payDialogQr{text-align:center;justify-items:center}.fnB0BW_payDialogSlot .fnB0BW_paymentNotice{border-width:2px;border-radius:0;margin-top:0}.fnB0BW_payDialogSlot .fnB0BW_payDialogElement{width:100%;min-height:0}.fnB0BW_payDialogPaid{border:2px solid color-mix(in srgb, var(--fcg-success) 42%, var(--pixel-ink));background:color-mix(in srgb, var(--fcg-success) 10%, var(--pixel-face));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:10px 12px}.fnB0BW_payDialogNote{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px;display:block}.fnB0BW_payDialogFooter{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.fnB0BW_payDialogFooter .fnB0BW_button,.fnB0BW_payDialogSlot .fnB0BW_button{border:2px solid var(--pixel-ink);background:var(--pixel-face);min-height:40px;color:var(--fcg-text-primary);letter-spacing:.04em;box-shadow:0 3px 0 0 var(--pixel-ink);transition:background var(--fcg-fast) var(--fcg-ease), box-shadow 60ms linear, transform 60ms linear;border-radius:0;font-weight:700}.fnB0BW_payDialogFooter .fnB0BW_button:hover:not(:disabled),.fnB0BW_payDialogSlot .fnB0BW_button:hover:not(:disabled){background:var(--pixel-recess)}.fnB0BW_payDialogFooter .fnB0BW_button:active:not(:disabled),.fnB0BW_payDialogSlot .fnB0BW_button:active:not(:disabled){box-shadow:0 0 0 0 var(--pixel-ink);transform:translateY(3px)}.fnB0BW_payDialogFooter .fnB0BW_buttonPrimary,.fnB0BW_payDialogSlot .fnB0BW_buttonPrimary{border-color:var(--pixel-ink);background:var(--fcg-brand);color:var(--fcg-text-on-brand-fixed);box-shadow:inset 0 2px 0 0 #ffffff61, 0 3px 0 0 var(--pixel-ink)}.fnB0BW_payDialogFooter .fnB0BW_buttonPrimary:hover:not(:disabled),.fnB0BW_payDialogSlot .fnB0BW_buttonPrimary:hover:not(:disabled){border-color:var(--pixel-ink);background:var(--fcg-brand-strong);box-shadow:inset 0 2px 0 0 #ffffff7a, 0 4px 0 0 var(--pixel-ink)}.fnB0BW_payDialogFooter .fnB0BW_buttonDanger{color:var(--fcg-danger)}.fnB0BW_payDialogFooter .fnB0BW_button:focus-visible,.fnB0BW_payDialogSlot .fnB0BW_button:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 26%, transparent), 0 3px 0 0 var(--pixel-ink);outline:none}.fnB0BW_planReviewBody{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-input);max-height:300px;display:grid;overflow:auto}.fnB0BW_planReviewLine{width:100%;color:var(--fcg-text-primary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);text-align:left;background:0 0;border:0;grid-template-columns:44px minmax(0,1fr);gap:8px;padding:2px 10px;line-height:18px;display:grid}.fnB0BW_planReviewLine:hover{background:var(--fcg-bg-hover)}.fnB0BW_planReviewLineSelected{background:var(--fcg-bg-active)}.fnB0BW_planReviewLineNumber{color:var(--fcg-text-tertiary);font-family:var(--fcg-font-mono);text-align:right}.fnB0BW_planReviewLineText{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.fnB0BW_planReviewRemark{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:8px;padding:10px 11px;display:grid}.fnB0BW_pickerVisibilityPanel{gap:var(--fcg-space-2);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);padding:12px;display:grid}.fnB0BW_pickerVisibilityPanel[data-open=false]{padding:9px 12px}.fnB0BW_pickerVisibilityToggle{width:100%;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:flex}.fnB0BW_pickerVisibilityToggle:hover{color:var(--fcg-text-primary)}.fnB0BW_pickerVisibilityToggle:focus-visible{border-radius:var(--fcg-radius-sm);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_pickerVisibilityGear{flex:none;align-items:center;display:inline-flex}.fnB0BW_pickerVisibilityToggleLabel{min-width:0;font-size:var(--fcg-font-caption);flex:auto;font-weight:620;line-height:18px}.fnB0BW_pickerVisibilityBadge{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:var(--fcg-text-tertiary);flex:none;padding:0 6px;font-size:10px;font-style:normal;font-weight:600;line-height:16px}.fnB0BW_pickerVisibilityChevron{flex:none;align-items:center;transition:transform .12s;display:inline-flex}.fnB0BW_pickerVisibilityToggle[aria-expanded=true] .fnB0BW_pickerVisibilityChevron{transform:rotate(180deg)}.fnB0BW_pickerVisibilityMaster{cursor:pointer;align-items:center;gap:10px;display:flex}.fnB0BW_pickerVisibilityText{gap:2px;min-width:0;display:grid}.fnB0BW_pickerVisibilityText strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption);font-weight:620;line-height:18px}.fnB0BW_pickerVisibilityText small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:17px}.fnB0BW_pickerVisibilityHead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.fnB0BW_pickerVisibilityLabel{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_pickerVisibilityActions{align-items:center;gap:10px;display:flex}.fnB0BW_pickerVisibilityLink{color:var(--fcg-brand);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;padding:0;line-height:18px}.fnB0BW_pickerVisibilityLink:hover{text-decoration:underline}.fnB0BW_pickerVisibilityLink:focus-visible{border-radius:var(--fcg-radius-sm);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_pickerVisibilityList{scrollbar-color:var(--fcg-line-strong) transparent;scrollbar-width:thin;gap:2px;max-height:224px;display:grid;overflow-y:auto}.fnB0BW_pickerVisibilityList[data-visible=false]{opacity:.5}.fnB0BW_pickerVisibilityRow{border-radius:var(--fcg-radius-sm);cursor:pointer;align-items:center;gap:8px;min-width:0;padding:4px 6px;display:flex}.fnB0BW_pickerVisibilityRow:hover{background:var(--fcg-bg-layer-2)}.fnB0BW_pickerVisibilityCheck{width:14px;height:14px;accent-color:var(--fcg-brand);cursor:pointer;flex:none;margin:0}.fnB0BW_pickerVisibilityName{min-width:0;color:var(--fcg-text-secondary);font-family:var(--fcg-font-mono);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:11px;line-height:18px;overflow:hidden}.fnB0BW_pickerVisibilityPaid{border-radius:var(--fcg-radius-full);background:color-mix(in srgb, var(--fcg-danger) 12%, transparent);color:var(--fcg-danger);flex:none;padding:0 6px;font-size:10px;font-style:normal;font-weight:700;line-height:16px}.fnB0BW_pickerVisibilityFree{border-radius:var(--fcg-radius-full);background:color-mix(in srgb, var(--fcg-success) 12%, transparent);color:var(--fcg-success);flex:none;padding:0 6px;font-size:10px;font-style:normal;font-weight:700;line-height:16px}.fnB0BW_pickerVisibilityEmpty{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}";
18068
- const tagId$5 = "freecodego/settings-tab.module.css";
18069
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
18199
+ const css$6 = ".fnB0BW_root{box-sizing:border-box;width:100%;min-width:0;max-width:100%;color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg);overflow:hidden}.fnB0BW_toolbar{border-bottom:1px solid var(--fcg-line);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:0 0 12px;display:flex}.fnB0BW_toolbarTitle{min-width:0}.fnB0BW_kicker{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);letter-spacing:.08em;text-transform:uppercase;font-weight:600;line-height:18px}.fnB0BW_title{font-size:var(--fcg-font-section);margin:1px 0 0;font-weight:600;line-height:24px}.fnB0BW_toolbarAction,.fnB0BW_button{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);min-height:32px;color:var(--fcg-text-primary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);white-space:nowrap;transition:background var(--fcg-fast) var(--fcg-ease), border-color var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);justify-content:center;align-items:center;padding:5px 13px;line-height:18px;text-decoration:none;display:inline-flex}.fnB0BW_toolbarAction:hover,.fnB0BW_button:hover{background:var(--fcg-bg-hover)}.fnB0BW_button:disabled{cursor:not-allowed;opacity:.45}.fnB0BW_button:focus-visible,.fnB0BW_toolbarAction:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_buttonPrimary:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-btn-primary-fill) 30%, transparent)}.fnB0BW_buttonPrimary{background:var(--fcg-btn-primary-fill);color:var(--fcg-text-on-brand);border-color:#0000}.fnB0BW_buttonPrimary:hover:not(:disabled){background:var(--fcg-btn-primary-hover);border-color:#0000}.fnB0BW_buttonPrimary:hover{background:var(--fcg-btn-primary-hover)}.fnB0BW_buttonDanger{color:var(--fcg-danger)}.fnB0BW_loading,.fnB0BW_error{color:var(--fcg-text-tertiary);padding:18px 0}.fnB0BW_error{color:var(--fcg-danger)}.fnB0BW_syncNotice{border:1px solid color-mix(in srgb, var(--fcg-brand) 24%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-brand) 6%, var(--fcg-bg-layer-1));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:center;gap:10px;margin:14px 0 0;padding:10px 14px;line-height:18px;display:flex}.fnB0BW_syncNoticeOffline{border-color:color-mix(in srgb, var(--fcg-warn-label) 34%, var(--fcg-line));background:color-mix(in srgb, var(--fcg-warn-label) 7%, var(--fcg-bg-layer-1));color:var(--fcg-warn-label)}.fnB0BW_syncDot{border-radius:var(--fcg-radius-full);background:var(--fcg-brand);flex:none;width:7px;height:7px;animation:1.25s ease-in-out infinite fnB0BW_sync-pulse}.fnB0BW_syncNoticeOffline .fnB0BW_syncDot{background:var(--fcg-warn-label);animation:none}@keyframes fnB0BW_sync-pulse{50%{opacity:.38;transform:scale(.8)}}.fnB0BW_sections{gap:0;display:grid}.fnB0BW_pageTabs{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-tip);gap:4px;margin:0 0 14px;padding:3px;display:flex}.fnB0BW_pageTab{min-height:30px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);transition:background var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);background:0 0;border:0;border-radius:5px;flex:1;padding:5px 10px}.fnB0BW_pageTabActive{background:var(--fcg-bg-layer-2);color:var(--fcg-text-primary);box-shadow:var(--fcg-shadow-1);font-weight:600}.fnB0BW_modelCategoryActions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;margin-top:8px;display:grid}.fnB0BW_modelCategoryActions .fnB0BW_select{width:100%;min-width:0}.fnB0BW_routingCell:has(.fnB0BW_modelCategoryActions){align-items:start}.fnB0BW_routingCell:has(.fnB0BW_modelCategoryActions)>.fnB0BW_pageTabs{box-sizing:border-box;grid-column:2;width:100%;margin:0}.fnB0BW_routingCell:has(.fnB0BW_modelCategoryActions)>.fnB0BW_select{grid-area:2/1;width:100%}.fnB0BW_routingCell:has(.fnB0BW_modelCategoryActions)>.fnB0BW_modelCategoryActions{grid-area:2/2;margin-top:0}.fnB0BW_modelCategoryActions .fnB0BW_button{min-height:42px}.fnB0BW_community{min-width:0;padding:4px 0 17px}.fnB0BW_communityHeader{border-bottom:1px solid var(--fcg-line);justify-content:space-between;align-items:flex-start;gap:12px;padding:13px 0 14px;display:flex}.fnB0BW_communityIntro{max-width:520px;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin:5px 0 0;line-height:18px}.fnB0BW_communityFilterBar{justify-content:space-between;align-items:center;gap:12px;padding:12px 0 2px;display:flex}.fnB0BW_communityFilters{scrollbar-width:none;gap:6px;min-width:0;display:flex;overflow-x:auto}.fnB0BW_communityFilter{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);min-height:28px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);white-space:nowrap;padding:4px 10px}.fnB0BW_communityFilter:hover{background:var(--fcg-bg-hover)}.fnB0BW_communityFilterActive{border-color:var(--fcg-text-primary);background:var(--fcg-text-primary);color:var(--fcg-bg-layer-2)}.fnB0BW_communityInstalledEntry{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);min-height:30px;color:var(--fcg-text-primary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);white-space:nowrap;flex:none;padding:5px 10px;font-weight:600}.fnB0BW_communityInstalledEntry:hover{background:var(--fcg-bg-hover)}.fnB0BW_communityInstalledEntryActive{border-color:var(--fcg-text-primary);background:var(--fcg-text-primary);color:var(--fcg-bg-layer-2)}.fnB0BW_capabilityCommunity{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);margin-top:12px;padding:14px}.fnB0BW_capabilityCommunityHeader{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.fnB0BW_capabilityCommunityGrid{grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:9px;margin-top:11px;display:grid}.fnB0BW_marketplaceGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-top:13px;display:grid}.fnB0BW_capabilityCommunityCard{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:8px;min-width:0;padding:12px 14px;display:grid}.fnB0BW_capabilityCommunityCard strong{font-size:var(--fcg-font-body)}.fnB0BW_capabilityCommunityCard p{min-height:36px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);margin:0;line-height:18px}.fnB0BW_capabilityCommunityCard small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_capabilityCommunityCard .fnB0BW_button{width:100%;margin-top:2px}.fnB0BW_capabilityCommunityTop{justify-content:space-between;align-items:center;gap:8px;display:flex}.fnB0BW_capabilityCommunityKind{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);letter-spacing:.07em;font-weight:700}.fnB0BW_marketplaceIdentity{align-items:center;gap:6px;min-width:0;display:inline-flex}.fnB0BW_capabilityIcon{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);width:28px;height:28px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);object-fit:cover;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex;overflow:hidden}.fnB0BW_capabilityIconMcp{border-color:color-mix(in srgb, var(--fcg-brand) 35%, var(--fcg-line));background:color-mix(in srgb, var(--fcg-brand) 11%, var(--fcg-bg-layer-1));color:var(--fcg-brand)}.fnB0BW_marketplaceControls{grid-template-columns:minmax(0,1fr) minmax(140px,.4fr);gap:8px;margin-top:12px;display:grid}.fnB0BW_marketplaceLink{appearance:none;cursor:pointer;font:inherit;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);background:0 0;border:0;padding:0;text-decoration:none}.fnB0BW_marketplaceLink:hover{color:var(--fcg-text-primary);text-decoration:underline}.fnB0BW_marketplacePagination{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:center;align-items:center;gap:10px;margin-top:13px;display:flex}.fnB0BW_communitySearch{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:5px;margin-top:12px;display:grid}.fnB0BW_communityGrid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;padding-top:14px;display:grid}.fnB0BW_communityCard{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);cursor:pointer;min-width:0;transition:border-color var(--fcg-fast) var(--fcg-ease), transform var(--fcg-fast) var(--fcg-ease), box-shadow var(--fcg-fast) var(--fcg-ease);flex-direction:column;gap:9px;padding:12px;display:flex}.fnB0BW_communityCard:hover,.fnB0BW_communityCard:focus-visible{border-color:var(--fcg-line-strong);box-shadow:var(--fcg-shadow-2);outline:none;transform:translateY(-1px)}.fnB0BW_communityCardTop{align-items:center;gap:8px;min-width:0;display:flex}img.fnB0BW_communityPluginIcon{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);object-fit:cover;flex:none;width:34px;height:34px;display:block;overflow:hidden}.fnB0BW_communityIdentity{gap:1px;min-width:0;display:grid}.fnB0BW_communityIdentity strong{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-body);overflow:hidden}.fnB0BW_communityIdentity small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_communityCategory{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-left:auto;padding:2px 6px}.fnB0BW_communityDescription{min-height:54px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;line-height:18px;display:-webkit-box;overflow:hidden}.fnB0BW_communityFeatures,.fnB0BW_communityFeatureList{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_communityStats{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);gap:10px;display:flex}.fnB0BW_communityState{color:var(--fcg-success);font-size:var(--fcg-font-caption);font-weight:600}.fnB0BW_communityIncompatible{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);min-height:30px;color:var(--fcg-warn-label);font-size:var(--fcg-font-caption);padding:5px 8px;line-height:18px}.fnB0BW_communityInstall{width:100%;margin-top:auto}.fnB0BW_communityProgress{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_communityRestart{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 6%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding:10px 11px;line-height:18px;display:flex}.fnB0BW_communityFootnote{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-top:13px;line-height:18px;display:block}.fnB0BW_communityModalBackdrop{z-index:20;background:#0f172a61;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.fnB0BW_communityModal{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-2);width:min(760px,100%);min-width:0;max-height:min(820px,92vh);box-shadow:var(--fcg-shadow-pop);flex-direction:column;gap:12px;padding:18px;display:flex;overflow:hidden}.fnB0BW_communityModalHeader{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.fnB0BW_communityModalTitle{font-size:var(--fcg-font-section);margin:2px 0 0;line-height:25px}.fnB0BW_communityModalOwner{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_communityModalSummary{color:var(--fcg-text-secondary);font-size:var(--fcg-font-body);margin:0;line-height:20px}.fnB0BW_communityModalHeader img.fnB0BW_communityPluginIcon{width:40px;height:40px;margin-top:8px}.fnB0BW_communityModalStats{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);align-items:center;gap:12px;display:flex}.fnB0BW_communityModalStats a{color:var(--fcg-text-primary)}.fnB0BW_communityReadme{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);min-height:180px;overflow:auto}.fnB0BW_communityReadme pre{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--fcg-text-secondary);font:var(--fcg-font-caption)/19px var(--fcg-font-mono);margin:0;padding:13px}.fnB0BW_communityModalFooter{justify-content:flex-end;gap:8px;display:flex}.fnB0BW_section{border-bottom:1px solid var(--fcg-line-subtle);min-width:0;padding:24px 0}.fnB0BW_section:last-child{border-bottom:0}.fnB0BW_sectionHeader{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.fnB0BW_sectionName{font-size:var(--fcg-font-body-lg);letter-spacing:-.01em;font-weight:650;line-height:20px}.fnB0BW_sectionMeta{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_badge{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:3px 8px;line-height:18px}.fnB0BW_badgeLive{color:var(--fcg-success)}.fnB0BW_badgeDanger{color:var(--fcg-danger)}.fnB0BW_inspectStatus{background:0 0;align-self:start}.fnB0BW_diagnosticsDump{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-input);max-height:240px;color:var(--fcg-text-secondary);font-family:var(--fcg-font-mono);font-size:var(--fcg-font-caption);white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 0;padding:8px 10px;line-height:18px;overflow:auto}.fnB0BW_grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.fnB0BW_routingGrid{grid-template-columns:1fr;gap:8px}.fnB0BW_routingCell{grid-template-columns:minmax(150px,.7fr) minmax(0,1fr);align-items:center;gap:18px;min-height:0;padding:12px 14px;display:grid}.fnB0BW_routingCell.fnB0BW_selectCell{grid-template-rows:none;align-content:normal}.fnB0BW_routingCell .fnB0BW_select{min-height:42px}.fnB0BW_routingCopy{gap:2px;min-width:0;display:grid}.fnB0BW_routingCell:not(.fnB0BW_selectCell) .fnB0BW_routingCopy{grid-column:1/-1;grid-template-columns:minmax(150px,.7fr) auto minmax(0,1fr);align-items:center;gap:10px}.fnB0BW_routingCell:not(.fnB0BW_selectCell) .fnB0BW_cellHint{margin-top:0}.fnB0BW_infoCell{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);min-width:0;padding:14px}.fnB0BW_cellLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-bottom:4px;display:block}.fnB0BW_cellValue{text-overflow:ellipsis;white-space:nowrap;font-weight:500;display:block;overflow:hidden}.fnB0BW_cellHint{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-top:3px;display:block}.fnB0BW_feedbackRow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 18px;display:flex}.fnB0BW_feedbackRow>.fnB0BW_routingCopy{flex:220px}.fnB0BW_telegramLink{flex:none;gap:7px;text-decoration:none}.fnB0BW_telegramIcon{flex:none;display:block}.fnB0BW_selectCell{gap:5px;display:grid}.fnB0BW_select,.fnB0BW_input{box-sizing:border-box;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-input);width:100%;min-width:0;color:var(--fcg-text-primary);font:inherit;font-size:var(--fcg-font-body);transition:border-color var(--fcg-fast) var(--fcg-ease), box-shadow var(--fcg-fast) var(--fcg-ease);outline:none;padding:8px 11px}.fnB0BW_select:hover,.fnB0BW_input:hover{border-color:var(--fcg-line-strong)}.fnB0BW_select:focus,.fnB0BW_input:focus{border-color:var(--fcg-brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_accountList{flex-direction:column;gap:8px;display:flex}.fnB0BW_accountManager{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:10px;margin-top:10px;padding:14px;display:grid}.fnB0BW_extensionList{gap:6px;margin-top:14px;display:grid}.fnB0BW_extensionRow{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:11px 12px;display:flex}.fnB0BW_extensionRow span{gap:3px;min-width:0;display:grid}.fnB0BW_extensionRow small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_engineSelect{cursor:pointer;flex:none;width:216px}.fnB0BW_switch{-webkit-appearance:none;appearance:none;border:1px solid var(--fcg-line-strong);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-tip);cursor:pointer;width:36px;height:20px;transition:background var(--fcg-fast) var(--fcg-ease), border-color var(--fcg-fast) var(--fcg-ease);outline:none;flex:none;margin:0;position:relative}.fnB0BW_switch:before{content:\"\";corner-shape:round;background:var(--fcg-bg-layer-2);width:14px;height:14px;box-shadow:var(--fcg-shadow-1);transition:transform var(--fcg-fast) var(--fcg-ease);border-radius:50%;position:absolute;top:2px;left:2px}.fnB0BW_switch:checked{border-color:var(--fcg-brand);background:var(--fcg-brand)}.fnB0BW_switch:checked:before{transform:translate(16px)}.fnB0BW_switch:hover:not(:disabled){border-color:var(--fcg-brand)}.fnB0BW_switch:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent)}.fnB0BW_switch:disabled{cursor:not-allowed;opacity:.45}.fnB0BW_capabilityForm{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px;padding:14px;display:grid}.fnB0BW_capabilityForm label{min-width:0;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:5px;display:grid}.fnB0BW_capabilityFormHead{grid-column:1/-1;justify-content:space-between;align-items:center;gap:10px;display:flex}.fnB0BW_capabilityFull{grid-column:1/-1}.fnB0BW_skillList{gap:8px;margin-top:12px;display:grid}.fnB0BW_capabilityStats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.fnB0BW_capabilityStats div{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);gap:2px;padding:12px 14px;display:grid}.fnB0BW_capabilityStats strong{font-size:var(--fcg-font-section);line-height:21px}.fnB0BW_capabilityStats small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_advisorStandalone{padding-top:2px}.fnB0BW_engineeringSection .fnB0BW_capabilityStats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.fnB0BW_advisorStats{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.fnB0BW_advisorStats div{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);gap:3px;min-width:0;padding:12px 14px;display:grid}.fnB0BW_advisorStats strong{font-size:var(--fcg-font-body-lg);text-overflow:ellipsis;white-space:nowrap;line-height:20px;overflow:hidden}.fnB0BW_advisorStats small,.fnB0BW_advisorEvidence small{overflow-wrap:anywhere;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_advisorWarning{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 6%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin-top:10px;padding:9px 11px;line-height:18px}.fnB0BW_advisorEvidence{border-left:2px solid var(--fcg-text-primary);background:var(--fcg-bg-layer-1);gap:3px;margin-top:12px;padding:10px 11px;display:grid}.fnB0BW_advisorEvidence strong{font-size:var(--fcg-font-caption)}.fnB0BW_advisorEvidence span{color:var(--fcg-text-secondary);font:var(--fcg-font-caption)/16px var(--fcg-font-mono)}.fnB0BW_advisorModelField{min-width:0;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:5px;display:grid}.fnB0BW_advisorModelTrigger{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);width:100%;min-height:42px;color:var(--fcg-text-primary);cursor:pointer;font:inherit;text-align:left;gap:2px;padding:8px 9px;display:grid;overflow:hidden}.fnB0BW_advisorModelTrigger:hover{border-color:var(--fcg-line-strong)}.fnB0BW_advisorModelTrigger:disabled{cursor:not-allowed;opacity:.55}.fnB0BW_advisorModelTrigger small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_advisorPickerBackdrop{z-index:30;background:#0f172a61;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.fnB0BW_advisorPicker{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-2);width:min(680px,100%);height:min(720px,92vh);box-shadow:var(--fcg-shadow-pop);grid-template-rows:auto auto minmax(0,1fr) auto;gap:11px;padding:17px;display:grid;overflow:hidden}.fnB0BW_advisorPickerHeader{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.fnB0BW_advisorPickerHeader>div{gap:3px;display:grid}.fnB0BW_advisorPickerHeader strong{font-size:16px}.fnB0BW_advisorPickerHeader small,.fnB0BW_advisorManual>small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_advisorModelList{overscroll-behavior:contain;scrollbar-gutter:stable;gap:7px;min-height:0;padding-right:6px;display:grid;overflow:hidden auto}.fnB0BW_advisorModelOption{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);width:100%;color:var(--fcg-text-primary);cursor:pointer;font:inherit;text-align:left;justify-content:space-between;align-items:center;gap:14px;padding:11px 12px;display:flex}.fnB0BW_advisorModelOption:hover{border-color:var(--fcg-line-strong);background:var(--fcg-bg-layer-2)}.fnB0BW_advisorModelSelected{border-color:var(--fcg-brand);background:var(--fcg-bg-layer-2);box-shadow:inset 0 0 0 1px var(--fcg-brand)}.fnB0BW_advisorModelOption>span{gap:2px;min-width:0;display:grid}.fnB0BW_advisorModelOption small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_advisorModelOption code{max-width:45%;color:var(--fcg-text-secondary);font:var(--fcg-font-caption)/16px var(--fcg-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_advisorManual{border-top:1px solid var(--fcg-line);gap:6px;padding-top:10px;display:grid}.fnB0BW_advisorManual summary{cursor:pointer;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_advisorNotes{gap:8px;margin-top:12px;display:grid}.fnB0BW_advisorNote{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:7px;padding:14px;display:grid}.fnB0BW_advisorNoteHeader{justify-content:space-between;align-items:center;gap:8px;display:flex}.fnB0BW_advisorNoteHeader small,.fnB0BW_advisorNote footer{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_advisorNote p{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin:0;line-height:18px}.fnB0BW_advisorSeverity{border-radius:var(--fcg-radius-full);width:fit-content;font-size:var(--fcg-font-caption);letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;font-weight:700;display:inline-flex}.fnB0BW_advisorSeverityNit{background:var(--fcg-bg-hover);color:var(--fcg-text-secondary)}.fnB0BW_advisorSeverityConcern{background:color-mix(in srgb, var(--fcg-warn) 13%, var(--fcg-bg-layer-2));color:var(--fcg-warn-label)}.fnB0BW_advisorSeverityBlocker{background:color-mix(in srgb, var(--fcg-danger) 11%, var(--fcg-bg-layer-2));color:var(--fcg-danger)}.fnB0BW_memoryPanel{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:12px;margin-top:16px;padding:14px;display:grid}.fnB0BW_memoryHeader,.fnB0BW_memoryDetailHeader{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.fnB0BW_memoryHeader>div:first-child,.fnB0BW_memoryDetailHeader>div{gap:3px;min-width:0;display:grid}.fnB0BW_memoryHeader strong,.fnB0BW_memoryDetailHeader strong{font-size:var(--fcg-font-body)}.fnB0BW_memoryHeader small,.fnB0BW_memoryDetailHeader small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_memoryActions,.fnB0BW_memoryRecordActions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:6px;display:flex}.fnB0BW_memoryActions .fnB0BW_button,.fnB0BW_memoryRecordActions .fnB0BW_button{min-height:26px;font-size:var(--fcg-font-caption);padding:3px 8px}.fnB0BW_memorySearchRow{align-items:center;gap:7px;display:flex}.fnB0BW_memorySearchRow .fnB0BW_input{flex:auto}.fnB0BW_memorySearchRow .fnB0BW_button{min-height:30px;font-size:var(--fcg-font-caption);flex:none;padding:4px 10px}.fnB0BW_memoryRecall{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:6px;padding:9px 11px;display:grid}.fnB0BW_memoryRecallHead{justify-content:space-between;align-items:center;gap:12px;display:flex}.fnB0BW_memoryRecallHead span{gap:2px;min-width:0;display:grid}.fnB0BW_memoryRecallHead small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_memoryRecallHead .fnB0BW_button{min-height:24px;font-size:var(--fcg-font-caption);flex:none;padding:2px 8px}.fnB0BW_memoryRecallList{flex-wrap:wrap;gap:6px;display:flex}.fnB0BW_memoryRecallList span{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:3px 9px}.fnB0BW_memoryList{gap:7px;max-height:360px;padding-right:3px;display:grid;overflow:auto}.fnB0BW_memoryRecord{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 12px;display:grid}.fnB0BW_memoryRecordSelected{box-shadow:inset 0 0 0 1px var(--fcg-brand)}.fnB0BW_memoryRecordSelect{min-width:0;color:var(--fcg-text-primary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:0;display:flex}.fnB0BW_memoryRecordSelect:disabled{cursor:not-allowed;opacity:.6}.fnB0BW_memoryRecordSelect>span{gap:3px;min-width:0;display:grid}.fnB0BW_memoryRecordSelect strong,.fnB0BW_memoryRecordSelect small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_memoryRecordSelect strong{font-size:var(--fcg-font-caption)}.fnB0BW_memoryRecordSelect small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_memoryTrust{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);flex:none;padding:2px 6px;font-weight:600}.fnB0BW_memoryTrustReviewed{background:color-mix(in srgb, var(--fcg-success) 12%, var(--fcg-bg-layer-2));color:var(--fcg-success)}.fnB0BW_memoryTrustDraft{background:color-mix(in srgb, var(--fcg-warn) 13%, var(--fcg-bg-layer-2));color:var(--fcg-warn-label)}.fnB0BW_memoryDetail{border:1px solid color-mix(in srgb, var(--fcg-text-primary) 18%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:9px;padding:11px;display:grid}.fnB0BW_memoryDetail p{max-height:240px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:19px;overflow:auto}.fnB0BW_memoryTags{flex-wrap:wrap;gap:5px;display:flex}.fnB0BW_memoryTags span{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);padding:2px 6px}.fnB0BW_memoryTimeline{border-top:1px solid var(--fcg-line);gap:5px;padding-top:9px;display:grid}.fnB0BW_memoryTimeline strong{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_memoryTimeline button{color:var(--fcg-text-tertiary);cursor:pointer;font:var(--fcg-font-caption)/16px var(--fcg-font-mono);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;padding:0;overflow:hidden}.fnB0BW_memoryTimeline button:hover,.fnB0BW_memoryTimelineCurrent{color:var(--fcg-text-primary)!important}.fnB0BW_graphPanel{border:1px solid color-mix(in srgb, var(--fcg-brand) 24%, var(--fcg-line));border-radius:var(--fcg-radius-md);background:linear-gradient(135deg, color-mix(in srgb, var(--fcg-brand) 5%, var(--fcg-bg-layer-2)), var(--fcg-bg-layer-1));gap:10px;margin-top:14px;padding:12px;display:grid}.fnB0BW_graphState{border-left:2px solid var(--fcg-brand);background:var(--fcg-bg-layer-2);gap:3px;padding:10px 11px;display:grid}.fnB0BW_graphState strong{font-size:var(--fcg-font-caption)}.fnB0BW_graphState small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_graphInstallList{gap:8px;display:grid}.fnB0BW_graphInstallRow{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.fnB0BW_graphInstallRow>div{flex:1;gap:4px;min-width:0;display:grid}.fnB0BW_graphInstallRow strong{font-size:var(--fcg-font-caption)}.fnB0BW_graphInstallRow small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_graphInstallRow .fnB0BW_input{margin-top:4px}.fnB0BW_verificationGrid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:7px;display:grid}.fnB0BW_verificationGrid article{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:4px;min-width:0;padding:10px 12px;display:grid}.fnB0BW_verificationGrid strong{font-size:var(--fcg-font-caption);text-transform:uppercase}.fnB0BW_verificationGrid small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_verificationGrid pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:120px;color:var(--fcg-text-secondary);font:var(--fcg-font-caption)/19px var(--fcg-font-mono);margin:0;overflow:auto}.fnB0BW_mcpTemplateBar{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);align-items:center;gap:7px;margin-top:12px;display:flex}.fnB0BW_templateButton{border:1px dashed var(--fcg-line-strong);border-radius:var(--fcg-radius-sm);min-height:26px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;align-items:center;gap:4px;padding:3px 8px;display:inline-flex}.fnB0BW_templateButton:hover{border-style:solid;border-color:var(--fcg-text-primary);color:var(--fcg-text-primary)}.fnB0BW_mcpPresetHeading{justify-content:space-between;align-items:baseline;gap:10px;margin-top:14px;display:flex}.fnB0BW_mcpPresetHeading strong{font-size:var(--fcg-font-caption)}.fnB0BW_mcpPresetHeading small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_mcpPresetGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.fnB0BW_mcpPresetCard{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:linear-gradient(135deg, var(--fcg-bg-layer-2), var(--fcg-bg-layer-1));min-width:0;color:var(--fcg-text-primary);cursor:pointer;font:inherit;text-align:left;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px;display:grid}.fnB0BW_mcpPresetCard:hover{border-color:var(--fcg-line-strong);box-shadow:var(--fcg-shadow-1);transform:translateY(-1px)}.fnB0BW_mcpPresetCard:disabled{cursor:not-allowed;opacity:.55;transform:none}.fnB0BW_mcpPresetCard>span:not(.fnB0BW_mcpPresetIcon){gap:2px;min-width:0;display:grid}.fnB0BW_mcpPresetCard strong{font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_mcpPresetCard small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.fnB0BW_mcpPresetCard b{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);white-space:nowrap;font-weight:500}.fnB0BW_mcpPresetIcon,.fnB0BW_mcpServerIcon{border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-brand) 12%, var(--fcg-bg-layer-2));width:30px;height:30px;color:var(--fcg-brand);flex:none;place-items:center;display:grid}.fnB0BW_mcpServerIcon{width:32px;height:32px}.fnB0BW_mcpMarketplaceGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.fnB0BW_mcpMarketplaceCard{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:linear-gradient(135deg, var(--fcg-bg-layer-2), var(--fcg-bg-layer-1));grid-template-columns:auto minmax(0,1fr);gap:9px;min-width:0;padding:10px;display:grid}.fnB0BW_mcpMarketplaceIcon{object-fit:cover;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);flex:none;width:30px;height:30px}.fnB0BW_mcpMarketplaceCopy{gap:3px;min-width:0;display:grid}.fnB0BW_mcpMarketplaceCopy>div{justify-content:space-between;align-items:center;gap:6px;display:flex}.fnB0BW_mcpMarketplaceCopy strong,.fnB0BW_mcpMarketplaceCopy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_mcpMarketplaceCopy strong{font-size:var(--fcg-font-caption)}.fnB0BW_mcpMarketplaceCopy span{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);flex:none;padding:2px 6px}.fnB0BW_mcpMarketplaceCopy small,.fnB0BW_mcpMarketplaceCopy em{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);font-style:normal;line-height:18px}.fnB0BW_mcpMarketplaceActions{grid-column:1/-1;justify-content:space-between;align-items:center;gap:8px;display:flex}.fnB0BW_mcpMarketplaceActions a{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-decoration:none}.fnB0BW_mcpMarketplaceActions a:hover{color:var(--fcg-text-primary);text-decoration:underline}.fnB0BW_mcpMarketplaceActions .fnB0BW_button{min-height:27px;font-size:var(--fcg-font-caption);padding:3px 8px}.fnB0BW_mcpJsonPanel{border:1px solid color-mix(in srgb, var(--fcg-brand) 32%, var(--fcg-line));border-radius:var(--fcg-radius-md);background:color-mix(in srgb, var(--fcg-brand) 4%, var(--fcg-bg-layer-1));gap:9px;margin-top:12px;padding:11px;display:grid}.fnB0BW_mcpJsonPanel .fnB0BW_capabilityFormHead{grid-template-columns:1fr auto;align-items:start;gap:4px 10px;display:grid}.fnB0BW_mcpJsonPanel .fnB0BW_capabilityFormHead small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);grid-column:1/-1;line-height:18px}.fnB0BW_mcpJsonInput{box-sizing:border-box;resize:vertical;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);width:100%;min-height:170px;color:var(--fcg-text-primary);font:var(--fcg-font-caption)/18px var(--fcg-font-mono);outline:none;padding:10px}.fnB0BW_mcpJsonInput:focus{border-color:var(--fcg-brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_mcpServerList{gap:8px;margin-top:12px;display:grid}.fnB0BW_mcpServerCard{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:12px 14px;display:flex}.fnB0BW_mcpServerMain{gap:4px;min-width:0;display:grid}.fnB0BW_mcpServerMain>small{color:var(--fcg-text-tertiary);font:var(--fcg-font-caption)/16px var(--fcg-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_mcpServerTitle{align-items:center;gap:7px;min-width:0;display:flex}.fnB0BW_mcpServerTitle strong{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-body);overflow:hidden}.fnB0BW_mcpServerActions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:7px;display:flex}.fnB0BW_inlineSwitch{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:center;gap:4px;display:inline-flex}.fnB0BW_inlineSwitch input{width:14px;height:14px;accent-color:var(--fcg-brand);cursor:pointer;margin:0}.fnB0BW_emptyCapability{border:1px dashed var(--fcg-line-strong);border-radius:var(--fcg-radius-md);color:var(--fcg-text-secondary);text-align:center;gap:4px;margin-top:12px;padding:18px 14px;display:grid}.fnB0BW_emptyCapability small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_skillPanel{gap:8px;margin-top:14px;padding-top:1px;display:grid}.fnB0BW_skillPanelHeader{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.fnB0BW_skillPanelHeader small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_skillCard{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);border:1px solid #0000;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.fnB0BW_skillCard:hover{border-color:var(--fcg-line);background:var(--fcg-bg-layer-2)}.fnB0BW_skillCardBody{min-width:0;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;flex:1;gap:4px;padding:0;display:grid}.fnB0BW_skillCardBody:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_skillCardControl{flex:none;justify-items:end;gap:2px;padding-top:2px;display:grid}.fnB0BW_skillCardToggle{color:var(--fcg-text-tertiary);cursor:pointer;font-size:var(--fcg-font-caption);white-space:nowrap;align-items:center;gap:6px;display:flex}.fnB0BW_skillCardToggle input{margin:0}.fnB0BW_skillCardClear{color:var(--fcg-brand);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;padding:0}.fnB0BW_skillCardClear:disabled{opacity:.5;cursor:default}.fnB0BW_skillDetailControl{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:10px;padding:9px 12px;display:flex}.fnB0BW_skillDetailControl>small{flex-basis:100%}.fnB0BW_skillForward{margin-top:12px}.fnB0BW_skillForwardHead{gap:2px;margin-bottom:6px;display:grid}.fnB0BW_skillForwardHead strong{font-size:var(--fcg-font-caption)}.fnB0BW_skillForwardHead small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_skillCardHead{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.fnB0BW_skillCard strong{font-size:var(--fcg-font-caption)}.fnB0BW_skillCard p{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);margin:0;line-height:18px}.fnB0BW_skillCard small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_skillFileBar{flex-wrap:wrap;gap:6px;margin:12px 0 0;display:flex}.fnB0BW_skillFileChip{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);max-width:100%;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;padding:4px 9px;overflow:hidden}.fnB0BW_skillFileChip:hover{background:var(--fcg-bg-hover);color:var(--fcg-text-primary)}.fnB0BW_skillFileChipActive{border-color:var(--fcg-brand);color:var(--fcg-text-primary)}.fnB0BW_skillFileChip:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_workbuddyHeaderActions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.fnB0BW_accountManagerButton{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);min-height:28px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);white-space:nowrap;padding:4px 9px}.fnB0BW_accountManagerButton:hover{background:var(--fcg-bg-hover);color:var(--fcg-text-primary)}.fnB0BW_accountRow{justify-content:space-between;align-items:center;gap:14px;min-width:0;display:flex}.fnB0BW_accountIdentity{min-width:0}.fnB0BW_accountIdentityWithAvatar{align-items:center;gap:10px;min-width:0;display:flex}.fnB0BW_accountText{min-width:0}.fnB0BW_accountAvatar{border-radius:var(--fcg-radius-md);border:1px solid #0000;flex:none;place-items:center;width:42px;height:42px;display:inline-grid;overflow:hidden;box-shadow:0 2px 8px #0f172a1a}.fnB0BW_accountAvatarRemote{border-color:var(--fcg-line);background:#fff}.fnB0BW_accountAvatarRemote img{object-fit:cover;width:100%;height:100%}.fnB0BW_accountAvatarMonogram{font-size:var(--fcg-font-section);letter-spacing:-.04em;font-weight:800;line-height:1}.fnB0BW_accountAvatarQq{color:#fff;background:linear-gradient(145deg,#38bdf8,#1263bd);border-color:#1688d8}.fnB0BW_accountAvatarGoogle{background:linear-gradient(145deg, var(--fcg-bg-layer-2), var(--fcg-bg-layer-1));color:#4285f4;text-shadow:1px 0 #ea4335,0 1px #34a853,-1px 0 #fbbc05;border-color:#d8dce5}.fnB0BW_accountAvatarGeneric{border-color:var(--fcg-line);background:var(--fcg-bg-layer-1);color:var(--fcg-text-tertiary)}.fnB0BW_accountAvatarGeneric svg{fill:currentColor;width:22px;height:22px}.fnB0BW_accountName{text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.fnB0BW_accountEmail{text-overflow:ellipsis;white-space:nowrap;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-top:3px;display:block;overflow:hidden}.fnB0BW_accountActions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:9px;display:flex}.fnB0BW_clineUsage{gap:7px;margin-top:4px;display:grid}.fnB0BW_clineUsageHead{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_clineUsageRow{grid-template-columns:84px minmax(0,1fr) 44px;align-items:center;gap:10px;display:grid}.fnB0BW_clineUsageLabel{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-caption);overflow:hidden}.fnB0BW_clineUsageValue{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;text-align:right}.fnB0BW_clineUsageMeter{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);height:4px;overflow:hidden}.fnB0BW_clineUsageFill{border-radius:inherit;background:var(--fcg-brand);height:100%;transition:width .3s}.fnB0BW_clineUsageFillHigh{background:var(--fcg-warn)}.fnB0BW_balance{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:var(--fcg-success);font-size:var(--fcg-font-body-lg);font-variant-numeric:tabular-nums;align-items:baseline;gap:7px;padding:5px 11px;font-weight:600;display:inline-flex}.fnB0BW_balanceLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);font-weight:500}.fnB0BW_authForm{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.fnB0BW_authPanel{box-sizing:border-box;border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-1);width:100%;box-shadow:var(--fcg-shadow-2);gap:16px;padding:26px 24px 22px;display:grid}.fnB0BW_authLayout{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:20px;margin-top:6px;display:grid}.fnB0BW_authHead{text-align:center;justify-items:center;gap:6px;display:grid}.fnB0BW_authTitle{color:var(--fcg-text-primary);letter-spacing:-.01em;font-size:17px;font-weight:650;line-height:24px}.fnB0BW_authSubtitle{max-width:300px;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_authTabs{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-tip);grid-template-columns:1fr 1fr;gap:2px;padding:3px;display:grid}.fnB0BW_authTab{min-height:32px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);transition:background var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);background:0 0;border:0;border-radius:8px}.fnB0BW_authTab:hover{color:var(--fcg-text-primary)}.fnB0BW_authTab:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_authTabActive{background:var(--fcg-bg-layer-1);box-shadow:var(--fcg-shadow-1);color:var(--fcg-text-primary);font-weight:600}.fnB0BW_authStack{gap:11px;display:grid}.fnB0BW_authPanel .fnB0BW_input{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-tip);min-height:42px;font-size:var(--fcg-font-body);border-color:#0000;padding:10px 13px}.fnB0BW_authPanel .fnB0BW_input::placeholder{color:var(--fcg-text-tertiary)}.fnB0BW_authPanel .fnB0BW_input:hover:not(:focus){border-color:var(--fcg-line)}.fnB0BW_authPanel .fnB0BW_input:focus{border-color:var(--fcg-brand);background:var(--fcg-bg-layer-1);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_authPanel .fnB0BW_input:-webkit-autofill,.fnB0BW_authPanel .fnB0BW_input:-webkit-autofill:hover,.fnB0BW_authPanel .fnB0BW_input:-webkit-autofill:focus{-webkit-text-fill-color:var(--fcg-text-primary);box-shadow:0 0 0 60px var(--fcg-bg-tip) inset}.fnB0BW_authCodeRow{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.fnB0BW_authCodeSend{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);min-height:42px;color:var(--fcg-text-primary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;white-space:nowrap;transition:background var(--fcg-fast) var(--fcg-ease), border-color var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);padding:0 14px}.fnB0BW_authCodeSend:hover:not(:disabled){border-color:var(--fcg-line-strong);background:var(--fcg-bg-hover)}.fnB0BW_authCodeSend:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_authCodeSend:disabled{cursor:not-allowed;color:var(--fcg-text-tertiary)}.fnB0BW_authSubmit{border-radius:var(--fcg-radius-md);background:var(--fcg-brand);width:100%;min-height:42px;color:var(--fcg-text-on-brand-fixed);cursor:pointer;font:inherit;font-size:var(--fcg-font-body);letter-spacing:.01em;transition:background var(--fcg-fast) var(--fcg-ease), box-shadow var(--fcg-fast) var(--fcg-ease), transform var(--fcg-fast) var(--fcg-ease);border:1px solid #0000;font-weight:600}.fnB0BW_authSubmit:hover:not(:disabled){background:var(--fcg-brand-strong)}.fnB0BW_authSubmit:active:not(:disabled){transform:translateY(1px)}.fnB0BW_authSubmit:disabled{cursor:not-allowed;opacity:.5}.fnB0BW_authSubmit:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 30%, transparent);outline:none}.fnB0BW_authNote,.fnB0BW_authStep{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-align:center;line-height:18px}.fnB0BW_authStep{color:var(--fcg-text-secondary)}.fnB0BW_authSocialRow{grid-template-columns:1fr 1fr;gap:9px;display:grid}.fnB0BW_authSocialButton{box-sizing:border-box;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);min-height:42px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-body);transition:border-color var(--fcg-fast) var(--fcg-ease), background var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);justify-content:center;align-items:center;gap:8px;font-weight:550;display:inline-flex}.fnB0BW_authSocialButton svg{flex:none;width:16px;height:16px}.fnB0BW_authSocialButton:hover:not(:disabled){border-color:var(--fcg-line-strong);background:var(--fcg-bg-hover);color:var(--fcg-text-primary)}.fnB0BW_authSocialButton:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_authSocialButton:disabled{cursor:progress;opacity:.6}.fnB0BW_authDivider{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);align-items:center;gap:10px;display:flex}.fnB0BW_authDivider:before,.fnB0BW_authDivider:after{background:var(--fcg-line);content:\"\";flex:1;height:1px}.fnB0BW_authNotice{border:1px solid color-mix(in srgb, var(--fcg-brand) 26%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-brand) 6%, var(--fcg-bg-layer-1));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-align:center;padding:9px 11px;line-height:18px}.fnB0BW_authFull{grid-column:1/-1}.fnB0BW_remember{color:var(--fcg-text-secondary);cursor:pointer;font-size:var(--fcg-font-caption);align-items:center;gap:8px;display:flex}.fnB0BW_remember input{width:15px;height:15px;accent-color:var(--fcg-brand);cursor:pointer;margin:0}.fnB0BW_rememberRow{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.fnB0BW_passwordField{min-width:0;display:flex;position:relative}.fnB0BW_authPanel .fnB0BW_passwordField .fnB0BW_input{width:100%;padding-right:64px}.fnB0BW_passwordToggle{border-radius:var(--fcg-radius-sm);color:var(--fcg-text-tertiary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;padding:4px 6px;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.fnB0BW_passwordToggle:hover{color:var(--fcg-text-primary)}.fnB0BW_paymentBar{border-bottom:1px solid var(--fcg-line-subtle);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px 16px;margin-bottom:18px;padding-bottom:16px;display:grid}.fnB0BW_paymentBarDetail{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;grid-column:1/-1;line-height:17px}.fnB0BW_paymentPicker{justify-items:end;gap:6px;min-width:0;display:grid}.fnB0BW_paymentHeading{font-size:var(--fcg-font-title);letter-spacing:-.01em;color:var(--fcg-text-primary);margin-bottom:3px;font-weight:600;display:block}.fnB0BW_paymentMethod{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:center;gap:8px;display:inline-flex}.fnB0BW_paymentMethod>span{white-space:nowrap;flex:none}.fnB0BW_paymentMethod .fnB0BW_select{width:auto;min-width:176px;max-width:100%}.fnB0BW_alert{border:1px solid color-mix(in srgb, var(--fcg-danger) 28%, transparent);border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-danger) 7%, var(--fcg-bg-layer-2));color:var(--fcg-danger);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin-bottom:10px;padding:9px 11px;line-height:18px}.fnB0BW_alert button{color:inherit;font-size:var(--fcg-font-caption);cursor:pointer;white-space:nowrap;background:0 0;border:0;margin-left:10px;padding:0;text-decoration:underline}.fnB0BW_pending{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 6%, var(--fcg-bg-layer-2));gap:8px;margin-bottom:12px;padding:10px 11px;display:grid}.fnB0BW_pendingTitle{font-weight:600}.fnB0BW_pendingHint{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_pendingRow{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:space-between;align-items:center;gap:8px;display:flex}.fnB0BW_pendingText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.fnB0BW_plans,.fnB0BW_planShared,.fnB0BW_payDialog{--pixel-ink:color-mix(in srgb, var(--fcg-brand) 58%, var(--fcg-text-primary));--pixel-face:var(--fcg-bg-layer-1);--pixel-recess:color-mix(in srgb, var(--fcg-text-primary) 4%, var(--fcg-bg-layer-1));--pixel-recess-edge:color-mix(in srgb, var(--pixel-ink) 26%, transparent);--pixel-recess-rule:color-mix(in srgb, var(--pixel-ink) 22%, transparent);--pixel-rule:color-mix(in srgb, var(--pixel-ink) 18%, transparent);--pixel-notch:polygon(0 8px, 4px 8px, 4px 4px, 8px 4px, 8px 0, calc(100% - 8px) 0, calc(100% - 8px) 4px, calc(100% - 4px) 4px, calc(100% - 4px) 8px, 100% 8px, 100% calc(100% - 8px), calc(100% - 4px) calc(100% - 8px), calc(100% - 4px) calc(100% - 4px), calc(100% - 8px) calc(100% - 4px), calc(100% - 8px) 100%, 8px 100%, 8px calc(100% - 4px), 4px calc(100% - 4px), 4px calc(100% - 8px), 0 calc(100% - 8px));--pixel-chip:polygon(0 3px, 3px 3px, 3px 0, calc(100% - 3px) 0, calc(100% - 3px) 3px, 100% 3px, 100% calc(100% - 3px), calc(100% - 3px) calc(100% - 3px), calc(100% - 3px) 100%, 3px 100%, 3px calc(100% - 3px), 0 calc(100% - 3px))}.fnB0BW_plans{grid-template-columns:repeat(auto-fit,minmax(236px,1fr));gap:16px;padding:0 6px 6px 0;display:grid}.fnB0BW_planShell{display:flex;position:relative}.fnB0BW_planShell:before{background:var(--pixel-ink);clip-path:var(--pixel-notch);content:\"\";transition:transform var(--fcg-fast) var(--fcg-ease);position:absolute;inset:0;transform:translate(6px,6px)}.fnB0BW_planShell:hover:before{transform:translate(8px,8px)}.fnB0BW_plan{border:2px solid var(--pixel-ink);background:var(--pixel-face);min-width:0;clip-path:var(--pixel-notch);transition:transform var(--fcg-fast) var(--fcg-ease);flex-direction:column;flex:1;gap:11px;padding:16px 16px 14px;display:flex;position:relative}.fnB0BW_plan:hover{transform:translate(-2px,-2px)}.fnB0BW_planTop{border-bottom:2px solid var(--pixel-rule);align-items:center;gap:8px;padding-bottom:9px;display:flex}.fnB0BW_planDot{border:1px solid var(--pixel-ink);background:var(--fcg-brand);width:9px;height:9px;box-shadow:1px 1px 0 0 var(--pixel-ink);flex:none}.fnB0BW_planName{min-width:0;color:var(--fcg-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-body-lg);letter-spacing:-.012em;flex:1;font-weight:800;overflow:hidden}.fnB0BW_planTag{border:1px solid var(--pixel-ink);background:var(--fcg-brand);color:var(--fcg-text-on-brand-fixed);font-family:var(--fcg-font-mono);letter-spacing:.06em;white-space:nowrap;clip-path:var(--pixel-chip);flex:none;padding:2px 8px;font-size:10px;font-weight:700}.fnB0BW_planSave{border:1px solid color-mix(in srgb, var(--fcg-success) 52%, var(--pixel-ink));background:color-mix(in srgb, var(--fcg-success) 13%, transparent);color:var(--fcg-success);letter-spacing:.04em;white-space:nowrap;clip-path:var(--pixel-chip);flex:none;padding:2px 7px;font-size:10px;font-weight:700}.fnB0BW_planFeatured .fnB0BW_planRecess{background:color-mix(in srgb, var(--fcg-brand) 8%, var(--pixel-recess))}.fnB0BW_planShared{border:2px solid var(--pixel-ink);background:var(--pixel-recess);box-shadow:inset 2px 2px 0 0 var(--pixel-recess-edge);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);flex-wrap:wrap;align-items:center;gap:14px;margin-top:16px;padding:10px 12px;display:flex}.fnB0BW_planShared small{color:var(--fcg-text-tertiary);font-family:var(--fcg-font-mono);letter-spacing:.1em;font-size:10px;font-weight:700}.fnB0BW_planShared span{align-items:center;gap:6px;display:inline-flex}.fnB0BW_planRecess{border:2px solid var(--pixel-ink);background:var(--pixel-recess);box-shadow:inset 2px 2px 0 0 var(--pixel-recess-edge);align-items:stretch;padding:10px 12px;display:flex}.fnB0BW_planCreditBlock{flex:auto;gap:3px;min-width:0;display:grid}.fnB0BW_planPriceLabel{color:var(--fcg-brand);letter-spacing:.08em;align-items:center;gap:5px;font-size:10px;font-weight:700;display:flex}.fnB0BW_planRecessCode{font-family:var(--fcg-font-mono);letter-spacing:.14em}.fnB0BW_planPriceRow{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.fnB0BW_planPrice{color:var(--fcg-text-primary);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:800;line-height:1}.fnB0BW_planOriginalPrice{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-decoration:line-through}.fnB0BW_planPayBlock{border-left:2px solid var(--pixel-recess-rule);align-content:center;justify-items:end;gap:3px;margin-left:12px;padding-left:12px;display:grid}.fnB0BW_planPayLabel{color:var(--fcg-text-tertiary);font-size:10px;font-weight:600}.fnB0BW_planPayable{color:var(--fcg-brand);font-size:var(--fcg-font-title);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:800}.fnB0BW_features{border-top:2px solid var(--pixel-rule);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:6px;padding-top:10px;line-height:17px;display:grid}.fnB0BW_features>span{grid-template-columns:12px minmax(0,1fr);align-items:start;gap:8px;display:grid}.fnB0BW_planCheck{border:1px solid var(--pixel-ink);background:var(--fcg-brand);width:7px;height:7px;margin-top:5px;display:block}.fnB0BW_planFeatureText{min-width:0}.fnB0BW_planButton{border:2px solid var(--pixel-ink);background:var(--fcg-brand);width:100%;min-height:40px;color:var(--fcg-text-on-brand-fixed);letter-spacing:.04em;box-shadow:inset 0 2px 0 0 #ffffff61, 0 3px 0 0 var(--pixel-ink);transition:background var(--fcg-fast) var(--fcg-ease), box-shadow 60ms linear, transform 60ms linear;border-radius:0;margin-top:auto;font-weight:700}.fnB0BW_planButton:hover:not(:disabled){background:var(--fcg-brand-strong);box-shadow:inset 0 2px 0 0 #ffffff7a, 0 4px 0 0 var(--pixel-ink)}.fnB0BW_planButton:active:not(:disabled){box-shadow:inset 0 1px 0 0 #0000002e, 0 0 0 0 var(--pixel-ink);transform:translateY(3px)}.fnB0BW_planBlurb{gap:3px;display:grid}.fnB0BW_planPerk{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);line-height:17px}.fnB0BW_planLead{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:17px}.fnB0BW_planFootnote{color:var(--fcg-text-tertiary);align-items:center;gap:6px;font-size:11px;display:flex}.fnB0BW_planDotOk{background:var(--fcg-success);flex:none;width:6px;height:6px}.fnB0BW_planBrandMark{color:var(--fcg-brand);font-family:var(--fcg-font-mono);letter-spacing:.05em;margin-left:auto;font-size:10px;font-weight:700}.fnB0BW_pricingSection{border-top:1px solid var(--fcg-line);gap:10px;margin-top:20px;padding-top:18px;display:grid}.fnB0BW_pricingHeader{justify-content:space-between;align-items:end;gap:14px;display:flex}.fnB0BW_pricingHeader>div{gap:3px;display:grid}.fnB0BW_pricingSearch{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);width:min(250px,100%);min-height:32px;color:var(--fcg-text-primary);font:inherit;font-size:var(--fcg-font-caption);outline:none;padding:6px 10px}.fnB0BW_pricingSearch:focus{border-color:var(--fcg-brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_pricingNotice{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 7%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:8px 10px}.fnB0BW_pricingTableWrap{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);width:100%;overflow:auto hidden}.fnB0BW_pricingTable{table-layout:fixed;border-collapse:collapse;width:100%;min-width:660px;font-size:var(--fcg-font-caption)}.fnB0BW_pricingTable th{border-bottom:1px solid var(--fcg-line-subtle);background:var(--fcg-bg-layer-1);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);letter-spacing:.02em;text-align:left;white-space:nowrap;padding:10px 14px;font-weight:600}.fnB0BW_pricingTable td{border-bottom:1px solid var(--fcg-line-subtle);color:var(--fcg-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;padding:10px 12px}.fnB0BW_pricingTable tbody tr:last-child td{border-bottom:0}.fnB0BW_pricingTable tbody tr:hover{background:var(--fcg-bg-hover)}.fnB0BW_pricingFreeSection{border-top:1px dashed var(--fcg-line-subtle);gap:8px;margin-top:6px;padding-top:14px;display:grid}.fnB0BW_pricingFreeHeader{gap:2px;display:grid}.fnB0BW_pricingFreeHeader strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-body);font-weight:650}.fnB0BW_paymentMethods{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;margin-top:0;display:flex}.fnB0BW_paymentMethodChip{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);letter-spacing:.01em;white-space:nowrap;padding:2px 9px;font-weight:550}@media (width<=520px){.fnB0BW_paymentBar{grid-template-columns:minmax(0,1fr)}.fnB0BW_paymentPicker{justify-items:stretch}.fnB0BW_paymentMethod .fnB0BW_select{width:100%}.fnB0BW_paymentMethods{justify-content:flex-start}}.fnB0BW_pricingTable th:first-child,.fnB0BW_pricingTable td:first-child{width:34%}.fnB0BW_pricingTable td:first-child{white-space:normal}.fnB0BW_pricingSection .fnB0BW_pricingTable th:first-child,.fnB0BW_pricingSection .fnB0BW_pricingTable td:first-child{width:26%}.fnB0BW_pricingSection .fnB0BW_pricingTable th:nth-child(2),.fnB0BW_pricingSection .fnB0BW_pricingTable td:nth-child(2){width:22%}.fnB0BW_pricingSection .fnB0BW_pricingTable td.fnB0BW_pricingGroup{white-space:normal}.fnB0BW_pricingTable strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption);font-weight:600;display:block}.fnB0BW_pricingTable code{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;display:block;overflow:hidden}.fnB0BW_pricingTable small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-top:3px;display:block}.fnB0BW_tokenHero{border-bottom:1px solid var(--fcg-line);justify-content:space-between;align-items:flex-end;gap:16px;margin:-2px 0 14px;padding:10px 0 14px;display:flex}.fnB0BW_tokenEyebrow{color:var(--fcg-brand);font-weight:650;font-size:var(--fcg-font-caption);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:8px;display:flex}.fnB0BW_tokenPulse{corner-shape:round;background:var(--fcg-success);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-success) 18%, transparent);border-radius:50%}.fnB0BW_tokenTitle{font-size:var(--fcg-font-display);letter-spacing:-.03em;margin:3px 0 0;line-height:31px}.fnB0BW_tokenSourceTabs{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);gap:2px;padding:3px;display:inline-flex}.fnB0BW_tokenSourceTabs button{min-height:30px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;border-radius:5px;padding:5px 14px}.fnB0BW_tokenSourceTabs button:hover{background:var(--fcg-bg-hover)}.fnB0BW_tokenSourceTabs .fnB0BW_tokenSourceActive{background:var(--fcg-bg-layer-2);color:var(--fcg-text-primary);box-shadow:var(--fcg-shadow-1);font-weight:600}.fnB0BW_tokenBalRow{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);align-items:center;gap:10px;margin-top:14px;padding:12px 16px;display:flex}.fnB0BW_tokenBalDot{corner-shape:round;background:var(--fcg-success);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-success) 18%, transparent);border-radius:50%;flex:none}.fnB0BW_tokenBalDot[data-level=low]{background:var(--fcg-warn);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-warn) 18%, transparent)}.fnB0BW_tokenBalDot[data-level=danger]{background:var(--fcg-danger);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-danger) 18%, transparent)}.fnB0BW_tokenBalAmount{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:20px;font-weight:700}.fnB0BW_tokenBalBadge{border-radius:var(--fcg-radius-full);background:color-mix(in srgb, var(--fcg-success) 12%, transparent);color:var(--fcg-success);font-size:var(--fcg-font-caption);white-space:nowrap;padding:2px 9px;line-height:18px}.fnB0BW_tokenBalBadge[data-level=low]{background:color-mix(in srgb, var(--fcg-warn) 13%, transparent);color:var(--fcg-warn-label)}.fnB0BW_tokenBalBadge[data-level=danger]{background:color-mix(in srgb, var(--fcg-danger) 12%, transparent);color:var(--fcg-danger)}.fnB0BW_tokenBalUpdated{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_tokenBalHint{min-width:0;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.fnB0BW_tokenBalRefresh{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);min-height:28px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);transition:color var(--fcg-fast) var(--fcg-ease), border-color var(--fcg-fast) var(--fcg-ease);background:0 0;margin-left:auto;padding:4px 12px}.fnB0BW_tokenBalRefresh:hover{border-color:var(--fcg-line-strong);color:var(--fcg-text-primary)}.fnB0BW_tokenSessionRow{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding:10px 16px;display:flex}.fnB0BW_tokenSessionRow strong{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWaste{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);flex-direction:column;gap:10px;margin-top:10px;padding:14px 16px;display:flex}.fnB0BW_tokenCacheWasteHead{align-items:baseline;gap:8px;display:flex}.fnB0BW_tokenCacheWasteHead strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-body)}.fnB0BW_tokenCacheWasteClean{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_tokenCacheWasteStats{flex-wrap:wrap;gap:8px;display:flex}.fnB0BW_tokenCacheWasteStat{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);flex-direction:column;flex:120px;gap:2px;padding:8px 10px;display:flex}.fnB0BW_tokenCacheWasteStat span{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_tokenCacheWasteStat b{color:var(--fcg-text-primary);font-size:var(--fcg-font-body);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWasteStat[data-tone=warn] b{color:var(--fcg-warn-label)}.fnB0BW_tokenCacheWasteCauses{flex-wrap:wrap;gap:6px;display:flex}.fnB0BW_tokenCacheWasteCause{border-radius:var(--fcg-radius-full);font-size:var(--fcg-font-caption);background:color-mix(in srgb, var(--fcg-warn) 10%, transparent);color:var(--fcg-text-secondary);padding:2px 9px;line-height:18px}.fnB0BW_tokenCacheWasteCause[data-cause=idle-gap]{background:color-mix(in srgb, var(--fcg-warn) 10%, transparent)}.fnB0BW_tokenCacheWasteCause[data-cause=model-changed]{background:color-mix(in srgb, var(--fcg-danger) 10%, transparent)}.fnB0BW_tokenCacheWasteCause[data-cause=prefix-changed]{background:color-mix(in srgb, var(--fcg-text-tertiary) 12%, transparent)}.fnB0BW_tokenCacheWasteCause b{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWasteWorst{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.fnB0BW_tokenCacheWasteWorst li{font-size:var(--fcg-font-caption);color:var(--fcg-text-secondary);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:baseline;gap:10px;display:grid}.fnB0BW_tokenCacheWasteWorstHead{color:var(--fcg-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.fnB0BW_tokenCacheWasteWorstModel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_tokenCacheWasteWorstTokens{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWasteWorstCause{text-align:right;color:var(--fcg-text-tertiary)}.fnB0BW_tokenCacheWasteFoot{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWasteHint{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin:0;line-height:1.5}.fnB0BW_tokenSummaryGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:9px;display:grid}.fnB0BW_tokenMetric{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:4px;min-width:0;padding:12px 14px;display:grid}.fnB0BW_tokenMetric span{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_tokenMetric strong{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;font-size:22px;font-weight:700;line-height:26px;overflow:hidden}.fnB0BW_tokenMetric small{color:var(--fcg-text-tertiary);font-variant-numeric:tabular-nums;font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.fnB0BW_tokenPanel{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);margin-top:12px;padding:14px 16px}.fnB0BW_tokenPanelHeader{justify-content:space-between;align-items:center;gap:10px;min-height:30px;margin-bottom:10px;display:flex}.fnB0BW_tokenPanelTitle{gap:2px;min-width:0;display:grid}.fnB0BW_tokenPanelHeader strong{font-size:15px}.fnB0BW_tokenPanelKicker{color:var(--fcg-brand);font:700 var(--fcg-font-caption)/16px var(--fcg-font-mono);letter-spacing:.11em}.fnB0BW_tokenRangePills{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);scrollbar-width:none;flex-wrap:nowrap;flex:0 auto;gap:2px;max-width:100%;padding:2px;display:inline-flex;overflow-x:auto}.fnB0BW_tokenRangePills::-webkit-scrollbar{display:none}.fnB0BW_tokenRangePills button{min-height:22px;color:var(--fcg-text-tertiary);cursor:pointer;font:var(--fcg-font-caption)/16px var(--fcg-font-mono);white-space:nowrap;background:0 0;border:0;border-radius:5px;flex:none;padding:2px 8px}.fnB0BW_tokenRangePills .fnB0BW_tokenRangeActive{background:var(--fcg-brand-subtle);color:var(--fcg-brand);font-weight:650}.fnB0BW_tokenHeatFilter{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:10px;display:flex}.fnB0BW_tokenHeatFilterLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-right:2px}.fnB0BW_tokenHeatFilterBtn{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);max-width:150px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;background:0 0;align-items:center;gap:6px;padding:2px 9px;line-height:18px;display:inline-flex;overflow:hidden}.fnB0BW_tokenHeatFilterBtn:hover{border-color:var(--fcg-line-strong);color:var(--fcg-text-primary)}.fnB0BW_tokenHeatFilterBtnActive{background:color-mix(in srgb, var(--model-color,var(--fcg-brand)) 14%, transparent);color:var(--model-color,var(--fcg-brand));border-color:#0000;font-weight:600}.fnB0BW_tokenPillDot{corner-shape:round;background:var(--model-color,var(--fcg-text-tertiary));border-radius:50%;flex:none;width:7px;height:7px}.fnB0BW_tokenChartHead{align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.fnB0BW_tokenChartTitle{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-weight:600}.fnB0BW_tokenChartTotal{color:var(--fcg-text-primary);font-size:var(--fcg-font-body);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:650}.fnB0BW_tokenChartModel{color:var(--model-color,var(--fcg-brand));font:600 var(--fcg-font-caption)/18px var(--fcg-font-mono);margin-left:auto}.fnB0BW_tokenChartWrap{--fcg-chart-hit:#bcd7f8;--fcg-chart-miss:#7aaff0;--fcg-chart-out:#2f6fe0;--fcg-chart-tip-bg:#fff;--fcg-chart-tip-fg:#1a1a1c;--fcg-chart-tip-muted:#6b7280;min-width:0;position:relative}body[data-ds-dark-theme] .fnB0BW_tokenChartWrap{--fcg-chart-hit:#a9c8f0;--fcg-chart-miss:#5f97e8;--fcg-chart-out:#3d7ef0;--fcg-chart-tip-bg:#1f1f21;--fcg-chart-tip-fg:#f5f6f8;--fcg-chart-tip-muted:#a1a1a8}.fnB0BW_tokenChartPlot{position:relative}.fnB0BW_tokenChartGrid{background:var(--fcg-line-subtle);opacity:.8;pointer-events:none;height:1px;position:absolute;left:0;right:0}.fnB0BW_tokenChartGrid span{color:var(--fcg-text-tertiary);font-variant-numeric:tabular-nums;font-size:11px;line-height:1;position:absolute;bottom:3px;left:0}.fnB0BW_tokenChartBar{background:var(--fcg-chart-out);transition:filter 90ms var(--fcg-ease);cursor:pointer;border-radius:3px 3px 0 0;position:absolute;bottom:0;overflow:hidden}.fnB0BW_tokenChartBar[data-active]{filter:brightness(1.14)}.fnB0BW_tokenChartBar[data-empty]{background:var(--fcg-line-subtle);opacity:.3}.fnB0BW_tokenChartCross{pointer-events:none;border-left:1px solid color-mix(in srgb, var(--fcg-text-tertiary) 40%, transparent);position:absolute;top:0;bottom:0}.fnB0BW_tokenChartSeg{width:100%;position:absolute;left:0}.fnB0BW_tokenChartSeg[data-top]{border-radius:3px 3px 0 0}.fnB0BW_tokenChartLegend{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 16px;margin-top:6px;line-height:18px;display:flex}.fnB0BW_tokenChartLegend span{align-items:center;gap:6px;min-width:0;display:inline-flex}.fnB0BW_tokenChartLegend i{border-radius:2px;flex:none;width:8px;height:8px}.fnB0BW_tokenChartTip{z-index:5;background:var(--fcg-chart-tip-bg);color:var(--fcg-chart-tip-muted);pointer-events:none;font-size:var(--fcg-font-caption);border-radius:8px;gap:3px;padding:8px 10px;line-height:14px;display:grid;position:absolute;box-shadow:0 10px 30px #00000047}.fnB0BW_tokenChartTipHead{color:var(--fcg-chart-tip-fg);justify-content:space-between;gap:14px;margin-bottom:2px;font-size:13px;display:flex}.fnB0BW_tokenChartTipHead b{font-variant-numeric:tabular-nums}.fnB0BW_tokenChartTipRow{align-items:center;gap:7px;min-width:0;display:flex}.fnB0BW_tokenChartTipRow b{color:var(--fcg-chart-tip-fg);font-variant-numeric:tabular-nums;margin-left:auto;font-weight:600}.fnB0BW_tokenChartSwatch{background:var(--fcg-line-strong);border-radius:2px;flex:none;width:8px;height:8px}.fnB0BW_tokenChartSwatch[data-tone=hit]{background:var(--fcg-chart-hit)}.fnB0BW_tokenChartSwatch[data-tone=miss]{background:var(--fcg-chart-miss)}.fnB0BW_tokenChartSwatch[data-tone=out]{background:var(--fcg-chart-out)}.fnB0BW_tokenChartSwatch[data-tone=req]{corner-shape:round;background:var(--fcg-chart-tip-muted);border-radius:50%}.fnB0BW_tokenChartAxis{height:18px;margin-top:2px;padding-left:46px;position:relative}.fnB0BW_tokenChartAxis span{color:var(--fcg-text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px;position:absolute;transform:translate(-50%)}.fnB0BW_tokenChartAxis span:first-child{transform:none}.fnB0BW_tokenChartAxis span:last-child{transform:translate(-100%)}.fnB0BW_tokenHeatTotals{border-top:1px solid var(--fcg-line-subtle);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-top:10px;padding-top:9px;display:flex}.fnB0BW_tokenHeatTotals b{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;margin-right:3px;font-weight:650}.fnB0BW_tokenHeatDaily{margin-left:auto}.fnB0BW_tokenModelBars{gap:6px;margin-bottom:12px;display:grid}.fnB0BW_tokenModelBarRow{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;grid-template-columns:minmax(90px,180px) minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.fnB0BW_tokenModelBarName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_tokenModelBarTrack{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-tip);height:4px;overflow:hidden}.fnB0BW_tokenModelBarTrack i{border-radius:inherit;background:var(--model-color,var(--fcg-brand));height:100%;display:block}.fnB0BW_tokenModelBarRow b{color:var(--fcg-text-primary);font-weight:600}.fnB0BW_tokenModelDot{corner-shape:round;background:var(--model-color,var(--fcg-text-tertiary));border-radius:50%;flex:none;width:7px;height:7px;margin-right:6px;display:inline-block}.fnB0BW_tokenNotice{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line-subtle));border-radius:var(--fcg-radius-md);background:color-mix(in srgb, var(--fcg-warn) 8%, var(--fcg-bg-layer-1));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);margin-top:10px;padding:10px 14px}.fnB0BW_tokenGatewayTable{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);overflow-x:auto}.fnB0BW_tokenGatewayTable .fnB0BW_pricingTable{min-width:560px}.fnB0BW_tokenEmpty{min-height:90px;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);place-items:center;display:grid}@media (width<=700px){.fnB0BW_tokenSummaryGrid{grid-template-columns:1fr 1fr}}@media (width<=520px){.fnB0BW_tokenHero{flex-direction:column;align-items:flex-start}.fnB0BW_tokenTitle{font-size:22px}.fnB0BW_tokenSummaryGrid{grid-template-columns:1fr}.fnB0BW_tokenPanelHeader{gap:6px}.fnB0BW_tokenChartTip{width:190px}.fnB0BW_tokenHeatTotals{gap:4px 10px}.fnB0BW_tokenHeatDaily{margin-left:0}.fnB0BW_tokenModelBarRow{grid-template-columns:minmax(70px,110px) minmax(0,1fr) auto}}.fnB0BW_pricePair{gap:1px;min-width:0;line-height:18px;display:grid}.fnB0BW_priceOriginal{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;text-decoration:line-through;overflow:hidden}.fnB0BW_pricingTable .fnB0BW_priceCurrent,.fnB0BW_pricingTable .fnB0BW_priceCurrentDiscount{color:var(--fcg-brand);font-size:var(--fcg-font-body);letter-spacing:-.01em;font-weight:650;display:block}.fnB0BW_pricingTable .fnB0BW_priceCurrentDiscount{color:var(--fcg-success)}.fnB0BW_pricingRequest{font-weight:600;color:var(--fcg-text-primary)!important}.fnB0BW_imageTiers{flex-wrap:wrap;align-items:start;gap:4px 18px;display:inline-flex}.fnB0BW_imageTier{gap:1px;min-width:0;display:grid}.fnB0BW_imageTierLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);letter-spacing:.02em;font-style:normal;font-weight:600}.fnB0BW_pricingEmpty{text-align:center;color:var(--fcg-text-tertiary)!important;padding:28px!important}.fnB0BW_order{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-1);gap:10px;margin-top:20px;padding:18px;display:grid}.fnB0BW_orderTitle{font-size:var(--fcg-font-body);letter-spacing:-.01em;font-weight:600}.fnB0BW_orderActions{flex-wrap:wrap;gap:7px;display:flex}.fnB0BW_qr{object-fit:contain;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:#fff;width:160px;max-width:100%;height:160px}.fnB0BW_qrWrap{justify-items:start;gap:8px;display:grid}.fnB0BW_textarea{resize:vertical;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-input);width:100%;min-height:72px;color:var(--fcg-text-primary);font:inherit;transition:border-color var(--fcg-fast) var(--fcg-ease), box-shadow var(--fcg-fast) var(--fcg-ease);outline:none;padding:10px 12px;line-height:1.5}.fnB0BW_textarea:focus{border-color:var(--fcg-brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_qrText{overflow-wrap:anywhere;max-width:min(100%,520px);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}@media (width<=800px){.fnB0BW_marketplaceGrid,.fnB0BW_mcpMarketplaceGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}.fnB0BW_poolManager{gap:12px;display:grid}.fnB0BW_poolToolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.fnB0BW_poolToolbarNote{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_poolToolbarActions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.fnB0BW_poolToggle{color:var(--fcg-text-secondary);cursor:pointer;font-size:var(--fcg-font-caption);align-items:center;gap:7px;display:inline-flex}.fnB0BW_poolToggle input{width:14px;height:14px;accent-color:var(--fcg-brand);cursor:pointer;margin:0}.fnB0BW_poolList{gap:10px;display:grid}.fnB0BW_poolAccount{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);transition:border-color var(--fcg-fast) var(--fcg-ease), background var(--fcg-fast) var(--fcg-ease);gap:10px;padding:12px;display:grid}.fnB0BW_poolAccount:hover{border-color:var(--fcg-line-strong);background:var(--fcg-bg-layer-2)}.fnB0BW_poolAccountHead{align-items:center;gap:10px;min-width:0;display:flex}.fnB0BW_poolIdentity{flex:auto;align-items:center;gap:10px;min-width:0;display:flex}.fnB0BW_poolMonogram{background:var(--fcg-brand-subtle);width:30px;height:30px;color:var(--fcg-brand);font:650 11px/1 var(--fcg-font-mono);letter-spacing:.02em;text-transform:uppercase;border-radius:9px;flex:none;place-items:center;display:grid}.fnB0BW_poolIdentityText{min-width:0}.fnB0BW_poolName{text-overflow:ellipsis;white-space:nowrap;color:var(--fcg-text-primary);font-size:var(--fcg-font-body);font-weight:600;display:block;overflow:hidden}.fnB0BW_poolSub{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;margin-top:2px;display:block;overflow:hidden}.fnB0BW_poolChips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.fnB0BW_poolChip{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-secondary);white-space:nowrap;padding:2px 8px;font-size:11px;line-height:16px}.fnB0BW_poolChipLive{background:color-mix(in srgb, var(--fcg-success) 14%, transparent);color:var(--fcg-success)}.fnB0BW_poolChipWarn{background:color-mix(in srgb, var(--fcg-warn) 16%, transparent);color:var(--fcg-warn)}.fnB0BW_poolChipDanger{background:color-mix(in srgb, var(--fcg-danger) 14%, transparent);color:var(--fcg-danger)}.fnB0BW_poolMeterRow{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.fnB0BW_poolMeterTrack{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);height:5px;display:block;overflow:hidden}.fnB0BW_poolMeterFill{border-radius:inherit;background:var(--fcg-brand);height:100%;transition:width .3s var(--fcg-ease);display:block}.fnB0BW_poolMeterFillWarn{background:var(--fcg-warn)}.fnB0BW_poolMeterFillDanger{background:var(--fcg-danger)}.fnB0BW_poolMetric{color:var(--fcg-text-secondary);font:600 var(--fcg-font-caption)/1 var(--fcg-font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.fnB0BW_poolActions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.fnB0BW_poolFootnote{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}@media (width<=520px){.fnB0BW_poolAccountHead{flex-wrap:wrap;align-items:flex-start}.fnB0BW_poolIdentity{flex-basis:100%}.fnB0BW_poolActions{justify-content:flex-start}.fnB0BW_mcpServerCard{flex-direction:column;align-items:flex-start}.fnB0BW_mcpServerActions{justify-content:flex-start}.fnB0BW_skillPanelHeader,.fnB0BW_pricingHeader{flex-direction:column;align-items:flex-start;gap:7px}.fnB0BW_pricingSearch{width:100%}.fnB0BW_marketplaceControls,.fnB0BW_mcpMarketplaceGrid,.fnB0BW_marketplaceGrid{grid-template-columns:1fr}.fnB0BW_communityGrid,.fnB0BW_capabilityCommunityGrid{grid-template-columns:1fr}.fnB0BW_capabilityCommunityHeader{flex-direction:column;align-items:flex-start}.fnB0BW_communityFilterBar{gap:8px}.fnB0BW_communityInstalledEntry{padding-inline:8px}.fnB0BW_communityRestart,.fnB0BW_advisorPickerHeader{flex-direction:column;align-items:flex-start}.fnB0BW_communityModalBackdrop,.fnB0BW_advisorPickerBackdrop{padding:10px}.fnB0BW_advisorPicker{height:95vh;padding:14px}.fnB0BW_communityModalStats,.fnB0BW_advisorModelOption{flex-direction:column;align-items:flex-start;gap:4px}.fnB0BW_advisorModelOption code{max-width:100%}.fnB0BW_routingCell{grid-template-columns:1fr;gap:8px}.fnB0BW_routingCell:not(.fnB0BW_selectCell) .fnB0BW_routingCopy{grid-template-columns:1fr;gap:2px}.fnB0BW_authForm,.fnB0BW_capabilityForm{grid-template-columns:1fr}.fnB0BW_authFull,.fnB0BW_capabilityFull{grid-column:auto}.fnB0BW_capabilityStats,.fnB0BW_advisorStats{grid-template-columns:1fr}.fnB0BW_accountRow{flex-direction:column;align-items:flex-start}.fnB0BW_accountActions{justify-content:flex-start}.fnB0BW_plans{grid-template-columns:repeat(2,minmax(0,1fr))}.fnB0BW_communityGrid,.fnB0BW_capabilityCommunityGrid{grid-template-columns:1fr}.fnB0BW_communityRestart{flex-direction:column;align-items:flex-start}.fnB0BW_communityModalBackdrop{padding:10px}.fnB0BW_communityModal{max-height:95vh;padding:14px}.fnB0BW_communityModalStats{flex-direction:column;align-items:flex-start;gap:4px}}@media (width<=360px){.fnB0BW_plans{grid-template-columns:1fr}}.fnB0BW_statGrid{gap:var(--fcg-space-2);margin-top:var(--fcg-space-3);grid-template-columns:repeat(auto-fit,minmax(112px,1fr));display:grid}.fnB0BW_statCell{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:2px;min-width:0;padding:10px 12px;display:grid}.fnB0BW_statLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:16px;overflow:hidden}.fnB0BW_statValue{color:var(--fcg-text-primary);font-size:var(--fcg-font-title);font-variant-numeric:tabular-nums;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-weight:650;line-height:20px;overflow:hidden}.fnB0BW_details{margin-top:var(--fcg-space-2)}.fnB0BW_detailsSummary{color:var(--fcg-text-secondary);cursor:pointer;font-size:var(--fcg-font-caption);padding:5px 0;line-height:18px}.fnB0BW_detailsSummary:hover{color:var(--fcg-text-primary)}.fnB0BW_detailsSummary:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);border-radius:var(--fcg-radius-sm);outline:none}.fnB0BW_chipGrid{padding:var(--fcg-space-1) 0 var(--fcg-space-2);flex-wrap:wrap;gap:6px;display:flex}.fnB0BW_statChip{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);white-space:nowrap;align-items:center;gap:6px;padding:3px 9px;line-height:18px;display:inline-flex}.fnB0BW_statChip b{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;font-weight:650}.fnB0BW_statChipIdle{color:var(--fcg-text-tertiary);opacity:.62}.fnB0BW_statChipIdle b{color:var(--fcg-text-tertiary)}@media (width<=520px){.fnB0BW_statGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}.fnB0BW_toggleGrid{gap:var(--fcg-space-2);margin-top:var(--fcg-space-2);grid-template-columns:repeat(auto-fit,minmax(168px,1fr));display:grid}.fnB0BW_toggleCard{justify-content:space-between;align-items:center;gap:var(--fcg-space-2);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);cursor:pointer;min-width:0;transition:border-color var(--fcg-fast) var(--fcg-ease), background var(--fcg-fast) var(--fcg-ease);padding:9px 11px;display:flex}.fnB0BW_toggleCard:hover{border-color:var(--fcg-line);background:var(--fcg-bg-layer-2)}.fnB0BW_toggleCardDisabled{cursor:not-allowed;opacity:.55}.fnB0BW_toggleCardDisabled:hover{border-color:var(--fcg-line-subtle);background:var(--fcg-bg-layer-1)}.fnB0BW_toggleCardText{gap:1px;min-width:0;display:grid}.fnB0BW_toggleCardText strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:18px;overflow:hidden}.fnB0BW_toggleCardText small{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:15px;overflow:hidden}.fnB0BW_toggleCardNote{color:var(--fcg-warn-label);font-size:11px;line-height:15px}.fnB0BW_tuningGrid{gap:var(--fcg-space-2);margin-top:var(--fcg-space-3);grid-template-columns:repeat(auto-fit,minmax(132px,1fr));display:grid}.fnB0BW_tuningCell{gap:4px;min-width:0;display:grid}.fnB0BW_tuningLabel{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:16px;overflow:hidden}.fnB0BW_tuningHint{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:15px;overflow:hidden}.fnB0BW_tuningCell .fnB0BW_select{min-height:32px;padding:5px 9px}.fnB0BW_subGroup{gap:var(--fcg-space-2);margin-top:var(--fcg-space-4);display:grid}.fnB0BW_subGroupLabel{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);letter-spacing:.02em;font-weight:600;line-height:18px}.fnB0BW_councilJob{gap:var(--fcg-space-3);display:grid}.fnB0BW_councilJobHead{align-items:baseline;gap:var(--fcg-space-2);flex-wrap:wrap;min-width:0;display:flex}.fnB0BW_councilJobId{color:var(--fcg-text-tertiary);font-family:var(--fcg-font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.fnB0BW_councilReport{gap:var(--fcg-space-2);min-width:0;display:grid}.fnB0BW_councilReportTurn{font-size:var(--fcg-font-body)}.fnB0BW_councilState{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;font-weight:600;line-height:18px}.fnB0BW_councilStateOk{background:var(--fcg-success-subtle);color:var(--fcg-success)}.fnB0BW_councilStateBlocked{background:var(--fcg-danger-subtle);color:var(--fcg-danger)}.fnB0BW_councilStateNowrap{white-space:nowrap;word-break:keep-all;flex:none;max-width:none}.fnB0BW_councilCallout{border-left:2px solid var(--fcg-line-strong);border-radius:0 var(--fcg-radius-sm) var(--fcg-radius-sm) 0;background:var(--fcg-bg-layer-2);gap:2px;padding:9px 11px;display:grid}.fnB0BW_councilCallout p{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin:0;line-height:18px}.fnB0BW_councilCalloutBlocked{border-left-color:var(--fcg-danger);background:color-mix(in srgb, var(--fcg-danger) 6%, var(--fcg-bg-layer-2))}.fnB0BW_findingList{gap:6px;margin:0;padding:0;list-style:none;display:grid}.fnB0BW_findingRow{align-items:start;gap:var(--fcg-space-2);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);grid-template-columns:auto minmax(0,1fr) auto;padding:8px 10px;display:grid}.fnB0BW_findingBody{gap:2px;min-width:0;display:grid}.fnB0BW_findingTitle{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption);font-weight:600;line-height:18px}.fnB0BW_findingEvidence{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin:0;line-height:17px}.fnB0BW_findingEngine{color:var(--fcg-text-tertiary);white-space:nowrap;flex:none;font-size:11px;line-height:18px}.fnB0BW_findingSeverity{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-tip);color:var(--fcg-text-secondary);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;flex:none;padding:1px 7px;font-size:10px;font-weight:600;line-height:16px}.fnB0BW_findingSeverity_blocker{background:var(--fcg-danger-subtle);color:var(--fcg-danger)}.fnB0BW_findingSeverity_warning{background:var(--fcg-warn-subtle);color:var(--fcg-warn-label)}.fnB0BW_findingSeverity_info{background:var(--fcg-bg-hover);color:var(--fcg-text-tertiary)}.fnB0BW_findingSeverity_unknown{background:var(--fcg-bg-tip);color:var(--fcg-text-tertiary)}@media (width<=520px){.fnB0BW_toggleGrid,.fnB0BW_tuningGrid{grid-template-columns:1fr}.fnB0BW_findingRow{grid-template-columns:auto minmax(0,1fr)}.fnB0BW_findingEngine{grid-column:2}}.fnB0BW_advisorFormGrid{gap:var(--fcg-space-3);margin-top:var(--fcg-space-3);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.fnB0BW_advisorField{min-width:0;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:5px;display:grid}.fnB0BW_advisorField>span{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);line-height:16px}.fnB0BW_advisorField .fnB0BW_advisorModelTrigger{height:100%}.fnB0BW_advisorModelTrigger{align-content:center;gap:2px;display:grid}.fnB0BW_advisorModelTrigger strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-body);text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:18px;overflow:hidden}.fnB0BW_advisorFoot{justify-content:space-between;align-items:flex-end;gap:var(--fcg-space-3);margin-top:var(--fcg-space-4);flex-wrap:wrap;display:flex}.fnB0BW_advisorFoot .fnB0BW_advisorEvidence{flex:320px;margin-top:0}.fnB0BW_advisorFoot .fnB0BW_buttonPrimary{flex:none}@media (width<=520px){.fnB0BW_advisorFormGrid{grid-template-columns:1fr}.fnB0BW_advisorFoot{flex-direction:column;align-items:stretch}.fnB0BW_advisorFoot .fnB0BW_buttonPrimary{width:100%}}.fnB0BW_engineeringHeader{justify-content:space-between;align-items:flex-start;gap:var(--fcg-space-3);display:flex}.fnB0BW_engineeringHeader>div:first-child{gap:3px;min-width:0;display:grid}.fnB0BW_engineeringHeader strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg)}.fnB0BW_engineeringHeader small{max-width:620px;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_engineeringKicker{color:var(--fcg-text-tertiary);letter-spacing:.08em;font-size:11px;font-weight:650}.fnB0BW_engineeringSummary{margin-top:var(--fcg-space-2);flex-wrap:wrap;gap:6px;display:flex}.fnB0BW_engineeringSummary span{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:3px 9px}.fnB0BW_engineeringSummary b{color:var(--fcg-text-primary)}.fnB0BW_actionMenu{position:relative}.fnB0BW_actionMenu summary{list-style:none}.fnB0BW_actionMenu summary::-webkit-details-marker{display:none}.fnB0BW_actionMenuPop{z-index:4;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);min-width:150px;box-shadow:var(--fcg-shadow-2);gap:4px;padding:6px;display:grid;position:absolute;top:calc(100% + 5px);right:0}.fnB0BW_actionMenuPop .fnB0BW_button{background:0 0;border-color:#0000;justify-content:flex-start}.fnB0BW_actionMenuPop .fnB0BW_button:hover{background:var(--fcg-bg-hover)}.fnB0BW_engineeringComposer{gap:var(--fcg-space-2);margin-top:var(--fcg-space-3);padding:var(--fcg-space-3);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);grid-template-columns:minmax(0,1fr) auto;display:grid}.fnB0BW_engineeringComposer .fnB0BW_input{min-width:0}@media (width<=520px){.fnB0BW_engineeringHeader{flex-direction:column}.fnB0BW_engineeringComposer{grid-template-columns:1fr}}.fnB0BW_composerLabel{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);margin-bottom:5px;font-weight:600;line-height:16px;display:block}.fnB0BW_engineeringComposer>div{min-width:0}.fnB0BW_engineeringComposer>div:first-child,.fnB0BW_engineeringComposer>div:nth-child(2){align-content:start;display:grid}.fnB0BW_pricingTable .fnB0BW_priceFree{border-radius:var(--fcg-radius-full);background:color-mix(in srgb, var(--fcg-success) 14%, transparent);color:var(--fcg-success);font-size:var(--fcg-font-caption);letter-spacing:.04em;padding:1px 7px;font-weight:700}.fnB0BW_paymentNotice{border:1px solid color-mix(in srgb, var(--fcg-warn) 38%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 7%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:space-between;align-items:flex-start;gap:10px;margin-top:14px;padding:10px 12px;line-height:19px;display:flex}.fnB0BW_invoicePanel{border-top:1px solid var(--fcg-line);gap:12px;margin-top:20px;padding-top:18px;display:grid}.fnB0BW_invoiceHead{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.fnB0BW_invoiceOrders{gap:6px;display:grid}.fnB0BW_invoiceOrderRow{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.fnB0BW_invoiceOrderText{gap:2px;min-width:0;display:grid}.fnB0BW_invoiceOrderText small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_invoiceForm{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.fnB0BW_invoiceForm label{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:5px;display:grid}.fnB0BW_invoiceForm .fnB0BW_input{min-width:0}.fnB0BW_invoiceActions{flex-wrap:wrap;gap:8px;display:flex}.fnB0BW_invoiceNotice{border:1px solid color-mix(in srgb, var(--fcg-warn) 38%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 7%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:8px 10px}.fnB0BW_invoicePreview{box-sizing:border-box;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);width:100%;color:var(--fcg-text-primary);font-family:var(--fcg-font-mono);font-size:var(--fcg-font-caption);resize:vertical;padding:10px 12px;line-height:18px}.fnB0BW_invoicePanel>.fnB0BW_sectionMeta{line-height:18px}body .fnB0BW_payDialog{border:2px solid var(--pixel-ink);background:var(--pixel-face);width:min(392px,100vw - 36px);box-shadow:6px 6px 0 0 var(--pixel-ink);border-radius:0;padding-bottom:20px}.fnB0BW_payDialog h2{color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg);letter-spacing:-.012em;margin:0;font-weight:800}.fnB0BW_payDialog h2+button{border:1px solid var(--pixel-ink);color:var(--pixel-ink);border-radius:0}.fnB0BW_payDialog h2+button:hover{background:var(--pixel-recess)}.fnB0BW_payDialogBody{gap:12px;display:grid}.fnB0BW_payDialogHead{border:2px solid var(--pixel-ink);background:var(--pixel-recess);box-shadow:inset 2px 2px 0 0 var(--pixel-recess-edge);gap:3px;padding:12px;display:grid}.fnB0BW_payDialogLabel{color:var(--fcg-brand);font-family:var(--fcg-font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700}.fnB0BW_payDialogAmount{color:var(--fcg-text-primary);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:27px;font-weight:800;line-height:34px}.fnB0BW_payDialogMeta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:5px;display:flex}.fnB0BW_payDialogCredit{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_payDialogCredit strong{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;font-weight:700}.fnB0BW_payDialogState{border:1px solid var(--pixel-ink);background:var(--pixel-face);color:var(--fcg-text-secondary);font-family:var(--fcg-font-mono);letter-spacing:.06em;white-space:nowrap;clip-path:var(--pixel-chip);margin-left:auto;padding:2px 9px;font-size:10px;font-weight:700}.fnB0BW_payDialogSlot{border:2px solid var(--pixel-ink);background:var(--pixel-recess);box-shadow:inset 2px 2px 0 0 var(--pixel-recess-edge);justify-items:start;gap:10px;padding:12px;display:grid}.fnB0BW_payDialogQr{text-align:center;justify-items:center}.fnB0BW_payDialogSlot .fnB0BW_paymentNotice{border-width:2px;border-radius:0;margin-top:0}.fnB0BW_payDialogSlot .fnB0BW_payDialogElement{width:100%;min-height:0}.fnB0BW_payDialogPaid{border:2px solid color-mix(in srgb, var(--fcg-success) 42%, var(--pixel-ink));background:color-mix(in srgb, var(--fcg-success) 10%, var(--pixel-face));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:10px 12px}.fnB0BW_payDialogNote{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px;display:block}.fnB0BW_payDialogFooter{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.fnB0BW_payDialogFooter .fnB0BW_button,.fnB0BW_payDialogSlot .fnB0BW_button{border:2px solid var(--pixel-ink);background:var(--pixel-face);min-height:40px;color:var(--fcg-text-primary);letter-spacing:.04em;box-shadow:0 3px 0 0 var(--pixel-ink);transition:background var(--fcg-fast) var(--fcg-ease), box-shadow 60ms linear, transform 60ms linear;border-radius:0;font-weight:700}.fnB0BW_payDialogFooter .fnB0BW_button:hover:not(:disabled),.fnB0BW_payDialogSlot .fnB0BW_button:hover:not(:disabled){background:var(--pixel-recess)}.fnB0BW_payDialogFooter .fnB0BW_button:active:not(:disabled),.fnB0BW_payDialogSlot .fnB0BW_button:active:not(:disabled){box-shadow:0 0 0 0 var(--pixel-ink);transform:translateY(3px)}.fnB0BW_payDialogFooter .fnB0BW_buttonPrimary,.fnB0BW_payDialogSlot .fnB0BW_buttonPrimary{border-color:var(--pixel-ink);background:var(--fcg-brand);color:var(--fcg-text-on-brand-fixed);box-shadow:inset 0 2px 0 0 #ffffff61, 0 3px 0 0 var(--pixel-ink)}.fnB0BW_payDialogFooter .fnB0BW_buttonPrimary:hover:not(:disabled),.fnB0BW_payDialogSlot .fnB0BW_buttonPrimary:hover:not(:disabled){border-color:var(--pixel-ink);background:var(--fcg-brand-strong);box-shadow:inset 0 2px 0 0 #ffffff7a, 0 4px 0 0 var(--pixel-ink)}.fnB0BW_payDialogFooter .fnB0BW_buttonDanger{color:var(--fcg-danger)}.fnB0BW_payDialogFooter .fnB0BW_button:focus-visible,.fnB0BW_payDialogSlot .fnB0BW_button:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 26%, transparent), 0 3px 0 0 var(--pixel-ink);outline:none}.fnB0BW_planReviewBody{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-input);max-height:300px;display:grid;overflow:auto}.fnB0BW_planReviewLine{width:100%;color:var(--fcg-text-primary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);text-align:left;background:0 0;border:0;grid-template-columns:44px minmax(0,1fr);gap:8px;padding:2px 10px;line-height:18px;display:grid}.fnB0BW_planReviewLine:hover{background:var(--fcg-bg-hover)}.fnB0BW_planReviewLineSelected{background:var(--fcg-bg-active)}.fnB0BW_planReviewLineNumber{color:var(--fcg-text-tertiary);font-family:var(--fcg-font-mono);text-align:right}.fnB0BW_planReviewLineText{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.fnB0BW_planReviewRemark{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:8px;padding:10px 11px;display:grid}.fnB0BW_pickerVisibilityPanel{gap:var(--fcg-space-2);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);padding:12px;display:grid}.fnB0BW_pickerVisibilityPanel[data-open=false]{padding:9px 12px}.fnB0BW_pickerVisibilityToggle{width:100%;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:flex}.fnB0BW_pickerVisibilityToggle:hover{color:var(--fcg-text-primary)}.fnB0BW_pickerVisibilityToggle:focus-visible{border-radius:var(--fcg-radius-sm);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_pickerVisibilityGear{flex:none;align-items:center;display:inline-flex}.fnB0BW_pickerVisibilityToggleLabel{min-width:0;font-size:var(--fcg-font-caption);flex:auto;font-weight:620;line-height:18px}.fnB0BW_pickerVisibilityBadge{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:var(--fcg-text-tertiary);flex:none;padding:0 6px;font-size:10px;font-style:normal;font-weight:600;line-height:16px}.fnB0BW_pickerVisibilityChevron{flex:none;align-items:center;transition:transform .12s;display:inline-flex}.fnB0BW_pickerVisibilityToggle[aria-expanded=true] .fnB0BW_pickerVisibilityChevron{transform:rotate(180deg)}.fnB0BW_pickerVisibilityMaster{cursor:pointer;align-items:center;gap:10px;display:flex}.fnB0BW_pickerVisibilityText{gap:2px;min-width:0;display:grid}.fnB0BW_pickerVisibilityText strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption);font-weight:620;line-height:18px}.fnB0BW_pickerVisibilityText small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:17px}.fnB0BW_pickerVisibilityHead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.fnB0BW_pickerVisibilityLabel{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_pickerVisibilityActions{align-items:center;gap:10px;display:flex}.fnB0BW_pickerVisibilityLink{color:var(--fcg-brand);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;padding:0;line-height:18px}.fnB0BW_pickerVisibilityLink:hover{text-decoration:underline}.fnB0BW_pickerVisibilityLink:focus-visible{border-radius:var(--fcg-radius-sm);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_pickerVisibilityList{scrollbar-color:var(--fcg-line-strong) transparent;scrollbar-width:thin;gap:2px;max-height:224px;display:grid;overflow-y:auto}.fnB0BW_pickerVisibilityList[data-visible=false]{opacity:.5}.fnB0BW_pickerVisibilityRow{border-radius:var(--fcg-radius-sm);cursor:pointer;align-items:center;gap:8px;min-width:0;padding:4px 6px;display:flex}.fnB0BW_pickerVisibilityRow:hover{background:var(--fcg-bg-layer-2)}.fnB0BW_pickerVisibilityCheck{width:14px;height:14px;accent-color:var(--fcg-brand);cursor:pointer;flex:none;margin:0}.fnB0BW_pickerVisibilityName{min-width:0;color:var(--fcg-text-secondary);font-family:var(--fcg-font-mono);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:11px;line-height:18px;overflow:hidden}.fnB0BW_pickerVisibilityPaid{border-radius:var(--fcg-radius-full);background:color-mix(in srgb, var(--fcg-danger) 12%, transparent);color:var(--fcg-danger);flex:none;padding:0 6px;font-size:10px;font-style:normal;font-weight:700;line-height:16px}.fnB0BW_pickerVisibilityFree{border-radius:var(--fcg-radius-full);background:color-mix(in srgb, var(--fcg-success) 12%, transparent);color:var(--fcg-success);flex:none;padding:0 6px;font-size:10px;font-style:normal;font-weight:700;line-height:16px}.fnB0BW_pickerVisibilityEmpty{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}";
18200
+ const tagId$6 = "freecodego/settings-tab.module.css";
18201
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$6) + "]") === null) {
18070
18202
  const tag = document.createElement("style");
18071
18203
  tag.dataset.plugin = "freecodego";
18072
- tag.dataset.pluginCss = tagId$5;
18073
- tag.textContent = css$5;
18204
+ tag.dataset.pluginCss = tagId$6;
18205
+ tag.textContent = css$6;
18074
18206
  document.head.appendChild(tag);
18075
18207
  }
18076
18208
  var settings_tab_module_css_default = {
@@ -21298,13 +21430,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
21298
21430
  }
21299
21431
  //#endregion
21300
21432
  //#region \0dsh-css:/home/runner/work/dsh-plugin-freecodego/dsh-plugin-freecodego/plugin/packages/freecodego/harness-ui/src/client/provider-card.module.css.mjs
21301
- const css$4 = "._166XFq_card{gap:var(--fcg-space-3);padding:var(--fcg-space-4);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-1);transition:border-color var(--fcg-fast) var(--fcg-ease);display:grid}._166XFq_card:hover{border-color:var(--fcg-line)}._166XFq_head{justify-content:space-between;align-items:flex-start;gap:var(--fcg-space-3);min-width:0;display:flex}._166XFq_identity{align-items:center;gap:var(--fcg-space-3);min-width:0;display:flex}._166XFq_mark{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);width:34px;height:34px;color:var(--fcg-text-secondary);flex:none;place-items:center;display:grid}._166XFq_names{gap:2px;min-width:0;display:grid}._166XFq_name{color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-weight:650;line-height:20px;overflow:hidden}._166XFq_title{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:16px;overflow:hidden}._166XFq_status{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);white-space:nowrap;flex:none;align-items:center;gap:6px;line-height:18px;display:inline-flex}._166XFq_statusDot{corner-shape:round;background:currentColor;border-radius:50%;width:6px;height:6px}._166XFq_statusLive{color:var(--fcg-success)}._166XFq_statusWarn{color:var(--fcg-warn-label)}._166XFq_statusIdle{color:var(--fcg-text-tertiary)}._166XFq_summary{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);line-height:18px}._166XFq_description{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}._166XFq_cloud{flex-wrap:wrap;gap:6px;display:flex}._166XFq_tag{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);max-width:100%;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;align-items:center;padding:3px 9px;line-height:18px;display:inline-flex;overflow:hidden}._166XFq_tagMono{font-family:var(--fcg-font-mono);font-size:11px}._166XFq_more{color:var(--fcg-text-tertiary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;align-self:flex-start;padding:0;line-height:18px}._166XFq_more:hover{color:var(--fcg-brand)}._166XFq_more:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);border-radius:var(--fcg-radius-sm);outline:none}._166XFq_actions{justify-content:flex-end;align-items:center;gap:var(--fcg-space-2);flex-wrap:wrap;display:flex}._166XFq_body{gap:var(--fcg-space-2);min-width:0;display:grid}@media (width<=520px){._166XFq_head{flex-direction:column;align-items:stretch}._166XFq_status{align-self:flex-start}}._166XFq_notice{border:1px solid color-mix(in srgb, var(--fcg-success) 28%, var(--fcg-line-subtle));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-success) 8%, var(--fcg-bg-layer-1));color:var(--fcg-success);font-size:var(--fcg-font-caption);align-items:center;gap:7px;padding:7px 9px;font-weight:600;line-height:18px;display:flex}._166XFq_noticeDot{corner-shape:round;background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}";
21302
- const tagId$4 = "freecodego/provider-card.module.css";
21303
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
21433
+ const css$5 = "._166XFq_card{gap:var(--fcg-space-3);padding:var(--fcg-space-4);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-1);transition:border-color var(--fcg-fast) var(--fcg-ease);display:grid}._166XFq_card:hover{border-color:var(--fcg-line)}._166XFq_head{justify-content:space-between;align-items:flex-start;gap:var(--fcg-space-3);min-width:0;display:flex}._166XFq_identity{align-items:center;gap:var(--fcg-space-3);min-width:0;display:flex}._166XFq_mark{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);width:34px;height:34px;color:var(--fcg-text-secondary);flex:none;place-items:center;display:grid}._166XFq_names{gap:2px;min-width:0;display:grid}._166XFq_name{color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-weight:650;line-height:20px;overflow:hidden}._166XFq_title{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:16px;overflow:hidden}._166XFq_status{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);white-space:nowrap;flex:none;align-items:center;gap:6px;line-height:18px;display:inline-flex}._166XFq_statusDot{corner-shape:round;background:currentColor;border-radius:50%;width:6px;height:6px}._166XFq_statusLive{color:var(--fcg-success)}._166XFq_statusWarn{color:var(--fcg-warn-label)}._166XFq_statusIdle{color:var(--fcg-text-tertiary)}._166XFq_summary{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);line-height:18px}._166XFq_description{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}._166XFq_cloud{flex-wrap:wrap;gap:6px;display:flex}._166XFq_tag{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);max-width:100%;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;align-items:center;padding:3px 9px;line-height:18px;display:inline-flex;overflow:hidden}._166XFq_tagMono{font-family:var(--fcg-font-mono);font-size:11px}._166XFq_more{color:var(--fcg-text-tertiary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;align-self:flex-start;padding:0;line-height:18px}._166XFq_more:hover{color:var(--fcg-brand)}._166XFq_more:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);border-radius:var(--fcg-radius-sm);outline:none}._166XFq_actions{justify-content:flex-end;align-items:center;gap:var(--fcg-space-2);flex-wrap:wrap;display:flex}._166XFq_body{gap:var(--fcg-space-2);min-width:0;display:grid}@media (width<=520px){._166XFq_head{flex-direction:column;align-items:stretch}._166XFq_status{align-self:flex-start}}._166XFq_notice{border:1px solid color-mix(in srgb, var(--fcg-success) 28%, var(--fcg-line-subtle));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-success) 8%, var(--fcg-bg-layer-1));color:var(--fcg-success);font-size:var(--fcg-font-caption);align-items:center;gap:7px;padding:7px 9px;font-weight:600;line-height:18px;display:flex}._166XFq_noticeDot{corner-shape:round;background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}";
21434
+ const tagId$5 = "freecodego/provider-card.module.css";
21435
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
21304
21436
  const tag = document.createElement("style");
21305
21437
  tag.dataset.plugin = "freecodego";
21306
- tag.dataset.pluginCss = tagId$4;
21307
- tag.textContent = css$4;
21438
+ tag.dataset.pluginCss = tagId$5;
21439
+ tag.textContent = css$5;
21308
21440
  document.head.appendChild(tag);
21309
21441
  }
21310
21442
  var provider_card_module_css_default = {
@@ -21876,20 +22008,25 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
21876
22008
  * provider whose roster the plugin does not curate. VyceAI is the exception:
21877
22009
  * every one of its routes is metered, so listing its whole directory in the
21878
22010
  * chat menu by default would offer a dozen ways to spend money the moment a key
21879
- * is saved. Only the two routes that shipped as the defaults start switched on;
22011
+ * is saved. Only the three routes that are the default offer start switched on;
21880
22012
  * the rest are one click away, and an explicit choice is stored as the opposite
21881
22013
  * of the default (see {@link isModelVisible}).
21882
22014
  *
21883
22015
  * Ids are the bare wire ids, so both the `vyce/deepseek-v4.1` the picker spells
21884
22016
  * and a bare `deepseek-v4.1` match.
21885
22017
  *
21886
- * This list is only consulted for a row whose price is `unknown`: a priced route
21887
- * is decided by its price, which for a metered provider means every row there is
21888
- * off until asked for — including the two named here. Naming a route therefore
21889
- * says "this one is the default when nobody has priced it", not "this one
21890
- * overrides its price".
21891
- */
21892
- const DEFAULT_VISIBLE_MODELS = { vyce: ["deepseek-v4.1", "qwen3.8-flash"] };
22018
+ * A name outranks a price here. `deepseek-v4.1` publishes per-million prices, so
22019
+ * the row's own description reads as `paid` — and it is still one of the
22020
+ * defaults, because the whole point of the provider is that the daily check-in
22021
+ * credit pays for exactly these routes; dropping it would hide the offer the
22022
+ * provider was configured for. A priced route that is *not* named is unaffected
22023
+ * and still starts off (see {@link METERED_DEFAULT_HIDDEN_PROVIDERS}).
22024
+ */
22025
+ const DEFAULT_VISIBLE_MODELS = { vyce: [
22026
+ "deepseek-v4.1",
22027
+ "qwen3.8-flash",
22028
+ "claude-sonnet-4-6"
22029
+ ] };
21893
22030
  /**
21894
22031
  * Providers whose priced rows start hidden unless the user asks for them.
21895
22032
  *
@@ -21927,7 +22064,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
21927
22064
  * @param modelId - the picker's model id.
21928
22065
  * @returns the model id without its `@group:N` suffix.
21929
22066
  */
21930
- function bareModelId(modelId) {
22067
+ function bareModelId$1(modelId) {
21931
22068
  return /^(.*?)(?:@group:\d+)$/u.exec(modelId.trim())?.[1] ?? modelId.trim();
21932
22069
  }
21933
22070
  /**
@@ -21937,7 +22074,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
21937
22074
  * @returns the storage key.
21938
22075
  */
21939
22076
  function modelVisibilityKey(provider, modelId) {
21940
- return `${provider.trim().toLowerCase()}\u0000${bareModelId(modelId)}`;
22077
+ return `${provider.trim().toLowerCase()}\u0000${bareModelId$1(modelId)}`;
21941
22078
  }
21942
22079
  /**
21943
22080
  * Whether a provider's section is shown.
@@ -21952,9 +22089,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
21952
22089
  /**
21953
22090
  * Whether a provider's rows start shown.
21954
22091
  *
21955
- * A priced row of a metered provider starts hidden; beyond that a curated
21956
- * provider (see {@link DEFAULT_VISIBLE_MODELS}) starts hidden unless the model
21957
- * is named, and every other provider starts shown.
22092
+ * A curated provider (see {@link DEFAULT_VISIBLE_MODELS}) is decided by its own
22093
+ * list and nothing else: naming a route is the plugin's statement about which
22094
+ * routes this provider is configured for, and it is a sharper answer than the
22095
+ * price is — which is why a named route stays on even when the directory prices
22096
+ * it. Every other provider follows the price rule: a priced row of a metered
22097
+ * provider starts hidden, the rest start shown.
21958
22098
  *
21959
22099
  * An `unknown` price is not read as `paid`: a route the directory does not price
21960
22100
  * is still an answer to "may this be in my list" that the user already gave by
@@ -21967,10 +22107,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
21967
22107
  */
21968
22108
  function modelDefaultVisible(provider, modelId, price = "unknown") {
21969
22109
  const key = provider.trim().toLowerCase();
21970
- if (price === "paid" && METERED_DEFAULT_HIDDEN_PROVIDERS.has(key)) return false;
21971
22110
  const set = DEFAULT_VISIBLE_SETS.get(key);
21972
- if (set === void 0) return true;
21973
- const bare = bareModelId(modelId);
22111
+ if (set === void 0) return !(price === "paid" && METERED_DEFAULT_HIDDEN_PROVIDERS.has(key));
22112
+ const bare = bareModelId$1(modelId);
21974
22113
  const prefix = `${key}/`;
21975
22114
  const slug = (bare.toLowerCase().startsWith(prefix) ? bare.slice(prefix.length) : bare).toLowerCase();
21976
22115
  return set.has(slug);
@@ -22101,7 +22240,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
22101
22240
  for (const model of models) {
22102
22241
  const id = model.id.trim();
22103
22242
  if (id === "") continue;
22104
- const key = bareModelId(id);
22243
+ const key = bareModelId$1(id);
22105
22244
  if (seen.has(key)) continue;
22106
22245
  seen.add(key);
22107
22246
  out.push({
@@ -22247,7 +22386,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
22247
22386
  const hiddenCount = unique.filter((model, index) => !isModelVisible(visibility, provider, model.id, modelRows[index].price)).length;
22248
22387
  const rows = unique.map((model, index) => ({
22249
22388
  model,
22250
- label: model.label ?? bareModelId(model.id),
22389
+ label: model.label ?? bareModelId$1(model.id),
22251
22390
  price: modelRows[index].price,
22252
22391
  visible: isModelVisible(visibility, provider, model.id, modelRows[index].price)
22253
22392
  }));
@@ -27148,7 +27287,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
27148
27287
  ]
27149
27288
  });
27150
27289
  }
27151
- function FreeCodeGoSettingsTab({ catalog, accountStatus, accountRememberedPassword, login, register, sendVerifyCode, oauthLogin, oauthPendingSendVerifyCode, oauthPendingBind, oauthPendingCreate, completeMfa, logout, deviceSessions, revokeDeviceSession, revokeAllSessions, setDefaultModel, setDefaultEngine, backendCatalog, readMediaDefaults, nativeModelCatalog, pickerModelDirectory, currentSessionId, vyceStatus, vyceSetKey, logfareStatus, logfareRegister, logfareSetTrainingOptIn, logfareSetKey, accountDetail, sensenovaStatus, sensenovaSetKey, nvidiaStatus, nvidiaSetKey, useConnectionEpoch, paymentPlans, paymentChannels, paymentConfig, gatewayModelPrices, paymentCheckout, paymentOrder, paymentVerify, paymentCancel, paymentReceiptEmail, paymentReceiptDocument, paymentStripeReceiptDocument, paymentOrders, agnesStatus, agnesSendVerification, agnesSendPasswordReset, agnesResetPassword, agnesLogin, agnesRegister, agnesLogout, agnesRemoveAccount, agnesRefresh, agnesCreateApiKey, clineStatus, clineStartLogin, clinePollLogin, clineAddAccount, clineRemoveAccount, clineRefresh, clineLogout, workbuddyStatus, workbuddyImportDesktopLogin, workbuddyStartBrowserLogin, workbuddyPollBrowserLogin, workbuddyLogout, workbuddyRemoveAccount, workbuddyRefreshCredits, qoderStatus, qoderStartBrowserLogin, qoderPollBrowserLogin, qoderLogout, qoderRemoveAccount, qoderSetActiveAccount, qoderRefreshQuota, qoderCheckin: runQoderCheckin, traeStatus, traeStartBrowserLogin, traePollBrowserLogin, traeSubmitCallback, traeCancelBrowserLogin, traeModels: loadTraeModels, traeLogout, traeRemoveAccount, traeSetActiveAccount, traeCheckin: runTraeCheckin, codexRuntimeStatus, codexRuntimePackages, codexRuntimeInstall, codexRuntimeRemove, claudeRuntimeStatus, claudeRuntimePackages, claudeRuntimeInstall, claudeRuntimeRemove, pluginUpdateStatus, pluginUpdateCheck, pluginUpdateSetEnabled, pluginUpdateInstall, pluginUpdateRollback, communityCatalog, communityCatalogIcons, communityEnvironment, communityInstalled, communityInstall, communityUninstall, capabilityMarketplace, mcpPresetInstall, skillPresetInstall, skillPresetRemove, skillPlacements, skillPlacementPrefer, capabilities, readLocalCapabilities, capabilitiesSetEnabled, setLocalCapability, setModelCategoryDirect, modelCategorySet, pluginConflictStatus, pluginConflictSetEnabled, headroomStatus, headroomSetEnabled, headroomUpdate, deferredToolsStatus, deferredToolsSetEnabled, reviewStatus, reviewStart, reviewUpdate, guardSettingsStatus, guardSettingsUpdate, workbuddySetActiveAccount, automationSettingsStatus, automationSettingsUpdate, sandboxModeStatus, sandboxModeSet, trustFolderStatus, trustFolderGrant, trustFolderRevoke, projectConfigReport, advisorStatus, advisorUpdate, engineeringStatus, engineeringSetEnabled, language, t }) {
27290
+ function FreeCodeGoSettingsTab({ catalog, accountStatus, accountRememberedPassword, login, register, sendVerifyCode, oauthLogin, oauthPendingSendVerifyCode, oauthPendingBind, oauthPendingCreate, completeMfa, logout, deviceSessions, revokeDeviceSession, revokeAllSessions, setDefaultModel, setDefaultEngine, backendCatalog, readMediaDefaults, nativeModelCatalog, pickerModelDirectory, currentSessionId, vyceStatus, vyceSetKey, logfareStatus, logfareRegister, logfareSetTrainingOptIn, logfareSetKey, accountDetail, sensenovaStatus, sensenovaSetKey, nvidiaStatus, nvidiaSetKey, useConnectionEpoch, paymentPlans, paymentChannels, paymentConfig, gatewayModelPrices, paymentCheckout, paymentOrder, paymentVerify, paymentCancel, paymentReceiptEmail, paymentReceiptDocument, paymentStripeReceiptDocument, paymentOrders, agnesStatus, agnesSendVerification, agnesSendPasswordReset, agnesResetPassword, agnesLogin, agnesRegister, agnesLogout, agnesRemoveAccount, agnesRefresh, agnesCreateApiKey, clineStatus, clineStartLogin, clinePollLogin, clineAddAccount, clineRemoveAccount, clineRefresh, clineLogout, workbuddyStatus, workbuddyImportDesktopLogin, workbuddyStartBrowserLogin, workbuddyPollBrowserLogin, workbuddyLogout, workbuddyRemoveAccount, workbuddyRefreshCredits, qoderStatus, qoderStartBrowserLogin, qoderPollBrowserLogin, qoderLogout, qoderRemoveAccount, qoderSetActiveAccount, qoderRefreshQuota, qoderCheckin: runQoderCheckin, traeStatus, traeStartBrowserLogin, traePollBrowserLogin, traeSubmitCallback, traeCancelBrowserLogin, traeModels: loadTraeModels, traeLogout, traeRemoveAccount, traeSetActiveAccount, traeCheckin: runTraeCheckin, codexRuntimeStatus, codexRuntimePackages, codexRuntimeInstall, codexRuntimeRemove, claudeRuntimeStatus, claudeRuntimePackages, claudeRuntimeInstall, claudeRuntimeRemove, pluginUpdateStatus, pluginUpdateCheck, pluginUpdateSetEnabled, pluginUpdateInstall, pluginUpdateRollback, communityCatalog, communityCatalogIcons, communityEnvironment, communityInstalled, communityInstall, communityUninstall, capabilityMarketplace, mcpPresetInstall, skillPresetInstall, skillPresetRemove, skillPlacements, skillPlacementPrefer, capabilities, readLocalCapabilities, capabilitiesSetEnabled, setLocalCapability, setModelCategoryDirect, modelCategorySet, pluginConflictStatus, pluginConflictSetEnabled, headroomStatus, headroomSetEnabled, headroomUpdate, deferredToolsStatus, deferredToolsSetEnabled, mediaGenerationStatus, mediaGenerationSetEnabled, reviewStatus, reviewStart, reviewUpdate, guardSettingsStatus, guardSettingsUpdate, workbuddySetActiveAccount, automationSettingsStatus, automationSettingsUpdate, sandboxModeStatus, sandboxModeSet, trustFolderStatus, trustFolderGrant, trustFolderRevoke, projectConfigReport, advisorStatus, advisorUpdate, engineeringStatus, engineeringSetEnabled, language, t }) {
27152
27291
  const [state, setState] = (0, react.useState)(() => cachedSettings(language, catalog)?.state ?? {
27153
27292
  ...fallbackSettings(),
27154
27293
  syncStatus: "refreshing"
@@ -29619,6 +29758,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29619
29758
  update: headroomUpdate,
29620
29759
  language
29621
29760
  }),
29761
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MediaGenerationPanel, {
29762
+ status: mediaGenerationStatus,
29763
+ setEnabled: mediaGenerationSetEnabled,
29764
+ language
29765
+ }),
29622
29766
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DeferredToolsPanel, {
29623
29767
  status: deferredToolsStatus,
29624
29768
  setEnabled: deferredToolsSetEnabled,
@@ -31932,7 +32076,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
31932
32076
  }),
31933
32077
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", {
31934
32078
  className: settings_tab_module_css_default.sectionMeta,
31935
- children: "默认关闭。安装或加载第三方 DSH 插件时,系统会在启动前检查重复 Tool、命令、设置 namespace、HTTP 路由、模型 Provider 和界面 Slot。冲突时以官方本体的插件优先:本插件自带的同名实现会让位;其余情况保留先启用的插件,并自动停用后加载的冲突条目。"
32079
+ children: "默认开启。安装或加载第三方 DSH 插件时,系统会在该插件启动前检查重复 Tool、命令、设置 namespace、HTTP 路由、模型 Provider 和界面 Slot。冲突时以官方本体的插件优先:本插件自带的同名实现会让位;其余情况保留先启用的插件,并自动停用后加载的冲突条目。"
31936
32080
  }),
31937
32081
  loadError === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
31938
32082
  className: settings_tab_module_css_default.alert,
@@ -31941,7 +32085,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
31941
32085
  }),
31942
32086
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
31943
32087
  className: settings_tab_module_css_default.extensionRow,
31944
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "自动修复冲突" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", { children: "默认关闭:重复注册由本体自己的注册校验报告,冲突的第三方插件可能因此启动失败。开启后本插件会在冲突插件启动前停用它。" })] }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
32088
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "自动修复冲突" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", { children: "默认开启:重复注册由本体自己的注册校验报告,冲突的第三方插件可能因此启动失败。开启时本插件会在冲突插件启动前停用它;关闭后本插件不再拦截任何条目的启动。" })] }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
31945
32089
  className: settings_tab_module_css_default.switch,
31946
32090
  "aria-label": "自动修复插件冲突",
31947
32091
  type: "checkbox",
@@ -32783,6 +32927,206 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
32783
32927
  * request. Without a readout, a user cannot tell whether the switch did
32784
32928
  * anything, and the numbers are the whole argument for leaving it on.
32785
32929
  */
32930
+ /**
32931
+ * The image and video generation switch.
32932
+ *
32933
+ * It documents the routes as well as the tools, because the question a user arrives
32934
+ * with is "can this draw me a picture, and with what?" — and the answer is a property
32935
+ * of the providers they configured, not of this plugin's source. The two name lists
32936
+ * come from the Host: `gated` is what the switch owns and `registered` is what this
32937
+ * profile actually mounted, so a profile with no Agnes account is not described as
32938
+ * missing tools it never had.
32939
+ */
32940
+ function MediaGenerationPanel(input) {
32941
+ const isZh = input.language === "zh";
32942
+ const [snapshot, setSnapshot] = (0, react.useState)(void 0);
32943
+ const [busy, setBusy] = (0, react.useState)(false);
32944
+ const [error, setError] = (0, react.useState)(void 0);
32945
+ const refresh = () => {
32946
+ if (input.status === void 0) return;
32947
+ input.status().then((result) => {
32948
+ if (result.ok) setSnapshot(result.value);
32949
+ }).catch(() => void 0);
32950
+ };
32951
+ (0, react.useEffect)(() => {
32952
+ refresh();
32953
+ }, [input.status]);
32954
+ const toggle = (enabled) => {
32955
+ if (input.setEnabled === void 0) return;
32956
+ setBusy(true);
32957
+ setError(void 0);
32958
+ input.setEnabled(enabled).then((result) => {
32959
+ if (result.ok) setSnapshot(result.value);
32960
+ else {
32961
+ setError(result.error.message);
32962
+ refresh();
32963
+ }
32964
+ }).catch((reason) => {
32965
+ setError(reason instanceof Error ? reason.message : String(reason));
32966
+ refresh();
32967
+ }).finally(() => {
32968
+ setBusy(false);
32969
+ });
32970
+ };
32971
+ /**
32972
+ * The wire protocol each provider family is spoken to with.
32973
+ *
32974
+ * Kept beside the switch rather than only in the README because the useful question
32975
+ * is "does *my* provider have a route here?", and that is answered by matching the
32976
+ * id the user typed into the Harness model page. The protocol is chosen from the
32977
+ * provider, never from the model name: a model whose id contains "video" is still
32978
+ * served the way its provider serves it.
32979
+ */
32980
+ const videoProtocols = [
32981
+ ["kling / kuaishou / 可灵", "/videos/text2video · image2video · multi-image2video → 同路径 + {id} · HS256 JWT · 5 或 10 秒"],
32982
+ ["volcengine / ark / seedance / doubao", "/contents/generations/tasks → /contents/generations/tasks/{id}"],
32983
+ ["dashscope / aliyun / qwen / wanx", "/api/v1/services/aigc/video-generation/video-synthesis(需 X-DashScope-Async: enable)→ /api/v1/tasks/{id}"],
32984
+ ["minimax / hailuo", "/v2/video_generation → /v2/query/video_generation/{id}"],
32985
+ ["vidu", "/ent/v2/text2video · img2video · start-end2video · reference2video → /ent/v2/tasks/{id}/creations · Authorization: Token"],
32986
+ ["google / gemini(Veo)", "/models/{model}:predictLongRunning → operation name"],
32987
+ ["xai / grok", "/videos/generations → /videos(给源视频时 /videos/edits · /videos/extensions)· 2–10 秒"],
32988
+ ["openai", "/videos → /videos/{id}"],
32989
+ ["网关与任何未识别 provider", "/videos/generations → /videos/generations/{id}"]
32990
+ ];
32991
+ const imageProtocols = [
32992
+ ["openai / grok / 网关 / 未识别 provider", "/images/generations;带参考图改走 /images/edits"],
32993
+ ["volcengine / ark / seedance / doubao", "仍是 /images/generations,源图放 image: [...](Seedream 融合形状)"],
32994
+ ["google / gemini", "/models/{model}:generateContent,responseModalities: [TEXT, IMAGE]"],
32995
+ ["google / gemini + 模型名含 imagen", "/models/{model}:predict,源图必须内联 base64"],
32996
+ ["dashscope / qwen / aliyun", "/api/v1/services/aigc/multimodal-generation/generation,size 写作 2048*2048"]
32997
+ ];
32998
+ const protocolPanel = (title, rows) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("details", {
32999
+ className: settings_tab_module_css_default.details,
33000
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("summary", {
33001
+ className: settings_tab_module_css_default.detailsSummary,
33002
+ children: title
33003
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
33004
+ style: {
33005
+ display: "grid",
33006
+ gap: 6,
33007
+ padding: "8px 0"
33008
+ },
33009
+ children: rows.map(([provider, endpoint]) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [
33010
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: provider }),
33011
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("br", {}),
33012
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", { children: endpoint })
33013
+ ] }, provider))
33014
+ })]
33015
+ });
33016
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
33017
+ className: settings_tab_module_css_default.section,
33018
+ children: [
33019
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
33020
+ className: settings_tab_module_css_default.sectionHeader,
33021
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
33022
+ className: settings_tab_module_css_default.kicker,
33023
+ children: "MEDIA"
33024
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", {
33025
+ className: settings_tab_module_css_default.sectionName,
33026
+ children: isZh ? "生图与视频" : "Image and video generation"
33027
+ })] }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
33028
+ className: `${settings_tab_module_css_default.badge} ${snapshot?.enabled ? settings_tab_module_css_default.badgeLive : ""}`,
33029
+ children: snapshot?.enabled ? isZh ? "已开启" : "On" : isZh ? "已关闭" : "Off"
33030
+ })]
33031
+ }),
33032
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", {
33033
+ className: settings_tab_module_css_default.sectionMeta,
33034
+ children: isZh ? "默认开启。开启后,AI 可以按「默认模型」里的图片/视频选择为你直接生成图片和视频;默认模型在设置 → 模型分类的下拉框里选。关掉它,这组工具会从模型工具表里整体消失(不是调用时报错),前提是这几份 JSONSchema 每步都随请求重发,而多数回合用不上。生音频与转写不受这个开关影响:一个往工作区写文件,一个从工作区读文件。" : "On by default. With it on, the model can generate images and videos for you using the defaults chosen under Settings → Model categories. Turning it off removes the whole group from the model's tool list instead of failing the call: those JSONSchemas ride along with every request and most turns never use them. Audio generation and transcription are deliberately outside this switch — one writes a file into the workspace and the other reads one out of it."
33035
+ }),
33036
+ error === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
33037
+ className: settings_tab_module_css_default.alert,
33038
+ role: "alert",
33039
+ children: isZh ? `开关未能保存:${error}` : `The switch was not saved: ${error}`
33040
+ }),
33041
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
33042
+ className: settings_tab_module_css_default.extensionRow,
33043
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: isZh ? "启用生图与生视频" : "Enable image and video generation" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", { children: isZh ? "开关本身就是模型的可见性:关闭后这些工具不会被注册,因此不可能出现「看得见却调不动」;重新打开即刻恢复。" : "The switch *is* visibility: with it off these tools are not registered at all, so the model can never see one it cannot call. Turning it back on restores them immediately." })] }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
33044
+ className: settings_tab_module_css_default.switch,
33045
+ "aria-label": isZh ? "启用生图与生视频" : "Enable image and video generation",
33046
+ type: "checkbox",
33047
+ checked: snapshot?.enabled === true,
33048
+ onChange: (event) => {
33049
+ toggle(event.target.checked);
33050
+ },
33051
+ disabled: input.setEnabled === void 0 || busy
33052
+ })]
33053
+ }),
33054
+ snapshot === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
33055
+ className: settings_tab_module_css_default.statGrid,
33056
+ children: [
33057
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
33058
+ className: settings_tab_module_css_default.statCell,
33059
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", {
33060
+ className: settings_tab_module_css_default.statLabel,
33061
+ children: isZh ? "开关管辖" : "Governed"
33062
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", {
33063
+ className: settings_tab_module_css_default.statValue,
33064
+ children: snapshot.gated.length
33065
+ })]
33066
+ }),
33067
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
33068
+ className: settings_tab_module_css_default.statCell,
33069
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", {
33070
+ className: settings_tab_module_css_default.statLabel,
33071
+ children: isZh ? "当前已注册" : "Registered now"
33072
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", {
33073
+ className: settings_tab_module_css_default.statValue,
33074
+ children: snapshot.registered.length
33075
+ })]
33076
+ }),
33077
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
33078
+ className: settings_tab_module_css_default.statCell,
33079
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", {
33080
+ className: settings_tab_module_css_default.statLabel,
33081
+ children: isZh ? "生音频 / 转写(另计)" : "Audio / transcribe (separate)"
33082
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", {
33083
+ className: settings_tab_module_css_default.statValue,
33084
+ children: 2
33085
+ })]
33086
+ })
33087
+ ]
33088
+ }),
33089
+ snapshot === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("details", {
33090
+ className: settings_tab_module_css_default.details,
33091
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("summary", {
33092
+ className: settings_tab_module_css_default.detailsSummary,
33093
+ children: isZh ? `管辖的工具(${snapshot.gated.length} 个)` : `Tools this switch governs (${snapshot.gated.length})`
33094
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
33095
+ className: settings_tab_module_css_default.chipGrid,
33096
+ children: snapshot.gated.map((name) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
33097
+ className: settings_tab_module_css_default.statChip,
33098
+ children: [name, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("b", { children: snapshot.registered.includes(name) ? isZh ? "已注册" : "registered" : isZh ? "未注册" : "absent" })]
33099
+ }, name))
33100
+ })]
33101
+ }),
33102
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("details", {
33103
+ className: settings_tab_module_css_default.sectionMeta,
33104
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("summary", {
33105
+ style: {
33106
+ cursor: "pointer",
33107
+ margin: "8px 0"
33108
+ },
33109
+ children: isZh ? "支持哪些协议和模型?" : "Which protocols and models are supported?"
33110
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
33111
+ style: {
33112
+ display: "grid",
33113
+ gap: 8,
33114
+ padding: "8px 0"
33115
+ },
33116
+ children: [
33117
+ protocolPanel(isZh ? "生视频:按 provider 选的 9 条协议" : "Video: nine protocols, chosen by provider", videoProtocols),
33118
+ protocolPanel(isZh ? "生图:按 provider 选的 5 条协议" : "Image: five protocols, chosen by provider", imageProtocols),
33119
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", { children: [
33120
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: isZh ? "模型名单是活的,不是钉死的" : "The model roster is live, not pinned" }),
33121
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("br", {}),
33122
+ isZh ? "候选路线每次请求实时汇总四路来源:Harness「模型」页里你配置的提供商、托管目录、Logfare 目录、Agnes 目录。分类按名字自动识别(veo / seedance / kling / sora / wan → 视频;gpt-image / dall-e / imagen / flux / sdxl / stable-diffusion → 生图),也可以用上面的「模型分类」手动指定或改回去。调用带逐路线熔断:同一路线连续两次失败就先让位给健康路线五分钟;只有「路线本身的问题」(限流、额度、端点缺失)才降级到下一条,密钥错或 prompt 被拒会直接报错,不会换一条路线重复付费。" : "Routes are collected live on every request from four sources: the providers you configured on the Harness Models page, the managed catalog, the Logfare directory, and the Agnes directory. Categories are inferred from the id (veo / seedance / kling / sora / wan → video; gpt-image / dall-e / imagen / flux / sdxl / stable-diffusion → image) and can be overridden by hand in Model categories above. Every call carries a per-route breaker: two consecutive failures put that route behind healthy ones for five minutes, and only a route's own problem (rate limit, quota, missing endpoint) falls through to the next one — a wrong key or a refused prompt fails outright rather than paying for another attempt."
33123
+ ] })
33124
+ ]
33125
+ })]
33126
+ })
33127
+ ]
33128
+ });
33129
+ }
32786
33130
  function DeferredToolsPanel(input) {
32787
33131
  const isZh = input.language === "zh";
32788
33132
  const [snapshot, setSnapshot] = (0, react.useState)(void 0);
@@ -35992,14 +36336,107 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
35992
36336
  return order?.state.trim().toLowerCase() === "pending";
35993
36337
  }
35994
36338
  //#endregion
36339
+ //#region src/client/session-delete-menu-item.tsx
36340
+ /**
36341
+ * The session row menu's destructive entry: delete this conversation.
36342
+ *
36343
+ * The hover control beside a row already deletes directly (see
36344
+ * {@link ./session-delete-overlay}), but that control only exists while a
36345
+ * pointer is over the row — it is invisible on touch, awkward on a trackpad, and
36346
+ * a user who opened the "..." menu has no way to reach it. So the same action
36347
+ * gets a named row, placed after Archive (`order` 500, where the shipped rows
36348
+ * step by 100), and it is the row this plugin's delete capability governs.
36349
+ *
36350
+ * Two behaviours are shared with the overlay rather than restated:
36351
+ *
36352
+ * - **The failure is reported once.** Deleting from the menu closes the menu
36353
+ * first, so the row that would say "it failed" is gone. The row therefore
36354
+ * publishes its failure as an event and the overlay — which lives in the
36355
+ * frame-wide layer and outlives any menu — draws it. One surface, two callers.
36356
+ * - **The capability gate is the same switch.** `sessionDeleteEnabled` decides
36357
+ * whether the control exists at all; the row hides itself instead of offering
36358
+ * an action the Host will refuse.
36359
+ *
36360
+ * It also follows the overlay's rule about *which* row may be deleted: the
36361
+ * session on screen is not one of them, because the Host refuses to delete the
36362
+ * session it is holding open. The overlay states that as "its row never shows the
36363
+ * control"; a named row that stayed visible would offer an action that always
36364
+ * fails, so this one is absent for the same session too.
36365
+ *
36366
+ * @module client/session-delete-menu-item
36367
+ */
36368
+ /**
36369
+ * Carries one failed deletion from the menu row to the overlay that reports it.
36370
+ *
36371
+ * `detail` is the Host's own message: it is the only copy that can name the
36372
+ * refusal (`SESSION_DELETE_REQUIRES_CLOSED_SESSION`, and so on), and the overlay
36373
+ * appends its localized lead-in around it.
36374
+ */
36375
+ const SESSION_DELETE_FAILED_EVENT = "freecodego:session-delete-failed";
36376
+ /**
36377
+ * Publish one failed deletion to whichever surface reports it.
36378
+ *
36379
+ * Dispatched on `globalThis` rather than passed down: the overlay is a sibling
36380
+ * registration in another slot and has no prop path from here.
36381
+ * @param message - the Host's refusal text.
36382
+ */
36383
+ function reportSessionDeleteFailure(message) {
36384
+ globalThis.dispatchEvent(new CustomEvent(SESSION_DELETE_FAILED_EVENT, { detail: message }));
36385
+ }
36386
+ /**
36387
+ * Render the destructive menu row, or nothing while the capability is off.
36388
+ * @param props - the row identity, the delete share, and the locale seat.
36389
+ * @returns the menu row, or null.
36390
+ */
36391
+ function SessionDeleteMenuItem({ sessionId, useMenuOpenState, deleteSession, isEnabled, currentSessionId, t }) {
36392
+ const open = currentSessionId?.();
36393
+ const [, setMenuOpen] = useMenuOpenState();
36394
+ const [enabled, setEnabled] = (0, react.useState)(true);
36395
+ (0, react.useEffect)(() => {
36396
+ if (isEnabled === void 0) return;
36397
+ let active = true;
36398
+ isEnabled().then((value) => {
36399
+ if (active) setEnabled(value);
36400
+ }, () => void 0);
36401
+ return () => {
36402
+ active = false;
36403
+ };
36404
+ }, [isEnabled]);
36405
+ (0, react.useEffect)(() => {
36406
+ const changed = (event) => {
36407
+ if (!(event instanceof CustomEvent)) return;
36408
+ const snapshot = event.detail;
36409
+ setEnabled(snapshot.sessionDeleteEnabled !== false);
36410
+ };
36411
+ globalThis.addEventListener(CAPABILITY_CHANGE_EVENT, changed);
36412
+ return () => {
36413
+ globalThis.removeEventListener(CAPABILITY_CHANGE_EVENT, changed);
36414
+ };
36415
+ }, []);
36416
+ if (!enabled || open !== void 0 && open === sessionId) return null;
36417
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MenuItemButton, {
36418
+ danger: true,
36419
+ icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutlineRegular, { size: 14 }),
36420
+ onSelect: () => {
36421
+ setMenuOpen(false);
36422
+ deleteSession(sessionId).catch((error) => {
36423
+ const message = error instanceof Error ? error.message : String(error);
36424
+ console.error("FreeCodeGo session deletion failed:", error);
36425
+ reportSessionDeleteFailure(message);
36426
+ });
36427
+ },
36428
+ children: t("sessionDelete")
36429
+ });
36430
+ }
36431
+ //#endregion
35995
36432
  //#region \0dsh-css:/home/runner/work/dsh-plugin-freecodego/dsh-plugin-freecodego/plugin/packages/freecodego/harness-ui/src/client/toolbar-actions.module.css.mjs
35996
- const css$3 = "._0YUfBa_action,._0YUfBa_engine{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);min-height:28px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:center;gap:6px;display:inline-flex}._0YUfBa_action{cursor:pointer;padding:0 9px}._0YUfBa_action:hover{color:var(--fcg-text-primary);background:var(--fcg-bg-hover)}._0YUfBa_sessionDeleteOverlay{z-index:60;line-height:0;position:fixed}._0YUfBa_sessionDeleteError{z-index:61;border:1px solid color-mix(in srgb, var(--fcg-danger) 28%, transparent);border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-danger) 7%, var(--fcg-bg-layer-2));max-width:min(420px,100vw - 24px);color:var(--fcg-danger);font-size:var(--fcg-font-caption);box-shadow:var(--fcg-shadow-2);align-items:center;gap:8px;padding:8px 12px;line-height:18px;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%)}._0YUfBa_sessionDeleteError span{overflow-wrap:anywhere}._0YUfBa_sessionDeleteError button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:15px;line-height:1}._0YUfBa_sessionDelete{width:16px;min-height:16px;color:var(--fcg-danger);background:0 0;border:0;border-radius:4px;padding:0}._0YUfBa_sessionDelete:hover{color:var(--fcg-danger);background:color-mix(in srgb, var(--fcg-danger) 10%, transparent)}._0YUfBa_engine{padding-left:9px}._0YUfBa_engineControl{align-items:center;display:inline-flex;position:relative}._0YUfBa_engineLabel{color:var(--fcg-text-tertiary)}._0YUfBa_engineSelect{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;outline:0;padding:4px 8px 4px 0}._0YUfBa_execution{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);min-height:24px;color:var(--fcg-text-tertiary);background:var(--fcg-bg-layer-2);font-size:var(--fcg-font-caption);white-space:nowrap;align-items:center;padding:0 8px;display:inline-flex}._0YUfBa_executionNative{border-color:color-mix(in srgb, var(--fcg-success) 42%, var(--fcg-line));color:var(--fcg-success);background:color-mix(in srgb, var(--fcg-success) 7%, var(--fcg-bg-layer-2))}._0YUfBa_engineNotice{z-index:20;border:1px solid color-mix(in srgb, var(--fcg-warn) 45%, var(--fcg-line));border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);width:248px;color:var(--fcg-text-secondary);box-shadow:var(--fcg-shadow-2);font-size:var(--fcg-font-caption);grid-template-columns:1fr auto;gap:2px 10px;padding:10px 28px 10px 12px;line-height:1.45;display:grid;position:absolute;top:calc(100% + 8px);left:0}._0YUfBa_engineNotice strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption)}._0YUfBa_engineNotice span{grid-column:1/-1}._0YUfBa_engineNotice button{color:var(--fcg-text-tertiary);cursor:pointer;background:0 0;border:0;padding:0;font-size:17px;line-height:1;position:absolute;top:6px;right:7px}._0YUfBa_engineError{z-index:20;border:1px solid color-mix(in srgb, var(--fcg-danger) 32%, var(--fcg-line));border-radius:var(--fcg-radius-md);background:color-mix(in srgb, var(--fcg-danger) 7%, var(--fcg-bg-layer-2));width:248px;color:var(--fcg-danger);font-size:var(--fcg-font-caption);box-shadow:var(--fcg-shadow-2);overflow-wrap:anywhere;padding:9px 12px;line-height:1.45;position:absolute;top:calc(100% + 8px);left:0}._0YUfBa_engineError span{display:block}._0YUfBa_engineRetry{border:1px solid color-mix(in srgb, var(--fcg-danger) 32%, var(--fcg-line));border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:inherit;font:inherit;cursor:pointer;margin-top:6px;padding:2px 8px}._0YUfBa_engineRetry:hover{background:color-mix(in srgb, var(--fcg-danger) 12%, var(--fcg-bg-layer-2))}";
35997
- const tagId$3 = "freecodego/toolbar-actions.module.css";
35998
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
36433
+ const css$4 = "._0YUfBa_action,._0YUfBa_engine{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);min-height:28px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:center;gap:6px;display:inline-flex}._0YUfBa_action{cursor:pointer;padding:0 9px}._0YUfBa_action:hover{color:var(--fcg-text-primary);background:var(--fcg-bg-hover)}._0YUfBa_sessionDeleteOverlay{z-index:60;line-height:0;position:fixed}._0YUfBa_sessionDeleteError{z-index:61;border:1px solid color-mix(in srgb, var(--fcg-danger) 28%, transparent);border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-danger) 7%, var(--fcg-bg-layer-2));max-width:min(420px,100vw - 24px);color:var(--fcg-danger);font-size:var(--fcg-font-caption);box-shadow:var(--fcg-shadow-2);align-items:center;gap:8px;padding:8px 12px;line-height:18px;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%)}._0YUfBa_sessionDeleteError span{overflow-wrap:anywhere}._0YUfBa_sessionDeleteError button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:15px;line-height:1}._0YUfBa_sessionDelete{width:16px;min-height:16px;color:var(--fcg-danger);background:0 0;border:0;border-radius:4px;padding:0}._0YUfBa_sessionDelete:hover{color:var(--fcg-danger);background:color-mix(in srgb, var(--fcg-danger) 10%, transparent)}._0YUfBa_engine{padding-left:9px}._0YUfBa_engineControl{align-items:center;display:inline-flex;position:relative}._0YUfBa_engineLabel{color:var(--fcg-text-tertiary)}._0YUfBa_engineSelect{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;outline:0;padding:4px 8px 4px 0}._0YUfBa_execution{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);min-height:24px;color:var(--fcg-text-tertiary);background:var(--fcg-bg-layer-2);font-size:var(--fcg-font-caption);white-space:nowrap;align-items:center;padding:0 8px;display:inline-flex}._0YUfBa_executionNative{border-color:color-mix(in srgb, var(--fcg-success) 42%, var(--fcg-line));color:var(--fcg-success);background:color-mix(in srgb, var(--fcg-success) 7%, var(--fcg-bg-layer-2))}._0YUfBa_engineNotice{z-index:20;border:1px solid color-mix(in srgb, var(--fcg-warn) 45%, var(--fcg-line));border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);width:248px;color:var(--fcg-text-secondary);box-shadow:var(--fcg-shadow-2);font-size:var(--fcg-font-caption);grid-template-columns:1fr auto;gap:2px 10px;padding:10px 28px 10px 12px;line-height:1.45;display:grid;position:absolute;top:calc(100% + 8px);left:0}._0YUfBa_engineNotice strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption)}._0YUfBa_engineNotice span{grid-column:1/-1}._0YUfBa_engineNotice button{color:var(--fcg-text-tertiary);cursor:pointer;background:0 0;border:0;padding:0;font-size:17px;line-height:1;position:absolute;top:6px;right:7px}._0YUfBa_engineError{z-index:20;border:1px solid color-mix(in srgb, var(--fcg-danger) 32%, var(--fcg-line));border-radius:var(--fcg-radius-md);background:color-mix(in srgb, var(--fcg-danger) 7%, var(--fcg-bg-layer-2));width:248px;color:var(--fcg-danger);font-size:var(--fcg-font-caption);box-shadow:var(--fcg-shadow-2);overflow-wrap:anywhere;padding:9px 12px;line-height:1.45;position:absolute;top:calc(100% + 8px);left:0}._0YUfBa_engineError span{display:block}._0YUfBa_engineRetry{border:1px solid color-mix(in srgb, var(--fcg-danger) 32%, var(--fcg-line));border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:inherit;font:inherit;cursor:pointer;margin-top:6px;padding:2px 8px}._0YUfBa_engineRetry:hover{background:color-mix(in srgb, var(--fcg-danger) 12%, var(--fcg-bg-layer-2))}";
36434
+ const tagId$4 = "freecodego/toolbar-actions.module.css";
36435
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
35999
36436
  const tag = document.createElement("style");
36000
36437
  tag.dataset.plugin = "freecodego";
36001
- tag.dataset.pluginCss = tagId$3;
36002
- tag.textContent = css$3;
36438
+ tag.dataset.pluginCss = tagId$4;
36439
+ tag.textContent = css$4;
36003
36440
  document.head.appendChild(tag);
36004
36441
  }
36005
36442
  var toolbar_actions_module_css_default = {
@@ -36065,6 +36502,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
36065
36502
  globalThis.removeEventListener("freecodego:capability-change", changed);
36066
36503
  };
36067
36504
  }, []);
36505
+ (0, react.useEffect)(() => {
36506
+ const failed = (event) => {
36507
+ if (!(event instanceof CustomEvent)) return;
36508
+ setError(String(event.detail));
36509
+ };
36510
+ globalThis.addEventListener(SESSION_DELETE_FAILED_EVENT, failed);
36511
+ return () => {
36512
+ globalThis.removeEventListener(SESSION_DELETE_FAILED_EVENT, failed);
36513
+ };
36514
+ }, []);
36068
36515
  const overlayRef = (0, react.useRef)(null);
36069
36516
  (0, react.useEffect)(() => {
36070
36517
  let frame;
@@ -36189,7 +36636,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
36189
36636
  event.stopPropagation();
36190
36637
  remove(session.id);
36191
36638
  },
36192
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutline16, { size: 16 })
36639
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutlineRegular, { size: 16 })
36193
36640
  })
36194
36641
  }, session.id))] });
36195
36642
  }
@@ -36257,6 +36704,374 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
36257
36704
  });
36258
36705
  }
36259
36706
  //#endregion
36707
+ //#region \0dsh-css:/home/runner/work/dsh-plugin-freecodego/dsh-plugin-freecodego/plugin/packages/freecodego/harness-ui/src/client/web-search-provider-section.module.css.mjs
36708
+ const css$3 = ".i0u2iW_section{border-top:1px solid var(--fcg-line-subtle);gap:6px;padding:16px 0 4px;display:grid}.i0u2iW_head{justify-content:space-between;align-items:center;gap:12px;display:flex}.i0u2iW_title{color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg);margin:0;font-weight:650;line-height:20px}.i0u2iW_hint{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin:0;line-height:18px}.i0u2iW_current{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin:0;line-height:18px}.i0u2iW_reset{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:var(--fcg-text-secondary);font:inherit;font-size:var(--fcg-font-caption);cursor:pointer;padding:2px 10px}.i0u2iW_reset:hover{border-color:var(--fcg-line-strong,var(--fcg-line));color:var(--fcg-text-primary)}.i0u2iW_group{gap:4px;margin-top:6px;display:grid}.i0u2iW_provider{color:var(--fcg-text-tertiary);letter-spacing:.04em;text-transform:uppercase;font-size:11px}.i0u2iW_rows{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;display:grid}.i0u2iW_row{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);text-align:left;font:inherit;cursor:pointer;grid-template-columns:minmax(0,1fr);gap:1px;padding:6px 10px;display:grid}.i0u2iW_row:hover:not(:disabled){border-color:var(--fcg-line);background:var(--fcg-bg-layer-2)}.i0u2iW_row:disabled{cursor:progress;opacity:.6}.i0u2iW_rowActive{border-color:color-mix(in srgb, var(--fcg-brand) 45%, var(--fcg-line));background:color-mix(in srgb, var(--fcg-brand) 7%, var(--fcg-bg-layer-1));color:var(--fcg-text-primary)}.i0u2iW_rowLabel{color:inherit;font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.i0u2iW_rowMeta{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:15px;overflow:hidden}.i0u2iW_done{color:var(--fcg-success);font-size:var(--fcg-font-caption);margin:0;line-height:18px}.i0u2iW_problem{color:var(--fcg-danger);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin:0;line-height:18px}";
36709
+ const tagId$3 = "freecodego/web-search-provider-section.module.css";
36710
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
36711
+ const tag = document.createElement("style");
36712
+ tag.dataset.plugin = "freecodego";
36713
+ tag.dataset.pluginCss = tagId$3;
36714
+ tag.textContent = css$3;
36715
+ document.head.appendChild(tag);
36716
+ }
36717
+ var web_search_provider_section_module_css_default = {
36718
+ "current": "i0u2iW_current",
36719
+ "done": "i0u2iW_done",
36720
+ "group": "i0u2iW_group",
36721
+ "head": "i0u2iW_head",
36722
+ "hint": "i0u2iW_hint",
36723
+ "problem": "i0u2iW_problem",
36724
+ "provider": "i0u2iW_provider",
36725
+ "reset": "i0u2iW_reset",
36726
+ "row": "i0u2iW_row",
36727
+ "rowActive": "i0u2iW_rowActive",
36728
+ "rowLabel": "i0u2iW_rowLabel",
36729
+ "rowMeta": "i0u2iW_rowMeta",
36730
+ "rows": "i0u2iW_rows",
36731
+ "section": "i0u2iW_section",
36732
+ "title": "i0u2iW_title"
36733
+ };
36734
+ //#endregion
36735
+ //#region src/client/web-search-provider-section.tsx
36736
+ /**
36737
+ * The web-search page's missing control: which model answers the search.
36738
+ *
36739
+ * The stock page over `web-search-deepseek` edits the key, the endpoint, and the
36740
+ * search budget, and leaves the model at the schema default (`deepseek-v4-flash`
36741
+ * against DeepSeek's own Anthropic endpoint). That is the one part of the
36742
+ * provider a FreeCodeGo installation wants to change: nobody on this plugin pays
36743
+ * DeepSeek per search, and the routes they do pay for are registered here.
36744
+ *
36745
+ * So this section renders in the page's own detail slot — under its
36746
+ * configuration, where the page's blank lower half is — lists every model this
36747
+ * plugin routes, and writes the choice back into the same settings namespace the
36748
+ * page above edits. Nothing here is a second settings document: the section
36749
+ * reads and writes `web-search-deepseek` through the shared config-form service,
36750
+ * so the stock fields and this list can never disagree.
36751
+ *
36752
+ * The endpoint and the key come from the Host, via `webSearchBind`, because the
36753
+ * route decision and every provider key live there. The client asks for one
36754
+ * route, writes the credential it receives under the reference it is told, and
36755
+ * points the namespace at that reference; a binding that cannot be resolved
36756
+ * leaves the page's own fields untouched and says why.
36757
+ *
36758
+ * @module client/web-search-provider-section
36759
+ */
36760
+ /**
36761
+ * The settings namespace the stock web-search page owns.
36762
+ *
36763
+ * Spelled here rather than imported: a client package must not depend on a Host
36764
+ * package, and the page spells it the same way for the same reason.
36765
+ */
36766
+ const WEB_SEARCH_NAMESPACE = "web-search-deepseek";
36767
+ /** Drop a provider prefix so a comparison is about the model, not its spelling. */
36768
+ function bareModelId(id) {
36769
+ return id.trim().replace(/^[a-z0-9_-]+\//iu, "").toLowerCase();
36770
+ }
36771
+ /**
36772
+ * The web-search page's model list, under its own configuration.
36773
+ * @param props - the page's subject plus the reads, writes, and copy.
36774
+ * @returns the section, or null on every other plugin's page.
36775
+ */
36776
+ function WebSearchProviderSection(props) {
36777
+ const relevant = props.subject?.kind === "item" && props.subject.id === "web-search";
36778
+ const [options, setOptions] = (0, react.useState)(void 0);
36779
+ const [current, setCurrent] = (0, react.useState)(void 0);
36780
+ const [problem, setProblem] = (0, react.useState)(void 0);
36781
+ const [notice, setNotice] = (0, react.useState)(void 0);
36782
+ /** What the liveness check did, when a saved binding needed it. */
36783
+ const [recovery, setRecovery] = (0, react.useState)(void 0);
36784
+ const face = (0, react.useRef)(props);
36785
+ (0, react.useEffect)(() => {
36786
+ face.current = props;
36787
+ });
36788
+ const subscribe = (0, react.useCallback)(() => {
36789
+ const form = face.current.form();
36790
+ if (form === void 0) {
36791
+ setProblem("unavailable");
36792
+ return;
36793
+ }
36794
+ const publish = () => {
36795
+ const snapshot = form.getSnapshot();
36796
+ setCurrent(snapshot.value);
36797
+ setProblem(snapshot.status === "unavailable" ? "unavailable" : void 0);
36798
+ };
36799
+ publish();
36800
+ return form.subscribe(publish);
36801
+ }, []);
36802
+ (0, react.useEffect)(() => {
36803
+ if (!relevant) return;
36804
+ let active = true;
36805
+ const off = subscribe();
36806
+ face.current.models().then((list) => {
36807
+ if (active) setOptions(list);
36808
+ }, () => {
36809
+ if (active) setProblem("offline");
36810
+ });
36811
+ return () => {
36812
+ active = false;
36813
+ off?.();
36814
+ };
36815
+ }, [relevant, subscribe]);
36816
+ /**
36817
+ * Write one resolved binding into the page's namespace and this plugin's settings.
36818
+ *
36819
+ * The order is load-bearing: the key, then the pair the Host would rebuild from,
36820
+ * then the section that names both. The section is what makes the search provider
36821
+ * resolve the reference, so a section written first would be a search that fails
36822
+ * with an authentication error; and a pair recorded after it would be a binding a
36823
+ * crash could leave without a memory.
36824
+ */
36825
+ const writeBinding = (0, react.useCallback)(async (binding, pair) => {
36826
+ const { form, credentials, remember, t } = face.current;
36827
+ const writer = credentials();
36828
+ if (writer === void 0) {
36829
+ setNotice(void 0);
36830
+ setProblem("unavailable");
36831
+ return;
36832
+ }
36833
+ await writer.set(binding.apiKeyEnv, binding.apiKey);
36834
+ await remember(pair);
36835
+ const namespace = form();
36836
+ if (namespace === void 0) {
36837
+ setNotice(void 0);
36838
+ setProblem("unavailable");
36839
+ return;
36840
+ }
36841
+ setNotice(await namespace.mutate([
36842
+ {
36843
+ op: "set",
36844
+ path: ["model"],
36845
+ value: binding.model
36846
+ },
36847
+ {
36848
+ op: "set",
36849
+ path: ["baseURL"],
36850
+ value: binding.baseURL
36851
+ },
36852
+ {
36853
+ op: "set",
36854
+ path: ["apiKeyEnv"],
36855
+ value: binding.apiKeyEnv
36856
+ }
36857
+ ]) ? {
36858
+ kind: "done",
36859
+ durable: binding.durable,
36860
+ baseURL: binding.baseURL
36861
+ } : {
36862
+ kind: "failed",
36863
+ message: t("searchProviderRefused")
36864
+ });
36865
+ }, []);
36866
+ const apply = (0, react.useCallback)((option) => {
36867
+ const pair = {
36868
+ provider: option.provider,
36869
+ model: option.id
36870
+ };
36871
+ setNotice({
36872
+ kind: "busy",
36873
+ key: `${option.provider}\u0000${option.id}`
36874
+ });
36875
+ (async () => {
36876
+ const result = await face.current.bind(pair);
36877
+ if (!result.ok) {
36878
+ setNotice({
36879
+ kind: "failed",
36880
+ message: result.error.message
36881
+ });
36882
+ return;
36883
+ }
36884
+ await writeBinding(result.value, pair);
36885
+ })().catch((error) => {
36886
+ setNotice({
36887
+ kind: "failed",
36888
+ message: error instanceof Error ? error.message : String(error)
36889
+ });
36890
+ });
36891
+ }, [writeBinding]);
36892
+ /**
36893
+ * Check the saved binding once, and rebuild it when this process cannot serve it.
36894
+ *
36895
+ * A bridge endpoint's port, route id, and secret are minted per process, so a binding
36896
+ * saved before a restart is dead until it is re-resolved — the Host does that at
36897
+ * boot, and this is the second layer for the case it could not (no credentials
36898
+ * service, a write the profile refused). Whether the saved route is alive is a
36899
+ * question only the Host can answer: a fresh resolution mints a *new* id, so
36900
+ * comparing URLs would report every healthy binding as stale.
36901
+ */
36902
+ const verified = (0, react.useRef)(false);
36903
+ (0, react.useEffect)(() => {
36904
+ if (!relevant || verified.current) return;
36905
+ if (face.current.form()?.getSnapshot().status !== "ready") return;
36906
+ verified.current = true;
36907
+ (async () => {
36908
+ const answer = await face.current.status();
36909
+ if (!answer.ok) return;
36910
+ const status = answer.value;
36911
+ if (status.state !== "bridge" || status.alive) return;
36912
+ const pair = status.remembered;
36913
+ if (pair === void 0) {
36914
+ setRecovery("needs-pick");
36915
+ return;
36916
+ }
36917
+ setNotice({
36918
+ kind: "busy",
36919
+ key: `${pair.provider}\u0000${pair.model}`
36920
+ });
36921
+ const binding = await face.current.bind(pair);
36922
+ if (!binding.ok) {
36923
+ setNotice(void 0);
36924
+ setRecovery("failed");
36925
+ return;
36926
+ }
36927
+ await writeBinding(binding.value, pair);
36928
+ setRecovery("rebuilt");
36929
+ })().catch(() => {
36930
+ setNotice(void 0);
36931
+ setRecovery("failed");
36932
+ });
36933
+ }, [
36934
+ relevant,
36935
+ current,
36936
+ writeBinding
36937
+ ]);
36938
+ const reset = (0, react.useCallback)(() => {
36939
+ const namespace = face.current.form();
36940
+ if (namespace === void 0) {
36941
+ setProblem("unavailable");
36942
+ return;
36943
+ }
36944
+ setNotice({
36945
+ kind: "busy",
36946
+ key: ""
36947
+ });
36948
+ namespace.mutate([
36949
+ {
36950
+ op: "unset",
36951
+ path: ["model"]
36952
+ },
36953
+ {
36954
+ op: "unset",
36955
+ path: ["baseURL"]
36956
+ },
36957
+ {
36958
+ op: "unset",
36959
+ path: ["apiKeyEnv"]
36960
+ }
36961
+ ]).then((accepted) => {
36962
+ setNotice(accepted ? void 0 : {
36963
+ kind: "failed",
36964
+ message: face.current.t("searchProviderRefused")
36965
+ });
36966
+ }, (error) => {
36967
+ setNotice({
36968
+ kind: "failed",
36969
+ message: error instanceof Error ? error.message : String(error)
36970
+ });
36971
+ });
36972
+ }, []);
36973
+ if (!relevant) return null;
36974
+ const { t } = props;
36975
+ const groups = /* @__PURE__ */ new Map();
36976
+ for (const option of options ?? []) {
36977
+ const list = groups.get(option.provider) ?? [];
36978
+ list.push(option);
36979
+ groups.set(option.provider, list);
36980
+ }
36981
+ const activeId = current?.model === void 0 ? void 0 : bareModelId(current.model);
36982
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
36983
+ className: web_search_provider_section_module_css_default.section,
36984
+ "data-freecodego-web-search-provider": true,
36985
+ children: [
36986
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
36987
+ className: web_search_provider_section_module_css_default.head,
36988
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h4", {
36989
+ className: web_search_provider_section_module_css_default.title,
36990
+ children: t("searchProviderTitle")
36991
+ }), current?.model === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
36992
+ type: "button",
36993
+ className: web_search_provider_section_module_css_default.reset,
36994
+ onClick: reset,
36995
+ children: t("searchProviderReset")
36996
+ })]
36997
+ }),
36998
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
36999
+ className: web_search_provider_section_module_css_default.hint,
37000
+ children: t("searchProviderHint")
37001
+ }),
37002
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
37003
+ className: web_search_provider_section_module_css_default.current,
37004
+ children: current?.model === void 0 ? t("searchProviderNone") : `${t("searchProviderCurrent")}${current.model}${current.baseURL === void 0 ? "" : ` · ${current.baseURL}`}`
37005
+ }),
37006
+ problem === "unavailable" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
37007
+ className: web_search_provider_section_module_css_default.problem,
37008
+ children: t("searchProviderUnavailable")
37009
+ }) : null,
37010
+ problem === "offline" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
37011
+ className: web_search_provider_section_module_css_default.problem,
37012
+ children: t("searchProviderLoadFailed")
37013
+ }) : null,
37014
+ options === void 0 && problem === void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
37015
+ className: web_search_provider_section_module_css_default.hint,
37016
+ children: t("searchProviderLoading")
37017
+ }) : null,
37018
+ [...groups.entries()].map(([provider, rows]) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
37019
+ className: web_search_provider_section_module_css_default.group,
37020
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
37021
+ className: web_search_provider_section_module_css_default.provider,
37022
+ children: provider
37023
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
37024
+ className: web_search_provider_section_module_css_default.rows,
37025
+ children: rows.map((option) => {
37026
+ const active = activeId !== void 0 && bareModelId(option.id) === activeId;
37027
+ const busy = notice?.kind === "busy" && notice.key === `${option.provider}\u0000${option.id}`;
37028
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
37029
+ type: "button",
37030
+ className: active ? `${web_search_provider_section_module_css_default.row} ${web_search_provider_section_module_css_default.rowActive}` : web_search_provider_section_module_css_default.row,
37031
+ disabled: notice?.kind === "busy",
37032
+ title: active ? t("searchProviderActive") : t("searchProviderUse"),
37033
+ onClick: () => {
37034
+ apply(option);
37035
+ },
37036
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
37037
+ className: web_search_provider_section_module_css_default.rowLabel,
37038
+ children: option.label ?? option.id
37039
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
37040
+ className: web_search_provider_section_module_css_default.rowMeta,
37041
+ children: busy ? t("searchProviderSaving") : active ? t("searchProviderActive") : option.id
37042
+ })]
37043
+ }, `${option.provider}/${option.id}`);
37044
+ })
37045
+ })]
37046
+ }, provider)),
37047
+ notice?.kind === "done" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
37048
+ className: web_search_provider_section_module_css_default.done,
37049
+ children: notice.durable ? t("searchProviderSaved") : t("searchProviderSavedEphemeral")
37050
+ }) : null,
37051
+ notice?.kind === "done" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
37052
+ className: web_search_provider_section_module_css_default.rowMeta,
37053
+ children: notice.baseURL
37054
+ }) : null,
37055
+ recovery === "rebuilt" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
37056
+ className: web_search_provider_section_module_css_default.done,
37057
+ children: t("searchProviderRebuilt")
37058
+ }) : null,
37059
+ recovery === "needs-pick" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
37060
+ className: web_search_provider_section_module_css_default.problem,
37061
+ children: t("searchProviderNeedsPick")
37062
+ }) : null,
37063
+ recovery === "failed" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
37064
+ className: web_search_provider_section_module_css_default.problem,
37065
+ children: t("searchProviderRepairFailed")
37066
+ }) : null,
37067
+ notice?.kind === "failed" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
37068
+ className: web_search_provider_section_module_css_default.problem,
37069
+ children: `${t("searchProviderFailed")}${notice.message}`
37070
+ }) : null
37071
+ ]
37072
+ });
37073
+ }
37074
+ //#endregion
36260
37075
  //#region src/client/voice-input.tsx
36261
37076
  /** Add browser speech recognition without exposing provider credentials to the page. */
36262
37077
  function VoiceInputButton(input) {
@@ -36607,7 +37422,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
36607
37422
  },
36608
37423
  title: t("language.switch"),
36609
37424
  "aria-label": t("language.switch"),
36610
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconGlobeOutline14, {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: active === "zh" ? "中" : "EN" })]
37425
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconGlobeOutlineRegular, {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: active === "zh" ? "中" : "EN" })]
36611
37426
  });
36612
37427
  }
36613
37428
  function EngineAction({ catalog, setDefaultEngine, sessionId, useSession, t }) {
@@ -36961,14 +37776,14 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
36961
37776
  return sessionId !== void 0 && state.byId[sessionId]?.running === true;
36962
37777
  }
36963
37778
  /**
36964
- * @param state - the Session list snapshot.
37779
+ * @param jobs - the client jobs snapshot.
36965
37780
  * @param sessionId - the Session to read.
36966
37781
  * @returns how many of that Session's background jobs are still open.
36967
37782
  */
36968
- function liveJobCount(state, sessionId) {
37783
+ function liveJobCount(jobs, sessionId) {
36969
37784
  if (sessionId === void 0) return 0;
36970
37785
  let live = 0;
36971
- for (const job of state.jobsBySession[sessionId] ?? NO_JOBS) if (isLiveJob(job)) live += 1;
37786
+ for (const job of jobs.rows[sessionId] ?? NO_JOBS) if (isLiveJob(job)) live += 1;
36972
37787
  return live;
36973
37788
  }
36974
37789
  /**
@@ -36978,14 +37793,14 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
36978
37793
  * is the most recently started one, and its id is what changes when another job
36979
37794
  * fails. See `CompanionObservation.failedJobKey` for why a boolean cannot stand
36980
37795
  * in for this.
36981
- * @param state - the Session list snapshot.
37796
+ * @param jobs - the client jobs snapshot.
36982
37797
  * @param sessionId - the Session to read.
36983
- * @returns the newest failed job's id, or undefined when the list holds none.
37798
+ * @returns the newest failed job's id, or undefined when the roster holds none.
36984
37799
  */
36985
- function newestFailedJobKey(state, sessionId) {
37800
+ function newestFailedJobKey(jobs, sessionId) {
36986
37801
  if (sessionId === void 0) return void 0;
36987
37802
  let newest;
36988
- for (const job of state.jobsBySession[sessionId] ?? NO_JOBS) if (job.status === "failed") newest = job.id;
37803
+ for (const job of jobs.rows[sessionId] ?? NO_JOBS) if (job.status === "failed") newest = job.id;
36989
37804
  return newest;
36990
37805
  }
36991
37806
  /**
@@ -37278,7 +38093,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
37278
38093
  this.writing = false;
37279
38094
  break;
37280
38095
  case "user/message":
37281
- if (event.data.source.kind === "plugin") this.noticeKey = `${event.seq}`;
38096
+ if (event.data.source.kind !== "user") this.noticeKey = `${event.seq}`;
37282
38097
  break;
37283
38098
  default: break;
37284
38099
  }
@@ -40492,8 +41307,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
40492
41307
  */
40493
41308
  function useCompanionObservation(hooks, sessionId, activity) {
40494
41309
  const running = hooks.useSessions((state) => sessionRunning(state, sessionId));
40495
- const liveJobs = hooks.useSessions((state) => liveJobCount(state, sessionId));
40496
- const failedJobKey = hooks.useSessions((state) => newestFailedJobKey(state, sessionId));
41310
+ const liveJobs = hooks.useJobs((jobs) => liveJobCount(jobs, sessionId));
41311
+ const failedJobKey = hooks.useJobs((jobs) => newestFailedJobKey(jobs, sessionId));
40497
41312
  const asked = hooks.useSessionStatus((statuses) => awaitingInteraction(statuses, sessionId));
40498
41313
  return {
40499
41314
  running,
@@ -40528,14 +41343,15 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
40528
41343
  * asks (`mainViewSessionId`), so the two seats and this row follow one Session id
40529
41344
  * and one set of facts.
40530
41345
  * @param sessions - the Session list observable.
41346
+ * @param jobs - the client jobs snapshot observable.
40531
41347
  * @param statuses - the unified Session UI status observable.
40532
41348
  * @returns what `projectSignals` consumes.
40533
41349
  */
40534
- function useObservedCompanionObservation(sessions, statuses, activity) {
41350
+ function useObservedCompanionObservation(sessions, jobs, statuses, activity) {
40535
41351
  const sessionId = useObserved(sessions, mainViewSessionId$1);
40536
41352
  const running = useObserved(sessions, (state) => sessionRunning(state, sessionId));
40537
- const liveJobs = useObserved(sessions, (state) => liveJobCount(state, sessionId));
40538
- const failedJobKey = useObserved(sessions, (state) => newestFailedJobKey(state, sessionId));
41353
+ const liveJobs = useObserved(jobs, (state) => liveJobCount(state, sessionId));
41354
+ const failedJobKey = useObserved(jobs, (state) => newestFailedJobKey(state, sessionId));
40539
41355
  const asked = useObserved(statuses, (snapshots) => awaitingInteraction(snapshots, sessionId));
40540
41356
  return {
40541
41357
  running,
@@ -40761,7 +41577,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
40761
41577
  order: 30,
40762
41578
  locale: NS$2,
40763
41579
  registrant: "freecodego-companion",
40764
- inject: () => ({ activity })
41580
+ inject: () => ({
41581
+ activity,
41582
+ hooks: { jobs: ctx.jobs.state }
41583
+ })
40765
41584
  }, CompanionBar));
40766
41585
  }
40767
41586
  //#endregion
@@ -40854,7 +41673,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
40854
41673
  * @returns the face.
40855
41674
  */
40856
41675
  function StoreFace({ sources, size, className }) {
40857
- const view = useCompanionView(useObservedCompanionObservation(sources.sessions, sources.statuses, sources.activity));
41676
+ const view = useCompanionView(useObservedCompanionObservation(sources.sessions, sources.jobs, sources.statuses, sources.activity));
40858
41677
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CompanionSvg, {
40859
41678
  frame: view.frame,
40860
41679
  size,
@@ -40891,22 +41710,35 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
40891
41710
  * Whether an element belongs to the conversation the character speaks for.
40892
41711
  *
40893
41712
  * The body and the scrollport are found upwards from the dot; the session header
40894
- * publishes no marker on itself, so it is recognised as the nearest `header` that
41713
+ * publishes no marker on itself, so it is recognised as the nearest ancestor that
40895
41714
  * holds its own slots (a settings page's `<header>` holds none, and is not the
40896
41715
  * conversation's).
41716
+ *
41717
+ * The ancestor *tag* used to be part of this test — the header was a `header`
41718
+ * element, and requiring it was the belt to the slots' braces. The shell then rewrote
41719
+ * the header as `div.titleRow`, at which point the tag check stopped recognising the
41720
+ * header at all: the jobs mark in its `actions` seat fell out of the conversation and
41721
+ * the seat ignored it. The slots are the marker that survived the rewrite, so they are
41722
+ * the whole test — they are also the exclusion the tag was being read for, because no
41723
+ * other header in the shell holds them.
40897
41724
  * @param element - the element to place; the dot, or the row considering it.
40898
41725
  * @returns true when the element is inside the conversation's chrome.
40899
41726
  */
40900
41727
  function inConversationSurface(element) {
40901
41728
  for (let node = element.parentElement; node !== null; node = node.parentElement) {
40902
41729
  if (node.matches(CONVERSATION_SURFACE)) return true;
40903
- if (node.matches("header") && node.querySelector(HEADER_SLOT_SELECTOR) !== null) return true;
41730
+ if (node.querySelector(HEADER_SLOT_SELECTOR) !== null) return true;
40904
41731
  }
40905
41732
  return false;
40906
41733
  }
40907
41734
  /**
40908
41735
  * The session header's own slots. Its `actions` seat — where the jobs list's dot
40909
41736
  * lives — carries no marker, so the header is recognised by the slots around it.
41737
+ *
41738
+ * Only the corner is emitted by the current shell: the leading marker went with the
41739
+ * rewrite into `div.titleRow`. It is kept in the selector anyway, because a slot that
41740
+ * comes back should be recognised again rather than silently ignored — and the
41741
+ * stylesheet gate in the tests records which of the two is on disk today.
40910
41742
  */
40911
41743
  const HEADER_SLOT_SELECTOR = "[data-conversation-header-leading], [data-conversation-header-corner]";
40912
41744
  /** Marks the dot as switched off. Styling and the re-scan both key on it. */
@@ -40924,8 +41756,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
40924
41756
  *
40925
41757
  * Keyed on the marker rather than on upstream's class names, which the bundle
40926
41758
  * hashes. `display: none` rather than `content: none`: the mark is a real element
40927
- * with cells inside it, and hiding it is what stops the chase — a hidden subtree is
40928
- * no longer laid out or painted.
41759
+ * with a ring and its animations on it, and hiding it is what stops them — a hidden
41760
+ * subtree is no longer laid out or painted.
40929
41761
  */
40930
41762
  const SHEET$2 = `
40931
41763
  [${DOT_ATTR}] {
@@ -40957,6 +41789,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
40957
41789
  function installDotFaces(ctx, activity) {
40958
41790
  const sources = {
40959
41791
  sessions: ctx.sessions.list,
41792
+ jobs: ctx.jobs.state,
40960
41793
  statuses: ctx.uiSession.sessionStatus,
40961
41794
  activity
40962
41795
  };
@@ -41051,6 +41884,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
41051
41884
  function installRunningRow(ctx, activity) {
41052
41885
  const sources = {
41053
41886
  sessions: ctx.sessions.list,
41887
+ jobs: ctx.jobs.state,
41054
41888
  statuses: ctx.uiSession.sessionStatus,
41055
41889
  activity
41056
41890
  };
@@ -41173,6 +42007,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
41173
42007
  const probe = options.bandProbe ?? paintsBand;
41174
42008
  const sources = {
41175
42009
  sessions: ctx.sessions.list,
42010
+ jobs: ctx.jobs.state,
41176
42011
  statuses: ctx.uiSession.sessionStatus,
41177
42012
  activity
41178
42013
  };
@@ -41240,8 +42075,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
41240
42075
  * that seated only the mark would leave the label namespace unreachable, a build
41241
42076
  * that seated only the strip would lose the rail's own mark, and the injected
41242
42077
  * seats (`./running-row.tsx`, `./step-row.tsx`, `./dot-row.tsx`) draw the same pose
41243
- * in place of the shell's own loading animations — the sweeps, and the pixel chase
41244
- * of an in-flight mark.
42078
+ * in place of the shell's own loading animations — the row sweeps that are left, and
42079
+ * the spinner ring of an in-flight mark.
41245
42080
  *
41246
42081
  * `priority: -1` is the sanctioned way to shadow a single slot: the default rank
41247
42082
  * is 0 and the lowest live entry renders, so this wins over the fallback mark
@@ -41263,7 +42098,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
41263
42098
  name: "sidebar.brand.mark",
41264
42099
  priority: -1,
41265
42100
  registrant: "freecodego-companion",
41266
- inject: () => ({ activity })
42101
+ inject: () => ({
42102
+ activity,
42103
+ hooks: { jobs: ctx.jobs.state }
42104
+ })
41267
42105
  }, FreeCodeGoCompanion));
41268
42106
  installCompanionBar(ctx, activity);
41269
42107
  ctx.effect(() => installRunningRow(ctx, activity), "freecodego-ui: Companion running row");
@@ -44477,6 +45315,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
44477
45315
  //#endregion
44478
45316
  //#region src/client/index.ts
44479
45317
  const NS = "settings.freecodego";
45318
+ /**
45319
+ * The profile entry this plugin's settings are addressed by.
45320
+ *
45321
+ * An entry id, not a namespace. The Host's settings service no longer publishes a
45322
+ * namespace per plugin — a plugin's `Config` *is* its settings document, and both the
45323
+ * read (`describe`) and the write (`update`) address the entry the profile declares, an
45324
+ * entry id the CLI writes into `cordis.patch.yml`. The previous spelling, the old
45325
+ * namespace `freecodego-harness`, matches nothing now: the reads silently answered `{}`
45326
+ * and every write was refused as an unknown entry, which is why the value is pinned here
45327
+ * and checked against that file by `tests/settings-entry.spec.ts` rather than written
45328
+ * twice from memory.
45329
+ */
45330
+ const SETTINGS_ENTRY = "freecodego-harness-plugin";
44480
45331
  /** Keep this UI's reconnect state local so it has no hidden client-runtime dependency. */
44481
45332
  function createEpochStore() {
44482
45333
  let value = 0;
@@ -44504,6 +45355,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
44504
45355
  "remote",
44505
45356
  "connection",
44506
45357
  "sessions",
45358
+ "jobs",
44507
45359
  "uiSession",
44508
45360
  "uiConversation"
44509
45361
  ];
@@ -44606,7 +45458,26 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
44606
45458
  communityFeedback: "社区与反馈",
44607
45459
  telegramGroup: "Telegram 官方群聊",
44608
45460
  telegramHint: "遇到问题需要反馈,或想跟进版本进展,点击加入官方群聊。",
44609
- telegramJoin: "加入群聊"
45461
+ telegramJoin: "加入群聊",
45462
+ sessionDelete: "删除会话",
45463
+ searchProviderTitle: "搜索方模型",
45464
+ searchProviderHint: "选择本插件内任意模型担任网页搜索。选定后会把该模型的 Anthropic 兼容接口与密钥写入上方“接口地址 / API Key”,并由下方的搜索提供方使用。",
45465
+ searchProviderCurrent: "当前搜索方:",
45466
+ searchProviderNone: "当前使用 DeepSeek 官方默认模型(未指定搜索方)。",
45467
+ searchProviderUse: "用作搜索方",
45468
+ searchProviderActive: "当前搜索方",
45469
+ searchProviderReset: "恢复 DeepSeek 默认",
45470
+ searchProviderUnavailable: "本部署未提供设置写入服务,暂时无法在这里选择搜索方。",
45471
+ searchProviderLoading: "正在读取模型列表…",
45472
+ searchProviderLoadFailed: "模型列表读取失败,请刷新后重试。",
45473
+ searchProviderSaving: "正在绑定…",
45474
+ searchProviderSaved: "已写入接口地址与密钥,搜索将由该模型执行。",
45475
+ searchProviderSavedEphemeral: "已绑定。该提供方经本地桥接转发,端点属于当前进程:Harness 下次启动会自动重建。",
45476
+ searchProviderRefused: "本部署没有接受这次写入,已保留原设置。",
45477
+ searchProviderFailed: "绑定失败:",
45478
+ searchProviderRebuilt: "检测到上次的本地桥接端点已失效,已按你此前的选择自动重建。",
45479
+ searchProviderNeedsPick: "当前搜索方指向的本地桥接端点已失效,且没有留下可重建的记录,请在上方重新选择一次。",
45480
+ searchProviderRepairFailed: "本地桥接端点已失效,自动重建没有成功,请在上方重新选择一次。"
44610
45481
  };
44611
45482
  /**
44612
45483
  * English strings this UI contributes to the settings surface.
@@ -44707,7 +45578,26 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
44707
45578
  communityFeedback: "Community and feedback",
44708
45579
  telegramGroup: "Official Telegram group",
44709
45580
  telegramHint: "Report a problem or follow release progress by joining the official group.",
44710
- telegramJoin: "Join the group"
45581
+ telegramJoin: "Join the group",
45582
+ sessionDelete: "Delete session",
45583
+ searchProviderTitle: "Search provider model",
45584
+ searchProviderHint: "Pick any model this plugin routes to answer web searches. The choice writes that model’s Anthropic-compatible endpoint and key into the endpoint and API key fields above, where the search provider reads them.",
45585
+ searchProviderCurrent: "Search provider: ",
45586
+ searchProviderNone: "Search runs on DeepSeek’s own default model (no model chosen here).",
45587
+ searchProviderUse: "Use as search provider",
45588
+ searchProviderActive: "Current search provider",
45589
+ searchProviderReset: "Restore the DeepSeek default",
45590
+ searchProviderUnavailable: "This deployment exposes no settings writer, so the search provider cannot be chosen here.",
45591
+ searchProviderLoading: "Reading the model list…",
45592
+ searchProviderLoadFailed: "The model list could not be read. Refresh and retry.",
45593
+ searchProviderSaving: "Binding…",
45594
+ searchProviderSaved: "The endpoint and key were written; this model answers searches now.",
45595
+ searchProviderSavedEphemeral: "Bound. This provider is reached through the local bridge, so its endpoint belongs to this process — Harness rebuilds it on the next start.",
45596
+ searchProviderRefused: "This deployment refused the write; the previous settings were kept.",
45597
+ searchProviderFailed: "Binding failed: ",
45598
+ searchProviderRebuilt: "The saved local-bridge endpoint from a previous run was dead, so it was rebuilt from your earlier choice.",
45599
+ searchProviderNeedsPick: "The search provider points at a local-bridge endpoint from a previous run, and no record of the choice survived to rebuild it. Pick one above.",
45600
+ searchProviderRepairFailed: "The saved local-bridge endpoint is dead and rebuilding it did not succeed. Pick one above."
44711
45601
  };
44712
45602
  function apply(ctx) {
44713
45603
  ctx.effect(() => installFreeCodeGoSidebarIcons(), "freecodego-ui: semantic sidebar icons");
@@ -44727,13 +45617,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
44727
45617
  if (typeof settings?.describe !== "function") throw new Error("Harness settings Remote service did not become available");
44728
45618
  const response = await settings.describe();
44729
45619
  if (!response.ok) throw new Error(response.error.message);
44730
- const value = response.value.namespaces.find((item) => item.ns === "freecodego-harness")?.value;
45620
+ const value = response.value.namespaces.find((item) => item.ns === SETTINGS_ENTRY)?.value;
44731
45621
  return value !== null && typeof value === "object" && !Array.isArray(value) ? value : {};
44732
45622
  };
44733
45623
  const updateFreeCodeGoSettings = async (patch) => {
44734
45624
  const settings = ctx.get("remote.settings");
44735
45625
  if (typeof settings?.update !== "function") throw new Error("Harness settings Remote service did not become available");
44736
- const response = await settings.update("freecodego-harness", patch, void 0);
45626
+ const response = await settings.update(SETTINGS_ENTRY, patch, void 0);
44737
45627
  if (!response.ok) throw new Error(response.error.message);
44738
45628
  };
44739
45629
  const connectionEpoch = createEpochStore();
@@ -44907,6 +45797,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
44907
45797
  const headroomUpdate = (patch) => backendCall("headroomUpdate", patch);
44908
45798
  const deferredToolsStatus = () => backendCall("deferredToolsStatus");
44909
45799
  const deferredToolsSetEnabled = (enabled) => backendCall("deferredToolsSetEnabled", enabled);
45800
+ const mediaGenerationStatus = () => backendCall("mediaGenerationStatus");
45801
+ const mediaGenerationSetEnabled = (enabled) => backendCall("mediaGenerationSetEnabled", enabled);
44910
45802
  const reviewStatus = (sessionId) => backendCall("reviewStatus", sessionId);
44911
45803
  const reviewStart = (sessionId, request) => backendCall("reviewStart", sessionId, request);
44912
45804
  const reviewUpdate = (sessionId, patch) => backendCall("reviewUpdate", sessionId, patch);
@@ -45026,6 +45918,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
45026
45918
  };
45027
45919
  const capabilityMarketplace = (input) => backendCall("capabilityMarketplace", input);
45028
45920
  const mcpPresetInstall = (id) => backendCall("mcpPresetInstall", id);
45921
+ const sessionDeleteEnabled = async () => {
45922
+ try {
45923
+ return (await readFreeCodeGoSettings()).sessionDeleteEnabled !== false;
45924
+ } catch {
45925
+ return true;
45926
+ }
45927
+ };
45029
45928
  const deleteSession = async (sessionId) => {
45030
45929
  const result = await backendCall("sessionDelete", sessionId);
45031
45930
  if (!result.ok) throw new Error(result.error.message);
@@ -45045,15 +45944,68 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
45045
45944
  inject: () => ({
45046
45945
  deleteSession,
45047
45946
  capabilities,
45048
- isEnabled: async () => {
45049
- try {
45050
- return (await readFreeCodeGoSettings()).sessionDeleteEnabled !== false;
45051
- } catch {
45052
- return true;
45053
- }
45054
- }
45947
+ isEnabled: sessionDeleteEnabled
45055
45948
  })
45056
45949
  }, SessionDeleteOverlay));
45950
+ shellSlots.inject("sidebar.workspaces.session.menu.item", () => shellSlots.register({
45951
+ name: "sidebar.workspaces.session.menu.item",
45952
+ id: "freecodego-session-delete",
45953
+ order: 500,
45954
+ locale: NS,
45955
+ inject: () => ({
45956
+ deleteSession,
45957
+ isEnabled: sessionDeleteEnabled,
45958
+ currentSessionId: () => mainViewSessionId(ctx)
45959
+ })
45960
+ }, SessionDeleteMenuItem));
45961
+ const webSearchForm = () => {
45962
+ const forms = ctx.get("configForms");
45963
+ return typeof forms?.get === "function" ? forms.get(WEB_SEARCH_NAMESPACE) : void 0;
45964
+ };
45965
+ const webSearchModels = async () => {
45966
+ const result = await backendCall("backendCatalog");
45967
+ if (!result.ok) throw new Error(result.error.message);
45968
+ const options = [];
45969
+ const seen = /* @__PURE__ */ new Set();
45970
+ for (const model of result.value.models) {
45971
+ if (model.availability !== "available") continue;
45972
+ const provider = model.provider.trim().toLowerCase();
45973
+ if (provider === "") continue;
45974
+ const key = `${provider}\u0000${model.id}`;
45975
+ if (seen.has(key)) continue;
45976
+ seen.add(key);
45977
+ options.push({
45978
+ provider,
45979
+ id: model.id,
45980
+ label: model.displayName
45981
+ });
45982
+ }
45983
+ return options;
45984
+ };
45985
+ const webSearchBind = (input) => backendCall("webSearchBind", input);
45986
+ const webSearchBindingStatus = () => backendCall("webSearchBindingStatus");
45987
+ const rememberWebSearchBinding = async (pair) => {
45988
+ await updateFreeCodeGoSettings({
45989
+ webSearchBindingProvider: pair.provider,
45990
+ webSearchBindingModel: pair.model
45991
+ });
45992
+ };
45993
+ const webSearchCredentials = () => ctx.get("remote.credentials");
45994
+ shellSlots.inject("plugins.detail.section", () => shellSlots.register({
45995
+ name: "plugins.detail.section",
45996
+ id: "freecodego-web-search-provider",
45997
+ order: 60,
45998
+ locale: NS,
45999
+ inject: () => ({
46000
+ models: webSearchModels,
46001
+ bind: webSearchBind,
46002
+ status: webSearchBindingStatus,
46003
+ form: webSearchForm,
46004
+ credentials: webSearchCredentials,
46005
+ remember: rememberWebSearchBinding,
46006
+ t
46007
+ })
46008
+ }, WebSearchProviderSection));
45057
46009
  ctx.slots.inject("settings.action", () => ctx.slots.register({
45058
46010
  name: "settings.action",
45059
46011
  id: "freecodego-language",
@@ -45311,6 +46263,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
45311
46263
  headroomUpdate,
45312
46264
  deferredToolsStatus,
45313
46265
  deferredToolsSetEnabled,
46266
+ mediaGenerationStatus,
46267
+ mediaGenerationSetEnabled,
45314
46268
  reviewStatus,
45315
46269
  reviewStart,
45316
46270
  reviewUpdate,