superacli 1.1.21 → 1.1.23
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/.beads/.br_history/{issues.20260426_162712_190824905.jsonl → issues.20260427_104606_658098709.jsonl} +49 -48
- package/.beads/.br_history/{issues.20260426_162513_726336785.jsonl → issues.20260427_104607_085798670.jsonl} +50 -48
- package/.beads/.br_history/{issues.20260426_162331_516939737.jsonl → issues.20260427_104607_627598880.jsonl} +51 -48
- package/.beads/.br_history/{issues.20260426_134150_938793400.jsonl → issues.20260427_104608_071298223.jsonl} +52 -48
- package/.beads/.br_history/issues.20260427_104615_198124329.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_104615_669652069.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_104637_752744777.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_104638_209211116.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_104638_898729442.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_104639_368827997.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_104639_823343822.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_104640_354170001.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_104640_937129660.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_104647_408876191.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_104659_300660476.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_104800_415120762.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_104901_529669396.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_105002_587183822.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_105103_686748531.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_105204_721591044.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_105305_855661211.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_105407_641630152.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_105509_159649245.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_105610_283950586.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_105637_656057143.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_105738_863187883.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_105839_958463404.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_105941_092827317.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_110042_110436110.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_110143_343801118.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_110244_379134729.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_110345_445658284.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_110446_689391882.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_110547_667705716.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_110609_987816377.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_110711_086550915.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_110812_204821395.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_110913_259688311.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_111014_297775509.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_111115_195150935.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_111216_316259530.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_111317_298020330.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_111418_604431267.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_111519_617870969.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_111533_024097015.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_111634_138814655.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_111737_148398766.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_111838_507704112.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_111939_468325527.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_112041_044923744.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_112142_224127430.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_112243_212317525.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_112344_182300930.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_112445_197922899.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_112502_597304488.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_112604_292832651.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_112706_051581607.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_112807_066213762.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_112908_145315373.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_113009_141079023.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_113110_601071412.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_113211_601412739.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_113312_771171767.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_113413_719165420.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_113430_416576564.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_113531_553842703.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_113633_137526241.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_113735_697152101.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_113836_810884202.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_113938_312284719.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_114039_390178502.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_114140_483586632.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_114241_502376670.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_114342_927243830.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_114405_996651227.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_114507_946708398.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_114608_914493506.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_114709_935565841.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_114810_981588378.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_114912_061702372.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_115013_063113906.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_115114_208497343.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_115215_176080241.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_115316_481573328.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_115335_866978652.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_115436_866087391.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_115538_016094860.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_115638_932947449.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_115739_982932603.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_115840_963681039.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_115941_912431509.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_120043_043356448.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_120144_955596968.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_120246_060733977.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_120307_717985017.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_120408_871846736.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_121003_963750732.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_121006_018509431.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_121019_617062931.jsonl +261 -0
- package/.beads/.br_history/issues.20260427_121021_689536311.jsonl +261 -0
- package/.beads/.br_recovery/beads.db-wal.20260427_104615_902749843.rebuild-failed +0 -0
- package/.beads/.br_recovery/beads.db-wal.20260427_121006_010373120.rebuild-failed +0 -0
- package/.beads/.br_recovery/beads.db.20260427_104615_902749843.rebuild-failed +0 -0
- package/.beads/.br_recovery/beads.db.20260427_121006_010373120.rebuild-failed +0 -0
- package/.beads/beads.db.corrupted +0 -0
- package/.beads/issues.jsonl +144 -144
- package/.supercli/adapters/test-cli-adapter.js +19 -0
- package/cli/adapters/mcp.js +89 -3
- package/cli/adapters/openapi.js +71 -2
- package/cli/config.js +69 -1
- package/cli/daemon.js +349 -0
- package/cli/plugins-manager.js +42 -9
- package/cli/server-command.js +174 -4
- package/cli/supercli.js +35 -15
- package/docs/changelog-2026-04.html +6 -0
- package/docs/index.html +94 -11
- package/docs/plugins.html +30 -0
- package/docs/server.md +80 -0
- package/graphify-out/GRAPH_REPORT.md +154 -162
- package/graphify-out/cache/11938479cfbdb8e52bf5f0f3c132d56204245ebb19aefe89bb0394feb36dbd5e.json +1 -0
- package/graphify-out/cache/141362b25039dee7a4959ef475befea0a25671aae66f3d14917e711e597ffbf6.json +1 -0
- package/graphify-out/cache/2f23b1be3f6434f60138a04261d83ca71b128f405bd68fb19abf48cd61108dfc.json +1 -0
- package/graphify-out/cache/362adb1b6b483f56d09feaf652f4122366e568aaede752f48383b76d61f5d9d6.json +1 -0
- package/graphify-out/cache/42bc8f64d69d2cd9ecf64e92e38f89f7ea479f69c947de5984919e2fd5a716ee.json +1 -0
- package/graphify-out/cache/4b5cffce31d9193b7d0a8f15e8a41c66f6733a6490ebaeff2c8ca19701c72c0e.json +1 -0
- package/graphify-out/cache/5ef4e31750d9e7bc4ff4a7b535f247d9ab5ab9627d72e20794779ec4be424c66.json +1 -0
- package/graphify-out/cache/6d5023ecffa52382d31152c8c06e86e286789228a3d4f7fde72087f3eafa11bc.json +1 -0
- package/graphify-out/cache/6e5776e123142a78f50fa0bfd5ae2d289282051a9b392ae507de7aa9017f95d4.json +1 -0
- package/graphify-out/cache/75982dc60fa7353600ca48a3b33f5ba497eea9d5743daac6e61e9cf4f64774be.json +1 -0
- package/graphify-out/cache/7796066b51d3a99071debdfb5f40c854400b5bf3aa7c1e83dd6ae88eddca0370.json +1 -0
- package/graphify-out/cache/8ccd3b557a1ea98005fba84433f160ccd4a951fbdb6a4c9b7d7ba894f905b06b.json +1 -0
- package/graphify-out/cache/90ab53b8f1f3306e7c3a1f92ec628717ea90f4e684db764f7d7aa8e884fe2cae.json +1 -0
- package/graphify-out/cache/99c8133d0ccf5bf29a0a03caa6811d2ff8d73bcccf20681687876c890b94740e.json +1 -0
- package/graphify-out/cache/9fa6604cc820f3857c55c753ca0024788e4cbb61c4e12ba7ce0e4a1ce4ee0655.json +1 -0
- package/graphify-out/cache/a1e24a07beede2876e688cdb6c14e2d24abb22064862a6420cac321efabd3efd.json +1 -0
- package/graphify-out/cache/a418312f2805259c33007a18b36b6ae3b6a4da376ccae6006a3b9999262495db.json +1 -0
- package/graphify-out/cache/a6d9c029bd31a99b67357291305e27b01c5ef388925f7f2a6e985fec4efa8024.json +1 -0
- package/graphify-out/cache/a6ed52b709dd79f98adf72c483e8dfb6098203d7327470b82feb5e11390a5cf4.json +1 -0
- package/graphify-out/cache/b045ae4443d972ee8f47b91a0d61c984a190195b38ae1d331430b4c51c43acfd.json +1 -0
- package/graphify-out/cache/bc514f4074f89d2f7e7834670602e50bba0f24b8cd8c9d21ff4d361d3fd4d558.json +1 -0
- package/graphify-out/cache/be3fc87936f9f24d2d4f4b22b9d2a16f33f538cef1a181663120e23ecf16b81a.json +1 -0
- package/graphify-out/cache/c5a4822edbe3a95a56f9f943eed1567e5a5c913d59b1fa3df4ad54ffd9b02697.json +1 -0
- package/graphify-out/cache/cf411f1ddde50ee97c1c501f59ed7985bcdc022134574816bcce37ac20848e64.json +1 -0
- package/graphify-out/cache/d88625b5813742ca941ce8155cb77afb02425632002f621aca34f217440a392d.json +1 -0
- package/graphify-out/cache/da97fdc8af2a3306c292921110f84648bba2b0e85d27473b460b0e8a862ff225.json +1 -0
- package/graphify-out/cache/e88de9f1ae117f26fd217c3717eff7e525a284cc942b5f4d26ef2c4d65db59bd.json +1 -0
- package/graphify-out/cache/ebf6bd96ef2d8d396389ac7199e6ba818ee2d0c5dfc131fab7cdece9fb710f11.json +1 -0
- package/graphify-out/cache/f2a302550a6fe0649d36b8ef0b04b77673bca9f115732af8ae89751944dc9cc6.json +1 -0
- package/graphify-out/cache/fb46bd3ef530273918fc8915842453f21b418d536653d3b705b75b417255c246.json +1 -0
- package/graphify-out/cache/fcfdab94fe91af1f21fcefdba5a96674b9a16bb768288f3573fe68765163c765.json +1 -0
- package/graphify-out/graph.json +2669 -1121
- package/package.json +1 -1
- package/plugins/context-mode/plugin.json +10 -0
- package/plugins/context-mode/scripts/post-install.js +1 -1
- package/plugins/example-server-resources/meta.json +11 -0
- package/plugins/example-server-resources/plugin.json +46 -0
- package/server/app.js +43 -11
- package/server/middleware/auth.js +70 -0
- package/server/routes/adapters.js +3 -11
- package/server/routes/docs.js +10 -0
- package/server/routes/jobs.js +3 -2
- package/server/routes/mcp.js +1 -0
- package/server/routes/plugins.js +209 -10
- package/server/routes/specs.js +8 -3
- package/server/services/adaptersService.js +1 -0
- package/server/services/pluginResourceService.js +262 -0
- package/server/services/pluginsService.js +24 -0
- package/server/uploads/superbackend-openapi.json +47 -0
- package/server/uploads/test-auth-openapi.json +74 -0
- package/server/uploads/test-auth-spec.json +36 -0
- package/server/views/adapters.ejs +1 -0
- package/server/views/clients.ejs +82 -0
- package/server/views/docs.ejs +7 -0
- package/server/views/jobs.ejs +26 -2
- package/server/views/layout.ejs +0 -23
- package/server/views/mcp.ejs +278 -21
- package/server/views/partials/head.ejs +2 -0
- package/server/views/plugins.ejs +81 -1
- package/server/views/specs.ejs +217 -22
- package/.beads/.br_history/issues.20260424_173219_825545950.jsonl +0 -161
- package/.beads/.br_history/issues.20260424_173236_386891868.jsonl +0 -162
- package/.beads/.br_history/issues.20260424_174502_086707155.jsonl +0 -163
- package/.beads/.br_history/issues.20260424_174510_654230822.jsonl +0 -164
- package/.beads/.br_history/issues.20260424_174517_409774596.jsonl +0 -165
- package/.beads/.br_history/issues.20260424_174523_607561636.jsonl +0 -166
- package/.beads/.br_history/issues.20260424_174532_546016322.jsonl +0 -167
- package/.beads/.br_history/issues.20260424_175209_319624367.jsonl +0 -168
- package/.beads/.br_history/issues.20260424_175214_798999893.jsonl +0 -169
- package/.beads/.br_history/issues.20260424_175217_989449734.jsonl +0 -170
- package/.beads/.br_history/issues.20260424_175221_701416034.jsonl +0 -171
- package/.beads/.br_history/issues.20260424_175225_550538874.jsonl +0 -172
- package/.beads/.br_history/issues.20260424_180143_241956058.jsonl +0 -173
- package/.beads/.br_history/issues.20260424_180153_817576164.jsonl +0 -174
- package/.beads/.br_history/issues.20260424_180201_739387030.jsonl +0 -175
- package/.beads/.br_history/issues.20260424_180213_488389024.jsonl +0 -176
- package/.beads/.br_history/issues.20260424_180221_754279177.jsonl +0 -177
- package/.beads/.br_history/issues.20260424_181149_604365436.jsonl +0 -178
- package/.beads/.br_history/issues.20260424_181158_931468591.jsonl +0 -179
- package/.beads/.br_history/issues.20260424_181209_516766803.jsonl +0 -180
- package/.beads/.br_history/issues.20260424_181219_459169740.jsonl +0 -181
- package/.beads/.br_history/issues.20260424_181227_996490697.jsonl +0 -182
- package/.beads/.br_history/issues.20260424_181958_717811271.jsonl +0 -183
- package/.beads/.br_history/issues.20260424_182002_913828749.jsonl +0 -184
- package/.beads/.br_history/issues.20260424_182006_779786523.jsonl +0 -185
- package/.beads/.br_history/issues.20260424_182010_368190795.jsonl +0 -186
- package/.beads/.br_history/issues.20260424_182016_217217108.jsonl +0 -187
- package/.beads/.br_history/issues.20260424_182539_287444292.jsonl +0 -188
- package/.beads/.br_history/issues.20260424_182543_343189534.jsonl +0 -189
- package/.beads/.br_history/issues.20260424_182547_119975837.jsonl +0 -190
- package/.beads/.br_history/issues.20260424_182550_849315940.jsonl +0 -191
- package/.beads/.br_history/issues.20260424_182554_677413036.jsonl +0 -192
- package/.beads/.br_history/issues.20260424_183140_390494612.jsonl +0 -193
- package/.beads/.br_history/issues.20260424_183144_266256714.jsonl +0 -194
- package/.beads/.br_history/issues.20260424_183152_839579876.jsonl +0 -195
- package/.beads/.br_history/issues.20260424_183202_355634088.jsonl +0 -196
- package/.beads/.br_history/issues.20260424_183209_438616861.jsonl +0 -197
- package/.beads/.br_history/issues.20260424_183753_517602948.jsonl +0 -198
- package/.beads/.br_history/issues.20260424_183757_533544458.jsonl +0 -199
- package/.beads/.br_history/issues.20260424_183803_063929316.jsonl +0 -200
- package/.beads/.br_history/issues.20260424_183807_014724964.jsonl +0 -201
- package/.beads/.br_history/issues.20260424_183813_278844212.jsonl +0 -202
- package/.beads/.br_history/issues.20260424_190900_876564388.jsonl +0 -203
- package/.beads/.br_history/issues.20260424_192047_121286991.jsonl +0 -204
- package/.beads/.br_history/issues.20260424_192811_866934994.jsonl +0 -205
- package/.beads/.br_history/issues.20260424_193837_426102367.jsonl +0 -206
- package/.beads/.br_history/issues.20260424_194617_271952813.jsonl +0 -207
- package/.beads/.br_history/issues.20260424_195430_952967644.jsonl +0 -208
- package/.beads/.br_history/issues.20260424_200234_439280977.jsonl +0 -209
- package/.beads/.br_history/issues.20260424_200923_545127361.jsonl +0 -210
- package/.beads/.br_history/issues.20260424_204056_586059018.jsonl +0 -211
- package/.beads/.br_history/issues.20260424_205301_854556209.jsonl +0 -212
- package/.beads/.br_history/issues.20260424_210455_501610650.jsonl +0 -213
- package/.beads/.br_history/issues.20260424_212803_108840399.jsonl +0 -214
- package/.beads/.br_history/issues.20260425_045812_041336580.jsonl +0 -215
- package/.beads/.br_history/issues.20260425_045914_762139232.jsonl +0 -216
- package/.beads/.br_history/issues.20260425_050011_038094726.jsonl +0 -217
- package/.beads/.br_history/issues.20260425_050140_047103928.jsonl +0 -218
- package/.beads/.br_history/issues.20260425_054328_968771145.jsonl +0 -219
- package/.beads/.br_history/issues.20260425_054419_800564203.jsonl +0 -220
- package/.beads/.br_history/issues.20260425_054543_771812828.jsonl +0 -221
- package/.beads/.br_history/issues.20260425_054648_963773974.jsonl +0 -222
- package/.beads/.br_history/issues.20260425_054751_122349828.jsonl +0 -223
- package/.beads/.br_history/issues.20260425_060749_403415856.jsonl +0 -224
- package/.beads/.br_history/issues.20260425_062503_208821903.jsonl +0 -225
- package/.beads/.br_history/issues.20260425_063134_587505560.jsonl +0 -226
- package/.beads/.br_history/issues.20260425_064005_565019560.jsonl +0 -227
- package/.beads/.br_history/issues.20260425_064651_250053752.jsonl +0 -228
- package/.beads/.br_history/issues.20260425_065904_323410469.jsonl +0 -229
- package/.beads/.br_history/issues.20260425_070603_854872783.jsonl +0 -230
- package/.beads/.br_history/issues.20260425_071232_499550581.jsonl +0 -231
- package/.beads/.br_history/issues.20260425_071859_753108611.jsonl +0 -232
- package/.beads/.br_history/issues.20260425_171215_558114276.jsonl +0 -233
- package/.beads/.br_history/issues.20260425_171228_711028872.jsonl +0 -234
- package/.beads/.br_history/issues.20260425_171908_608455863.jsonl +0 -235
- package/.beads/.br_history/issues.20260425_172952_108071113.jsonl +0 -236
- package/.beads/.br_history/issues.20260425_200313_037876111.jsonl +0 -237
- package/.beads/.br_history/issues.20260425_201117_411540946.jsonl +0 -238
- package/.beads/.br_history/issues.20260425_210522_892936637.jsonl +0 -239
- package/.beads/.br_history/issues.20260425_210949_356368198.jsonl +0 -240
- package/.beads/.br_history/issues.20260425_211617_355720902.jsonl +0 -241
- package/.beads/.br_history/issues.20260425_213515_555595766.jsonl +0 -242
- package/.beads/.br_history/issues.20260425_214642_203845514.jsonl +0 -243
- package/.beads/.br_history/issues.20260425_221221_451474472.jsonl +0 -244
- package/.beads/.br_history/issues.20260425_222608_800503496.jsonl +0 -245
- package/.beads/.br_history/issues.20260426_071735_330251998.jsonl +0 -246
- package/.beads/.br_history/issues.20260426_071755_925764854.jsonl +0 -247
- package/.beads/.br_history/issues.20260426_071818_936440407.jsonl +0 -248
- package/.beads/.br_history/issues.20260426_071834_033200504.jsonl +0 -249
- package/.beads/.br_history/issues.20260426_072406_524696668.jsonl +0 -250
- package/.beads/.br_history/issues.20260426_073231_913315951.jsonl +0 -251
- package/.beads/.br_history/issues.20260426_074828_051470117.jsonl +0 -252
- package/.beads/.br_history/issues.20260426_080300_773872374.jsonl +0 -253
- package/.beads/.br_history/issues.20260426_121735_535252712.jsonl +0 -254
- package/.beads/.br_history/issues.20260426_125144_933153546.jsonl +0 -255
- package/.beads/.br_history/issues.20260426_132438_591463320.jsonl +0 -256
- /package/.beads/.br_history/{issues.20260424_173219_825545950.jsonl.meta.json → issues.20260427_104606_658098709.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_173236_386891868.jsonl.meta.json → issues.20260427_104607_085798670.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_174502_086707155.jsonl.meta.json → issues.20260427_104607_627598880.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_174510_654230822.jsonl.meta.json → issues.20260427_104608_071298223.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_174517_409774596.jsonl.meta.json → issues.20260427_104615_198124329.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_174523_607561636.jsonl.meta.json → issues.20260427_104615_669652069.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_174532_546016322.jsonl.meta.json → issues.20260427_104637_752744777.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_175209_319624367.jsonl.meta.json → issues.20260427_104638_209211116.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_175214_798999893.jsonl.meta.json → issues.20260427_104638_898729442.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_175217_989449734.jsonl.meta.json → issues.20260427_104639_368827997.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_175221_701416034.jsonl.meta.json → issues.20260427_104639_823343822.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_175225_550538874.jsonl.meta.json → issues.20260427_104640_354170001.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_180143_241956058.jsonl.meta.json → issues.20260427_104640_937129660.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_180153_817576164.jsonl.meta.json → issues.20260427_104647_408876191.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_180201_739387030.jsonl.meta.json → issues.20260427_104659_300660476.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_180213_488389024.jsonl.meta.json → issues.20260427_104800_415120762.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_180221_754279177.jsonl.meta.json → issues.20260427_104901_529669396.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_181149_604365436.jsonl.meta.json → issues.20260427_105002_587183822.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_181158_931468591.jsonl.meta.json → issues.20260427_105103_686748531.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_181209_516766803.jsonl.meta.json → issues.20260427_105204_721591044.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_181219_459169740.jsonl.meta.json → issues.20260427_105305_855661211.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_181227_996490697.jsonl.meta.json → issues.20260427_105407_641630152.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_181958_717811271.jsonl.meta.json → issues.20260427_105509_159649245.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_182002_913828749.jsonl.meta.json → issues.20260427_105610_283950586.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_182006_779786523.jsonl.meta.json → issues.20260427_105637_656057143.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_182010_368190795.jsonl.meta.json → issues.20260427_105738_863187883.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_182016_217217108.jsonl.meta.json → issues.20260427_105839_958463404.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_182539_287444292.jsonl.meta.json → issues.20260427_105941_092827317.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_182543_343189534.jsonl.meta.json → issues.20260427_110042_110436110.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_182547_119975837.jsonl.meta.json → issues.20260427_110143_343801118.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_182550_849315940.jsonl.meta.json → issues.20260427_110244_379134729.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_182554_677413036.jsonl.meta.json → issues.20260427_110345_445658284.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_183140_390494612.jsonl.meta.json → issues.20260427_110446_689391882.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_183144_266256714.jsonl.meta.json → issues.20260427_110547_667705716.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_183152_839579876.jsonl.meta.json → issues.20260427_110609_987816377.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_183202_355634088.jsonl.meta.json → issues.20260427_110711_086550915.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_183209_438616861.jsonl.meta.json → issues.20260427_110812_204821395.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_183753_517602948.jsonl.meta.json → issues.20260427_110913_259688311.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_183757_533544458.jsonl.meta.json → issues.20260427_111014_297775509.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_183803_063929316.jsonl.meta.json → issues.20260427_111115_195150935.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_183807_014724964.jsonl.meta.json → issues.20260427_111216_316259530.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_183813_278844212.jsonl.meta.json → issues.20260427_111317_298020330.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_190900_876564388.jsonl.meta.json → issues.20260427_111418_604431267.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_192047_121286991.jsonl.meta.json → issues.20260427_111519_617870969.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_192811_866934994.jsonl.meta.json → issues.20260427_111533_024097015.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_193837_426102367.jsonl.meta.json → issues.20260427_111634_138814655.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_194617_271952813.jsonl.meta.json → issues.20260427_111737_148398766.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_195430_952967644.jsonl.meta.json → issues.20260427_111838_507704112.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_200234_439280977.jsonl.meta.json → issues.20260427_111939_468325527.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_200923_545127361.jsonl.meta.json → issues.20260427_112041_044923744.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_204056_586059018.jsonl.meta.json → issues.20260427_112142_224127430.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_205301_854556209.jsonl.meta.json → issues.20260427_112243_212317525.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_210455_501610650.jsonl.meta.json → issues.20260427_112344_182300930.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260424_212803_108840399.jsonl.meta.json → issues.20260427_112445_197922899.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_045812_041336580.jsonl.meta.json → issues.20260427_112502_597304488.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_045914_762139232.jsonl.meta.json → issues.20260427_112604_292832651.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_050011_038094726.jsonl.meta.json → issues.20260427_112706_051581607.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_050140_047103928.jsonl.meta.json → issues.20260427_112807_066213762.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_054328_968771145.jsonl.meta.json → issues.20260427_112908_145315373.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_054419_800564203.jsonl.meta.json → issues.20260427_113009_141079023.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_054543_771812828.jsonl.meta.json → issues.20260427_113110_601071412.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_054648_963773974.jsonl.meta.json → issues.20260427_113211_601412739.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_054751_122349828.jsonl.meta.json → issues.20260427_113312_771171767.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_060749_403415856.jsonl.meta.json → issues.20260427_113413_719165420.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_062503_208821903.jsonl.meta.json → issues.20260427_113430_416576564.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_063134_587505560.jsonl.meta.json → issues.20260427_113531_553842703.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_064005_565019560.jsonl.meta.json → issues.20260427_113633_137526241.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_064651_250053752.jsonl.meta.json → issues.20260427_113735_697152101.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_065904_323410469.jsonl.meta.json → issues.20260427_113836_810884202.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_070603_854872783.jsonl.meta.json → issues.20260427_113938_312284719.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_071232_499550581.jsonl.meta.json → issues.20260427_114039_390178502.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_071859_753108611.jsonl.meta.json → issues.20260427_114140_483586632.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_171215_558114276.jsonl.meta.json → issues.20260427_114241_502376670.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_171228_711028872.jsonl.meta.json → issues.20260427_114342_927243830.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_171908_608455863.jsonl.meta.json → issues.20260427_114405_996651227.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_172952_108071113.jsonl.meta.json → issues.20260427_114507_946708398.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_200313_037876111.jsonl.meta.json → issues.20260427_114608_914493506.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_201117_411540946.jsonl.meta.json → issues.20260427_114709_935565841.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_210522_892936637.jsonl.meta.json → issues.20260427_114810_981588378.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_210949_356368198.jsonl.meta.json → issues.20260427_114912_061702372.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_211617_355720902.jsonl.meta.json → issues.20260427_115013_063113906.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_213515_555595766.jsonl.meta.json → issues.20260427_115114_208497343.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_214642_203845514.jsonl.meta.json → issues.20260427_115215_176080241.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_221221_451474472.jsonl.meta.json → issues.20260427_115316_481573328.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260425_222608_800503496.jsonl.meta.json → issues.20260427_115335_866978652.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260426_071735_330251998.jsonl.meta.json → issues.20260427_115436_866087391.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260426_071755_925764854.jsonl.meta.json → issues.20260427_115538_016094860.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260426_071818_936440407.jsonl.meta.json → issues.20260427_115638_932947449.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260426_071834_033200504.jsonl.meta.json → issues.20260427_115739_982932603.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260426_072406_524696668.jsonl.meta.json → issues.20260427_115840_963681039.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260426_073231_913315951.jsonl.meta.json → issues.20260427_115941_912431509.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260426_074828_051470117.jsonl.meta.json → issues.20260427_120043_043356448.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260426_080300_773872374.jsonl.meta.json → issues.20260427_120144_955596968.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260426_121735_535252712.jsonl.meta.json → issues.20260427_120246_060733977.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260426_125144_933153546.jsonl.meta.json → issues.20260427_120307_717985017.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260426_132438_591463320.jsonl.meta.json → issues.20260427_120408_871846736.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260426_134150_938793400.jsonl.meta.json → issues.20260427_121003_963750732.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260426_162331_516939737.jsonl.meta.json → issues.20260427_121006_018509431.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260426_162513_726336785.jsonl.meta.json → issues.20260427_121019_617062931.jsonl.meta.json} +0 -0
- /package/.beads/.br_history/{issues.20260426_162712_190824905.jsonl.meta.json → issues.20260427_121021_689536311.jsonl.meta.json} +0 -0
package/cli/plugins-manager.js
CHANGED
|
@@ -1,24 +1,17 @@
|
|
|
1
1
|
const fs = require("fs")
|
|
2
2
|
const path = require("path")
|
|
3
|
-
const os = require("os")
|
|
4
3
|
const { spawnSync } = require("child_process")
|
|
5
4
|
const { SUPPORTED_ADAPTERS } = require("./adapter-schema")
|
|
6
5
|
const { getRegistryPlugin } = require("./plugins-registry")
|
|
7
6
|
const { getPluginInstallGuidance } = require("./plugin-install-guidance")
|
|
7
|
+
const { syncClientPluginResources } = require("./config")
|
|
8
8
|
const {
|
|
9
9
|
readPluginsLock,
|
|
10
10
|
writePluginsLock,
|
|
11
11
|
listInstalledPlugins
|
|
12
12
|
} = require("./plugins-store")
|
|
13
13
|
|
|
14
|
-
const BUNDLED_PLUGINS = {
|
|
15
|
-
beads: path.resolve(__dirname, "..", "plugins", "beads", "plugin.json"),
|
|
16
|
-
gwc: path.resolve(__dirname, "..", "plugins", "gwc", "plugin.json"),
|
|
17
|
-
docker: path.resolve(__dirname, "..", "plugins", "docker", "plugin.json"),
|
|
18
|
-
squirrelscan: path.resolve(__dirname, "..", "plugins", "squirrelscan", "plugin.json"),
|
|
19
|
-
"agency-agents": path.resolve(__dirname, "..", "plugins", "agency-agents", "plugin.json"),
|
|
20
|
-
"visual-explainer": path.resolve(__dirname, "..", "plugins", "visual-explainer", "plugin.json")
|
|
21
|
-
}
|
|
14
|
+
const BUNDLED_PLUGINS = {}
|
|
22
15
|
|
|
23
16
|
function validateNodeHook(hook, kind) {
|
|
24
17
|
if (!hook) return null
|
|
@@ -85,6 +78,36 @@ function parseManifestFile(manifestPath) {
|
|
|
85
78
|
recoverable: false
|
|
86
79
|
})
|
|
87
80
|
}
|
|
81
|
+
|
|
82
|
+
// Validate server_resources if present
|
|
83
|
+
if (raw.server_resources) {
|
|
84
|
+
if (typeof raw.server_resources !== "object" || Array.isArray(raw.server_resources)) {
|
|
85
|
+
throw Object.assign(new Error("Invalid plugin manifest: server_resources must be an object"), {
|
|
86
|
+
code: 85,
|
|
87
|
+
type: "invalid_argument",
|
|
88
|
+
recoverable: false
|
|
89
|
+
})
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Validate mcp resources
|
|
93
|
+
if (raw.server_resources.mcp && !Array.isArray(raw.server_resources.mcp)) {
|
|
94
|
+
throw Object.assign(new Error("Invalid plugin manifest: server_resources.mcp must be an array"), {
|
|
95
|
+
code: 85,
|
|
96
|
+
type: "invalid_argument",
|
|
97
|
+
recoverable: false
|
|
98
|
+
})
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Validate spec resources
|
|
102
|
+
if (raw.server_resources.specs && !Array.isArray(raw.server_resources.specs)) {
|
|
103
|
+
throw Object.assign(new Error("Invalid plugin manifest: server_resources.specs must be an array"), {
|
|
104
|
+
code: 85,
|
|
105
|
+
type: "invalid_argument",
|
|
106
|
+
recoverable: false
|
|
107
|
+
})
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
88
111
|
return raw
|
|
89
112
|
}
|
|
90
113
|
|
|
@@ -511,6 +534,7 @@ function installPlugin(ref, options = {}) {
|
|
|
511
534
|
installed_at: new Date().toISOString(),
|
|
512
535
|
commands: installedCommands,
|
|
513
536
|
checks: manifest.checks || [],
|
|
537
|
+
server_resources: manifest.server_resources || {},
|
|
514
538
|
lifecycle_hooks: {
|
|
515
539
|
post_uninstall: serializeHook(loaded.manifestPath, manifest.post_uninstall, "post_uninstall")
|
|
516
540
|
}
|
|
@@ -518,6 +542,15 @@ function installPlugin(ref, options = {}) {
|
|
|
518
542
|
|
|
519
543
|
const postInstall = runPostInstall(manifest, loaded.manifestPath)
|
|
520
544
|
writePluginsLock(lock)
|
|
545
|
+
|
|
546
|
+
// Sync client plugin resources to server if SUPERCLI_SERVER is set (fire and forget)
|
|
547
|
+
const server = process.env.SUPERCLI_SERVER
|
|
548
|
+
if (server && manifest.server_resources) {
|
|
549
|
+
syncClientPluginResources(server).catch(err => {
|
|
550
|
+
console.warn(`[Plugin ${manifest.name}] Failed to sync resources to server:`, err.message)
|
|
551
|
+
})
|
|
552
|
+
}
|
|
553
|
+
|
|
521
554
|
return {
|
|
522
555
|
plugin: manifest.name,
|
|
523
556
|
version: manifest.version || "0.0.0",
|
package/cli/server-command.js
CHANGED
|
@@ -2,6 +2,7 @@ const fs = require("fs")
|
|
|
2
2
|
const path = require("path")
|
|
3
3
|
|
|
4
4
|
const SERVER = process.env.SUPERCLI_SERVER
|
|
5
|
+
const API_KEY = process.env.SUPERCLI_API_KEY
|
|
5
6
|
|
|
6
7
|
function getServerUrl() {
|
|
7
8
|
return SERVER ? SERVER.replace(/\/$/, "") : null
|
|
@@ -13,12 +14,17 @@ async function serverFetch(endpoint, options = {}) {
|
|
|
13
14
|
throw new Error("SUPERCLI_SERVER not set. Set it to your server URL.")
|
|
14
15
|
}
|
|
15
16
|
const url = `${base}${endpoint}`
|
|
17
|
+
const headers = {
|
|
18
|
+
"Content-Type": "application/json",
|
|
19
|
+
"Accept": "application/json",
|
|
20
|
+
...options.headers,
|
|
21
|
+
}
|
|
22
|
+
if (API_KEY) {
|
|
23
|
+
headers["X-API-Key"] = API_KEY
|
|
24
|
+
}
|
|
16
25
|
const res = await fetch(url, {
|
|
17
26
|
...options,
|
|
18
|
-
headers
|
|
19
|
-
"Content-Type": "application/json",
|
|
20
|
-
...options.headers,
|
|
21
|
-
},
|
|
27
|
+
headers,
|
|
22
28
|
})
|
|
23
29
|
if (!res.ok) {
|
|
24
30
|
const text = await res.text()
|
|
@@ -76,6 +82,8 @@ async function handleServerCommand(options) {
|
|
|
76
82
|
return await handleOpenapi({ action, arg, flags, humanMode, output })
|
|
77
83
|
case "jobs":
|
|
78
84
|
return await handleJobs({ action, flags, humanMode, output, outputHumanTable })
|
|
85
|
+
case "adapters":
|
|
86
|
+
return await handleAdapters({ action, arg, flags, humanMode, output, outputHumanTable, positional })
|
|
79
87
|
default:
|
|
80
88
|
outputError({ code: 85, type: "invalid_argument", message: `Unknown server resource: ${resource}`, recoverable: false })
|
|
81
89
|
return true
|
|
@@ -392,4 +400,166 @@ async function handleJobs({ action, flags, humanMode, output, outputHumanTable }
|
|
|
392
400
|
throw new Error(`Unknown jobs action: ${action}. Use: list, prune`)
|
|
393
401
|
}
|
|
394
402
|
|
|
403
|
+
async function handleAdapters({ action, arg, flags, humanMode, output, outputHumanTable, positional }) {
|
|
404
|
+
if (action === "list") {
|
|
405
|
+
const data = await serverFetch("/api/adapters?format=json")
|
|
406
|
+
if (humanMode) {
|
|
407
|
+
console.log("\n ⚡ Adapters\n")
|
|
408
|
+
outputHumanTable(data.adapters, [
|
|
409
|
+
{ key: "name", label: "Name" },
|
|
410
|
+
{ key: "execution_context", label: "Context" },
|
|
411
|
+
{ key: "timeout_ms", label: "Timeout" },
|
|
412
|
+
{ key: "allow_network", label: "Network" },
|
|
413
|
+
])
|
|
414
|
+
console.log("")
|
|
415
|
+
} else {
|
|
416
|
+
output(data)
|
|
417
|
+
}
|
|
418
|
+
return true
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
if (action === "add") {
|
|
422
|
+
let payload
|
|
423
|
+
const jsonPath = flags["from-file"]
|
|
424
|
+
const sourcePath = flags["source-file"]
|
|
425
|
+
const jsonData = positional[3]
|
|
426
|
+
|
|
427
|
+
if (jsonPath) {
|
|
428
|
+
payload = readJsonFile(jsonPath)
|
|
429
|
+
if (sourcePath) {
|
|
430
|
+
payload.source = fs.readFileSync(path.resolve(sourcePath), "utf-8")
|
|
431
|
+
}
|
|
432
|
+
} else if (sourcePath) {
|
|
433
|
+
if (!jsonData) {
|
|
434
|
+
throw new Error("Usage: supercli server adapters add '{metadata}' --source-file <path>")
|
|
435
|
+
}
|
|
436
|
+
payload = JSON.parse(jsonData)
|
|
437
|
+
payload.source = fs.readFileSync(path.resolve(sourcePath), "utf-8")
|
|
438
|
+
} else if (flags["from-stdin"]) {
|
|
439
|
+
let stdinData = ""
|
|
440
|
+
for await (const chunk of process.stdin) {
|
|
441
|
+
stdinData += chunk
|
|
442
|
+
}
|
|
443
|
+
payload = JSON.parse(stdinData)
|
|
444
|
+
} else if (jsonData) {
|
|
445
|
+
payload = JSON.parse(jsonData)
|
|
446
|
+
} else {
|
|
447
|
+
throw new Error("Usage: supercli server adapters add '{json}' or --from-file <path> or --source-file <path>")
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
if (!payload.name || !payload.source) {
|
|
451
|
+
throw new Error("Adapter requires 'name' and 'source' fields")
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
const result = await serverFetch("/api/adapters", {
|
|
455
|
+
method: "POST",
|
|
456
|
+
body: JSON.stringify(payload),
|
|
457
|
+
})
|
|
458
|
+
output(result)
|
|
459
|
+
return true
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
if (action === "remove") {
|
|
463
|
+
const adapterName = positional[3]
|
|
464
|
+
if (!adapterName) {
|
|
465
|
+
throw new Error("Usage: supercli server adapters remove <name>")
|
|
466
|
+
}
|
|
467
|
+
const result = await serverFetch(`/api/adapters/${encodeURIComponent(adapterName)}`, {
|
|
468
|
+
method: "DELETE",
|
|
469
|
+
})
|
|
470
|
+
output(result)
|
|
471
|
+
return true
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
if (action === "update") {
|
|
475
|
+
const adapterName = positional[3]
|
|
476
|
+
const updateData = positional[4]
|
|
477
|
+
if (!adapterName) {
|
|
478
|
+
throw new Error("Usage: supercli server adapters update <name> '{json}' or --from-file <path>")
|
|
479
|
+
}
|
|
480
|
+
let payload
|
|
481
|
+
const jsonPath = flags["from-file"]
|
|
482
|
+
const sourcePath = flags["source-file"]
|
|
483
|
+
|
|
484
|
+
if (jsonPath) {
|
|
485
|
+
payload = readJsonFile(jsonPath)
|
|
486
|
+
if (sourcePath) {
|
|
487
|
+
payload.source = fs.readFileSync(path.resolve(sourcePath), "utf-8")
|
|
488
|
+
}
|
|
489
|
+
} else if (sourcePath) {
|
|
490
|
+
payload = JSON.parse(updateData || "{}")
|
|
491
|
+
payload.source = fs.readFileSync(path.resolve(sourcePath), "utf-8")
|
|
492
|
+
} else if (flags["from-stdin"]) {
|
|
493
|
+
let stdinData = ""
|
|
494
|
+
for await (const chunk of process.stdin) {
|
|
495
|
+
stdinData += chunk
|
|
496
|
+
}
|
|
497
|
+
payload = JSON.parse(stdinData)
|
|
498
|
+
} else {
|
|
499
|
+
payload = JSON.parse(updateData || "{}")
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
const result = await serverFetch(`/api/adapters/${encodeURIComponent(adapterName)}`, {
|
|
503
|
+
method: "PUT",
|
|
504
|
+
body: JSON.stringify(payload),
|
|
505
|
+
})
|
|
506
|
+
output(result)
|
|
507
|
+
return true
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
if (action === "packages") {
|
|
511
|
+
const packageAction = arg
|
|
512
|
+
const targetAdapterName = positional[4]
|
|
513
|
+
|
|
514
|
+
if (!targetAdapterName) {
|
|
515
|
+
throw new Error("Usage: supercli server adapters packages <list|add|remove> <name>")
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
if (packageAction === "list") {
|
|
519
|
+
const data = await serverFetch(`/api/adapters/${encodeURIComponent(targetAdapterName)}/packages?format=json`)
|
|
520
|
+
if (humanMode) {
|
|
521
|
+
console.log(`\n ⚡ Packages for ${targetAdapterName}\n`)
|
|
522
|
+
outputHumanTable(data.packages || [], [
|
|
523
|
+
{ key: "package", label: "Package" },
|
|
524
|
+
{ key: "version", label: "Version" },
|
|
525
|
+
])
|
|
526
|
+
console.log("")
|
|
527
|
+
} else {
|
|
528
|
+
output(data)
|
|
529
|
+
}
|
|
530
|
+
return true
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
if (packageAction === "add") {
|
|
534
|
+
const packageName = flags.package
|
|
535
|
+
const version = flags.version
|
|
536
|
+
if (!packageName) {
|
|
537
|
+
throw new Error("Usage: supercli server adapters packages add <name> --package <pkg> --version <ver>")
|
|
538
|
+
}
|
|
539
|
+
const result = await serverFetch(`/api/adapters/${encodeURIComponent(targetAdapterName)}/packages`, {
|
|
540
|
+
method: "POST",
|
|
541
|
+
body: JSON.stringify({ package: packageName, version }),
|
|
542
|
+
})
|
|
543
|
+
output(result)
|
|
544
|
+
return true
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
if (packageAction === "remove") {
|
|
548
|
+
const packageName = flags.package
|
|
549
|
+
if (!packageName) {
|
|
550
|
+
throw new Error("Usage: supercli server adapters packages remove <name> --package <pkg>")
|
|
551
|
+
}
|
|
552
|
+
const result = await serverFetch(`/api/adapters/${encodeURIComponent(targetAdapterName)}/packages/${encodeURIComponent(packageName)}`, {
|
|
553
|
+
method: "DELETE",
|
|
554
|
+
})
|
|
555
|
+
output(result)
|
|
556
|
+
return true
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
throw new Error(`Unknown packages action: ${packageAction}. Use: list, add, remove`)
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
throw new Error(`Unknown adapters action: ${action}. Use: list, add, remove, update, packages`)
|
|
563
|
+
}
|
|
564
|
+
|
|
395
565
|
module.exports = { handleServerCommand }
|
package/cli/supercli.js
CHANGED
|
@@ -9,6 +9,7 @@ const {
|
|
|
9
9
|
removeMcpServer,
|
|
10
10
|
listMcpServers,
|
|
11
11
|
upsertCommand,
|
|
12
|
+
getClientId,
|
|
12
13
|
} = require("./config");
|
|
13
14
|
const { execute } = require("./executor");
|
|
14
15
|
const { buildCapabilities } = require("./help-json");
|
|
@@ -25,6 +26,7 @@ const { handleAskCommand } = require("./ask");
|
|
|
25
26
|
const { handleSkillsCommand } = require("./skills");
|
|
26
27
|
const { findNamespacePassthrough } = require("./namespace-passthrough");
|
|
27
28
|
const { discoverPluginsByIntent } = require("./discover");
|
|
29
|
+
const { startDaemon, stopDaemon, getDaemonStatus, writeLog } = require("./daemon");
|
|
28
30
|
|
|
29
31
|
const SERVER = process.env.SUPERCLI_SERVER;
|
|
30
32
|
const hasServer = !!SERVER;
|
|
@@ -236,7 +238,7 @@ function renderTopLevelHelp(config) {
|
|
|
236
238
|
console.log(' AI: supercli ask "<your natural language query>" # LLM-powered suggestions (no execution)');
|
|
237
239
|
}
|
|
238
240
|
console.log(" Server: supercli --server");
|
|
239
|
-
console.log(" Server CLI: supercli server status | supercli server plugins <list|add|remove> | supercli server mcp <list|add|remove> | supercli server commands <list|add|remove> | supercli server jobs <list|prune>");
|
|
241
|
+
console.log(" Server CLI: supercli server status | supercli server plugins <list|add|remove> | supercli server mcp <list|add|remove> | supercli server commands <list|add|remove> | supercli server jobs <list|prune> | supercli server adapters <list|add|remove|update> | supercli server adapters packages <list|add|remove> <name>");
|
|
240
242
|
console.log(
|
|
241
243
|
" Flags: --help | --json | --human | --compact | --schema | --help-json | --server\n",
|
|
242
244
|
);
|
|
@@ -570,6 +572,29 @@ async function main() {
|
|
|
570
572
|
return;
|
|
571
573
|
}
|
|
572
574
|
|
|
575
|
+
if (positional[0] === "daemon") {
|
|
576
|
+
const subcommand = positional[1] || "status";
|
|
577
|
+
switch (subcommand) {
|
|
578
|
+
case "start":
|
|
579
|
+
output(startDaemon());
|
|
580
|
+
break;
|
|
581
|
+
case "stop":
|
|
582
|
+
output(stopDaemon());
|
|
583
|
+
break;
|
|
584
|
+
case "status":
|
|
585
|
+
output(getDaemonStatus());
|
|
586
|
+
break;
|
|
587
|
+
default:
|
|
588
|
+
outputError({
|
|
589
|
+
code: 85,
|
|
590
|
+
type: "invalid_argument",
|
|
591
|
+
message: "Unknown daemon subcommand. Use: start|stop|status",
|
|
592
|
+
recoverable: false,
|
|
593
|
+
});
|
|
594
|
+
}
|
|
595
|
+
return;
|
|
596
|
+
}
|
|
597
|
+
|
|
573
598
|
if (positional[0] === "commands") {
|
|
574
599
|
const config = await loadConfig(SERVER);
|
|
575
600
|
const namespaceFilter = flags.namespace
|
|
@@ -959,20 +984,15 @@ async function main() {
|
|
|
959
984
|
data: result,
|
|
960
985
|
};
|
|
961
986
|
|
|
962
|
-
//
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
duration_ms: duration,
|
|
972
|
-
timestamp: new Date().toISOString(),
|
|
973
|
-
}),
|
|
974
|
-
}).catch(() => {}); // silent fail
|
|
975
|
-
}
|
|
987
|
+
// Write job record to local log (daemon will sync to server)
|
|
988
|
+
writeLog({
|
|
989
|
+
command: `${namespace}.${resource}.${action}`,
|
|
990
|
+
args: uFlags,
|
|
991
|
+
status: "success",
|
|
992
|
+
duration_ms: duration,
|
|
993
|
+
timestamp: new Date().toISOString(),
|
|
994
|
+
client_id: getClientId(),
|
|
995
|
+
});
|
|
976
996
|
|
|
977
997
|
if (humanMode) {
|
|
978
998
|
process.stderr.write(
|
|
@@ -158,6 +158,11 @@
|
|
|
158
158
|
<li>Add server dashboard with command overview and job monitoring</li>
|
|
159
159
|
<li>Add adapter management UI with package installation and configuration</li>
|
|
160
160
|
<li>Add 12 new plugins: biome, bore, ccf-deadlines, code2prompt, dua-cli, forever, gitmoji-cli, quarto, readme-md-generator, vale, volta, wgcf</li>
|
|
161
|
+
<li>Add authentication system for API endpoints with public_access flag and API key management</li>
|
|
162
|
+
<li>Add daemon for background job log syncing to server</li>
|
|
163
|
+
<li>Add client tracking with client_id in job records</li>
|
|
164
|
+
<li>Add API keys management UI with create, list, copy, and delete functionality</li>
|
|
165
|
+
<li>Add clients.ejs for client management view</li>
|
|
161
166
|
</ul>
|
|
162
167
|
</section>
|
|
163
168
|
|
|
@@ -188,6 +193,7 @@
|
|
|
188
193
|
</h2>
|
|
189
194
|
<ul class="space-y-2 text-slate-300">
|
|
190
195
|
<li>Bump version to 1.1.14</li>
|
|
196
|
+
<li>Bump version to 1.1.23</li>
|
|
191
197
|
</ul>
|
|
192
198
|
</section>
|
|
193
199
|
|
package/docs/index.html
CHANGED
|
@@ -103,6 +103,9 @@
|
|
|
103
103
|
background: #333333;
|
|
104
104
|
transform: scale(1.05);
|
|
105
105
|
}
|
|
106
|
+
.radial-gradient {
|
|
107
|
+
background: radial-gradient(circle at 30% 50%, rgba(0, 0, 0, 0.03) 0%, transparent 70%);
|
|
108
|
+
}
|
|
106
109
|
</style>
|
|
107
110
|
</head>
|
|
108
111
|
<body class="bg-[#FBFBFA]">
|
|
@@ -114,6 +117,9 @@
|
|
|
114
117
|
<h1 class="text-2xl font-semibold mt-3 text-[#111111]">supercli</h1>
|
|
115
118
|
<p class="text-sm text-[#787774] mt-1">Universal Capability Router</p>
|
|
116
119
|
</div>
|
|
120
|
+
<div id="backToServerUI" class="hidden">
|
|
121
|
+
<a href="/" class="block px-3 py-2 text-sm text-[#1F6C9F] hover:bg-[#F7F6F3] rounded-md">← Back to Server UI</a>
|
|
122
|
+
</div>
|
|
117
123
|
<nav class="space-y-6">
|
|
118
124
|
<div>
|
|
119
125
|
<p class="text-xs uppercase tracking-widest text-[#787774] mb-3">Overview</p>
|
|
@@ -155,6 +161,46 @@
|
|
|
155
161
|
</header>
|
|
156
162
|
|
|
157
163
|
<main class="flex-1 overflow-y-auto bg-[#FBFBFA]">
|
|
164
|
+
<!-- Hero Section -->
|
|
165
|
+
<section class="relative px-8 py-20 bg-[#FBFBFA]">
|
|
166
|
+
<div class="absolute inset-0 opacity-[0.03] radial-gradient"></div>
|
|
167
|
+
<div class="max-w-5xl relative z-10">
|
|
168
|
+
<div class="space-y-8 scroll-reveal">
|
|
169
|
+
<div class="space-y-4">
|
|
170
|
+
<span class="tag px-3 py-1 inline-block">The Capability Layer</span>
|
|
171
|
+
<h2 class="editorial-heading text-6xl font-medium text-[#111111] leading-[1.1]">
|
|
172
|
+
Turn every tool into<br/>a discoverable capability
|
|
173
|
+
</h2>
|
|
174
|
+
</div>
|
|
175
|
+
|
|
176
|
+
<div class="max-w-2xl space-y-4 text-[#2F3437] text-lg">
|
|
177
|
+
<p>supercli standardizes inputs, outputs, and execution across 999+ bundled plugins — from AWS, GitHub, Docker, to Kubernetes and beyond.</p>
|
|
178
|
+
</div>
|
|
179
|
+
|
|
180
|
+
<div class="flex flex-wrap gap-8 pt-4">
|
|
181
|
+
<div class="space-y-1">
|
|
182
|
+
<p class="text-4xl font-semibold text-[#111111]">999+</p>
|
|
183
|
+
<p class="text-sm text-[#787774]">Bundled plugins</p>
|
|
184
|
+
</div>
|
|
185
|
+
<div class="space-y-1">
|
|
186
|
+
<p class="text-4xl font-semibold text-[#111111]">Zero</p>
|
|
187
|
+
<p class="text-sm text-[#787774]">Setup required</p>
|
|
188
|
+
</div>
|
|
189
|
+
<div class="space-y-1">
|
|
190
|
+
<p class="text-4xl font-semibold text-[#111111]">One</p>
|
|
191
|
+
<p class="text-sm text-[#787774]">Consistent interface</p>
|
|
192
|
+
</div>
|
|
193
|
+
</div>
|
|
194
|
+
|
|
195
|
+
<div class="pt-6">
|
|
196
|
+
<a href="plugins.html" class="inline-block px-8 py-4 bg-[#111111] text-white text-sm font-medium rounded-md hover:bg-[#333333] transition-colors">
|
|
197
|
+
Explore 999+ Plugins
|
|
198
|
+
</a>
|
|
199
|
+
</div>
|
|
200
|
+
</div>
|
|
201
|
+
</div>
|
|
202
|
+
</section>
|
|
203
|
+
|
|
158
204
|
<section class="border-b border-[#EAEAEA] bg-white px-8 py-12">
|
|
159
205
|
<div class="max-w-5xl">
|
|
160
206
|
<p class="text-xs uppercase tracking-[0.2em] text-[#787774] mb-4">Quick filter</p>
|
|
@@ -195,18 +241,21 @@ supercli skills get beads.issue.create</code></pre>
|
|
|
195
241
|
<h2 class="editorial-heading text-5xl font-medium text-[#111111]">Capability Sources</h2>
|
|
196
242
|
</div>
|
|
197
243
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
198
|
-
<div class="bento-card p-6">
|
|
199
|
-
<
|
|
200
|
-
|
|
244
|
+
<div class="bento-card p-6 md:col-span-2 bg-[#E1F3FE]/10 border-[#E1F3FE]/30">
|
|
245
|
+
<div class="flex items-start justify-between gap-4">
|
|
246
|
+
<div class="space-y-3">
|
|
247
|
+
<h3 class="font-semibold text-[#111111]">Plugin Harnesses</h3>
|
|
248
|
+
<p class="text-[#2F3437] text-sm">999 bundled plugins (gh, aws, gcloud, az, docker, kubectl, terraform, stripe, supabase, and many more) via <code class="mono-text bg-[#F7F6F3] px-1 py-0.5 rounded text-xs border border-[#EAEAEA]">supercli plugins install</code>.</p>
|
|
249
|
+
</div>
|
|
250
|
+
<a href="plugins.html" class="inline-flex items-center px-4 py-2 bg-[#111111] text-white text-sm font-medium rounded-md hover:bg-[#333333] transition-colors whitespace-nowrap">
|
|
251
|
+
Explore Plugins
|
|
252
|
+
</a>
|
|
253
|
+
</div>
|
|
201
254
|
</div>
|
|
202
255
|
<div class="bento-card p-6">
|
|
203
256
|
<h3 class="font-semibold text-[#111111] mb-2">Built-in Adapters</h3>
|
|
204
257
|
<p class="text-[#2F3437] text-sm">OpenAPI specs, raw HTTP, and MCP servers become capabilities automatically.</p>
|
|
205
258
|
</div>
|
|
206
|
-
<div class="bento-card p-6">
|
|
207
|
-
<h3 class="font-semibold text-[#111111] mb-2">Plugin Harnesses</h3>
|
|
208
|
-
<p class="text-[#2F3437] text-sm">999 bundled plugins (gh, aws, gcloud, az, docker, kubectl, terraform, stripe, supabase, and many more) via <code class="mono-text bg-[#F7F6F3] px-1 py-0.5 rounded text-xs border border-[#EAEAEA]">supercli plugins install</code>.</p>
|
|
209
|
-
</div>
|
|
210
259
|
<div class="bento-card p-6">
|
|
211
260
|
<h3 class="font-semibold text-[#111111] mb-2">AI Plans / Workflows</h3>
|
|
212
261
|
<p class="text-[#2F3437] text-sm">Natural language <code class="mono-text bg-[#F7F6F3] px-1 py-0.5 rounded text-xs border border-[#EAEAEA]">ask</code> and <code class="mono-text bg-[#F7F6F3] px-1 py-0.5 rounded text-xs border border-[#EAEAEA]">plan</code> commands create DAGs of capabilities.</p>
|
|
@@ -285,14 +334,21 @@ supercli plugins show <name></code></pre>
|
|
|
285
334
|
<h2 class="editorial-heading text-5xl font-medium text-[#111111]">More Documentation</h2>
|
|
286
335
|
</div>
|
|
287
336
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
337
|
+
<a href="plugins.html" class="bento-card p-6 md:col-span-2 bg-[#E1F3FE]/10 border-[#E1F3FE]/30 hover:border-[#E1F3FE]/50 transition-colors">
|
|
338
|
+
<div class="flex items-start justify-between gap-4">
|
|
339
|
+
<div class="space-y-2">
|
|
340
|
+
<h3 class="font-semibold text-[#111111] mono-text text-sm">Plugin Directory</h3>
|
|
341
|
+
<p class="text-[#2F3437] text-sm">Browse all 999+ plugins — from AWS and GitHub to Docker, Kubernetes, and beyond.</p>
|
|
342
|
+
</div>
|
|
343
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#111111" stroke-width="2" class="flex-shrink-0 mt-1">
|
|
344
|
+
<path d="M5 12h14M12 5l7 7-7 7"/>
|
|
345
|
+
</svg>
|
|
346
|
+
</div>
|
|
347
|
+
</a>
|
|
288
348
|
<div class="bento-card p-6">
|
|
289
349
|
<h3 class="font-semibold text-[#111111] mb-2 mono-text text-sm">README.md</h3>
|
|
290
350
|
<p class="text-[#2F3437] text-sm">Repository root documentation</p>
|
|
291
351
|
</div>
|
|
292
|
-
<a href="plugins.html" class="bento-card p-6 hover:border-[#111111] transition-colors">
|
|
293
|
-
<h3 class="font-semibold text-[#111111] mb-2 mono-text text-sm">Plugin Directory</h3>
|
|
294
|
-
<p class="text-[#2F3437] text-sm">Browse all 999 plugins</p>
|
|
295
|
-
</a>
|
|
296
352
|
<div class="bento-card p-6">
|
|
297
353
|
<h3 class="font-semibold text-[#111111] mb-2 mono-text text-sm">docs/skills-catalog.md</h3>
|
|
298
354
|
<p class="text-[#2F3437] text-sm">Skills reference catalog</p>
|
|
@@ -438,6 +494,33 @@ supercli plugins show <name></code></pre>
|
|
|
438
494
|
}
|
|
439
495
|
loadServerDocs();
|
|
440
496
|
|
|
497
|
+
// Show "Back to Server UI" link if fromServerUI parameter is present
|
|
498
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
499
|
+
const fromServerUI = urlParams.get('fromServerUI') === '1';
|
|
500
|
+
|
|
501
|
+
if (fromServerUI) {
|
|
502
|
+
const backToServerUI = document.getElementById('backToServerUI');
|
|
503
|
+
if (backToServerUI) {
|
|
504
|
+
backToServerUI.classList.remove('hidden');
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
// Propagate fromServerUI parameter to all sidebar links (except back to server UI)
|
|
508
|
+
const sidebarLinks = document.querySelectorAll('#sidebar a');
|
|
509
|
+
sidebarLinks.forEach(link => {
|
|
510
|
+
const href = link.getAttribute('href');
|
|
511
|
+
// Skip the back to server UI link
|
|
512
|
+
if (link.closest('#backToServerUI')) return;
|
|
513
|
+
|
|
514
|
+
if (href && !href.startsWith('http') && !href.startsWith('#')) {
|
|
515
|
+
// Get current path to preserve /docs/ base
|
|
516
|
+
const currentPath = window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/') + 1);
|
|
517
|
+
const url = new URL(currentPath + href, window.location.origin);
|
|
518
|
+
url.searchParams.set('fromServerUI', '1');
|
|
519
|
+
link.setAttribute('href', url.pathname + url.search);
|
|
520
|
+
}
|
|
521
|
+
});
|
|
522
|
+
}
|
|
523
|
+
|
|
441
524
|
// Load adapters documentation dynamically
|
|
442
525
|
async function loadAdaptersDocs() {
|
|
443
526
|
try {
|
package/docs/plugins.html
CHANGED
|
@@ -109,6 +109,9 @@
|
|
|
109
109
|
<h1 class="text-2xl font-semibold mt-3 text-[#111111]">supercli</h1>
|
|
110
110
|
<p class="text-sm text-[#787774] mt-1">Plugin Directory</p>
|
|
111
111
|
</div>
|
|
112
|
+
<div id="backToServerUI" class="hidden">
|
|
113
|
+
<a href="/" class="block px-3 py-2 text-sm text-[#1F6C9F] hover:bg-[#F7F6F3] rounded-md">← Back to Server UI</a>
|
|
114
|
+
</div>
|
|
112
115
|
<nav class="space-y-6">
|
|
113
116
|
<div>
|
|
114
117
|
<p class="text-xs uppercase tracking-widest text-[#787774] mb-3">Navigation</p>
|
|
@@ -345,6 +348,33 @@
|
|
|
345
348
|
if (e.target === mobileDrawer) mobileDrawer.classList.add('hidden');
|
|
346
349
|
});
|
|
347
350
|
|
|
351
|
+
// Show "Back to Server UI" link if fromServerUI parameter is present
|
|
352
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
353
|
+
const fromServerUI = urlParams.get('fromServerUI') === '1';
|
|
354
|
+
|
|
355
|
+
if (fromServerUI) {
|
|
356
|
+
const backToServerUI = document.getElementById('backToServerUI');
|
|
357
|
+
if (backToServerUI) {
|
|
358
|
+
backToServerUI.classList.remove('hidden');
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
// Propagate fromServerUI parameter to all sidebar links (except back to server UI)
|
|
362
|
+
const sidebarLinks = document.querySelectorAll('#sidebar a');
|
|
363
|
+
sidebarLinks.forEach(link => {
|
|
364
|
+
const href = link.getAttribute('href');
|
|
365
|
+
// Skip the back to server UI link
|
|
366
|
+
if (link.closest('#backToServerUI')) return;
|
|
367
|
+
|
|
368
|
+
if (href && !href.startsWith('http') && !href.startsWith('#')) {
|
|
369
|
+
// Get current path to preserve /docs/ base
|
|
370
|
+
const currentPath = window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/') + 1);
|
|
371
|
+
const url = new URL(currentPath + href, window.location.origin);
|
|
372
|
+
url.searchParams.set('fromServerUI', '1');
|
|
373
|
+
link.setAttribute('href', url.pathname + url.search);
|
|
374
|
+
}
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
|
|
348
378
|
// Scroll to top button
|
|
349
379
|
const scrollTopBtn = document.getElementById('scrollTopBtn');
|
|
350
380
|
|