freecodego 0.1.6-alpha.2.4 → 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/README.i18n.yaml +2 -2
- package/README.md +17 -7
- package/README.zh.md +17 -7
- package/cordis.patch.yml +42 -6
- package/dist/agent-team.js +13 -74
- package/dist/assets/presets/augmentcode/agent.cordis.yml +3 -2
- package/dist/assets/presets/freecodego/agent.cordis.yml +3 -2
- package/dist/auto-review.js +8 -11
- package/dist/bootstrap.js +1167 -737
- package/dist/client.cjs +1244 -290
- package/dist/harness-plugin.js +5 -0
- package/dist/schedule.js +78 -26
- package/dist/tool-agent-team.js +38 -97
- package/package.json +76 -43
- package/presets/augmentcode.patch.yml +273 -0
- package/presets/freecodego.patch.yml +255 -0
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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$
|
|
18069
|
-
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$
|
|
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$
|
|
18073
|
-
tag.textContent = css$
|
|
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$
|
|
21302
|
-
const tagId$
|
|
21303
|
-
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$
|
|
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$
|
|
21307
|
-
tag.textContent = css$
|
|
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
|
|
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
|
-
*
|
|
21887
|
-
*
|
|
21888
|
-
*
|
|
21889
|
-
*
|
|
21890
|
-
*
|
|
21891
|
-
|
|
21892
|
-
|
|
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
|
|
21956
|
-
*
|
|
21957
|
-
* is
|
|
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
|
|
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: "
|
|
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: "
|
|
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$
|
|
35997
|
-
const tagId$
|
|
35998
|
-
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$
|
|
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$
|
|
36002
|
-
tag.textContent = css$
|
|
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.
|
|
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.
|
|
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
|
|
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(
|
|
37783
|
+
function liveJobCount(jobs, sessionId) {
|
|
36969
37784
|
if (sessionId === void 0) return 0;
|
|
36970
37785
|
let live = 0;
|
|
36971
|
-
for (const job of
|
|
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
|
|
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
|
|
37798
|
+
* @returns the newest failed job's id, or undefined when the roster holds none.
|
|
36984
37799
|
*/
|
|
36985
|
-
function newestFailedJobKey(
|
|
37800
|
+
function newestFailedJobKey(jobs, sessionId) {
|
|
36986
37801
|
if (sessionId === void 0) return void 0;
|
|
36987
37802
|
let newest;
|
|
36988
|
-
for (const job of
|
|
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
|
|
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.
|
|
40496
|
-
const failedJobKey = hooks.
|
|
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(
|
|
40538
|
-
const failedJobKey = useObserved(
|
|
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: () => ({
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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: () => ({
|
|
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 ===
|
|
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(
|
|
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:
|
|
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,
|