@xgent-ai/skills 0.7.5 → 0.7.6
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/.claude/hooks/xgent-statusline.js +32 -18
- package/README.md +61 -35
- package/bin/phoenix-diagram.js +14 -0
- package/bin/xgent-skills.js +132 -240
- package/dist/phoenix-diagram/LICENSE +21 -0
- package/dist/phoenix-diagram/NOTICE.md +34 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/005fc765ddc5115da796cca915baa9557abae13ff35e0a47c47affc56f6c414d.txt +272 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/010492e490b92ec85db01daad2a290ea5959f29314a1c4ff25e7a172e223abf9.txt +18 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f.txt +3 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/0218327e7a480793ffdd4eb792379a9709e5c135c7ba267f709d6f6d4d70af0a.txt +201 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/02bb8c3b4e70190e3986c0404ad2fd8d639b4f534252d82379cc1b502b6d1812.txt +191 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/0444c6991eead6822f7b9102e654448d51624431119546492e8b231db42c48bb.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/0552c898248eadfc130df0c0e8f6f82776fcb3f1dd5a5af2fa991b5baff9367a.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/0ab4d106b6faac07fb6a051815fd1b4d862d730895e2d7d7358c2f13565e7a38.txt +20 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/0b28172679e0009b655da42797c03fd163a3379d5cfa67ba1f1655e974a2a1a9.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/0d3f7c086c6b6cf3ea4aac714e9aa3e1fb02e355ce35bd21c56acf8d04390885.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/0dd882e53de11566d50f8e8e2d5a651bcf3fabee4987d70f306233cf39094ba7.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/117829c3ca21efb132d81a44b55363d395ab8eea18526873bc828da4c0e5f038.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/123a331b5dbf04c30097fa43b8f858bc85df671fe776de498d01f3d6b7c1f69e.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df.txt +26 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/1f256ecad192880510e84ad60474eab7589218784b9a50bc7ceee34c2b91f1d5.txt +373 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/1f485f0d6125658861351e3d6084ea90fefe78f89450be9915044b7c56d5a75a.txt +15 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/209fbbe0ad52d9235e37badf9cadfe4dbdc87203179c0899e738b39ade42177b.txt +26 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/20c7855c364d57ea4c97889a5e8d98470a9952dade37bd9248b9a54431670e5e.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/20fe7b00e904ed690e3b9fd6073784d3fc428141dbd10b81c01fd143d0797f58.txt +176 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/219920e865eee70b7dcfc948a86b099e7f4fe2de01bcca2ca9a20c0a033f2b59.txt +7 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d.txt +7 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3.txt +23 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5.txt +220 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/27995d58ad5c1145c1a8cd86244ce844886958a35eb2b78c6b772748669999ac.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/28a9529c7d0bb4dc51f4bf5c116a3d16ef247a052f7591466768ddf563fd1cf5.txt +428 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/29e9fe5074bd27e0e5d5d110394fbbcd841baee2651a3c4b4560a632702cede4.txt +26 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/30fefc3a7d6a0041541858293bcbea2dde4caa4c0a5802f996a7f7e8c0085652.txt +23 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/3521672491a3479422d5fe1aca6645dd2984090f85da6e5205abfb18fb7a6897.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/35242e7a83f69875e6edeff02291e688c97caafe2f8902e4e19b49d3e78b4cab.txt +176 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/36516aefdc84c5d5a1e7485425913a22dbda69eb1930c5e84d6ae4972b5194b9.txt +23 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/375bdbf54d6584debb4bcc5bce1c9dcfdd581f977c9a8469113dbdf208f4c927.txt +131 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/391a5396cec6230bfabd4ef4eb2350eb895bc5efce377a2218f5702ed020d3e3.txt +20 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/39712155836e5c10ef1b07037b606e4ad2d633e72205d162fdd7e2290aa54f15.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/3bb1e548250b3acc43febde65a5cdba9f2e0a3288018aa41f009a3c59ffab51a.txt +390 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/3bc70e239e91272782006c638fc0452a714d384224f11f0923036b7be07cf9b5.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/3f3d9e0024b1921b067d6f7f88deb4a60cbe7a78e76c64e3f1d7fc3b779b9d04.txt +373 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/3f941b3b89cf7b8370ceb83cc76d2120d471b58735d8ca60238a751a48d7f72f.txt +359 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/42fa16951ce7f24b5a467a40e5b449a1d41e662f97ca779864f053f39e097737.txt +26 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/4455bf75a91154108304cb283e0fea9948c14f13e20d60887cf2552449dea3b1.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/451167c55c0fa447cc2d5632714f5e3c567fe4f1e1badefab2c1333852198aca.txt +542 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/45f522cacecb1023856e46df79ca625dfc550c94910078bd8aec6e02880b3d42.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/45fd05c4865e7c350b98ad7ac50e1b15462d49af4a91e9b0c9dd933dc9a69742.txt +201 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/4789210f4df8abc03fce1cddd9c2ba517f184840687f2815d741de282c1aa93a.txt +228 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/4cada0bd02ea3692eee6f16400d86c6508bbd3bafb2b65fed0419f36d4f83e8f.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/516b24e051bf5630880ebbd55c40a25ce9552ebaf8970a53e8976eb70e522406.txt +201 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/553fffcd9b1cb158bc3e9edc35da85ca5c3b3d7d2e61c883ebcfa8a65814b583.txt +13 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/5757a1f28eff735a8b5e7425478f367812d71e974530f5bedd01219480965f4a.txt +51 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/5b698ca13897be3afdb7174256fa1574f8c6892b8bea1a66dd6469d3fe27885a.txt +19 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/5e05b024f653a5ce199e77cbbbd42fb5553562ec714b819421ed0c3e552a75d7.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/60a7062291b01ba068f300612cdbdc20382ac1d4934f07bcdd7167c15299f309.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a.txt +176 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/65f94e99ddaf4f5d1782a6dae23f35d4293a9a01444a13135a6887017d353cee.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/6df43f6f4b5d4587f3d8d71e45532c688fd168afa5fe89d571cb32fa09c4ef51.txt +187 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/709e3175b4212f7b13aa93971c9f62ff8c69ec45ad8c6532a7e0c41d7a7d6f8c.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/71674605ec4c087fe9eb534e3e4f9e26eb2e4aabcd76a29fd156c6a844d44b3d.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/7365cc8878a1d7ce155a58c4ca09c3d7a6be413efa5334a80ea842912b669349.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/7abd9b6960dcf7d4d0a48606a5b71bfe37d472db68d70637f3a58a56785f1621.txt +13 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/7ca6700600dfa9c9497bf5556365067daa802c871ea78239f129309c7a2048f7.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/7cfafc877eccc46c0e346ccbaa5c51bb6b894d2b818e617d970211e232785ad4.txt +15 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c.txt +24 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/7e5886959f67f8c75063a9d55cd3cb08c5a8cbea9a944fa1df2d4ae038f53721.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/7fea0ee51a4ca5d5cea7464135fd55e8b09caf3a61da3d451ac8a22af95c033f.txt +20 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90.txt +201 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/83c1763356e822adde0a2cae748d938a73fdc263849ccff6b27776dff213bd32.txt +24 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/86dd7f026f916daf7511e39951ad8ea8cf55a8db67ae64060dacf829761c18f3.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/8a35369f3ca263b3c62fbb5032947e53b6bfebc6c8a4d1bb982de1c069f6fba5.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/8b43ce8accd61e9d370b5ca9e9c4f953279b5c239926c62315b40e24df51b726.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/8bb1b50b0e5c9399ae33bd35fab2769010fa6c14e8860c729a52295d84896b7a.txt +201 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/8bce3b45e49ecd1461f223b46de133d8f62cd39f745cfdaf81bee554b908bd42.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/8c7516d4b27b1e495be5e38b612298b63de48d05f49cdac94f70f3cd70f8864b.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/9046848b63a5c92bff14e4accca80bd987e0623b74adf9226ce5198d312b79d5.txt +30 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/90eb64f0279b0d9432accfa6023ff803bc4965212383697eee27a0f426d5f8d5.txt +12 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/9117d922e667125508dde62b02c1f57ed22f5ad21eb536aa2e2d99e1c796e639.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/9387c2d197e2370a740ca457dae1662c56de56b811ee4862024343961307f9bf.txt +19 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/946c9835d8034d24404f8cfec5f4654cee5dad17e944afc3d06d742cf2882831.txt +240 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/95bd3988beee069fa2848f648dab43cc6e0b2add2ad6bcb17360caf749802bcc.txt +176 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/9ba9550ad48438d0836ddab3da480b3b69ffa0aac7b7878b5a0039e7ab429411.txt +396 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/9d185ac6703c4b0453974c0d85e9eee43e6941009296bb1f5eb0b54e2329e9f3.txt +202 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/9e0dfd2dd4173a530e238cb6adb37aa78c34c6bc7444e0e10c1ab5d8881f63ba.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/9f2ae19ef94ba82887729a4a1617ff25eede56611dd21a4b2c6f797df30fca33.txt +2013 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/9fa38f610a00115dd1f612bdd3559e3b381ea579538b6ff25a5899da250a5fce.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/a00511478c83ebb464ef19d840f061c7444adc4636bb561900e75c5808cfc6cc.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499.txt +121 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/a5dea80c1f383cb5f80a6bb0da5e55a2beb9f24adb123ce6300af2cbaaa3bf65.txt +19 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2.txt +201 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/a825bd853ab71619a4923d7b4311221427848070ff44d990da39b0b274c1683f.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5.txt +201 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf.txt +201 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/ae9baa7beea910273c2f384c2a6b721fb7bd02bda3436074a1072e4ee689f985.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744.txt +19 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/b3d734001a94efff3579978d953391aa7115f877657d25eb54037a43875d078a.txt +9 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/b40930bbcf80744c86c46a12bc9da056641d722716c378f5659b9e555ef833e1.txt +201 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/b4eb00df6e2a4d22518fcaa6a2b4646f249b3a3c9814509b22bd2091f1392ff1.txt +27 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/b68ad1a3367b825447089e1f8d6829b97f47a89eb78d2f4ebaef4672f5606186.txt +22 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/b7e650f3fce5c53249d1cdc608b54df156a97edd636cf9d23498d0cfe7aec63e.txt +19 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/c09aae9d3c77b531f56351a9947bc7446511d6b025b3255312d3e3442a9a7583.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b.txt +201 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383.txt +21 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/c30152c94a6d75e021adbc52b3a52470366a46edb917e17deae3259251af244c.txt +42 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/c394e3bda1f3b9378f30a7cab11242887eeeafc73c7bef36a0fe13e09691e18b.txt +17 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4.txt +201 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/c962ee4d1d05ddc138b202b2540219ebc57893fcf97b364852094a9a94ce1365.txt +7 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30.txt +202 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/d1fc1bc0d155df60b2e7705b6b2ae02a05c96f948e1cec6e2fb86360b09f346b.txt +29 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/d5c22aa3118d240e877ad41c5d9fa232f9c77d757d4aac0c2f943afc0a95e0ef.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/d5fca2653c88ad02d197faead77e22b80c70636b5bec6e02f2805f389a21b86d.txt +10 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/db11fec9946737df39ca3898d9cd8c10ec6f6c3a884a6802b0ad0b81b4e8f23a.txt +1 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/dc91f8200e4b2a1f9261035d4c18c33c246911a6c0f7b543d75347e61b249cff.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/ddea4e94a1c35ed9826e54e13a5b50b8f81b21665a00ca07c8861f1859e56b6b.txt +14 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/e271993808fec50ab29350b39539cdec611a9103f827e0aa26d61da70e2d33f8.txt +61 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/e66c269d4819aaab34b49ef5220c4ddab6756f21bb5180761a4eb8561f2b7bbd.txt +438 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/ecc269ef87fd38a1d98e30bfac9ba964a9dbd9315c3770fed98d4d7cb5882055.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/efcfee7981ff72431fffb06925cad00a23dce079ed4354f61030ad5abdb78829.txt +22 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/f025ccfb7dfb6bdfedc75ca0f67acc69e6fb4998143d834f7c2f38a29989680f.txt +13 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2.txt +46 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/f51ac2c59a222f7476ce507ca879960e2b64ea64bb2786eefdbeb7b0b538d1b7.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/f7715d38a3fa1b4ac97c5729740752505a39cb92ee83ab5b102aeb5eaa7cdea4.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/f7db81051789b729fea528a63ec4c938fdcb93d9d61d97dc8cc2e9df6d47f2a1.txt +39 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/f9c4c77baa3828004ee54b8a4f2db2e88ed44a6237a493965bf551fac0fcb62d.txt +17 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85.txt +373 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/fb77f0a9c53e473abe5103c8632ef9f0f2874d4fb3f17cb2d8c661aab9cee9d7.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2.txt +25 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/ff92bed461f50338dd703a9ba9aee496a425957873df1d91192776e4bdf5dda7.txt +74 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/rust-std-1.99.1/COPYRIGHT-library.html +29357 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/rust-std-1.99.1/licenses/Apache-2.0.txt +73 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/rust-std-1.99.1/licenses/BSD-2-Clause.txt +9 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/rust-std-1.99.1/licenses/CC-BY-SA-4.0.txt +427 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/rust-std-1.99.1/licenses/GCC-exception-3.1.txt +30 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/rust-std-1.99.1/licenses/GPL-2.0-only.txt +133 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/rust-std-1.99.1/licenses/GPL-3.0-or-later.txt +202 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/rust-std-1.99.1/licenses/ISC.txt +7 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/rust-std-1.99.1/licenses/LLVM-exception.txt +15 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/rust-std-1.99.1/licenses/MIT.txt +9 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/rust-std-1.99.1/licenses/NCSA.txt +29 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/rust-std-1.99.1/licenses/OFL-1.1.txt +43 -0
- package/dist/phoenix-diagram/THIRD-PARTY-LICENSES/rust-std-1.99.1/licenses/Unicode-3.0.txt +39 -0
- package/dist/phoenix-diagram/THIRD-PARTY-NOTICES.md +210 -0
- package/dist/phoenix-diagram/THIRD-PARTY.json +5459 -0
- package/dist/phoenix-diagram/VERSION.json +39 -0
- package/dist/phoenix-diagram/bundle/ENGINE.json +39 -0
- package/dist/phoenix-diagram/bundle/SKILL.md +109 -0
- package/dist/phoenix-diagram/bundle/examples/minimal.architecture.json +11 -0
- package/dist/phoenix-diagram/bundle/examples/minimal.class.json +23 -0
- package/dist/phoenix-diagram/bundle/examples/minimal.dataflow.json +11 -0
- package/dist/phoenix-diagram/bundle/examples/minimal.erd.json +25 -0
- package/dist/phoenix-diagram/bundle/examples/minimal.lifecycle.json +11 -0
- package/dist/phoenix-diagram/bundle/examples/minimal.sequence.json +13 -0
- package/dist/phoenix-diagram/bundle/examples/minimal.timeline.json +15 -0
- package/dist/phoenix-diagram/bundle/examples/minimal.tree.json +13 -0
- package/dist/phoenix-diagram/bundle/examples/minimal.waterfall.json +12 -0
- package/dist/phoenix-diagram/bundle/examples/minimal.workflow.json +12 -0
- package/dist/phoenix-diagram/bundle/manifest.json +253 -0
- package/dist/phoenix-diagram/bundle/references/architecture-compare.md +111 -0
- package/dist/phoenix-diagram/bundle/references/authoring-defaults.md +42 -0
- package/dist/phoenix-diagram/bundle/references/brand-marks.md +52 -0
- package/dist/phoenix-diagram/bundle/references/compatibility.md +22 -0
- package/dist/phoenix-diagram/bundle/references/delivery-contract.md +127 -0
- package/dist/phoenix-diagram/bundle/references/extending-types.md +14 -0
- package/dist/phoenix-diagram/bundle/references/migration.md +57 -0
- package/dist/phoenix-diagram/bundle/references/preview.md +45 -0
- package/dist/phoenix-diagram/bundle/references/repository-authoring.md +29 -0
- package/dist/phoenix-diagram/bundle/references/viewer-runtime.md +27 -0
- package/dist/phoenix-diagram/bundle/schemas/README.md +23 -0
- package/dist/phoenix-diagram/bundle/schemas/architecture.schema.json +329 -0
- package/dist/phoenix-diagram/bundle/schemas/class.schema.json +348 -0
- package/dist/phoenix-diagram/bundle/schemas/common.schema.json +358 -0
- package/{skills/archify → dist/phoenix-diagram/bundle}/schemas/dataflow.schema.json +36 -8
- package/dist/phoenix-diagram/bundle/schemas/erd.schema.json +384 -0
- package/dist/phoenix-diagram/bundle/schemas/lifecycle.schema.json +202 -0
- package/{skills/archify → dist/phoenix-diagram/bundle}/schemas/sequence.schema.json +41 -10
- package/dist/phoenix-diagram/bundle/schemas/timeline.schema.json +170 -0
- package/dist/phoenix-diagram/bundle/schemas/tree.schema.json +144 -0
- package/dist/phoenix-diagram/bundle/schemas/waterfall.schema.json +150 -0
- package/{skills/archify → dist/phoenix-diagram/bundle}/schemas/workflow.schema.json +42 -10
- package/dist/phoenix-diagram/bundle/scripts/phoenix-bootstrap.cjs +589 -0
- package/dist/phoenix-diagram/bundle/scripts/phoenix-diagram +6 -0
- package/dist/phoenix-diagram/bundle/scripts/phoenix-launcher.cjs +10 -0
- package/dist/phoenix-ui/THIRD-PARTY.json +164 -158
- package/dist/phoenix-ui/VERSION.json +17 -17
- package/dist/phoenix-ui/bundle/blobs/00727f7b333a7be8ac7740aa257a3a3f691db8ae545a6afab2b787acab5e88df +46 -0
- package/dist/phoenix-ui/bundle/blobs/{547e3c89d5b8feeddd67e43131fd84b95253eb42bf7d730b4e471dba011f6e51 → 00f4a6a630f31eb05fbdd5725e4a294233d24574bd70f4f32f4597d8256a7c1c} +0 -4
- package/dist/phoenix-ui/bundle/blobs/{41400e182e2180a567923d58bfa935d2799a54f2a747b2c5813c3884c84f768b → 04057592e18ea9dd3c4edcac14cde3fa5b75239c2552d4459db8e047068f61a8} +6 -7
- package/dist/phoenix-ui/bundle/blobs/{34571f7d46632205d518d15cb008457494dfad745c6b483bb11d63ca3a22ac48 → 0cb3bf26e1980b0e530373fb32edbe5864a171492a04e2abe1952ffe78bff231} +6 -7
- package/dist/phoenix-ui/bundle/blobs/{852d2943678a76c33b2f7a090d2ca6c152cd120e9ae62775fcc91519b9289011 → 0e684572eb98d24b39cd70fa23e66c163178f5a11756dcf8a98fe2335636b33f} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{d17b3a454146e74ef4ecf69d7b72a8fa45c4fe1c695dffb0d36690b653cd2d8f → 10553c45c7bf38e527a57a281c4365152a768b4dd7ef597ff34ae841e9ff7d41} +6 -7
- package/dist/phoenix-ui/bundle/blobs/{e49257c0fd32b195cccb16fbfda769c007be6b38f25aceefecd23cfff9366cec → 125bc7030d7f2ba789d7b1d5f474af34f8902b764e7bc351b98f1f6f55779929} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{74dbcbbad6c3831e95abb38775dd488c59ae9f1d44a95f5fd4bc0051577488fa → 13cf6c054ed424e2eb639ea12d20a4aa2b1c85eeb00afa8cbd8a30c6c22aadd8} +1 -1
- package/dist/phoenix-ui/bundle/blobs/1832ff9624cebd30370eb0e806665c656ac879215f93d33bcc0750baa47459dc +46 -0
- package/dist/phoenix-ui/bundle/blobs/{8e7de5ca347036a07f5f1e9cab942d8ff378d029bc101fa6d126406f3298c9db → 1864a10c29e7062cca5e49d1790dc7d9d8ea777bfa2ab6fd941635965cd0084d} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{784722b72224a7005a80cdcd6408dd2b25b23fd9619d0f6c8788f7ac681fad4c → 1ecc81de39d28b85b95e797bcc338d4213a50231c3315a741d14571fd22c844f} +6 -7
- package/dist/phoenix-ui/bundle/blobs/{b8c614dc7c2eb30ee0f864fec116dbcafb39e5a199dce66d0c1a88b13f76265a → 2079e4146039a8dadf19a39237cbdc0b8b54ea1fa16d320716c2cbf58161c835} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{dba6e4a09c5d752e5ddebe7c2c1aefc9c4b2a84e01a3178599579778ed2d09e9 → 2813aa68c0804a7fe061d88201d8a684cac9987b48511e1e2cbfe0a869a67a82} +6 -7
- package/dist/phoenix-ui/bundle/blobs/{2889c2817b5079abff254bb6d13f92dbde0fabc38be4acc7d20e613eef5e5829 → 2873e340be947c83c3d03520139b73524fd166a34063d2693d3b711021ea5b87} +6 -7
- package/dist/phoenix-ui/bundle/blobs/{64c4aa2d1c24ae5028e987498ac544020d48600a51d9654b2df562681ba480f2 → 298ef41899acefa056eccf2345378078832db6d868d2377f471f896d5c1599f9} +6 -14
- package/dist/phoenix-ui/bundle/blobs/{1b7174a6f3f49a8efc8f7fa74ff84cf8960e2646b9bc976e4129a7c8ad608faa → 2b5cef2a14a5b1256ec6de9172a4f57f227948ced1921ef86e899f48524d7fb8} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{f148f630f43f3c91cf10feeda5a3c21448ca0683ce82d0fe763c1b43dee584d6 → 2d376cbbf7ec1e262614aac4f1b200e8f60e86e940c7137a2a26788bc857e509} +6 -7
- package/dist/phoenix-ui/bundle/blobs/2e5985a6eb339d70cfa25f6d2b420a0ef286caa8467f0226eb841702ec438d0b +46 -0
- package/dist/phoenix-ui/bundle/blobs/{7e199833376de5d2b6e088ee2965b448f94da842f28ccbd707e1cc3a295147c8 → 3322d691bf7b578b38723576df6b266993b2afb9e567b0cd1ded898ffe1dc17e} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{f82bfc4c6bc9169d4978d5e16fb925f6e152fdd21dc6a2fae719dfdc1645581f → 3625c5c2750f117021232ce81c1e39ac5ef7c21445729327b88cf54dfc937df0} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{2ceacad745665f79fd7ad5565646426a36a1b508c0469b931d0f202fad45a80b → 36310febe3e7bd4c9b21407603f2a04afefdc87b7821758bb47098b1b2876765} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{24d92a176573768bfffaf8f9c6483e58bceb5bf2a095d1cdf3d3a2c0bcda0707 → 3a9c2daf4ef284ca83b0e7f6fef3a5300e273c32b20769e090463cb8a8b0b06f} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{153e377c44b162cf0074698a61716db7f664db78f5635efa926bed484de4f54c → 3ce1a44efe39b93e7a39307c6a5e5f514e938fbae818e358986b4db1b05883ca} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{ad8ad0b7acf6c88ef9ce0ee1a640c2200da77821f0d97d605d4f1d4a10e5897a → 403fcde498d75abec7844ee31434201152ac229f7675772164d69563f0572da4} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{e8ee6c08e94b80324173d89d6f4cdc5b4829ea6858b3a11fc186588a490cada4 → 45d0e7eff0923c40296e971318756617944c4f1c97f03126cd74c0f8c629f8a4} +3 -1
- package/dist/phoenix-ui/bundle/blobs/{e23dabf908842be08751fc4e7f3b586e8c6b1ca0fc30303ec5317c77f83dcf26 → 4c0f396bfa85171f61972d3f3765733318769bb53fe06d2cdcb5d7f64578b5b8} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{a5517d32c1539c388c47c00879a0d807ed2989647bfa8c0844ef22328f75f5be → 4f6563876e0e0cc51c38a06767b8800eb3238611e9fdd11e5ff9dd487c742e74} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{a9d2203acd45ca33a13d5c68b02b23ed512425ac15f0e8438318ed124b43729d → 4fcada229d0c689c1a493d13184145a81ff40c498e882142ae390bda8e5b2492} +15 -0
- package/dist/phoenix-ui/bundle/blobs/5293adc55cf66068b6df20468ad9e91433fd1c48e75d66c86f874aca951a8fb9 +46 -0
- package/dist/phoenix-ui/bundle/blobs/{96e2e6bd4fcf9a2c6da65fb029f96d9176308fae2efd9d8653d3b8d838960e07 → 5436f0301ec258f3badcc6842019ee29a9b870d2727dc425fbc9cc0f4f88a284} +3 -1
- package/dist/phoenix-ui/bundle/blobs/{d0f4939e86a62b0ca437d51a997ceba7e77d64566b7fa8ca2747487e31ca819d → 54a09a4afdffca3cc135e5007716ea684dc1ed7a78349de859225c55a2fed810} +6 -7
- package/dist/phoenix-ui/bundle/blobs/{d5102701d41f7c6195d410a873f742ac72c428b04196e47df5555c5ccaf80504 → 55277fa15eb4bd2f09bf7bb24c4e79df417b06654b1e10f502c7928b192fd7cc} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{878064e46af4e4109bab405f965e4149bee40bbe8912ffede10b74cec6cff027 → 567c3f42394f9aee9b048a001016a7ba9d8773d78027f8c995c379886634e719} +6 -3
- package/dist/phoenix-ui/bundle/blobs/57c8f33a7401f918566b8a4883871a69ef2223438c51f158c67f69e3250be465 +46 -0
- package/dist/phoenix-ui/bundle/blobs/{bc29e115fd337dda2cc7fc70b868dc18e426b08ec186fd270fcfe96bb2efaa5d → 61450dbef64859e3136cd17ae3e997134d5df5721d96985c4e07367f38522129} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{e3c1e925be0b2deb0e3765b83ab94b86560292364f275e98bb23a8bdf2c2e049 → 656bbfda3e72b40d53b5832293dc8700ad8a784e804a6246271bf0ea23527822} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{ffcaa5c58e779ec74d18bfc3013ad8003f6e7a23f629c1a3b878618961a8b6a3 → 68b454a99ba72c3b9b93ed96c4267847297169f6a5bf321b20e60d637c271068} +6 -3
- package/dist/phoenix-ui/bundle/blobs/68e44832c82b873b0aeb2da56def7b1de5f612c019445e5e28238c690124cbbe +46 -0
- package/dist/phoenix-ui/bundle/blobs/{45bbd4a8e02ca0012216c5c68e1dcd655ae0046bd50ba4295ef1f58ec4a0957c → 6b8d4c71355429a0b16bf367163fea46103a0a99b4e34f87608a39d85b1b980a} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{264815d0080e4862715a4f82542e66241c6563f07259d32aed4a17bbc329b9cc → 6cef874722442de7c60ea96f4221dc54cc4250a270cd05a1e818b58c5b43e232} +6 -7
- package/dist/phoenix-ui/bundle/blobs/{2028a857c0476324a4256faf66693e2a869275e53a88d2b182a28b62c2a17893 → 7181f1f4c452c4345695f9100f6deb610f54f4c55f126043433a65b8491fc680} +6 -7
- package/dist/phoenix-ui/bundle/blobs/{ccb76aabba47938d518a5d46a09d7e70c4a9222bc391e163763f2a7f12d30437 → 75850a8c9d2a8259f71ef1f86dd5d1325415227c1887e81a3467ae1ee400979f} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{4b03cdb5b17d534b5c7e84b079c066f59e8b60b9e454671a453867c4aeb9920d → 77bcc6c2d6ac00a8bfead3b6c6b5fc69f4b60bf086ebbc89271e1b23003168c9} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{9520e25a381c82af6f46e175b7c347d1dc513d933dd6cf8c52570c72abb4ca7f → 792552563745d208594cf4ade19110f2c811a0e1a2661ae1ef43a185ccff5a69} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{f7c8af35acf71a96056afb6afcff6a3ea42f65561f02652d04e11ad9ece9b8e9 → 7acd9b6f2f61b509c6a518508b8b52c2f0de67cdea4fd3f3d383b3ce8b38cf5e} +6 -7
- package/dist/phoenix-ui/bundle/blobs/7bacc1e3da7e8b7127ca3f8f69a2422098b9b2d23fbedefc56dfe76117c1c0e3 +46 -0
- package/dist/phoenix-ui/bundle/blobs/{78662176c1d31cec2d640f70df203f93cc1aec604cfc31619f4d2c62ab78861b → 8078b804bea630ed9c4ea07ec2f8ac92aba4128725860a66599eda90390d98f6} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{2291169748fe0c4c80634dff3083e7464f82d4358b9b2186759b316e612d466f → 88b150cb804bc141b80a5687a091f61b99627155c465a27adb88546ef615af92} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{bde88bf5ac59d744440d9b65f95ceaae01c803b101d48e6afd644a06eeb5de63 → 90f8b07ec12b78e633e306322cda58415aea70d8e0f9ff85bd439361c01dabe1} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{486145071d3445e82774f1b39b2bb15986ce52277e798a31ef7e9c27afb42af3 → 95b2944686e8258a655c3b5e6db68593e24e5199354e46aac553918ea2c0f55a} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{a1998e37084c11f496d4970f86a85d5a6375bbeaa4797b9f42bbac2d44048d23 → 979639f0e8859d600a8db57e733566d9ad37ff8258c3e05a6f9c0f3008e92373} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{3173293607055ea6e1a153ec6f51fb8154782157c8a61abf411da1f41be61728 → 9eaaa00049844060f842fe7fb73cc8edc4be5225cf38a96f33bda3ffc381456c} +6 -7
- package/dist/phoenix-ui/bundle/blobs/{69086f7cb235b35ccc230e1f2da41cbb10cea8f0636b6d4514672113a3adc2cb → a420bbda622399399a6b5c7c3614dcaebc6c62faceaf7b3c83c97db53d26b165} +1 -1
- package/dist/phoenix-ui/bundle/blobs/a63054b8920905045753facece83f154bf806158c6f46ef380036e7a82d4fde5 +46 -0
- package/dist/phoenix-ui/bundle/blobs/{e802e4f7bdc89050a9c0f2ca506e1d493a2316e6e810c0336c57aa073717ef3e → a63788c764b0e4fdcbc029d46093016310edcbcf702d62688e5aaac7ddeee6fd} +3 -1
- package/dist/phoenix-ui/bundle/blobs/{827a211ea03d2cb44b4ea1bc81ba1a6dc51a87fa16d6692997c4e4751241c815 → acfc4c26b135d5b27fc0930738486c9d43d379704102fab45564320180942e4b} +4 -2
- package/dist/phoenix-ui/bundle/blobs/{8da14f3eabac53c990a66e721387367b46cb676cc4204e8c67d6f88c95a6217f → ad243ca615349127aa422bccc1a6604ad17149735659087ca5bab3c5fae97f4e} +6 -7
- package/dist/phoenix-ui/bundle/blobs/b63931066e2b2623d012e1a3c1a0769cc43ed6640460c3899669b45539d6a20d +46 -0
- package/dist/phoenix-ui/bundle/blobs/{bb65af58ecc3e0c0093dc9a705a7ab643035e4e592c3adb93583c82d1aef1f51 → bde793ab5ad776f7e6f6d25ce2b838c1b5022054a1dad5502a873423eb0ad917} +6 -7
- package/dist/phoenix-ui/bundle/blobs/{8de7c97949b0bc4194b3be7645e4b13e9419767927482d01cf19476f6cbeda14 → c0a70ab2889e5c16e1f09249aefad948ce352c42cfe2b5afb758a4524e1b21b6} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{60b2914df394800688c4e20f4eb34e117cd430df9954cf4d48574734507723f4 → c9ee9006ae6c0194a5d39a9f0cb275c52d74a71ea3f6dc2b4c1c7bd89f48a2c0} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{6d8315e307eab11d3236935daf7267746cce6da3b51296e6999651ac97bda3a3 → cadc2daefcf238aab981fa56388381d3d5ab9c0686bb9dd8187035c9933dfcee} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{d7b744fcc95164d96d9f811a93e2e8a374887146eb762ef775f3d3c7f27abc8d → cbea5728b90f58ff047be6ec4f14eed9d63c7148f5db99b5f147d2f17b472317} +1 -1
- package/dist/phoenix-ui/bundle/blobs/d408a4fea71b656aa8a5f6b5c037815a6e4229df336629ebddf4b5c85ed82fac +46 -0
- package/dist/phoenix-ui/bundle/blobs/{6ff950a5729ad9ea480ddf8c1b489b1c84189bbf7d6034b3b5a98e7c11a28cec → d9ae0c782d8a77787561536c0d7bc3b61175d59303f3cb8c20796f85140c6984} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{1d53e2226465b1047faec7cda2e743e61540ea69e073a3a4057e8d86b277405f → e2932d63eb7f52a82960a19ba79bc800ef4f212164e098f96dee7a4326302f38} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{fa576f6655b235bdea535198647305b7a3855e810180cbdf5d4c246c03c7d190 → e381bcfec42ac541d574011460600cf0818aa0e3362e8c6d205b4157890bf821} +6 -7
- package/dist/phoenix-ui/bundle/blobs/{8fbce5b4859e6011afa83b1c07c4436589cd7181f9cb997538f4c27f196d0d34 → e415657d8725d9b60ece42cc18581da177c42fc47cb11e501db722a5f524ecf7} +6 -7
- package/dist/phoenix-ui/bundle/blobs/{546a8428a2d8628bb3496fadb8c36a6dd65a33464291f214ceb581828f37081b → e46d63e5f8a6ead1d44c8b6302a0c7247af8585b975ab5715518381777622ede} +6 -3
- package/dist/phoenix-ui/bundle/blobs/ee63b3f9b354d69443d05ea4a338af56546897335ace7533546e10be56ea2207 +46 -0
- package/dist/phoenix-ui/bundle/blobs/{c23617601e9c4d97b775c175a5ce1642c40459b157d0821609fe1d253b83ced8 → ef7d57633252f4604749447608850e299c277f7dd1a32776685df0724b1051c8} +6 -7
- package/dist/phoenix-ui/bundle/blobs/{0581c8428246f43c5374393878a29e38f2b1865df87e6f13f2309b8eae54e76f → f0652c6ce41e6949133360178f192ea4ee9f6129a018c7a8b6652870c2330392} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{cfac9eaf96481a8874391e5cecc6149abea1f1f19622f77f1ebb9e1876720e91 → f06c9d797ca2ac8c6a49d3dcd2e99d1b4df8bc9637a49c7e80f3161f49d06b1b} +4 -2
- package/dist/phoenix-ui/bundle/blobs/{d50780cb0a345051ae3fb12c5f8249a5dac9324d6a1963f04d03aaf769ffc27c → f077545caeb3ecb9f51a3f703a09736ca924869f4b4345c1b1ffbd9bf927a287} +6 -3
- package/dist/phoenix-ui/bundle/blobs/f781c5874bcd79ebe1b3b012275b9af7eae6c4867e9a16e29bb3d3ed3dc1940b +46 -0
- package/dist/phoenix-ui/bundle/blobs/fa10c0c926997387c89b7c1070e25b1b2b53ee891741e3c450a89ec6c6dcaf7d +46 -0
- package/dist/phoenix-ui/bundle/blobs/fb1a36ab7116b0c6709b89720cdded29d80982114c2f87cad614e01e126270dd +46 -0
- package/dist/phoenix-ui/bundle/blobs/fbd3214fc12ba70d9c69a995742ba73dc5365823af63afdc93c0c8a8f0c484af +46 -0
- package/dist/phoenix-ui/bundle/blobs/{77682e9d63b484f94a699f2c0b393e4540797d311362c384a3d643aec11d6985 → fea19b8381ec10ff8ed1923a336332974bbb552227ed215e7ddaaf0ec0112c1d} +1 -1
- package/dist/phoenix-ui/bundle/manifest.json +126 -126
- package/docs/phoenix-diagram.md +173 -0
- package/docs/phoenix-ui.md +40 -12
- package/package.json +14 -10
- package/skills/agi-mode/SKILL.md +3 -1
- package/skills/agi-mode/assets/sdlc/event.md +4 -5
- package/skills/agi-mode/assets/sdlc/object-status.md +1 -1
- package/skills/agi-mode/assets/sdlc/protocol.md +4 -2
- package/skills/agi-mode/evals/scenarios.md +108 -3
- package/skills/agi-mode/playbooks/authoring-a-skill.md +13 -2
- package/skills/agi-mode/playbooks/eval.md +19 -3
- package/skills/agi-mode/playbooks/hillclimb.md +4 -2
- package/skills/agi-mode/playbooks/reflection.md +1 -1
- package/skills/agi-mode/playbooks/sdlc.md +10 -6
- package/skills/agi-mode/playbooks/what-next.md +6 -2
- package/skills/agi-mode/references/eval-protocol.md +13 -4
- package/skills/agi-mode/references/interface-design.md +1 -0
- package/skills/agi-mode/references/remote-evolution.md +178 -0
- package/skills/agi-mode/references/skill-evolution.md +2 -0
- package/skills/agi-mode/scripts/evolution/compare.py +569 -0
- package/skills/agi-mode/scripts/evolution/evolution.py +2886 -0
- package/skills/agi-mode/scripts/evolution/examples/public-smoke.json +128 -0
- package/skills/agi-mode/scripts/evolution/examples/quality-calibration.json +128 -0
- package/skills/agi-mode/scripts/evolution/examples/quality-rubric.json +133 -0
- package/skills/agi-mode/scripts/evolution/protocol.py +1586 -0
- package/skills/agi-mode/scripts/evolution/pyproject.toml +16 -0
- package/skills/agi-mode/scripts/evolution/quality.py +689 -0
- package/skills/agi-mode/scripts/evolution/remote.py +2303 -0
- package/skills/agi-mode/scripts/evolution/tests/support.py +201 -0
- package/skills/agi-mode/scripts/evolution/tests/test_apply.py +643 -0
- package/skills/agi-mode/scripts/evolution/tests/test_bounded_exploration.py +236 -0
- package/skills/agi-mode/scripts/evolution/tests/test_bundles.py +414 -0
- package/skills/agi-mode/scripts/evolution/tests/test_calibration.py +460 -0
- package/skills/agi-mode/scripts/evolution/tests/test_compare.py +377 -0
- package/skills/agi-mode/scripts/evolution/tests/test_protocol.py +357 -0
- package/skills/agi-mode/scripts/evolution/tests/test_quality.py +647 -0
- package/skills/agi-mode/scripts/evolution/tests/test_remote.py +857 -0
- package/skills/agi-mode/scripts/evolution/tests/test_search.py +1109 -0
- package/skills/agi-mode/scripts/evolution/tests/test_typesafe.py +624 -0
- package/skills/agi-mode/scripts/evolution/tests/test_verifier_context.py +132 -0
- package/skills/agi-mode/scripts/evolution/typesafe_worker.py +145 -0
- package/skills/agi-mode/scripts/evolution/uv.lock +2548 -0
- package/skills/apply-code-review/SKILL.md +1 -0
- package/skills/apply-code-review/agents/openai.yaml +2 -0
- package/skills/apply-doc-review/SKILL.md +1 -0
- package/skills/apply-doc-review/agents/openai.yaml +2 -0
- package/skills/apply-ui-review/SKILL.md +1 -0
- package/skills/apply-ui-review/agents/openai.yaml +2 -0
- package/skills/autoresearch/SKILL.md +1 -0
- package/skills/clean-artifacts/SKILL.md +52 -0
- package/skills/clean-artifacts/agents/openai.yaml +4 -0
- package/skills/clean-artifacts/evals/scenarios.md +13 -0
- package/skills/clean-artifacts/references/history-cleanup.md +41 -0
- package/skills/crd/SKILL.md +100 -65
- package/skills/crd/assets/cr-template.md +15 -0
- package/skills/crd-respond/SKILL.md +17 -5
- package/skills/crd-respond/agents/openai.yaml +2 -2
- package/skills/crd-respond/assets/response-template.md +7 -0
- package/skills/crd-respond/evals/scenarios.md +7 -0
- package/skills/create-verification-skill/SKILL.md +1 -0
- package/skills/debugging/SKILL.md +1 -0
- package/skills/design-md/SKILL.md +1 -0
- package/skills/design-reference/SKILL.md +6 -2
- package/skills/design-reference/evals/scenarios.md +4 -0
- package/skills/dev-plan/SKILL.md +11 -6
- package/skills/dev-plan/references/execution-workflow.md +1 -1
- package/skills/dev-plan/references/plan-skeleton.md +234 -69
- package/skills/dev-plan/scripts/check_plan.py +1 -1
- package/skills/documentation-writer/SKILL.md +19 -14
- package/skills/documentation-writer/references/architecture.md +6 -2
- package/skills/documentation-writer/references/user-manual.md +2 -2
- package/skills/elintp/SKILL.md +12 -6
- package/skills/experience-capture/SKILL.md +1 -0
- package/skills/gdpr-compliant/SKILL.md +1 -0
- package/skills/kpi-dashboard-design/SKILL.md +1 -0
- package/skills/landing-page-conversion-audit/SKILL.md +1 -0
- package/skills/mcp-release-qa/SKILL.md +2 -1
- package/skills/meeting-minutes/SKILL.md +1 -0
- package/skills/optimize-agents-md/SKILL.md +128 -0
- package/skills/optimize-agents-md/assets/coding-principles.md +118 -0
- package/skills/phoenix-diagram/ENGINE.json +39 -0
- package/skills/phoenix-diagram/SKILL.md +109 -0
- package/skills/phoenix-diagram/examples/legacy.agent-tool-call.workflow.json +94 -0
- package/skills/phoenix-diagram/examples/legacy.async-job-roundtrip.sequence.json +61 -0
- package/skills/phoenix-diagram/examples/legacy.deployment-release.lifecycle.json +49 -0
- package/skills/phoenix-diagram/examples/legacy.product-analytics.dataflow.json +76 -0
- package/skills/{archify/test/fixtures/v1-baseline/web-app.architecture.json → phoenix-diagram/examples/legacy.web-app.architecture.json} +16 -11
- package/skills/phoenix-diagram/examples/minimal.architecture.json +11 -0
- package/skills/phoenix-diagram/examples/minimal.class.json +23 -0
- package/skills/phoenix-diagram/examples/minimal.dataflow.json +11 -0
- package/skills/phoenix-diagram/examples/minimal.erd.json +25 -0
- package/skills/phoenix-diagram/examples/minimal.lifecycle.json +11 -0
- package/skills/phoenix-diagram/examples/minimal.sequence.json +13 -0
- package/skills/phoenix-diagram/examples/minimal.timeline.json +15 -0
- package/skills/phoenix-diagram/examples/minimal.tree.json +13 -0
- package/skills/phoenix-diagram/examples/minimal.waterfall.json +12 -0
- package/skills/phoenix-diagram/examples/minimal.workflow.json +12 -0
- package/skills/phoenix-diagram/references/architecture-compare.md +111 -0
- package/skills/phoenix-diagram/references/authoring-defaults.md +42 -0
- package/skills/phoenix-diagram/references/brand-marks.md +52 -0
- package/skills/phoenix-diagram/references/compatibility.md +22 -0
- package/skills/phoenix-diagram/references/delivery-contract.md +127 -0
- package/skills/phoenix-diagram/references/extending-types.md +14 -0
- package/skills/phoenix-diagram/references/migration.md +57 -0
- package/skills/phoenix-diagram/references/preview.md +45 -0
- package/skills/phoenix-diagram/references/repository-authoring.md +29 -0
- package/skills/phoenix-diagram/references/viewer-runtime.md +27 -0
- package/skills/phoenix-diagram/schemas/README.md +23 -0
- package/skills/phoenix-diagram/schemas/architecture.schema.json +329 -0
- package/skills/phoenix-diagram/schemas/class.schema.json +348 -0
- package/skills/phoenix-diagram/schemas/common.schema.json +358 -0
- package/skills/{archify/schemas/lifecycle.schema.json → phoenix-diagram/schemas/dataflow.schema.json} +63 -58
- package/skills/phoenix-diagram/schemas/erd.schema.json +384 -0
- package/skills/phoenix-diagram/schemas/lifecycle.schema.json +202 -0
- package/skills/phoenix-diagram/schemas/sequence.schema.json +254 -0
- package/skills/phoenix-diagram/schemas/timeline.schema.json +170 -0
- package/skills/phoenix-diagram/schemas/tree.schema.json +144 -0
- package/skills/phoenix-diagram/schemas/waterfall.schema.json +150 -0
- package/skills/phoenix-diagram/schemas/workflow.schema.json +460 -0
- package/skills/phoenix-diagram/scripts/phoenix-bootstrap.cjs +589 -0
- package/skills/phoenix-diagram/scripts/phoenix-diagram +6 -0
- package/skills/phoenix-diagram/scripts/phoenix-launcher.cjs +10 -0
- package/skills/phoenix-ui/GENERATED.json +255 -240
- package/skills/phoenix-ui/SKILL.md +7 -4
- package/skills/phoenix-ui/evals/scenarios.md +8 -1
- package/skills/phoenix-ui/reference/craft-floor.md +3 -1
- package/skills/phoenix-ui/reference/critique.md +6 -14
- package/skills/phoenix-ui/reference/init.md +1 -1
- package/skills/phoenix-ui/reference/live.md +1 -1
- package/skills/phoenix-ui/reference/operate.md +15 -0
- package/skills/phoenix-ui/scripts/ENGINE.json +17 -17
- package/skills/phoenix-ui/scripts/phoenix-bootstrap.cjs +0 -4
- package/skills/portal-app-exchange/SKILL.md +1 -0
- package/skills/portal-dev-setup/SKILL.md +71 -12
- package/skills/portal-dev-setup/scripts/onebox.sh +69 -6
- package/skills/portal-external-app/SKILL.md +55 -16
- package/skills/portal-external-app/references/config-placement.md +108 -2
- package/skills/portal-external-app/references/registration-and-onebox.md +56 -2
- package/skills/portal-logging/SKILL.md +1 -0
- package/skills/portal-micro-app/SKILL.md +2 -1
- package/skills/portal-micro-app/references/sdk-reference.md +3 -1
- package/skills/prd/SKILL.md +238 -159
- package/skills/prd/evals/scenarios.md +13 -0
- package/skills/prd/references/prd-skeleton.md +14 -4
- package/skills/react/SKILL.md +1 -0
- package/skills/resolve-blocked/SKILL.md +46 -19
- package/skills/resolve-blocked/agents/openai.yaml +2 -2
- package/skills/resolve-blocked/evals/scenarios.md +22 -0
- package/skills/resolve-blocked/references/decisions-contract.md +7 -4
- package/skills/review-code/SKILL.md +308 -46
- package/skills/review-code/agents/openai.yaml +2 -0
- package/skills/review-dev-plan/SKILL.md +88 -33
- package/skills/review-dev-plan/agents/openai.yaml +2 -0
- package/skills/review-dev-plan/references/report-contract.md +53 -19
- package/skills/review-dev-plan/references/review-lenses.md +2 -1
- package/skills/review-prd/SKILL.md +90 -34
- package/skills/review-prd/agents/openai.yaml +2 -0
- package/skills/review-prd/references/report-contract.md +54 -18
- package/skills/review-prd-dev-gaps/SKILL.md +1 -0
- package/skills/review-prd-dev-gaps/agents/openai.yaml +2 -0
- package/skills/review-ui/SKILL.md +369 -71
- package/skills/review-ui/agents/openai.yaml +2 -0
- package/skills/review-ui/evals/scenarios.md +2 -0
- package/skills/rust/SKILL.md +76 -84
- package/skills/rust/references/api-design.md +97 -0
- package/skills/rust/references/{chapter_10.md → async-tokio.md} +42 -18
- package/skills/rust/references/behavioral-patterns.md +49 -0
- package/skills/rust/references/bevy.md +95 -0
- package/skills/rust/references/{chapter_02.md → clippy-and-linting.md} +26 -15
- package/skills/rust/references/{chapter_01.md → coding-idioms.md} +58 -7
- package/skills/rust/references/crates-and-dependencies.md +66 -0
- package/skills/rust/references/{chapter_08.md → documentation.md} +30 -3
- package/skills/rust/references/{chapter_04.md → error-handling.md} +32 -6
- package/skills/rust/references/{chapter_06.md → generics-and-dispatch.md} +28 -11
- package/skills/rust/references/macros.md +45 -0
- package/skills/rust/references/{chapter_03.md → performance.md} +25 -2
- package/skills/rust/references/{chapter_09.md → pointers-and-ownership.md} +37 -17
- package/skills/rust/references/{chapter_05.md → testing.md} +18 -2
- package/skills/rust/references/{chapter_07.md → type-state.md} +5 -1
- package/skills/rust/references/unsafe-and-ffi.md +56 -0
- package/skills/rust-port/SKILL.md +144 -0
- package/skills/rust-review/SKILL.md +177 -0
- package/skills/security-audit/SKILL.md +1 -0
- package/skills/spec-human-decision/SKILL.md +1 -0
- package/skills/sql-optimization/SKILL.md +1 -0
- package/skills/story-points/SKILL.md +1 -0
- package/skills/swarm/SKILL.md +1 -0
- package/skills/test-plan/SKILL.md +1 -0
- package/skills/ui-loop/SKILL.md +39 -0
- package/skills/ui-loop/agents/openai.yaml +3 -0
- package/skills/ui-pattern-research/SKILL.md +1 -0
- package/skills/use-llm-gateway/SKILL.md +58 -0
- package/skills/use-llm-gateway/agents/openai.yaml +4 -0
- package/skills/use-llm-gateway/references/api.md +129 -0
- package/skills/use-llm-gateway/references/recovery.md +86 -0
- package/skills/use-prompt-dsl/SKILL.md +165 -0
- package/skills/use-prompt-dsl/references/examples.md +726 -0
- package/skills/use-prompt-dsl/references/language.md +938 -0
- package/skills/use-rustify-docs/SKILL.md +60 -0
- package/skills/use-rustify-docs/agents/openai.yaml +4 -0
- package/skills/use-rustify-docs/references/rustify-docs.md +138 -0
- package/skills/use-task-gateway/SKILL.md +60 -0
- package/skills/use-task-gateway/agents/openai.yaml +3 -0
- package/skills/use-task-gateway/references/authentication.md +75 -0
- package/skills/use-task-gateway/references/task-api.md +121 -0
- package/skills/use-task-gateway/references/workers.md +85 -0
- package/skills/use-task-gateway/references/workflow-actions.md +66 -0
- package/skills/use-workflow-service/SKILL.md +57 -0
- package/skills/use-workflow-service/agents/openai.yaml +3 -0
- package/skills/use-workflow-service/references/action-provider.md +84 -0
- package/skills/use-workflow-service/references/authentication.md +76 -0
- package/skills/use-workflow-service/references/authoring.md +62 -0
- package/skills/use-workflow-service/references/mcp.md +47 -0
- package/skills/use-workflow-service/references/open-api.md +88 -0
- package/skills/use-workflow-service/references/orchestration-choice.md +63 -0
- package/skills/working-with-mbx/SKILL.md +1 -0
- package/skills/working-with-mise/SKILL.md +1 -0
- package/skills/xgent-app-release/SKILL.md +114 -16
- package/skills/xgent-app-release/references/build-and-package.md +2 -1
- package/skills/xgent-app-release/references/publish-api.md +6 -1
- package/skills/xgent-app-release/references/troubleshooting.md +2 -1
- package/skills/xgent-app-release/references/verify-preflight.mjs +21 -1
- package/skills/xgent-app-release/scripts/preflight.mjs +42 -3
- package/skills/xgent-image-push/SKILL.md +1 -0
- package/skills/xgent-init/SKILL.md +1 -0
- package/docs/claude-context-goal-guard.md +0 -124
- package/docs/codex-context-goal-guard.md +0 -109
- package/hooks/claude/context-goal-guard.js +0 -139
- package/hooks/claude/settings.example.json +0 -26
- package/hooks/codex/context-goal-guard.py +0 -189
- package/hooks/codex/hooks.example.json +0 -26
- package/skills/archify/SKILL.md +0 -137
- package/skills/archify/assets/template.html +0 -14937
- package/skills/archify/bin/archify.mjs +0 -2139
- package/skills/archify/bin/open-artifact.mjs +0 -86
- package/skills/archify/bin/preview.mjs +0 -653
- package/skills/archify/bin/visual-check.mjs +0 -829
- package/skills/archify/brand-marks/README.md +0 -31
- package/skills/archify/brand-marks/catalog.json +0 -131
- package/skills/archify/delta/architecture-delta.mjs +0 -1232
- package/skills/archify/examples/agent-run.lifecycle.json +0 -60
- package/skills/archify/examples/brand-aware-delivery.architecture.json +0 -47
- package/skills/archify/examples/cache-miss-request.sequence.json +0 -82
- package/skills/archify/examples/checkout-platform.base.architecture.json +0 -31
- package/skills/archify/examples/checkout-platform.head.architecture.json +0 -31
- package/skills/archify/examples/dataflow-product-analytics.html +0 -15048
- package/skills/archify/examples/event-stream.dataflow.json +0 -57
- package/skills/archify/examples/incident-response.workflow.json +0 -64
- package/skills/archify/examples/lifecycle-agent-run.html +0 -14983
- package/skills/archify/examples/production-deployment.architecture.json +0 -71
- package/skills/archify/examples/release-delivery.workflow.json +0 -62
- package/skills/archify/examples/sequence-cache-miss-request.html +0 -15063
- package/skills/archify/examples/web-app-rendered.html +0 -15012
- package/skills/archify/examples/workflow-agent-tool-call-rendered.html +0 -15054
- package/skills/archify/migrations/workflow-v2.mjs +0 -279
- package/skills/archify/package-lock.json +0 -149
- package/skills/archify/package.json +0 -39
- package/skills/archify/recipes/scenarios.mjs +0 -391
- package/skills/archify/references/authoring-contract.md +0 -247
- package/skills/archify/references/brand-marks.md +0 -65
- package/skills/archify/references/delivery-contract.md +0 -138
- package/skills/archify/references/viewer-runtime.md +0 -45
- package/skills/archify/renderers/architecture/grid.mjs +0 -62
- package/skills/archify/renderers/architecture/render-architecture.mjs +0 -1078
- package/skills/archify/renderers/dataflow/README.md +0 -104
- package/skills/archify/renderers/dataflow/render-dataflow.mjs +0 -483
- package/skills/archify/renderers/lifecycle/README.md +0 -115
- package/skills/archify/renderers/lifecycle/render-lifecycle.mjs +0 -561
- package/skills/archify/renderers/sequence/README.md +0 -114
- package/skills/archify/renderers/sequence/render-sequence.mjs +0 -464
- package/skills/archify/renderers/shared/brand-marks.mjs +0 -563
- package/skills/archify/renderers/shared/cli.mjs +0 -218
- package/skills/archify/renderers/shared/desktop-readability.mjs +0 -26
- package/skills/archify/renderers/shared/diagnostics.mjs +0 -160
- package/skills/archify/renderers/shared/engineering-profiles.mjs +0 -157
- package/skills/archify/renderers/shared/generated-brand-marks.mjs +0 -2003
- package/skills/archify/renderers/shared/generated-validators.mjs +0 -13
- package/skills/archify/renderers/shared/geometry.mjs +0 -1423
- package/skills/archify/renderers/shared/i18n.mjs +0 -595
- package/skills/archify/renderers/shared/layout-report.mjs +0 -40
- package/skills/archify/renderers/shared/legend.mjs +0 -217
- package/skills/archify/renderers/shared/output-path.mjs +0 -340
- package/skills/archify/renderers/shared/repository-evidence.mjs +0 -239
- package/skills/archify/renderers/shared/repository-location.mjs +0 -58
- package/skills/archify/renderers/shared/text-fit.mjs +0 -49
- package/skills/archify/renderers/shared/utils.mjs +0 -232
- package/skills/archify/renderers/shared/validator.mjs +0 -86
- package/skills/archify/renderers/workflow/README.md +0 -223
- package/skills/archify/renderers/workflow/render-workflow.mjs +0 -35
- package/skills/archify/renderers/workflow/workflow-compiler.mjs +0 -4400
- package/skills/archify/renderers/workflow/workflow-migration-geometry.mjs +0 -144
- package/skills/archify/schemas/README.md +0 -211
- package/skills/archify/schemas/architecture.schema.json +0 -178
- package/skills/archify/schemas/common.schema.json +0 -115
- package/skills/archify/scripts/check-render-output.mjs +0 -916
- package/skills/archify/scripts/check-update.mjs +0 -1667
- package/skills/archify/scripts/generate-brand-marks.mjs +0 -141
- package/skills/archify/scripts/generate-validators.mjs +0 -66
- package/skills/archify/scripts/render-examples.mjs +0 -26
- package/skills/archify/scripts/update-contract.mjs +0 -182
- package/skills/archify/skill-release.json +0 -10
- package/skills/archify/test/adaptive-reader-layout.test.mjs +0 -86
- package/skills/archify/test/animation.test.mjs +0 -179
- package/skills/archify/test/architecture-compare-recovery.test.mjs +0 -157
- package/skills/archify/test/architecture-delta-markers.test.mjs +0 -137
- package/skills/archify/test/architecture-delta.test.mjs +0 -705
- package/skills/archify/test/artifact-receipt-flush.test.mjs +0 -126
- package/skills/archify/test/authored-reachability.test.mjs +0 -95
- package/skills/archify/test/authoring-safety-contract.test.mjs +0 -54
- package/skills/archify/test/automatic-port-spread.test.mjs +0 -376
- package/skills/archify/test/base-input-compatibility.test.mjs +0 -42
- package/skills/archify/test/brand-marks.test.mjs +0 -678
- package/skills/archify/test/chapter-delta-preview.test.mjs +0 -157
- package/skills/archify/test/chapter-handoff.test.mjs +0 -97
- package/skills/archify/test/chapter-rail.test.mjs +0 -86
- package/skills/archify/test/checkout-line-endings.test.mjs +0 -72
- package/skills/archify/test/ci-scope.test.mjs +0 -59
- package/skills/archify/test/clean-skill-staging.test.mjs +0 -440
- package/skills/archify/test/cli-output-types.test.mjs +0 -201
- package/skills/archify/test/cli.test.mjs +0 -986
- package/skills/archify/test/community-proof-intake.test.mjs +0 -125
- package/skills/archify/test/cursor-onboarding.test.mjs +0 -74
- package/skills/archify/test/degraded.test.mjs +0 -161
- package/skills/archify/test/delivery-contract.test.mjs +0 -52
- package/skills/archify/test/desktop-reader-browser.test.mjs +0 -80
- package/skills/archify/test/diagram-guide.test.mjs +0 -92
- package/skills/archify/test/engineering-profile.test.mjs +0 -209
- package/skills/archify/test/export-browser.test.mjs +0 -305
- package/skills/archify/test/export-cleanup-browser.test.mjs +0 -294
- package/skills/archify/test/finder-browser.test.mjs +0 -274
- package/skills/archify/test/finder.test.mjs +0 -104
- package/skills/archify/test/fixtures/automatic-routing-node-border-clearance.workflow.json +0 -40
- package/skills/archify/test/fixtures/fail-migration-cleanup.mjs +0 -17
- package/skills/archify/test/fixtures/issue-126/custom-widths.workflow.json +0 -18
- package/skills/archify/test/fixtures/issue-126/explicit-route.workflow.json +0 -28
- package/skills/archify/test/fixtures/issue-126/explicit-viewbox.workflow.json +0 -19
- package/skills/archify/test/fixtures/issue-126/labels.workflow.json +0 -18
- package/skills/archify/test/fixtures/v1-baseline/agent-run.lifecycle.json +0 -64
- package/skills/archify/test/fixtures/v1-baseline/agent-tool-call.workflow.json +0 -88
- package/skills/archify/test/fixtures/v1-baseline/cache-miss-request.sequence.json +0 -75
- package/skills/archify/test/fixtures/v1-baseline/event-stream.dataflow.json +0 -57
- package/skills/archify/test/fixtures/v1-baseline/product-analytics.dataflow.json +0 -70
- package/skills/archify/test/fixtures/v1-baseline/production-deployment.architecture.json +0 -71
- package/skills/archify/test/fixtures/v1-workflow-700x400.workflow.json +0 -22
- package/skills/archify/test/fixtures/v1-workflow-explicit-coordinates.workflow.json +0 -47
- package/skills/archify/test/focus-browser.test.mjs +0 -226
- package/skills/archify/test/gallery.test.mjs +0 -130
- package/skills/archify/test/generate-validators.test.mjs +0 -59
- package/skills/archify/test/generate-viewer.test.mjs +0 -165
- package/skills/archify/test/generated-artifact-xml.test.mjs +0 -88
- package/skills/archify/test/geometry.test.mjs +0 -739
- package/skills/archify/test/golden.mjs +0 -207
- package/skills/archify/test/grid.test.mjs +0 -47
- package/skills/archify/test/guide-page.test.mjs +0 -85
- package/skills/archify/test/guide.test.mjs +0 -81
- package/skills/archify/test/guided-views-browser.test.mjs +0 -460
- package/skills/archify/test/guided-views.test.mjs +0 -144
- package/skills/archify/test/helpers/desktop-browser.mjs +0 -48
- package/skills/archify/test/helpers/offline-fonts.mjs +0 -76
- package/skills/archify/test/helpers/viewer-click.mjs +0 -72
- package/skills/archify/test/helpers/xml.mjs +0 -37
- package/skills/archify/test/i18n.test.mjs +0 -422
- package/skills/archify/test/intent-trace-browser.test.mjs +0 -284
- package/skills/archify/test/intent-trace.test.mjs +0 -111
- package/skills/archify/test/landing.test.mjs +0 -97
- package/skills/archify/test/layout-rules.test.mjs +0 -1498
- package/skills/archify/test/legend-contract.test.mjs +0 -404
- package/skills/archify/test/motion-governor-browser.test.mjs +0 -342
- package/skills/archify/test/motion-governor.test.mjs +0 -111
- package/skills/archify/test/offline-font-browser.test.mjs +0 -210
- package/skills/archify/test/offline-self-containment.test.mjs +0 -80
- package/skills/archify/test/open-artifact.test.mjs +0 -118
- package/skills/archify/test/ordinary-model-floor.test.mjs +0 -1052
- package/skills/archify/test/output-path.test.mjs +0 -587
- package/skills/archify/test/presentation.test.mjs +0 -71
- package/skills/archify/test/preset-tryon.test.mjs +0 -113
- package/skills/archify/test/preview-contract.test.mjs +0 -40
- package/skills/archify/test/preview.test.mjs +0 -530
- package/skills/archify/test/proof-aperture.test.mjs +0 -78
- package/skills/archify/test/reach-share-card.test.mjs +0 -149
- package/skills/archify/test/reader-layout-browser.test.mjs +0 -320
- package/skills/archify/test/readme-showcase.test.mjs +0 -319
- package/skills/archify/test/real-repository-proof.test.mjs +0 -209
- package/skills/archify/test/relationship-direct-explorer.test.mjs +0 -115
- package/skills/archify/test/relationship-lens.test.mjs +0 -128
- package/skills/archify/test/relationship-permalink.test.mjs +0 -130
- package/skills/archify/test/relationship-pulse.test.mjs +0 -122
- package/skills/archify/test/release-identity.test.mjs +0 -476
- package/skills/archify/test/release-package-gates.test.mjs +0 -750
- package/skills/archify/test/render-output-checks.test.mjs +0 -588
- package/skills/archify/test/renderer-diagnostic-boundary.test.mjs +0 -107
- package/skills/archify/test/repair-receipt.test.mjs +0 -181
- package/skills/archify/test/repository-evidence-replacement.test.mjs +0 -136
- package/skills/archify/test/repository-evidence.test.mjs +0 -605
- package/skills/archify/test/repository-language-metadata.test.mjs +0 -67
- package/skills/archify/test/route-journey.test.mjs +0 -125
- package/skills/archify/test/route-probe-browser.test.mjs +0 -363
- package/skills/archify/test/route-probe.test.mjs +0 -114
- package/skills/archify/test/route-share-card.test.mjs +0 -163
- package/skills/archify/test/semantic-camera.test.mjs +0 -88
- package/skills/archify/test/semantic-flow.test.mjs +0 -90
- package/skills/archify/test/semantic-legend-gateway.test.mjs +0 -156
- package/skills/archify/test/semantic-lens-browser.test.mjs +0 -372
- package/skills/archify/test/semantic-lens.test.mjs +0 -103
- package/skills/archify/test/semantic-passport.test.mjs +0 -99
- package/skills/archify/test/semantic-radar.test.mjs +0 -735
- package/skills/archify/test/semantic-zoom.test.mjs +0 -86
- package/skills/archify/test/sequence-column-fit.test.mjs +0 -137
- package/skills/archify/test/settled-flow.test.mjs +0 -97
- package/skills/archify/test/share-card-export.test.mjs +0 -132
- package/skills/archify/test/site-language-continuity.test.mjs +0 -569
- package/skills/archify/test/site-language-integration.mjs +0 -9
- package/skills/archify/test/skill-metadata.test.mjs +0 -84
- package/skills/archify/test/stable-update-manifest.test.mjs +0 -167
- package/skills/archify/test/start-page.test.mjs +0 -312
- package/skills/archify/test/story-beat-navigator.test.mjs +0 -103
- package/skills/archify/test/story-carrier.test.mjs +0 -90
- package/skills/archify/test/story-director-strip.test.mjs +0 -91
- package/skills/archify/test/story-follow-camera.test.mjs +0 -103
- package/skills/archify/test/story-horizon.test.mjs +0 -91
- package/skills/archify/test/story-moment-link.test.mjs +0 -93
- package/skills/archify/test/story-shelf.test.mjs +0 -84
- package/skills/archify/test/story-trail.test.mjs +0 -81
- package/skills/archify/test/toolbar-polish.test.mjs +0 -57
- package/skills/archify/test/update-contract.test.mjs +0 -133
- package/skills/archify/test/update-notifier.test.mjs +0 -3317
- package/skills/archify/test/v1-compatibility.test.mjs +0 -329
- package/skills/archify/test/vertical-edge.test.mjs +0 -68
- package/skills/archify/test/viewer-camera-browser.test.mjs +0 -395
- package/skills/archify/test/viewer-chrome-layout.test.mjs +0 -1104
- package/skills/archify/test/viewer-identifiers-browser.test.mjs +0 -135
- package/skills/archify/test/visual-check.test.mjs +0 -400
- package/skills/archify/test/webm-artifact.smoke.mjs +0 -1855
- package/skills/archify/test/workflow-compiler-hard-contract.test.mjs +0 -2136
- package/skills/archify/test/workflow-compiler.test.mjs +0 -1163
- package/skills/archify/test/workflow-migration.test.mjs +0 -620
- package/skills/archify/test/workflow-semantic-contract.test.mjs +0 -131
- /package/{skills/archify/THIRD_PARTY_NOTICES.md → dist/phoenix-diagram/THIRD-PARTY-LICENSES/0b7fb59365dc21c93b0f62526d74ee913aeec9ae532c112bc76afa7edcd56e14.txt} +0 -0
- /package/{skills/archify/LICENSE → dist/phoenix-diagram/THIRD-PARTY-LICENSES/b799ab081703e7821ae5096d2c1abdf14bbdc75e8ea1c4045998c36ed6db9706.txt} +0 -0
- /package/{skills/archify/assets/JetBrainsMono-OFL.txt → dist/phoenix-diagram/THIRD-PARTY-LICENSES/c1ab7c666206842a02b35b30770dac0d7a10156ed401c9defc3f02a754d89e90.txt} +0 -0
- /package/{skills/archify/examples/agent-tool-call.workflow.json → dist/phoenix-diagram/bundle/examples/legacy.agent-tool-call.workflow.json} +0 -0
- /package/{skills/archify/examples/async-job-roundtrip.sequence.json → dist/phoenix-diagram/bundle/examples/legacy.async-job-roundtrip.sequence.json} +0 -0
- /package/{skills/archify/examples/deployment-release.lifecycle.json → dist/phoenix-diagram/bundle/examples/legacy.deployment-release.lifecycle.json} +0 -0
- /package/{skills/archify/examples/product-analytics.dataflow.json → dist/phoenix-diagram/bundle/examples/legacy.product-analytics.dataflow.json} +0 -0
- /package/{skills/archify/examples/web-app.architecture.json → dist/phoenix-diagram/bundle/examples/legacy.web-app.architecture.json} +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: portal-external-app
|
|
3
3
|
description: '用于把独立仓库、以 Docker 镜像交付的外部服务接入 XGENT 门户或评审交付物。覆盖 manifest、注册、鉴权、成员客户端与终端用户身份、/svc 路由、健康检查与一盒联调。'
|
|
4
|
+
when_to_use: "用户会说「把我们服务接进门户」「manifest 怎么填」「/svc 路由不通」时。"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# portal-external-app · 外部镜像服务类应用接入
|
|
@@ -10,6 +11,8 @@ description: '用于把独立仓库、以 Docker 镜像交付的外部服务接
|
|
|
10
11
|
|
|
11
12
|
`/apps/<key>/` 与 `/svc/<key>/` 是线上 URL;本文的 `references/` 和 `scripts/` 相对于本 skill 目录。
|
|
12
13
|
|
|
14
|
+
品牌图:在开发者应用的 App 概览上传 SVG / PNG / WebP(≤2 MiB),取得门户平台存储的 `/api/assets/app-logo/<listingKey>/<sha256>.<ext>` URL,回填源清单 `logoUrl` 并递增版本。只能引用本 App 这一路径;外链、data URI、`/apps/<key>/` 图、查询串与其他 App key 均拒。`icon` 仍填命名字形,导航不显示品牌图;品牌图原比例原色展示,坏图回退字形。需要已配置的平台自用存储池与显式 `developer:action:branding.manage` + 维护者资格,租户 App 编辑者不能改此字段。
|
|
15
|
+
|
|
13
16
|
## 按任务读参考
|
|
14
17
|
|
|
15
18
|
| 任务 | 读 |
|
|
@@ -25,7 +28,7 @@ description: '用于把独立仓库、以 Docker 镜像交付的外部服务接
|
|
|
25
28
|
| 用户以 CLI、MCP、个人自动化调用 App,或接入门户多服务用户密钥与服务发现 | [references/cli-user-keys.md](references/cli-user-keys.md):受审 `cliAccess` 声明、标准绑定与通用目录;不改门户业务代码 |
|
|
26
29
|
| 为外部服务写/审对接契约文档 | [references/contract-doc-template.md](references/contract-doc-template.md) |
|
|
27
30
|
| 有「每租户最多几个 X」的配额诉求(选模型、数值谁配、已用怎么来) | [references/quota-and-seats.md](references/quota-and-seats.md) |
|
|
28
|
-
| 一个配置项该放哪(环境变量 / 平台级或租户级管理页 / 应用内设置 / 用户偏好),`requiredEnvNotes` 与 `
|
|
31
|
+
| 一个配置项该放哪(环境变量 / 平台级或租户级管理页 / 应用内设置 / 用户偏好),`requiredEnvNotes`、`adminPages` 与 service `tenantConfig` 怎么写 | [references/config-placement.md](references/config-placement.md) |
|
|
29
32
|
|
|
30
33
|
## 先判形态(决定后面走哪条线)
|
|
31
34
|
|
|
@@ -46,7 +49,7 @@ description: '用于把独立仓库、以 Docker 镜像交付的外部服务接
|
|
|
46
49
|
3. env 契约表:**镜像实际读取的变量名**(镜像自有前缀与门户契约别名的映射必须写清;有的镜像不读裸 `PORT`);
|
|
47
50
|
4. **迁移入口**:迁移文件在镜像里、二进制上有一个迁移 argv(见下节)。「迁移脚本留在自己 repo 里」= 不合格;
|
|
48
51
|
5. 运维口径:是否需每租户 bootstrap(需要则 `tenants.id` 必须 = 门户租户 UUID);**`/health` 必须通过 [健康契约验收](references/health-contract.md)**,按平台同一判据验证正常与依赖故障;信封响应不能只检查 HTTP 200;
|
|
49
|
-
6.
|
|
52
|
+
6. **是否复用平台能力**:文件按下文「文件与对象存储」选择 Files 或平台 `objectStorage`,后者须明确 App 自管的租户隔离、计量与清理;通知、审计、定时任务、配额仍按下面两张表复用平台面;
|
|
50
53
|
7. **租户自助凭证**:这个服务有没有「租户拿自己的程序直接调你」的场景(日志/指标摄取、批量导入、CI 回写)?有就检查那条 scope 在不在 manifest 的 **`scopes`** 里 —— 不在的话租户面开不出凭证,只能退回「找平台管理员代建」(见 [integration-contract.md §3.1](references/integration-contract.md));
|
|
51
54
|
8. **配额诉求**:有没有「每租户能建多少」这类上限?有就走平台套餐(见 [references/quota-and-seats.md](references/quota-and-seats.md)),**不接受对方自建**;
|
|
52
55
|
角色本身该由对方在自己的 `app.manifest.json` 里声明 `seatRoles`;`serviceScopes` 里出现 `seats.read` 仍是当场打回的信号,但对方可以在 `privilegedServiceScopes` 里**申请**它(带 reason,进「发布审核」逐条确认批准后授予);
|
|
@@ -71,6 +74,10 @@ description: '用于把独立仓库、以 Docker 镜像交付的外部服务接
|
|
|
71
74
|
|
|
72
75
|
## 一盒初始化与升级
|
|
73
76
|
|
|
77
|
+
宿主 skill 与镜像分别更新:先 `npx skills add XGENT-ai/skills` 更新 `portal-dev-setup`,
|
|
78
|
+
从实际安装目录核对 `onebox.sh` 的 SHA-256,再按发布说明的匹配镜像操作。
|
|
79
|
+
`requiredEnv[].generate` 的最低门户提交 / `APP_VERSION`、一盒 tag、公开 skill 提交和脚本摘要
|
|
80
|
+
目前均**未发布**;完整证据状态见 `portal-dev-setup` §6,不能默认当前 `latest` 已支持。
|
|
74
81
|
首次联调用 `portal-dev-setup` 的 `onebox.sh init` → `up`;已有一盒换版本用
|
|
75
82
|
`upgrade [--image <ref>]` → `up`;沿用 latest 先 `pull` 更新缓存,已加载的本地新镜像可离线升级。
|
|
76
83
|
不使用 `init --force` 代替升级。升级保留配置、generated/、backup/、
|
|
@@ -86,12 +93,14 @@ description: '用于把独立仓库、以 Docker 镜像交付的外部服务接
|
|
|
86
93
|
**发布提案**到达:平台管理员在 控制台 › 应用市场 › 接入新应用 按 key 签发 `xrel_` 令牌
|
|
87
94
|
(无行先建 draft 占位),对方 `publish --manifest … --dist … --image …` ⇒ 首次必进
|
|
88
95
|
「发布审核」队列 ⇒ 批准后更新清单、服务账号与已装租户,后端和网关分别交付。
|
|
89
|
-
|
|
96
|
+
SA / 交换密钥一次性回显给审批人;`requiredEnv[].generate` 声明的独立密钥永不回显。
|
|
97
|
+
平台运行配置由管理员维护,App 团队无需修改门户代码。
|
|
90
98
|
特权服务态 scope 经 manifest 的 `privilegedServiceScopes` 申请、逐项审批后授予;
|
|
91
99
|
用量指标经 manifest `usageMetrics` 声明(治理档)。批准不等于部署与网关已经生效,
|
|
92
100
|
交付判据见 [公开入口](references/public-entrypoints.md)。
|
|
93
101
|
- **后续版本**:对方 CI 自助(`xgent-app-release` skill)——无治理变更自动通过,
|
|
94
102
|
治理变更进「发布审核」等平台批准。
|
|
103
|
+
- **安装 scope 同步**:外部 listing 自动发布、重试、版本或品牌图同步保留现存安装 scopes,不自动增加新 scope;租户管理员须显式调用 `POST /api/admin/market/listings/:key/update` 取得当前获批 scopes(安装版本已相同也可调用)。新安装取得 listing scopes;门户内置定义同步仍 union。
|
|
95
104
|
- **scope 三规则**:平台基础 scope ∪ 自己命名空间(含连字符→下划线变体)∪ 已声明 `exchangeTargets` 的目标命名空间;越界 `VALIDATION_FAILED`。
|
|
96
105
|
- **secret 一致红线**:平台落库的服务账号 secret 与镜像 env 里的必须一致;漂移症状是自省 401 或「跨应用授权缺失」(实为 `SECRET_INVALID`),排查先 sha256 比对两侧。
|
|
97
106
|
|
|
@@ -139,8 +148,9 @@ job(deploy|redeploy)
|
|
|
139
148
|
「知会门户」变成流程内动作的那道门。**CR-3 之后它还是一道真闸**:批准前门户拿这张清单比对
|
|
140
149
|
`descriptor.env ∪ envFile` 的键集合(只看键在不在,不读值),缺了就拒绝生效
|
|
141
150
|
(`REQUIRED_ENV_MISSING`,提案留 pending);审批屏逐键标状态,非密钥可当场填。改名要写成
|
|
142
|
-
`{ key, renamedFrom }` 一条,门户会把旧键在 `descriptor.env`
|
|
143
|
-
|
|
151
|
+
`{ key, renamedFrom }` 一条,门户会把旧键在 `descriptor.env` 里的值搬过去。普通条目在
|
|
152
|
+
`envFile` 中的旧名仍判缺;带 `generate` 的条目可沿用可读文件中的旧名,App 必须兼容消费,
|
|
153
|
+
不改文件、不复制值、不生成新主键。旧键已由平台保管时拒绝改名。仍有一件它管不到:对方
|
|
144
154
|
**不写进 `requiredEnv`** 的静默改名依旧无门可拦 —— 症状是服务
|
|
145
155
|
换版后 `refusing to start`,而发布方那侧只看到成功。2026-08-19 知识库把 `XGENT_OPENAI_*`
|
|
146
156
|
整族改成 `XGENT_EMBED_*` 就是这么崩了几小时的;只改其中一个 key 更坏 —— 服务起得来,
|
|
@@ -151,13 +161,22 @@ manifest 的 `requiredEnv`**(改名走 `renamedFrom`),并把「本版新
|
|
|
151
161
|
里写清填什么、不确定时填什么,审批屏会贴在键名旁。放哪一层的完整判断见下文「配置放哪一层」。发布面本身
|
|
152
162
|
(令牌、tag 不可变、`--wait` / `--wait-review` / `status`)见 `xgent-app-release` skill。
|
|
153
163
|
|
|
154
|
-
###
|
|
164
|
+
### 值从哪来:键名约定与独立密钥生成
|
|
155
165
|
|
|
156
166
|
| 档 | 键 | 值从哪来 |
|
|
157
167
|
| --- | --- | --- |
|
|
158
168
|
| **平台注入** | `PORT` · `<PREFIX>_SERVER_PORT` · `PORTAL_INTROSPECT_URL` · `API_BASE_URL` · `PORTAL_BASE_URL` · `<PREFIX>_SA_CLIENT_ID` · `<PREFIX>_SA_CLIENT_SECRET` · `<PREFIX>_APP_SECRET`(声明了 `exchangeTargets` 时) | 平台换版时自己算并注入,没有人手填 |
|
|
159
|
-
| **自动供给** | 库连接串 · Redis 地址 ·
|
|
160
|
-
|
|
|
169
|
+
| **自动供给** | 库连接串 · Redis 地址 · 对象存储五键(每应用一桶)· Kafka 五键 | 批准时平台按登记的服务代建资源 / 取地址并注入 |
|
|
170
|
+
| **随机生成** | App 独立密钥,声明 `{ key, generate: { bytes: 32, encoding: "base64" } }` | 批准时生成、加密保管;换版复用,值永不回显 |
|
|
171
|
+
| **自定** | 其余**环境依赖**(第三方地址、第三方已有密钥…) | 平台管理员手填:非密钥进 `descriptor.env`,密钥进主机 `envFile` |
|
|
172
|
+
|
|
173
|
+
`generate` 仅收 `bytes`(16–64 整数)与 `encoding`(标准带填充 `base64` / 小写 `hex`)。
|
|
174
|
+
不可用于平台派生键或服务供给目标。套件共享后端里同名共享键只由一个成员 `generate`,其余成员以
|
|
175
|
+
字符串 `requiredEnv` 消费(先批生成者;两名生成者拒绝)。
|
|
176
|
+
已有主键或匹配保管值保留;规格冲突、来源冲突、不可读 `envFile` 均硬拦,不能填新值绕过。
|
|
177
|
+
`generate` 的增加、撤回、规格变化都需审批;已生成值不覆盖、不提供读取或轮换入口,丢失应恢复备份。
|
|
178
|
+
一盒新版 `add` 在共享的 `<一盒目录>/compose.env` 中首供并稳定复用,同名键共享同一值;主 App 与其他 App
|
|
179
|
+
均可能读到,适用于可信团队调试。生产则按 App、按 brand 隔离,不以一盒结果证明生产隔离。
|
|
161
180
|
|
|
162
181
|
业务参数不在这张表里:先给代码缺省值;要进清单就配 `requiredEnvNotes`(见上一节末尾与「配置放哪一层」)。
|
|
163
182
|
|
|
@@ -232,13 +251,15 @@ compose 网络** —— 一份在一盒里能跑的 descriptor,`env` 里写着
|
|
|
232
251
|
收交付物时逐项问「这个配置是哪一类」,完整判断表见 [references/config-placement.md](references/config-placement.md)。要点:
|
|
233
252
|
|
|
234
253
|
- **环境依赖**进 `requiredEnv`;**业务参数**先给代码缺省值,确需覆盖才进清单并配 `requiredEnvNotes`——审批人只懂环境。
|
|
235
|
-
- **全平台一份、要随时改** ⇒ 平台级管理页 `adminPages.platform`;**每租户不同** ⇒
|
|
236
|
-
|
|
254
|
+
- **全平台一份、要随时改** ⇒ 平台级管理页 `adminPages.platform`;**每租户不同** ⇒ 有前端的 App 用 `adminPages.tenant`,
|
|
255
|
+
无前端的 service 用 `tenantConfig` 声明受限 schema。门户分别嵌入 App 页面或渲染动态表单,**都零业务改码**(治理档,需审批)。
|
|
237
256
|
- **应用内业务设置** ⇒ 应用内设置页 + `aclManifest` 授权;**用户偏好** ⇒ App 自己按用户存。
|
|
238
257
|
|
|
239
|
-
**无前端的服务型 App
|
|
240
|
-
|
|
241
|
-
|
|
258
|
+
**无前端的服务型 App**:普通数字、静态选项和开关配置在 manifest 写 `tenantConfig: { label, path, scopes, schema }`。
|
|
259
|
+
门户通用签票 + 动态表单复用 App 的 GET/PUT policy 接口,不再按 App 增加 token 端点、config-api 或 Section。
|
|
260
|
+
配置 GET 返回 `{ policy, effective }`,保存时 Portal 重新 GET 最新 policy、只合并编辑字段后整份 PUT;App 仍负责最终校验。
|
|
261
|
+
复杂动态选项和跨字段交互可保留存量手写页,新 micro App 一律走 `adminPages`。完整契约见 references/config-placement.md;
|
|
262
|
+
其中「OmniParser:六项 `foreground` 后端接入清单」给出逐字段默认值、DTO 示例和后端验收项,供 OmniParser 直接按单实现。
|
|
242
263
|
|
|
243
264
|
## 先看平台有没有,别自建一套
|
|
244
265
|
|
|
@@ -288,8 +309,24 @@ compose 网络** —— 一份在一盒里能跑的 descriptor,`env` 里写着
|
|
|
288
309
|
⚠️ **连字符 listingKey ↔ 下划线 scope**:`omni-parser` 的 scope 是 `omni_parser.*`,
|
|
289
310
|
`llm-gateway` 的是 `llm_gateway.*`。两个命名空间,写混了是 `VALIDATION_FAILED`。
|
|
290
311
|
|
|
291
|
-
|
|
292
|
-
|
|
312
|
+
### 文件与对象存储:两条接入路径
|
|
313
|
+
|
|
314
|
+
| | Files 文件服务 | `objectStorage` 基础设施 |
|
|
315
|
+
| --- | --- | --- |
|
|
316
|
+
| 接入 | 调 `/svc/files`,使用获准的用户态或服务态令牌 | 清单声明 `requiredServices: [{"kind":"objectStorage","name":"main"}]`,后端用 S3 SDK 直连;`main` 换成目标环境已登记的服务名 |
|
|
317
|
+
| 桶与租户 | 托管模式使用租户池 `role=tenant`:多租户共用 bucket,默认按 `t/<tenantId>/` 前缀隔离 | 使用应用池 `role=app`:按 `listingKey` 每应用一个 bucket,该应用所有租户共用;租户安装时不另建桶 |
|
|
318
|
+
| 隔离与治理 | Files 按租户、空间与权限收口,提供文件配额、计量、预览和清理能力 | 平台不自动加租户前缀;App 自行校验租户、组织对象 key,并负责权限、计量和生命周期;不自动纳入 Files 治理 |
|
|
319
|
+
| 适用 | 用户/团队文件、需要平台文件治理的应用文件 | 自带 S3 存储引擎、索引快照或缓存等由 App 自管的底层对象 |
|
|
320
|
+
|
|
321
|
+
**Files 的「应用空间」是某个租户内的逻辑空间,不是应用专属 bucket。** 租户在 Files 中自配的
|
|
322
|
+
bucket 与凭据优先于托管池;存储位置由 Files 解析,调用 App 不取得租户池的 S3 凭据。
|
|
323
|
+
|
|
324
|
+
应用池当前注入的是**池级共用的数据面凭据**,不发 per-App / per-tenant 子凭据;每应用独立桶
|
|
325
|
+
不代表云侧已做跨 App 权限隔离。声明与五项 S3 环境变量见 `xgent-app-release` skill 的
|
|
326
|
+
「对象存储:应用池直供 S3 五键」。五键按整组供给,不需要管理员逐键取值。
|
|
327
|
+
|
|
328
|
+
应受平台文件治理的字节走 Files;App 自管底层对象可使用平台 `objectStorage`。以下用户态、
|
|
329
|
+
服务态与空间选择**仅适用于 Files**,按**这份字节归谁**选择:
|
|
293
330
|
|
|
294
331
|
| 这份字节归谁 | 姿态 | 落在哪 | 用户在文件管理里 |
|
|
295
332
|
| --- | --- | --- | --- |
|
|
@@ -314,7 +351,7 @@ compose 网络** —— 一份在一盒里能跑的 descriptor,`env` 里写着
|
|
|
314
351
|
- **审计**:不自建审计表/页,推 `POST /api/v1/audit`,租户在「设置 › 审计」一处看全。
|
|
315
352
|
- **通讯录**:不做「同步通讯录」到自己库,按需用选人组件挑。
|
|
316
353
|
- **配额/套餐**:见下一节。**计费**:平台级 Credit 服务,同样不自建。
|
|
317
|
-
-
|
|
354
|
+
- **租户级配置**:micro 用 `adminPages.tenant`,service 普通配置用 `tenantConfig`;都在租户 › 应用管理 › 配置,不再按 App 手写 AppForm Section。
|
|
318
355
|
- **AI 功能**:终端用户面**不出现模型选择器**,服务端按场景解析模型。
|
|
319
356
|
|
|
320
357
|
## 有配额需求?用平台的套餐管理,不许自建
|
|
@@ -346,3 +383,5 @@ compose 网络** —— 一份在一盒里能跑的 descriptor,`env` 里写着
|
|
|
346
383
|
## 一盒联调与冒烟
|
|
347
384
|
|
|
348
385
|
外部团队不用克隆本 repo:平台给两个门户镜像 + `deploy/` 目录,对方出 manifest + `compose.env` + 自己的镜像。步骤、冒烟命令与排查速查表见 [references/registration-and-onebox.md](references/registration-and-onebox.md) §4–§6。
|
|
386
|
+
|
|
387
|
+
本地调试的 PostgreSQL、Redis、RustFS(S3)、Kafka 必须复用共享 `xgent-onebox`,不另起独立实例,也不连接 portal 仓自己的独立开发环境。宿主热重载与容器的接线边界见该参考 §4、§4.2 与 §4.4。
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
| **环境依赖**:地址、连接串、证书、第三方密钥;全平台一份 | 清单 `requiredEnv`(键名,值归平台)。连接类键用约定名或 `requiredServices[].envKey` 绑定,平台自动供给 | 平台管理员 | 要 |
|
|
12
12
|
| **业务参数**:超时、阈值、默认文案、开关;全平台一份、部署后不变 | **先在代码里给缺省值,不进清单**。确实要部署时可覆盖,才进 `requiredEnv`,并且**必须**在 `requiredEnvNotes` 里写清填什么 | 平台管理员(照你的说明填) | 要 |
|
|
13
13
|
| **全平台一份、要随时改、不换版** | **平台级管理页**:你自己的页面,清单 `adminPages.platform` 声明,门户嵌进 控制台 › 应用市场 › 编辑你的应用 | 平台管理员 | 不要 |
|
|
14
|
-
| **每个租户不同** |
|
|
14
|
+
| **每个租户不同** | micro:清单 `adminPages.tenant` 嵌入 App 页面;service:清单 `tenantConfig` 声明受限 schema,门户渲染动态表单。都进 租户 › 应用管理 › 配置 | 租户管理员 | 不要 |
|
|
15
15
|
| **应用内的业务设置**:模板、字典、流程规则… | 你应用里的设置页,用 `aclManifest` 声明权限(不给 `defaultForMember` ⇒ 默认只有租户管理员能进) | 被授权的角色 | 不要 |
|
|
16
16
|
| **每个用户的偏好** | 你自己的库,按 `userId` 存 | 用户本人 | 不要 |
|
|
17
17
|
| **每租户的密钥**(租户自己的第三方 API key) | 租户级管理页里录入,你的后端加密存库,**只写不回显** | 租户管理员 | 不要 |
|
|
@@ -42,6 +42,112 @@
|
|
|
42
42
|
|
|
43
43
|
- 说明会原样给审批人看:**别写任何值或密钥**。
|
|
44
44
|
|
|
45
|
+
## Service 动态配置(`tenantConfig`)
|
|
46
|
+
|
|
47
|
+
无前端 service 的普通租户配置不再向平台申请手写页面。在 manifest 声明一个 Tab、同源 GET/PUT 路径、所需 scopes 和受限 schema:
|
|
48
|
+
|
|
49
|
+
```jsonc
|
|
50
|
+
"tenantConfig": {
|
|
51
|
+
"label": { "zh-CN": "解析预算", "en": "Parsing budget" },
|
|
52
|
+
"path": "/v2/policy",
|
|
53
|
+
"scopes": ["omni_parser.read", "omni_parser.govern"],
|
|
54
|
+
"schema": {
|
|
55
|
+
"type": "object",
|
|
56
|
+
"properties": {
|
|
57
|
+
"foreground": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"title": { "zh-CN": "前程预算", "en": "Foreground budget" },
|
|
60
|
+
"properties": {
|
|
61
|
+
"wall_time_ms": {
|
|
62
|
+
"type": "integer", "title": { "zh-CN": "最多等待", "en": "Wait limit" },
|
|
63
|
+
"default": 10, "unit": { "zh-CN": "秒", "en": "s" }, "scale": 1000
|
|
64
|
+
},
|
|
65
|
+
"mode": {
|
|
66
|
+
"type": "select", "title": "模式", "default": "auto",
|
|
67
|
+
"options": [{ "value": "auto", "label": "自动" }, { "value": "fast", "label": "快速" }]
|
|
68
|
+
},
|
|
69
|
+
"strict": { "type": "boolean", "title": "严格模式", "default": false }
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
- 支持 `integer` / `number`、`select` 静态 options、`boolean` 和 object 嵌套分组;标签、说明与单位支持多语。
|
|
78
|
+
`scale` 表示「界面值 × scale = wire 值」,例如秒→1000 毫秒、MiB→1048576 字节;integer 缩放后必须是安全整数。
|
|
79
|
+
- 配置 GET 返回 `{ "policy": {…}, "effective": {…} }`。Portal 展示 effective 与继承/覆盖状态;保存前重新 GET 最新
|
|
80
|
+
policy,只合并本次编辑或清除的 schema 路径,再整份 PUT,保留未展示字段。PUT 接收合并后的完整 policy 并返回同一形状。
|
|
81
|
+
- 字段缺省时 effective 必须已有应用默认值;旧后端没有返回 schema 所需 effective 字段时,Portal 显示版本不支持并禁止写入。
|
|
82
|
+
App 必须在每次读写时重新校验租户管理员和 scopes,不能只信 Portal 签票或浏览器校验。
|
|
83
|
+
- 无 `protocol` 的 schema 声明只支持 `type:"service"`,scopes 必须已在 listing `scopes` 中。字段新增、修改和撤回都是治理档;
|
|
84
|
+
批准后按 listing 现值对所有租户生效,不进安装快照。首版不支持动态选项、远程 `$ref`、脚本或密钥录入。
|
|
85
|
+
|
|
86
|
+
### 既有 revision/CAS 设置(`skills-settings-v1`)
|
|
87
|
+
|
|
88
|
+
已有 Skills 设置线协议的 micro/service 可复用 `tenantConfig`,无需新增门户 key 分支。新 micro App 的默认接入仍是 `adminPages.tenant`;此协议只适配既有的设置格式。
|
|
89
|
+
|
|
90
|
+
```jsonc
|
|
91
|
+
"tenantConfig": {
|
|
92
|
+
"protocol": "skills-settings-v1",
|
|
93
|
+
"label": { "zh-CN": "Skills 设置", "en": "Skills settings", "zh-TW": "Skills 設定" },
|
|
94
|
+
"path": "/v1/settings",
|
|
95
|
+
"scopes": ["my-app.read", "my-app.admin"]
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
- `path` 固定为 `/v1/settings`;不带 `schema` 或其他字段。必须恰含同一自有命名空间的 read/admin,命名空间为 listingKey 或其连字符转下划线形态;两项须在 manifest 自身 `scopes` 中显式声明。重复、混合命名空间、依赖或平台权限均拒绝。
|
|
100
|
+
- GET/PUT 沿用 Skills 的 revision/CAS 合同;不会转换为上节的 policy/effective。PUT 使用 `expectedRevision` 和最小 patch,冲突读回再处理;丢响应后先 GET 确认,不自动重放 PUT。存储、业务校验、审计及严格自省仍由 App 负责。
|
|
101
|
+
- 通用 `GET /api/admin/apps/:appKey/tenant-config-token` 必须由当前管理员会话携带 `expectedUserId` / `expectedTenantId`,返回 `{ token, expiresIn: 600, serviceBase }`。本安装 appKey/contentOwner/来源 listingKey 必须一致,且安装仍有两项 scope;只支持 canonical `/svc/<listingKey>`(可带单尾斜杠,返回归一地址)。App 请求只带 Bearer、不带 Portal cookie。
|
|
102
|
+
- 旧 `skills-token` 入口仅对本协议适配为 `skillsBase` 响应,同样现读获批声明,无旧 key 兜底。声明省略保留、null 撤回、完整对象替换,均沿既有治理;null 立即停止新票,已出票沿现有 JTI/资格撤销及最长 600 秒边界,不承诺声明撤回本身即时吊销全部旧票。
|
|
103
|
+
- 批准声明不补安装 scope、角色 grant 或 consent。全部外部 listing 的自动版本/品牌同步均保留安装 scopes;新增权限须租户管理员显式调用 `POST /api/admin/market/listings/:key/update`(版本已相同也可调用)。新安装取当前获批 scopes,内置定义同步仍 union。
|
|
104
|
+
- 旧 null 不自动恢复;平台有权者须在支持新协议的 API 上明确治理恢复。先升级 Portal API,再提交并批准 bump 后的正式清单,最后升级宿主前端;声明样例不是已批准事实。
|
|
105
|
+
- `@xgent/shared` 联合类型从 0.11.0 起提供(实际可安装状态以门户发布回执为准):先用 `isSkillsSettingsConfig` 分派,再访问旧 `AppTenantConfig.schema`。所有 DTO 消费方均须加守卫。
|
|
106
|
+
|
|
107
|
+
### OmniParser:六项 `foreground` 后端接入清单
|
|
108
|
+
|
|
109
|
+
OmniParser 的 manifest 已按上面的 `tenantConfig` 形状声明。后端要实现的是**现有 `/v2/policy` 的增量契约**,不要另建配置 API,也不要把 `foreground_limits`(单次请求字段)写成 policy 字段。
|
|
110
|
+
|
|
111
|
+
| `policy.foreground` / `effective.foreground` 键 | wire 类型与单位 | 无覆盖时的应用默认 | Portal 展示 |
|
|
112
|
+
| --- | --- | --- | --- |
|
|
113
|
+
| `wall_time_ms` | 整数毫秒 | `10000` | 10 秒(`scale=1000`) |
|
|
114
|
+
| `max_input_bytes` | 整数字节 | `16777216` | 16 MiB(`scale=1048576`) |
|
|
115
|
+
| `max_result_bytes` | 整数字节 | `4194304` | 4 MiB(`scale=1048576`) |
|
|
116
|
+
| `max_nodes` | 整数项 | `100000` | 100000 个节点 |
|
|
117
|
+
| `max_container_depth` | 整数层 | `8` | 8 层 |
|
|
118
|
+
| `max_embedded_items` | 整数项 | `10000` | 10000 个资源项 |
|
|
119
|
+
|
|
120
|
+
DTO 规则:
|
|
121
|
+
|
|
122
|
+
- `policy.foreground` 是**可选、可部分覆盖**的对象;缺整个对象或缺某一键都表示继承。已有 policy 的其他键必须原样保留。
|
|
123
|
+
- `effective.foreground` 必须**始终包含全部六键**,值是应用默认、租户覆盖和平台安全界共同决定的当前有效值;不能只回显 raw 覆盖值。它不包含单次请求 `foreground_limits` 的临时收紧。
|
|
124
|
+
- 例如,raw 只覆盖等待时间时,GET 仍返回完整 effective:
|
|
125
|
+
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"policy": { "foreground": { "wall_time_ms": 12000 } },
|
|
129
|
+
"effective": {
|
|
130
|
+
"foreground": {
|
|
131
|
+
"wall_time_ms": 12000,
|
|
132
|
+
"max_input_bytes": 16777216,
|
|
133
|
+
"max_result_bytes": 4194304,
|
|
134
|
+
"max_nodes": 100000,
|
|
135
|
+
"max_container_depth": 8,
|
|
136
|
+
"max_embedded_items": 10000
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
后端行为与验收:
|
|
143
|
+
|
|
144
|
+
1. 沿用现有租户管理员 + `omni_parser.read` / `omni_parser.govern` 双闸和租户隔离,不新增 scope。每次读写都重新判权,不能信任浏览器或 Portal 的预检。
|
|
145
|
+
2. PUT 接受合并后的完整 policy,校验六键的类型和实际安全范围;非法或超界时**整份拒绝、原 policy 不变**。成功 PUT 后返回与 GET 同形的最新 `{ policy, effective }`。
|
|
146
|
+
3. 清除某个 raw 覆盖键后,该键在 effective 中回到继承值;编辑一个键不得重置其他覆盖键,也不得改变已有 Jobs 的冻结策略、预算或 fragment topology。
|
|
147
|
+
4. `budget: EnhancementBudget` 继续独立表示模型调用/费用预算,不能用 `foreground` 替代。实际 Probe / Inspect / FastParse 必须把应用默认、租户 policy、请求 `foreground_limits` 和平台硬界按既定规则取交集;**只把六键加入 DTO 而不接入实际执行路径不算完成**。
|
|
148
|
+
5. 旧后端没有 `effective.foreground` 时,Portal 会显示「当前服务版本不支持」且不会 PUT。不要为了制造“支持”假象而在旧版本补一个空对象或静态默认值,然后让实际执行绕开这些限制。
|
|
149
|
+
6. 至少验证:完整/部分 raw 的 GET、六键逐一保存与刷新读回、清除覆盖、非法值原样拒绝、未编辑旧键保留、普通成员/无 govern/跨租户拒绝,以及真实执行确实遵守六项限制。
|
|
150
|
+
|
|
45
151
|
## 管理页嵌入(`adminPages`)
|
|
46
152
|
|
|
47
153
|
门户不为你写配置界面。你在自己的前端里做好页面,在清单里声明它的路由,门户把它嵌进管理面:
|
|
@@ -73,4 +179,4 @@
|
|
|
73
179
|
## 已有的门户手写配置页
|
|
74
180
|
|
|
75
181
|
文件管理、大模型网关、知识库等早期应用的租户配置页是门户代码里按应用手写的(签票端点 + 配置 API +
|
|
76
|
-
|
|
182
|
+
配置区块)。那是过渡做法:新 micro App 用 `adminPages`,新 service 的普通配置用 `tenantConfig`;不要再向平台申请这类按应用写的门户代码。
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
声明本 App 的身份空间范围;不创建托管 profile/client、不授额度,也不是成员的 publicClient。
|
|
19
19
|
顾客/学生认证与生命周期按 [终端用户接入](end-users.md) 配置;endusers.* 等服务权限经特权审批申请。
|
|
20
20
|
- 服务态与计量:`usageReporter`(true ⇒ SA 得 `client_credentials` + `usage.report`)、`serviceScopes`(服务态 scope;SERVICE_ONLY **永拒**)、`privilegedServiceScopes`(SERVICE_ONLY 的**申请**:`[{scope, reason}]`,reason 必填,最高治理档、审批逐条确认后授予)、`usageMetrics`(用量指标声明:key 前缀必须=listingKey、金额单位不开放;治理档,批准后 ingest 才认这些 key)
|
|
21
|
-
- 部署/运维:`requiredEnvNotes`(`{ 键名: 说明 }`,给 `requiredEnv` 里需要解释的键写一句给审批人看的话,≤200 字;纯展示、自动档)、`requiredEnv`(部署所需 env 的**键名**清单,值永远由平台配;元素可写 `{ key, renamedFrom }`
|
|
21
|
+
- 部署/运维:`requiredEnvNotes`(`{ 键名: 说明 }`,给 `requiredEnv` 里需要解释的键写一句给审批人看的话,≤200 字;纯展示、自动档)、`requiredEnv`(部署所需 env 的**键名**清单,值永远由平台配;元素可写 `{ key, renamedFrom }` 表达改名,或加 `generate` 声明独立密钥规格,见 §3.1。键名、改名或生成规格一变提案转入「发布审核」,且**批准前门户会核对实际来源,缺键拒绝生效**(`REQUIRED_ENV_MISSING`,提案留 pending))、`deployDescriptor`(`image` 归自动档、`hostPort` 归平台不算变更,**其余一切属治理档**)、`deployRequirements`(后端要跑在**什么样的机器**上:`{region?, size?, gpu?, network?}`,只写**名字与档位**,网段/IP/URL 提交即拒;批准时按目标环境**当时**的资源池逐维匹配,不满足则拒绝生效、提案留待审,通过则把首次落点固定住;需要 `deployDescriptor`)、`requiredServices`(运行所需的**外部服务** `[{name, kind, note?}]`,身份是 `(kind, name)` 二元组;批准时比对本环境**已登记**的「已具备服务」,未登记或缺条目则拒绝生效 —— 登记表核对已有服务;支持自动供给的类型按选定档案建资源并注入约定键,不收 `envKey`)
|
|
22
22
|
|
|
23
23
|
⚠️ **`deployDescriptor.hostPort`(宿主机发布口)不归 App 定**:它是部署环境相关的事实——同一份 manifest 会发到一盒与好几套生产门户,各自端口地貌不同,而 App 团队看不见目标机器上谁占了什么。规则三句话:**首次注册**当建议值采纳(撞了自动退让到平台端口池 20000–20999,**不会因此拒掉注册**);**listing 已存在则一律忽略**(那个口已经写进 Caddy 的 `/svc` map、也是在跑的容器发布出来的口);发布响应的 `warnings` 会说明实际是哪个口。App 只管 `port`(容器内监听口,约定 8080)。
|
|
24
24
|
**例外**:`extraPorts[].host` **不参与退让**,撞了硬拒——那些是对外契约口(worker 节点连的就是那个数字),静默挪走等于把它们全断掉,且门户侧一条都测不到。
|
|
@@ -126,6 +126,32 @@ SA 密钥与交换发起方密钥(`<PREFIX>_APP_SECRET`)都由平台在批
|
|
|
126
126
|
|
|
127
127
|
⚠️ **secret 一致红线**:平台落库的服务账号 secret 与你镜像 env 里的必须一致。漂移症状 = 自省 401,或「跨应用授权缺失/未开启」(实为 `SECRET_INVALID`)。排查:对你侧 secret 求 sha256 与门户 DB 存的哈希比对。
|
|
128
128
|
|
|
129
|
+
### 3.1 声明由平台生成的独立密钥
|
|
130
|
+
|
|
131
|
+
```jsonc
|
|
132
|
+
"requiredEnv": [
|
|
133
|
+
{
|
|
134
|
+
"key": "WORKER_DATA_KEY",
|
|
135
|
+
"renamedFrom": "WORKER_LEGACY_DATA_KEY",
|
|
136
|
+
"generate": { "bytes": 32, "encoding": "base64" }
|
|
137
|
+
}
|
|
138
|
+
],
|
|
139
|
+
"requiredEnvNotes": { "WORKER_DATA_KEY": "保护应用持久化数据;应用兼容消费旧键名" }
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
`generate` 只收 `bytes`(16–64 整数)与 `encoding`(标准带填充 `base64` / 小写 `hex`),
|
|
143
|
+
不含密钥值。声明或规格变化进发布审核;首供在批准时完成,值加密保管且永不回显,后续
|
|
144
|
+
发布、重试与部署复用。已有 descriptor 主键或可读 envFile 主键保留,匹配的保管行也保留;
|
|
145
|
+
descriptor 旧名按同值改名。带 `generate` + `renamedFrom` 时,可读 envFile 只有旧名也可满足:
|
|
146
|
+
保持文件原样、原名注入,App 继续消费旧名,不复制到新键、不生成新主键。
|
|
147
|
+
不带 `generate` 的旧名条目仍走原缺键规则。
|
|
148
|
+
|
|
149
|
+
按 App、按 brand 各自生成。平台派生键、服务自动供给目标不得再声明 `generate`。套件共享后端里
|
|
150
|
+
同名共享键只由一个成员声明 `generate`,其余成员以字符串 `requiredEnv` 消费(先批生成者,两名生成者
|
|
151
|
+
拒绝;生成者退出前先解除消费者依赖),成员受管 envFile 必须显式 `KEY=value`。envFile 不可读、来源冲突或保管规格不一致
|
|
152
|
+
都硬拦;旧键已由平台保管时不能用 `renamedFrom` 改名,须保留原键。没有读取值或轮换入口;
|
|
153
|
+
保管行丢失须恢复备份,不能用重生成修复原密文。
|
|
154
|
+
|
|
129
155
|
## 4. 一盒联调流程
|
|
130
156
|
|
|
131
157
|
分工:平台交**两个门户镜像** + `deploy/` 目录(含 `app-devkit/` 与 `onebox/`)。你交
|
|
@@ -133,6 +159,11 @@ SA 密钥与交换发起方密钥(`<PREFIX>_APP_SECRET`)都由平台在批
|
|
|
133
159
|
`APP_FRONTEND_DIST` **绝对路径**)③你的后端镜像(+ micro 的前端 dist)。
|
|
134
160
|
**不 clone 门户、不改门户代码、不重建门户镜像。**
|
|
135
161
|
|
|
162
|
+
**本地调试的基础设施边界**:PostgreSQL、Redis、RustFS(S3)、Kafka 一律使用共享 `xgent-onebox`,
|
|
163
|
+
不要在 App repo 另起独立实例,也不要连接 portal 仓自己的独立开发环境(那套只服务门户仓自身开发)。
|
|
164
|
+
无论后端跑在容器还是宿主热重载进程都遵守:容器用一盒网络地址,宿主用 §4.2 的发布端口;Kafka 的
|
|
165
|
+
宿主地址与 App 用户见 §4.4。
|
|
166
|
+
|
|
136
167
|
```
|
|
137
168
|
<registry>/<项目>/one-box:latest # portal runtime → XGENT_IMAGE (~310MB)
|
|
138
169
|
<registry>/<项目>/proxy:latest # caddy proxy → XGENT_PROXY_IMAGE (~68MB)
|
|
@@ -147,14 +178,24 @@ SA 密钥与交换发起方密钥(`<PREFIX>_APP_SECRET`)都由平台在批
|
|
|
147
178
|
Apple Silicon),生产门户走另一条链。无 registry 访问时则要离线 `docker save` tar,`docker load` 即可
|
|
148
179
|
(那条路上镜像的本地 tag 可能叫 `ai-portal-one-box:local` / `xgent-ai-portal-proxy:local`)。
|
|
149
180
|
|
|
150
|
-
|
|
181
|
+
镜像升级不会更新宿主脚本。先从公开渠道更新 `portal-dev-setup`,核对实际安装的脚本摘要,
|
|
182
|
+
再更新匹配镜像;已有一盒不要重跑 `init --force` 来升级:
|
|
151
183
|
|
|
152
184
|
```bash
|
|
185
|
+
npx skills add XGENT-ai/skills
|
|
153
186
|
S="<portal-dev-setup 的 SKILL.md 所在目录>/scripts/onebox.sh"
|
|
187
|
+
shasum -a 256 "$S"
|
|
188
|
+
"$S" pull
|
|
154
189
|
"$S" upgrade --image <registry>/<项目>/one-box:v<版本>-<sha>
|
|
155
190
|
"$S" up
|
|
191
|
+
"$S" add <listingKey> --manifest app.manifest.json
|
|
156
192
|
```
|
|
157
193
|
|
|
194
|
+
`generate` 的最低组合目前**未发布**:首个支持的门户提交 / `APP_VERSION`、一盒 runtime / proxy
|
|
195
|
+
不可变 tag、`XGENT-ai/skills` 公开提交及 `onebox.sh` SHA-256 均待正式发布后填齐。
|
|
196
|
+
按发布说明逐项核对,不能从现有样例 tag 或 `latest` 推断支持。新脚本配旧镜像时,
|
|
197
|
+
`register-app` 拒收未知字段,`add` 按「注册失败」中止;只更新镜像不会补齐旧宿主脚本的生成能力。
|
|
198
|
+
|
|
158
199
|
初始化是 `init` → `up`;升级是 `upgrade` → `up`;主动删数据重置才是 `dc down -v` → `init --force` → `up`。
|
|
159
200
|
升级保留 `compose.env`、`generated/`、`backup/`、端口、密钥和卷,只追加变更的镜像/版本行,
|
|
160
201
|
不重生成配置。两个目标镜像都已缓存时支持离线升级;沿用 latest 先 `pull`,再 `upgrade` → `up`。
|
|
@@ -162,6 +203,13 @@ S="<portal-dev-setup 的 SKILL.md 所在目录>/scripts/onebox.sh"
|
|
|
162
203
|
数据库启动前按现有 PG_VERSION 保留大版本和挂载布局;未知/冲突布局拒绝启动,不能用删卷来解决。
|
|
163
204
|
门户升级不执行 PostgreSQL 大版本迁移,后者需要单独备份与维护窗口。
|
|
164
205
|
|
|
206
|
+
新版 `add` 在 SA / App Secret 后按 §3.1 生成独立密钥,非空主键保留,旧别名有值则沿用旧名,
|
|
207
|
+
缺键检查也显示兼容满足。它写入共享 `compose.env`,主调试 App 和其他 App 均可能读到;
|
|
208
|
+
同名键共享同一值,只适用于可信团队,不承诺生产的 App / brand 隔离。
|
|
209
|
+
`init` / `up` / `add` / `upgrade` 用 `<一盒目录>/.onebox-env.lock/` 保护写入,并发调用先退出再重试。
|
|
210
|
+
异常中断留下锁时核对 `owner` 记录的 PID 与进程启动时间,确认原进程已结束后才手工清理;
|
|
211
|
+
脚本只释放自己的锁,不自动抢锁或重生成。
|
|
212
|
+
|
|
165
213
|
对象存储是 RustFS,原 `MINIO_*` 与 `minio:9000` 地址继续使用。`up`/`add`/建桶都先通过迁移门,
|
|
166
214
|
旧 MinIO 卷复制到新卷并核对后才提交;原卷及 `backup/` 的镜像归档、清单、回退入口保留。
|
|
167
215
|
提交后新卷是权威;有新写入时回退入口会隔离 RustFS 并拒绝切回旧卷,需在副本上人工验证后恢复,
|
|
@@ -318,3 +366,9 @@ curl -X POST http://localhost/svc/<key>/v1/... # 缺/错 token → 401/403(
|
|
|
318
366
|
| `git` 连不上本机 Gitea/GitHub | 一盒是 `NODE_ENV=production`,SSRF 守卫默认拒环回与私网 —— 把目标 hostname 显式列进 `GIT_ALLOWED_HOSTS` |
|
|
319
367
|
| 视频海报/网格缩略图不出 | 一盒没装 ffmpeg,`PREVIEW_MEDIA_CONVERTER_URL` 应留空(§4.1);其余预览不受影响 |
|
|
320
368
|
| 起了一盒把另一套栈的容器停了 | `COMPOSE_PROJECT_NAME` 没改(§4.2) |
|
|
369
|
+
|
|
370
|
+
## 品牌图(logoUrl)
|
|
371
|
+
|
|
372
|
+
开发者应用概览提供上传与地址复制。接口 `POST /api/v1/developer/apps/:key/logo` 以开发者用户 TDT 和原始图片字节请求;服务端验证当前租户、显式开发者页面/品牌动作 PID、维护者关系、字节格式与 2 MiB 上限。成功 `{ok:true,data:{url}}`,同时写 listing 并同步存量安装;同字节 URL 幂等。平台存储未配置返回 `STORAGE_NOT_CONFIGURED`,不可回退为 data URI。
|
|
373
|
+
|
|
374
|
+
将 URL 填入源 `app.manifest.json` 的 `logoUrl` 并递增版本。字段省略沿用,`null` 清空;只支持 `/api/assets/app-logo/<本 listingKey>/<64位小写sha256>.(svg|png|webp)`。展示字段按自动档发布,存量安装与新装一致,保留租户自定义名称。品牌显示在市场、应用中心、启动器、宿主版头与授权屏;左侧导航保持 `icon` 命名字形。跨部署清单目录会剔除这个单部署资产地址,目标门户须重新上传品牌图并回填 URL。需要包含门户提交 `1590f2e3` 的运行件(本期一盒 tag `wise-pdf-p1-1590f2e3-20261019`)。
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: portal-micro-app
|
|
3
3
|
description: '用于开发、修改或排查 XGENT Portal 的 iframe 微应用前端。覆盖页面、导航、Widget、portal-sdk 握手、令牌、consent、主题与路由等 UI 问题。'
|
|
4
|
+
when_to_use: "用户会说「微应用里拿不到当前用户」「iframe 和门户通信不通」「门户主题不生效」时。"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# portal-micro-app · 嵌入式微应用(iframe + SDK)开发
|
|
@@ -49,7 +50,7 @@ skill 的「第 0 步」。仓里还没有 `.xgent-registry.env` ⇒ 停下,
|
|
|
49
50
|
- **App 内不要自绘图标与名称**:版头最左那一级恒为「应用图标 + 应用名」且可点回应用首页,App 再画一份就是同屏说两次,而且租户改过 App 名之后两处会说得不一样(`apps.name` 租户可改、i18n 词条改不了)。tagline / 副标题同理(应用中心已展示过)。可以留:角色 / 工作区 / 当前对象这类**运行期事实**,以及 `main.tsx` 里脱离门户打开时的 standalone 壳。浏览器验收时检查版头与 App 内容没有重复标题。
|
|
50
51
|
- **帮助页入口 `helpEntry`**:清单里声明一个可空字符串,版头工具条最右侧(全屏与刷新的**左边**)就多一枚帮助按钮;不声明就不出按钮。两种形态:`"/help"` = App 内路由(宿主置 `?r=`,不离开门户,**自动档**)、`"https://docs.example.com"` = 外站文档(新标签 + `noopener`,**走治理审核**,因为门户版头等于替这个域名背书)。`/…` 与 crumb `route` 同一条规则;外站必须 https(`http://` 连回环也拒)、无 fragment。它是**安装期快照**,改了要 bump 自己的 `version`;**租户不可覆盖**(想指向自家知识库去知识库 App 建条目)。门户不托管、不渲染、不翻译帮助正文。
|
|
51
52
|
- **低频入口放版头、不占侧栏**:帮助中心 / 接入指引这类低频页别长期占着侧栏一个位置 —— 用 `helpEntry` 挂到版头,并把这一级显式推进面包屑。
|
|
52
|
-
- 主题/语言:订阅 `sdk.onTheme` / `sdk.onLocale`;未保存更改 `sdk.setDirty(true)`
|
|
53
|
+
- 主题/语言:订阅 `sdk.onTheme` / `sdk.onLocale`;未保存更改 `sdk.setDirty(true)` 让宿主拦 Shell 离开、刷新/关闭,以及跨宿主 pathname 的前进后退;取消保留原 iframe。同 App 只改 `?r=` 不拦。历史守卫需要包含 Wise PDF 平台增量(2026-10)的门户运行件;SDK 0.5.7 的注释更新本身不启用旧宿主。App 内部应使用内存路由 + routeSync,不在 iframe 内 pushState。
|
|
53
54
|
- **iframe 高度二选一**:满高型(编辑器、聊天、带底部输入栏)**不调** `sdk.resize`,外壳 `height: 100dvh`(或 `100%`)+ 内部滚动——软键盘缩小可见区时宿主让 iframe 一起变矮、在 iframe 内触发 `resize`,App 在 `resize` 里把插入点 / 焦点输入框滚回视图,且 iOS 上输入控件计算字号 ≥16px(更小时 Safari 聚焦即放大,宿主不让位);内容高度型调 `sdk.resize(scrollHeight)`,由宿主滚动区滚动,**调过一次就不再复位为满高、也不再为键盘让位**。没有键盘高度事件,也不需要。详见 [SDK 参考「iframe 高度」](references/sdk-reference.md#iframe-高度满高型与内容高度型软键盘)。
|
|
54
55
|
|
|
55
56
|
## Consent 硬规则
|
|
@@ -102,7 +102,9 @@ sdk.setBreadcrumbs([ // 页面层级 → 宿主版头面
|
|
|
102
102
|
{ label: "需求池", route: "/requirements" },
|
|
103
103
|
{ label: "FR-12 登录页改造" }, // 末级不带 route(它就是当前页)
|
|
104
104
|
]); // 首页推 [];整条 trail 全量覆盖
|
|
105
|
-
sdk.setDirty(true); //
|
|
105
|
+
sdk.setDirty(true); // 拦 Shell 离开、刷新/关闭、跨 pathname 的前进后退
|
|
106
|
+
// 同 App ?r= 不拦;取消保留原 iframe
|
|
107
|
+
// 需要含门户提交 1590f2e3 的运行件;仅升级 SDK 不启用旧宿主
|
|
106
108
|
sdk.requestFullscreen(true);
|
|
107
109
|
|
|
108
110
|
// 订阅宿主事件
|