@xgent-ai/skills 0.7.4 → 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 +65 -37
- package/bin/phoenix-diagram.js +14 -0
- package/bin/xgent-skills.js +259 -243
- 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/{8b1723fb51e6aad9bfc0bc5ba8e09b5a373b0e33c251331f6ca14ff6b1c261ef → 00f4a6a630f31eb05fbdd5725e4a294233d24574bd70f4f32f4597d8256a7c1c} +2 -5
- 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/{3133bec6998506bf92baeeabba39438c5ee27aa3330c2e6245f9df216fbe7b2d → 0e684572eb98d24b39cd70fa23e66c163178f5a11756dcf8a98fe2335636b33f} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{d17b3a454146e74ef4ecf69d7b72a8fa45c4fe1c695dffb0d36690b653cd2d8f → 10553c45c7bf38e527a57a281c4365152a768b4dd7ef597ff34ae841e9ff7d41} +6 -7
- package/dist/phoenix-ui/bundle/blobs/{b544da38492c15f5295053b64189a9ec5ebe446c77138ac52ca7bd9da9c0e842 → 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/{6530364f99c98b9ae9a8f9f3d34866a6393a75e75db48d8c0cbb49dd93a69f81 → 3625c5c2750f117021232ce81c1e39ac5ef7c21445729327b88cf54dfc937df0} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{335ccd78685b679dc0c880fc46139d0fa94aebcfa6e5ff848fd0599b187d25c4 → 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/{d9f1d8e01b40a8d7310e367f7e3da7d1fac5850313082feb853093b7eb36d2bd → 55277fa15eb4bd2f09bf7bb24c4e79df417b06654b1e10f502c7928b192fd7cc} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{3759780bd25526f7eaa3793c010356bccb850d40db931e0c6d47d35e81e96f96 → 567c3f42394f9aee9b048a001016a7ba9d8773d78027f8c995c379886634e719} +6 -3
- package/dist/phoenix-ui/bundle/blobs/57c8f33a7401f918566b8a4883871a69ef2223438c51f158c67f69e3250be465 +46 -0
- package/dist/phoenix-ui/bundle/blobs/{5f5fc6bb04605feb7ac6f6b19e35ff2f8d39e11a89fdd260159c6829f27b4a4d → 61450dbef64859e3136cd17ae3e997134d5df5721d96985c4e07367f38522129} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{e3c1e925be0b2deb0e3765b83ab94b86560292364f275e98bb23a8bdf2c2e049 → 656bbfda3e72b40d53b5832293dc8700ad8a784e804a6246271bf0ea23527822} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{b49cdd7f125d9cb5ce10de7d39c5e3daff7d6649b9ac1c5ffd36a0aebdc4e7ca → 68b454a99ba72c3b9b93ed96c4267847297169f6a5bf321b20e60d637c271068} +6 -3
- package/dist/phoenix-ui/bundle/blobs/68e44832c82b873b0aeb2da56def7b1de5f612c019445e5e28238c690124cbbe +46 -0
- package/dist/phoenix-ui/bundle/blobs/{ec8968ee6a8e42b952e5ece2369ba69f40185c62a135ed54e930df3170421d9c → 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/{3077452231f1ce3c48ae5d8dd912b14ab30de55a270a031d07065357bc1cca94 → 8078b804bea630ed9c4ea07ec2f8ac92aba4128725860a66599eda90390d98f6} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{99f49df49ade2ca21deffcc752fc8a76c9a6645f5416b9314ea3ab1bd010f34c → 88b150cb804bc141b80a5687a091f61b99627155c465a27adb88546ef615af92} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{a64a45a4e082a0d05daf711080cb7c3195f15fb6b3f3dce0521f4816b64452f3 → 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/{48b7e6acf597d4f0320834db1393003451d1bd7c0d024dd62f7577a398b2e320 → c0a70ab2889e5c16e1f09249aefad948ce352c42cfe2b5afb758a4524e1b21b6} +6 -3
- package/dist/phoenix-ui/bundle/blobs/{60b2914df394800688c4e20f4eb34e117cd430df9954cf4d48574734507723f4 → c9ee9006ae6c0194a5d39a9f0cb275c52d74a71ea3f6dc2b4c1c7bd89f48a2c0} +1 -1
- package/dist/phoenix-ui/bundle/blobs/{d21ccafc83495872c80ec9873ad4fbfb4223837a747b524aa03b6d819f7c08e3 → 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/{1ba392d45294b3e90cc7f3964f134ae685118bbbcc84ca944953a4270ec67a54 → 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/{882bfe4d8ffd9bc217b0c1bdd5e3cf659cd4b46598d631c4649aaaf0e13333ce → 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 +57 -16
- 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 +2 -5
- 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
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: use-rustify-docs
|
|
3
|
+
description: "用于以 Rustify Docs 创建、改造文档站或 Landing Page;落地页必跑 ui-loop 打磨首屏吸引力与转化路径。不用于 Rustify 框架开发或已指定其他建站技术的任务。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Use Rustify Docs
|
|
7
|
+
|
|
8
|
+
用 Rustify Docs 交付可阅读、可部署的静态站点。文档站让读者找到答案并完成操作;Landing Page 让目标客户第一眼理解价值、愿意继续了解并采取行动。
|
|
9
|
+
|
|
10
|
+
## 实现与设计边界
|
|
11
|
+
|
|
12
|
+
- 面向站点作者,在用户的目标项目工作;不要求克隆或修改 Rustify UI 仓库。默认采用静态 HTML/CSS 的 DOM 路径,纯内容站不编译站点 Rust、不加载 wasm,也不需要 Node、Tailwind CLI 或 Makepad。只有具体的交互组件或 demo 需求才选 components 模板与 DOM islands;不预建 GPU 路径。
|
|
13
|
+
- 保留用户的产品事实、品牌、已有设计和技术选择。普通创建、局部修改不扩成框架开发、整站迁移、后端、统计服务或发布。仅咨询时只读。
|
|
14
|
+
- **实际调用 impeccable 做设计**:从当前技能目录找到并读取其 `SKILL.md`,按其流程执行;文档面选择 Read,营销落地页选择 Persuade。Rustify 自身的 Theme Studio 外观不约束客户站点。
|
|
15
|
+
- **Landing Page 必须实际调用 ui-loop**:读取当前可用的 `ui-loop/SKILL.md` 并执行其流程,不能用本文件的检查表代替调用。impeccable 负责设计方向与实现;落地页按用户要求接续 ui-loop,不以通用自检轮数上限跳过所需迭代。
|
|
16
|
+
- 找不到上述依赖时先说明缺少哪个 skill、影响哪个阶段及如何补齐;继续可独立完成的内容与构建,不擅自安装、不声称已调用,缺少 ui-loop 时不能宣布 Landing Page 设计验收完成。
|
|
17
|
+
|
|
18
|
+
## 确定站点与入口
|
|
19
|
+
|
|
20
|
+
1. 读目标项目的 AGENTS、README、PRODUCT、DESIGN、工具链配置及相关计划,核对工作树和现有站点。确定工作目录、文档站 / Landing Page / 两者组合、受众、语言、品牌素材、部署 base,以及本次主要行动的真实目标。
|
|
21
|
+
2. 文档站确认读者要完成的任务与现有内容;Landing Page 确认卖给谁、解决什么问题、有什么可用证据、希望客户下一步做什么。可从材料查明的先查;会改变价值主张或 CTA 的缺项才询问,先推进不依赖答案的工作。不得虚构客户、评价、数据或产品能力。
|
|
22
|
+
3. 创建或配置前读 [Rustify Docs 作者契约](references/rustify-docs.md),核对实际 CLI 的 `--version`、`--build-info` 和 `--help`。复用现有版本和项目入口;安装、组件配对、主题、落地页配置按该参考执行,不猜不存在的参数或配置键。
|
|
23
|
+
4. 现有站点只改对应源文件、配置与资源;新站用 `rustify-docs new` 创建到新目录或空目录。先说明内容 / components 选择及依据,再落地最小完整路径。
|
|
24
|
+
|
|
25
|
+
## 文档站
|
|
26
|
+
|
|
27
|
+
- 按读者任务组织入门、操作指南、参考和必要解释;导航服务于这些任务,不照搬源码目录。首页需要引导时用 `layout: home`,正文用默认文档布局。
|
|
28
|
+
- 先打通一条真实阅读路径:入口 → 快速上手 → 可执行示例 → 深入参考。代码、API、命令和输出须从实际资料核对,避免占位指南和失效链接。
|
|
29
|
+
- 配好标题、description、侧栏分组、标题层级、图片替代文本与站内链接。既有仓库混放计划、评审和私密资料时,用 `content.include` 明确选择发布源;不把导航隐藏当作不发布。
|
|
30
|
+
- 在实际页面检查阅读宽度、代码与表格滚动、移动导航、键盘与焦点。对本次涉及的搜索、复制代码、主题或多语言覆盖主路径及空 / 错状态;不为目录对称补未要求的语言或组件。
|
|
31
|
+
|
|
32
|
+
## Landing Page:先吸引,再让行动成立
|
|
33
|
+
|
|
34
|
+
使用 Markdown 的 `layout: landing`;它保留品牌与 hero,移除文档导航、搜索、侧栏和目录。没有 `--template landing`。只有要加载第三方脚本、表单、iframe 或透传参数时,才声明命名 profile 并用 `landing:` 选择。
|
|
35
|
+
|
|
36
|
+
先依据受众建立有辨识度的视觉方向与内容顺序:首屏价值主张和主 CTA、能解释产品的真实视觉、支持承诺的证据、必要异议解答及后续行动。按产品选择区块,不机械堆砌特性卡片,也不以夸张文案弥补价值不清。
|
|
37
|
+
|
|
38
|
+
**首个可运行版本完成后,实际进入 ui-loop,并把以下目标随页面上下文一起交给它。** 使用运行页面的真实桌面和移动首屏截图;首屏通过后仍检查整页与行动路径。
|
|
39
|
+
|
|
40
|
+
| 检查 | 可观察的通过条件 |
|
|
41
|
+
| --- | --- |
|
|
42
|
+
| 第一眼的价值 | 按约 5 秒的首次扫读自检,能说出面向谁、提供什么价值、下一步是什么;不用读完整页才明白。 |
|
|
43
|
+
| 视觉吸引力 | 主标题、产品视觉与 CTA 形成清楚焦点;排版、留白、色彩与构图体现品牌和产品特征。说明吸引目标客户的具体理由。 |
|
|
44
|
+
| 可信度 | 视觉展示实际产品或明确的概念表达;证明材料可追溯,没有伪造 logo、客户评价或收益数字。 |
|
|
45
|
+
| 行动路径 | 一个明确的主转化目标;CTA 文案说明行动及收益,点击可到达真实目的地。表单及成功 / 失败反馈符合本次实际接入。 |
|
|
46
|
+
| 移动与无障碍 | 移动首屏仍有价值与主要行动;无横向溢出,正文与控件可读可用,键盘焦点可见,减弱动态偏好得到尊重。 |
|
|
47
|
+
|
|
48
|
+
同时完整执行 ui-loop 的 typography、whitespace、visual_hierarchy、color、motion、micro_interaction、responsive、originality 检查。实际查看其要求的获奖参考,记录来源与可借鉴之处;不凭搜索摘要或代码认定视觉效果,不复制参考品牌和承诺。
|
|
49
|
+
|
|
50
|
+
发现差距就改源文件、更新运行产物并复验,直到 ui-loop 各维度和上述目标都无可见改进。动效服从内容与可用性,不为检查项强加动画。缺页面、参考或交互证据时保留缺项;不能把受阻、预算耗尽或自评分数当作达标。5 秒检查是设计自检,实际客户吸引力和转化率需另有真实用户或投放证据。
|
|
51
|
+
|
|
52
|
+
落地页的 `index`、`search`、`ai` 默认均为 false;根据推广目标明确处理,SEO 获客需要时显式开启 `index: true`,不能因为叫 Landing Page 就一律禁止收录。表单、统计与托管策略见作者契约;没有真实接收端不能声称已收集线索或完成转化集成。
|
|
53
|
+
|
|
54
|
+
## 验证与交付
|
|
55
|
+
|
|
56
|
+
- 按目标项目现有入口执行受影响检查;通常运行 `rustify-docs check --deny-warnings`、`rustify-docs build`,再用 `rustify-docs preview` 验收生产输出。`dev` 用于编辑预览,不能代替最终构建。
|
|
57
|
+
- 浏览器确认展示的是最新产物,记录入口、视口、主路径、必要截图、console 与失败请求。覆盖本次涉及的导航 / CTA、资源、移动布局、404、主题及语言;子路径部署核对 URL、base、资源和深链。
|
|
58
|
+
- Landing Page 另验 profile 的按页 CSP、表单 / iframe 和所用参数透传;未配置这些能力则不强行新增。有广告脚本时确认其失败不会阻断主要内容与原生表单。真实提交、发送通知或生产发布须在已有授权内进行。
|
|
59
|
+
- build、lint 或单测不替代浏览器验收。未能打开页面时明确写「未在浏览器中验证」,说明原因及解除条件,不宣布 UI 或 ui-loop 通过。
|
|
60
|
+
- 交付源文件和构建输出位置、启动命令、实际检查结果与未验证项;Landing Page 附首屏截图、ui-loop 的参考与差距处置结论。没有真实转化数据时只报告设计和功能验收,不承诺转化提升。
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# Rustify Docs 作者契约
|
|
2
|
+
|
|
3
|
+
创建或配置站点前读取本文件。此处是可跨项目携带的最小作者契约,不依赖本机 Rustify 源码目录。
|
|
4
|
+
|
|
5
|
+
核对依据:Rustify UI 源码 `032756c041615dca075a49685fbb458ce7cc833f` 的 [作者指南](https://github.com/rockie/rustify-ui/blob/032756c041615dca075a49685fbb458ce7cc833f/docs/docs-ssg.md)、[CLI README](https://github.com/rockie/rustify-ui/blob/032756c041615dca075a49685fbb458ce7cc833f/crates/rustify-docs-cli/README.md) 与 CLI 参数定义。基线版本为 0.2.1,不表示永远是最新版;目标项目版本不同时先读其匹配文档和实际帮助,不混用契约。
|
|
6
|
+
|
|
7
|
+
## CLI 与项目
|
|
8
|
+
|
|
9
|
+
先探测已安装的 CLI 和 Rust,不因 PATH 缺入口就覆盖安装。新项目没有版本约束且需要安装时,已核对的 registry 命令是:
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
cargo install rustify-docs-cli --version 0.2.1 --locked
|
|
13
|
+
rustify-docs --version
|
|
14
|
+
rustify-docs --build-info
|
|
15
|
+
rustify-docs --help
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
registry 安装使用标准 release profile,不加 `--profile docs-cli`。此基线使用稳定 Rust 1.99,build-info 应有 `panic: unwind` 和 `distribution: registry`。不要为创建站点擅自升级已有项目工具链、CLI 或依赖。
|
|
19
|
+
|
|
20
|
+
纯内容站:
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
rustify-docs new my-docs
|
|
24
|
+
cd my-docs
|
|
25
|
+
rustify-docs check --deny-warnings
|
|
26
|
+
rustify-docs dev
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
`new` 只接受新目录或空目录,默认 content 模板。需要真实 Rust DOM 组件 / 交互 demo 时,使用 `rustify-docs new my-components --template components`;需要稳定 Rust 和 `wasm32-unknown-unknown` target。保留生成的 Cargo.toml、带 checksum 的 Cargo.lock 以及 host SSR / browser hydrate 结构;不得混合 SSR 与 CSR/hydrate 特性。
|
|
30
|
+
|
|
31
|
+
组件项目严格配对 CLI build-info 中的 rustify-docs、rustify-dom、rustify-components 精确版本和来源。遇到 `rust-framework-pair` 修复整套配对,不用 path、file/link 或随意换 Git revision 绕过。首次组件 check/build 可能获取锁定依赖;纯内容站在 CLI 安装后不需要站点编译、Node、外部 Tailwind CLI 或 GPU 工具链。
|
|
32
|
+
|
|
33
|
+
编辑完成后停止本任务的 dev,再验生产输出:
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
rustify-docs check --deny-warnings
|
|
37
|
+
rustify-docs build
|
|
38
|
+
rustify-docs preview
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
使用打印出的实际 URL,勿硬编码端口。`preview` 只服务既有输出,不会重建。`dev`、`check`、`build`、`preview` 可用 `--config` 指定配置;配置内路径相对配置目录,命令行 `--out` / `--dir` 相对工作目录。静态产物通过 HTTP 访问,不用 file URL。
|
|
42
|
+
|
|
43
|
+
## 配置、资源与外观
|
|
44
|
+
|
|
45
|
+
生成的 `rustify-docs.toml` 是起点。必要字段与常用路径如下,按实际目录和部署目标修改,不复制示例品牌:
|
|
46
|
+
|
|
47
|
+
```toml
|
|
48
|
+
schema_version = 1
|
|
49
|
+
|
|
50
|
+
[site]
|
|
51
|
+
name = "Product Docs"
|
|
52
|
+
lang = "zh"
|
|
53
|
+
base = "/"
|
|
54
|
+
|
|
55
|
+
[content]
|
|
56
|
+
dir = "content"
|
|
57
|
+
|
|
58
|
+
[assets]
|
|
59
|
+
dir = "static"
|
|
60
|
+
|
|
61
|
+
[build]
|
|
62
|
+
out = "dist"
|
|
63
|
+
|
|
64
|
+
[[nav.groups]]
|
|
65
|
+
label = "入门"
|
|
66
|
+
dir = "guide"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
- `content/index.md` 对应 `/`,`content/guide/start.md` 对应 `/guide/start/`。普通页写 title、description 和有序标题;只保留一个 H1,hero 与正文不能重复制造 H1。
|
|
70
|
+
- `site.url` 可选;已知发布地址时设置,其路径必须等于 `site.base`。子路径构建 / 预览必须使用同一 base。不要在未知域名时把示例域名当作 canonical 发布。
|
|
71
|
+
- `content.include` 是相对 content.dir 的精确 `.md` 列表,不支持 glob;缺省递归发现,空数组是选择零页。它控制发布源;`nav.groups` 控制导航,不能代替源选择。
|
|
72
|
+
- 本地图片、下载和 HTML 资源链接进入资源图并按内容发布;`static/` 按整体目录发布,不放密钥或不应公开的资料。普通页面不可直接加载远程图片,先取得可用的本地素材。
|
|
73
|
+
- 外观使用主题与内容中的 utility classes;CLI 在进程内从实际页面 class 编译样式。核对实际输出,不添加不存在的 custom CSS 配置键,不为静态样式引入运行时 utility Worker。
|
|
74
|
+
- `theme.primary` 可分别设 light / dark;完整主题从生成的 `theme.example.json` 复制并用 `[theme] document = "theme.json"` 激活。document 与 primary 不能同时设置。
|
|
75
|
+
- 默认系统字体。自有字体以 `[[theme.fonts]]` 声明本地 family / src / weight / style,同时在主题两种模式的 font token 中选择该 family,保留许可;不引用远程字体 URL。
|
|
76
|
+
- Markdown 原生支持标题、表格、代码组、alerts 和源码 include。内置 Tabs、CardGrid、Steps 不需要作者 Rust 项目;仅使用静态内置组件不是选择 components 模板的理由。
|
|
77
|
+
|
|
78
|
+
更复杂的 i18n、demo 注册、布局 slot 或主题格式,按需读匹配版本作者指南的相应小节。不要从其他框架类推配置。
|
|
79
|
+
|
|
80
|
+
## Landing Page 的最小有效形态
|
|
81
|
+
|
|
82
|
+
在已有 content 项目添加页面或替换对应首页,不运行不存在的 landing 模板:
|
|
83
|
+
|
|
84
|
+
```markdown
|
|
85
|
+
---
|
|
86
|
+
title: 将产品价值写成客户能理解的结果
|
|
87
|
+
description: 清楚说明目标客户、问题与产品价值。
|
|
88
|
+
layout: landing
|
|
89
|
+
tagline: 用具体事实支持主张,减少客户理解和行动的成本。
|
|
90
|
+
actions:
|
|
91
|
+
- text: 查看解决方案
|
|
92
|
+
link: "#solution"
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 解决方案 {#solution}
|
|
96
|
+
|
|
97
|
+
在这里展示经过核对的产品能力与证据。
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
这是语法示例,交付时替换为目标产品内容。landing 共用 home hero 的 title、tagline、actions、features;正文接在 hero 后。品牌头部没有文档导航、搜索、语言或主题开关,主题跟随系统或站点已有选择;有 profile footer 或 footer slot 才显示相应页脚。默认 `index` / `search` / `ai` 全为 false,三者独立按目标显式设置。
|
|
101
|
+
|
|
102
|
+
没有 profile 时仍是严格 CSP。只有需要第三方请求或表单时才加入配置;例如以下只是已存在表单服务的接线形状,域名必须换成实际获准的接收端:
|
|
103
|
+
|
|
104
|
+
```toml
|
|
105
|
+
[landing.profiles.campaign]
|
|
106
|
+
carry = ["utm_source", "utm_campaign"]
|
|
107
|
+
|
|
108
|
+
[landing.profiles.campaign.sources]
|
|
109
|
+
form = ["https://leads.example.com"]
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
页面 frontmatter 添加 `landing: campaign`,正文可放:
|
|
113
|
+
|
|
114
|
+
```html
|
|
115
|
+
<form id="lead" method="post" action="https://leads.example.com/lead">
|
|
116
|
+
<label for="email">工作邮箱</label>
|
|
117
|
+
<input id="email" name="email" type="email" autocomplete="email" required>
|
|
118
|
+
<input type="hidden" name="utm_source" data-rd-carry>
|
|
119
|
+
<button type="submit">预约演示</button>
|
|
120
|
+
</form>
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
- 命名 profile 必须存在且只供 `layout: landing` 使用。`sources` 分 script、connect、img、frame、form;来源填写 origin,不是带路径的 URL。真实厂商域名清单按厂商当前文档核实,勿照猜。
|
|
124
|
+
- profile 的 `scripts` 列表只接受外部 src 或项目内 `.js` 文件;本地脚本宜放 `landing/` 等 static 之外的目录。load 是 async 或 defer,默认 defer;外部脚本 origin 自动加入 script-src。
|
|
125
|
+
- 不允许内联 script/style、style 属性、事件处理属性、eval 或通过 nonce/hash 绕过;Landing Page 不放宽 style-src。把厂商内联初始化放进已声明的本地脚本,不去修改生成器策略。
|
|
126
|
+
- iframe 的来源需在 sources.frame,提供 title、禁止 srcdoc;iframe 服务本身也须允许被嵌入。需内联样式的第三方嵌入不能借此绕过约束。
|
|
127
|
+
- form 的 action / 按钮 formaction 必须匹配获准来源或可解析的站内页面。没有 sources.form 不允许提交;生成器不提供接收、存储或邮件后端。站内静态感谢页本身不是线索接收端。
|
|
128
|
+
- 原生 POST 接收端接受表单编码,保存后用 303 跳向感谢页。GET 会用字段替换 action 的 query,需要固定参数时用 hidden input。实际提交测试须避免未授权的真实客户数据或通知。
|
|
129
|
+
- `carry` 只透传明确列出的参数:hidden input 以 name 匹配,链接 / iframe 用 `data-rd-carry`;hero actions 自动标记。它不使用 cookie/localStorage;无脚本时页面和原生表单仍可用,只缺参数透传。
|
|
130
|
+
- 统计、同意管理与隐私说明按站点已有要求及实际接入处理,不因创建落地页自动新增追踪器。缺厂商 ID、表单服务或授权时完成独立页面并保留接入缺项。
|
|
131
|
+
|
|
132
|
+
## 托管与验收
|
|
133
|
+
|
|
134
|
+
输出目录含 `rustify-docs-manifest.json`、HTML、指纹 CSS/JS、引用资源与 404,直接交给静态主机。主机需按目录 index.html 回应,并将不存在的路由以真实 HTTP 404 返回;正确发送 CSS/JS/wasm 等 MIME。部署和回滚替换整份产物,不混用各次 build 的 HTML 与资源。
|
|
135
|
+
|
|
136
|
+
每页都有 meta CSP。若主机还发送 CSP 响应头,Landing Page 必须按 manifest 的 `page_policies` 使用该页策略,或不在这些页发送 CSP 头;全站强加严格头会继续拦截脚本和表单。GitHub Pages 这类无法设置头的主机使用 meta,无需模拟按页响应头。
|
|
137
|
+
|
|
138
|
+
生产 preview 里核对资源、深链、404 与实际需要的表单、脚本、iframe、透传。本地替身只证明接线契约,不能记为第三方真实集成或转化统计通过。上线另按目标项目已有授权与流程执行。
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: use-task-gateway
|
|
3
|
+
description: '用于其他 App 接入 XGENT Task Gateway 完成异步任务,或排查鉴权、提交、幂等、进度与结果回收;需要时对齐 VM 执行器和 workflow 动作面。不用于网关自身开发发布或通用异步架构咨询。'
|
|
4
|
+
when_to_use: "用户会说「接异步任务网关」「任务重复提交了」「进度和结果查不到」时。"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# use-task-gateway
|
|
8
|
+
|
|
9
|
+
让调用方 App 形成可恢复的闭环:业务执行记录 → 提交任务 → 保存 task_id → 查询进度 → 消费终态结果。普通 App 默认走 Portal HTTP 租户面;任务由已注册服务的节点反向领取,网关不直接执行 payload 中的命令。
|
|
10
|
+
|
|
11
|
+
## 先确定接入边界
|
|
12
|
+
|
|
13
|
+
从调用方仓库查找 manifest、门户鉴权/换票封装、后端配置、业务 run/job/step 模型,以及目标服务的 payload 契约。复用其语言和已有 HTTP 客户端,不要求调用方使用 Rust,也不要求克隆网关源码。
|
|
14
|
+
|
|
15
|
+
先确认四项:实际 Gateway 基址、用户态或后台服务态、真实服务名、执行器所需输入。缺部署信息时先完成可配置的客户端与业务接线;仅在真实联调依赖该信息时索取,不能猜测生产地址、凭据或服务名。
|
|
16
|
+
|
|
17
|
+
| 当前工作 | 按需读取 |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| 用户代表调用、后台 SA、manifest 与换票排错 | [references/authentication.md](references/authentication.md) |
|
|
20
|
+
| HTTP 提交、持久化、幂等、状态、取消、回调、重试 | [references/task-api.md](references/task-api.md) |
|
|
21
|
+
| 新接 VM/CLI/API 执行能力、SSH 部署能力确认、任务一直 pending 或领取后失败 | [references/workers.md](references/workers.md) |
|
|
22
|
+
| 明确接入 workflow 引擎动作目录、placement/lease 或运行中止 | [references/workflow-actions.md](references/workflow-actions.md);先核验引擎专用身份 |
|
|
23
|
+
|
|
24
|
+
实施普通 App 接入时读取前两份;已有执行服务时不用改节点部署。
|
|
25
|
+
|
|
26
|
+
## 接入面与凭据
|
|
27
|
+
|
|
28
|
+
| 调用方 | 接口及凭据 |
|
|
29
|
+
| --- | --- |
|
|
30
|
+
| 普通 Portal App 后端 | `https://<portal-host>/svc/task-gateway` + TDT;提交用 `task_gateway.submit`,发现/查询用 `task_gateway.read` |
|
|
31
|
+
| workflow 引擎专用动作调用 | 同 HTTP 基址下 `/workflow/v1/*`;仅 `kind=service`、`azp=workflow`、`task_gateway.workflow_actions` 同时满足 |
|
|
32
|
+
| 已明确采用原生 gRPC 的平台客户端 | 独立 gRPC 地址 + 网关 API Key(可叠加 mTLS),只可提交公开的平台服务;不得用来绕开租户 HTTP 授权 |
|
|
33
|
+
| VM 上的 `xgent-agent` | 独立 gRPC NodeService + Node Token;该 token 不用于 App 提交 |
|
|
34
|
+
|
|
35
|
+
`API_BASE_URL` 若指向内部 `portal-api`,只用于门户 API,不能直接拼 `/svc/task-gateway`。容器内直连 Gateway HTTP 地址仅采用部署配置已明确的地址。`:8081` 是内部支撑面,不是任务 API。旧 HTTP API-Key、admin-ui 和任务 SSE 路由已退场。
|
|
36
|
+
|
|
37
|
+
原生 gRPC 是独立协议:请求 payload 为 JSON 编码字符串,状态为 protobuf 枚举,任务不进入 Portal 租户可见集,且没有 HTTP 提交幂等契约。若用户明确选用它,依据目标部署的 `proto/src/gateway.proto` 和凭据约束接入,不套用本文 HTTP 重试策略。
|
|
38
|
+
|
|
39
|
+
## 调用方实施要点
|
|
40
|
+
|
|
41
|
+
1. **先有业务记录,再有网络提交。** 校验本 App 的租户、用户和业务对象权限;保存 run/step/attempt、目标服务、不可变提交体和幂等键。HTTP 成功取到 task_id 后立即关联保存。业务接口可返回“已受理”和本 App 的 run ID,后台继续查询。
|
|
42
|
+
2. **选择正确身份。** 用户发起的代表调用走用户换票;无用户上下文的后台任务走已授权 SA。长任务恢复需明确后续如何获得合法令牌;不能静默将用户授权失败改为高权限服务态执行。
|
|
43
|
+
3. **处理两层成败。** HTTP 非 2xx 或信封 `ok !== true` 均为 API 调用失败。`ok:true` 的提交响应仅表示受理;只有任务 `state=completed` 才表示执行成功。
|
|
44
|
+
4. **可恢复等待。** 后台按 task_id 轮询,进程重启后继续。使用有上限的退避、抖动和观察期限;等待超时返回“仍可查询”,保留任务关联。`partial_result` 是累积文本,每次替换;`result` 可为任意 JSON 值、字符串或 null。终态入库及后续业务动作按 run/attempt 幂等,避免并发观察者或重复通知多次消费结果。
|
|
45
|
+
5. **区分重传和重做。** 提交结果不确定时,在相同租户和来源归因下重用原 key 与原请求。预算耗尽后保留可恢复记录,不无界重试;不要换 key 规避冲突。明确决定重做已失败的业务执行才建立新 attempt;网关去重不保证执行副作用恰好一次。
|
|
46
|
+
6. **保留业务权限。** Gateway 详情和取消目前只按租户校验;同租户其他用户/来源 App 的任务不会自动被隔离。任何 task_id 都先经本 App 的业务记录授权,再向网关查询或取消;不以“能读到任务”判定访问权。
|
|
47
|
+
|
|
48
|
+
普通任务请求采用 `snake_case`;workflow 动作面采用另一套 `camelCase` 契约。不要把 `taskId/submissionKey/placement/abortIfRunning` 填进普通 `/v1/tasks` 并期待生效。普通面只能取消 pending,停止等待也不代表远端执行已停止。
|
|
49
|
+
|
|
50
|
+
## 验证与交付
|
|
51
|
+
|
|
52
|
+
按改动范围验证可观察结果:成功与执行失败;HTTP 200 + `ok:false`;提交已受理但客户端丢失响应后的同 key 恢复;进程重启恢复查询;JSON/文本结果;累积输出不重复;等待超时及 pending 取消/运行中取消拒绝。验证本 App 拦截同租户越权访问,而不只验证网关跨租户隔离。
|
|
53
|
+
|
|
54
|
+
可用本地 HTTP fixture 覆盖调用方契约;真实闭环应确认任务被目标执行器领取且结果被 App 消费。没有凭据或节点时,明确记录未验证部分,不用 mock 结果声称真实联调成功。仅在任务授权范围内发起测试任务;缺服务/容器时请求已有环境协助,不擅自安装或启动基础设施。
|
|
55
|
+
|
|
56
|
+
交付调用方代码/配置与实际验证结果,指出仍需的平台授权、服务/节点或凭据配置。仅咨询时解释需要的接线,不强制创建文档、部署机器或修改网关。
|
|
57
|
+
|
|
58
|
+
## 契约维护依据
|
|
59
|
+
|
|
60
|
+
本包任务接入契约以 `xgent-ai-task-gateway` 提交 `5e90da9` 为基线(2026-10-16 核对);SSH 接入说明已核对 `aeca179`(1.9.3,2026-10-17)。可整目录移到其他 App 使用。引用的源码路径是维护线索,不是运行依赖。若能访问更新源码,优先核对 `gateway/src/portal/{gate,tasks,routes,onboarding}.rs`、`gateway/src/portal/workflow_actions/`、`gateway/src/agent/config.rs` 和 `proto/src/gateway.proto`;其次参考 `docs/API.md`、`docs/portal-app-contract.md`、`docs/PORTAL-APP-INTEGRATION.md`。部署可能落后于源码,需通过目标环境验证能力。
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Portal 鉴权与调用身份
|
|
2
|
+
|
|
3
|
+
普通 App 任务调用需要 `task_gateway.read` 与 `task_gateway.submit`。建服务、签节点凭据等管理操作另需 `task_gateway.admin` + 用户 `role=admin`,不应作为日常提交权限。App Secret、SA Secret、Node Token 和网关 API Key 是不同凭据。
|
|
4
|
+
|
|
5
|
+
## 代表用户调用
|
|
6
|
+
|
|
7
|
+
在调用方自己的 manifest 合并,保留原有项:
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"exchangeTargets": ["task-gateway"],
|
|
12
|
+
"scopes": ["task_gateway.read", "task_gateway.submit"]
|
|
13
|
+
}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
前端把当前 App 的用户 TDT 交给自己的后端。后端先验证本 App 身份及业务权限,再换取目标 TDT。不能把 `aud=<调用方 App>` 的用户票直接交给 Gateway。
|
|
17
|
+
|
|
18
|
+
后端请求(以下为协议示意,变量均从调用方配置/请求上下文取得):
|
|
19
|
+
|
|
20
|
+
```http
|
|
21
|
+
POST <PORTAL_BASE_URL>/oauth/token
|
|
22
|
+
Content-Type: application/x-www-form-urlencoded
|
|
23
|
+
|
|
24
|
+
grant_type=urn:ietf:params:oauth:grant-type:token-exchange
|
|
25
|
+
&subject_token=<当前 App 用户 TDT,逐字段 URL 编码>
|
|
26
|
+
&audience=task-gateway
|
|
27
|
+
&client_id=<调用方 App key>
|
|
28
|
+
&client_secret=<调用方 App Secret>
|
|
29
|
+
&scope=task_gateway.read%20task_gateway.submit
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
使用 HTTP 库的 form encoder,不手工拼接含 token 的 query。`scope` 可省略以取获准交集,提供时只能收窄。门户根据来源 App 的用户授权、目标声明和请求上界决定结果;以实际获授 scope 为准,不能靠多请求 scope 提权。
|
|
33
|
+
|
|
34
|
+
除了提交 manifest,门户还须有生效的交换布线:来源允许 `token_exchange`、目标允许交换且白名单含来源、来源到目标授权关系存在、用户同意此交换。新用户可由首次进入 App 的共授覆盖;接入晚于原 consent 的存量用户可能缺同意。缺同意时引导至门户的 `/exchange-consent?source=<app>&target=task-gateway&return=<编码的返回地址>`,不要代填用户同意记录。
|
|
35
|
+
|
|
36
|
+
读取 `access_token`、`expires_in` 和 `scope`;若目标门户使用 `{ok,data}` 信封,先检查并解包。App Secret 只放后端。
|
|
37
|
+
|
|
38
|
+
换票缓存至少区分租户、来源 App、目标 App、用户、本次请求 scope/授权上下文;按有效期提前失效,不能按目标 App 单独缓存造成用户串票。已有门户 SDK/代理能正确换票时复用,不另建平行密钥流。
|
|
39
|
+
|
|
40
|
+
## 后台服务态调用
|
|
41
|
+
|
|
42
|
+
无当前用户的队列恢复、调度等使用门户 SA `client_credentials`。给用户 manifest 增加 `scopes` 不会给来源 SA 自动增加权限;平台代建的调用方 SA 需实际授予 `task_gateway.read/submit`(通过其服务权限声明/平台配置),并限定租户范围。
|
|
43
|
+
|
|
44
|
+
单租户也可由租户管理员在 `/admin/service-accounts` 为已安装 Task Gateway 创建专用调用凭据,选择这两个 scope。此凭据绑定的 `azp` 可能是 `task-gateway`,不要假设必为调用方 App;持久化任务恢复需要维持原来源归因,不能随意更换凭据类别。
|
|
45
|
+
|
|
46
|
+
```http
|
|
47
|
+
POST <API_BASE_URL>/api/tokens/service
|
|
48
|
+
Authorization: Basic <调用方 SA client_id:client_secret 的 Basic 编码>
|
|
49
|
+
Content-Type: application/json
|
|
50
|
+
|
|
51
|
+
{
|
|
52
|
+
"grant_type": "client_credentials",
|
|
53
|
+
"tenant_id": "<从本 App 已授权业务记录确定的租户>",
|
|
54
|
+
"scope": "task_gateway.read task_gateway.submit"
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
响应先检查 HTTP 与信封,当前门户服务签票常为 `data.access_token`,兼容 `data.token` 时依实际签发契约处理;检查有效期与实际权限。不要使用 Gateway 自身用于 introspection 的 SA 密钥作为调用方凭据。
|
|
59
|
+
|
|
60
|
+
**用户票和服务票的 audience 不同:** 当前 `gateway/src/portal/gate.rs::identity_from_claims` 仅要求用户票 `(listingKey ?? aud)=task-gateway`。服务态票的 `aud/listingKey` 可以是来源 SA clientId,例如 `reports-server`,来源 App 由 `azp` 归因;不要因其 audience 不是 `task-gateway` 就拒绝合法后台调用。两类都须是有效票、具有非空真实 `tenant_id` 和相应 scopes;服务票无 `user_id`,不因此拥有 admin role。
|
|
61
|
+
|
|
62
|
+
长任务持久化业务状态,令牌按有效期刷新/重取,不持久化首次用户 token 当长期凭据。以服务身份继续用户发起的任务,需要本 App 已明确的后台执行授权;无该授权时要求用户重新授权并保留可恢复状态。
|
|
63
|
+
|
|
64
|
+
## 鉴权排错
|
|
65
|
+
|
|
66
|
+
| 现象 | 核查 |
|
|
67
|
+
| --- | --- |
|
|
68
|
+
| 401 `INVALID_TOKEN` | 用户票 audience 错误、过期/吊销、无有效租户;不要把服务票的来源 audience 当成故障 |
|
|
69
|
+
| 403 `INSUFFICIENT_SCOPE` | 用户授权交集或 SA 实际权限缺 read/submit;检查当前签发/自省结果 |
|
|
70
|
+
| `EXCHANGE_NOT_ALLOWED` / `GRANT_NOT_ALLOWED` | 交换授权、目标白名单、来源 grant 是否生效 |
|
|
71
|
+
| `EXCHANGE_CONSENT_REQUIRED` | 引导该用户补跨 App 同意,不降级成空列表或高权限 SA |
|
|
72
|
+
| `SECRET_INVALID` | 来源 App Secret 与门户保存值是否漂移;不是 SA Secret |
|
|
73
|
+
| 503 `INTROSPECT_FAILED` | Gateway 到 Portal 的自省连接或 Gateway 自身 SA;交网关运维处理 |
|
|
74
|
+
|
|
75
|
+
用户 token 401 可在合法刷新/重新授权后有限重试。403、交换配置或 consent 失败不应无界刷新。不能用 payload/metadata/自报头覆盖租户、user_id 或 origin_app。
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# 普通 App 的异步任务 HTTP 契约
|
|
2
|
+
|
|
3
|
+
所有路径相对于 `TASK_GATEWAY_BASE_URL`,通常为 `https://<portal-host>/svc/task-gateway`。带 `Authorization: Bearer <合法 TDT>`。业务响应为 `{ok:true,data}` 或 `{ok:false,error:{code,message,details?}}`,业务失败常用 HTTP 200;认证/授权、限流和依赖故障还可能为 401/403/429/503。代理可能返回非 JSON 错误页,客户端应保留 HTTP 状态并报告协议/传输错误,不能把解析失败当任务失败。
|
|
4
|
+
|
|
5
|
+
## 发现和提交
|
|
6
|
+
|
|
7
|
+
| 方法 | 路径 | Scope | 数据 |
|
|
8
|
+
| --- | --- | --- | --- |
|
|
9
|
+
| GET | `/v1/services` | `task_gateway.read` | `data.items`:`name,display_name,description,active_nodes,runtime_scope,owned,provisioned` |
|
|
10
|
+
| POST | `/v1/tasks` | `task_gateway.submit` | 需 `Idempotency-Key`;返回 `data.task_id` |
|
|
11
|
+
| GET | `/v1/tasks/{task_id}` | `task_gateway.read` | 详情,含 payload、状态和结果 |
|
|
12
|
+
| GET | `/v1/tasks?service=...&state=...&limit=...&cursor=...` | `task_gateway.read` | `data.items/next_cursor`;列表没有 payload |
|
|
13
|
+
| POST | `/v1/tasks/{task_id}/cancel` | `task_gateway.submit` | 无请求体;仅 pending 可取消 |
|
|
14
|
+
|
|
15
|
+
服务目录包含本租户自有服务和公开的平台服务。使用真实 `name`,不把展示名当物理名。`runtime_scope` 表示 `tenant_managed/platform_managed`;提交还要求 `provisioned=true`。`active_nodes>0` 只证明节点在线,仍需验证执行能力。
|
|
16
|
+
|
|
17
|
+
以下示例假定目标 agent 的 `service_key.path=service`;服务名、业务 ID 与 payload 字段需换成目标服务的实际契约:
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
{
|
|
21
|
+
"service_name": "report-worker-a1b2c3-d4e5",
|
|
22
|
+
"payload": {
|
|
23
|
+
"service": "report-worker-a1b2c3-d4e5",
|
|
24
|
+
"operation": "build-report",
|
|
25
|
+
"report_id": "report-001"
|
|
26
|
+
},
|
|
27
|
+
"metadata": {"run_id": "run-001", "attempt": "1"},
|
|
28
|
+
"streaming": false
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# 业务后端预先保存 request.json 和 IDEMPOTENCY_KEY;不要每次重传重新生成。
|
|
34
|
+
curl --silent --show-error "$TASK_GATEWAY_BASE_URL/v1/tasks" \
|
|
35
|
+
-H "Authorization: Bearer $TG_TDT" \
|
|
36
|
+
-H 'Content-Type: application/json' \
|
|
37
|
+
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
|
|
38
|
+
--data-binary @request.json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
curl 示例仅展示传输;实现中还须检查 HTTP 状态及响应 `ok`,成功时读取 `data.task_id`,不要从顶层读 task_id。
|
|
42
|
+
|
|
43
|
+
- `payload` 在网关层可为任意 JSON;执行器 dispatch 从配置的 dot-path 读取服务名。常用 `payload.service == service_name == agent services[].name`;嵌套路径则按执行配置传。没有该字段仍可能受理,随后报 `service_key_missing/mismatch`。
|
|
44
|
+
- `metadata` 必须是 string → string;对象/数字先按业务约定序列化。`_` 开头的键保留给网关,调用方提供时会被剥离。普通 metadata 不构成可信身份。
|
|
45
|
+
- `streaming` 默认 false;true 还需要流式 executor 配置,不会自动改造 CLI。
|
|
46
|
+
- `callback_url` 可选,缺省可能继承租户默认回调。payload 会在详情回显,凭据应留在后端/执行器环境,勿随任务传。
|
|
47
|
+
|
|
48
|
+
## 持久化与幂等
|
|
49
|
+
|
|
50
|
+
在第一次发请求前持久化:本 App 的租户/用户/业务对象、run/step/attempt、身份归因策略、目标服务、完整请求体和幂等键。保存不可变请求快照,避免重试时加入新时间戳等字段。接收 task_id 后立即关联;响应丢失或保存 task_id 前崩溃时,用原记录恢复提交。
|
|
51
|
+
|
|
52
|
+
`Idempotency-Key` 是 1–128 个可打印 ASCII 字符。命名例 `reports:<唯一runId>:<stepId>:attempt:1`;不要把秘密放进 key。去重范围为 **(tenant_id, origin_app, key)**,不含 user_id 或 service_name。相同租户和来源下的不同用户/服务必须避免碰撞。
|
|
53
|
+
|
|
54
|
+
| 情况 | 处理 |
|
|
55
|
+
| --- | --- |
|
|
56
|
+
| 网络超时/断线,提交是否落地未知 | 原身份归因、原 key、原请求体重传,取得原 task_id |
|
|
57
|
+
| 同 key 改了 service/payload/metadata/streaming/callback_url | `IDEMPOTENCY_CONFLICT`;检查业务记录,不改 key 掩盖问题 |
|
|
58
|
+
| 已确认失败,产品策略决定重新执行 | 创建新 attempt 和新 key;旧 key 只会回放旧任务 |
|
|
59
|
+
| TDT 到期 | 合法刷新/重取,维持原 tenant 和 origin;换成不同 azp 的 SA 可能变成新去重空间 |
|
|
60
|
+
|
|
61
|
+
提交重传及轮询沿用 App 的有限重试预算,网络/429/503 可退避并加抖动(有 `Retry-After` 时尊重);预算耗尽保留恢复入口。参数、权限、同意或幂等冲突先处理原因,不自动换身份或重做任务。幂等只保证提交去重,节点重投、超时与外部系统副作用仍需业务幂等或补偿。
|
|
62
|
+
|
|
63
|
+
任务与幂等记录有保留期,不是永久去重账本。当前 `gateway/src/audit.rs` 按约 30 天清理 tasks 分区,再清理对应幂等记录;过期后同 key 可能创建新任务。本 App 应及时保存终态结果;恢复很久以前的未知执行或遇到 NOT_FOUND 时,先核对业务账本和目标部署保留策略,不直接重提有副作用的工作。
|
|
64
|
+
|
|
65
|
+
## 状态与结果
|
|
66
|
+
|
|
67
|
+
普通 HTTP 面的状态是小写六态:
|
|
68
|
+
|
|
69
|
+
| 状态 | 调用方行为 |
|
|
70
|
+
| --- | --- |
|
|
71
|
+
| `pending` | 已排队,继续观察;无节点可长期停留 |
|
|
72
|
+
| `assigned` / `running` | 节点已领取/执行,继续观察 |
|
|
73
|
+
| `streaming` | 继续观察,可展示 `partial_result` |
|
|
74
|
+
| `completed` | 成功终态,保存/消费 result |
|
|
75
|
+
| `failed` | 失败终态,保存 error_message;取消也归此态 |
|
|
76
|
+
|
|
77
|
+
不要把 submit 成功当执行完成,不使用 `succeeded/cancelled` 作为普通任务终态。
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"ok": true,
|
|
82
|
+
"data": {
|
|
83
|
+
"task_id": "01900000-0000-7000-8000-000000000001",
|
|
84
|
+
"state": "completed",
|
|
85
|
+
"service_name": "report-worker-a1b2c3-d4e5",
|
|
86
|
+
"payload": {"service": "report-worker-a1b2c3-d4e5", "report_id": "report-001"},
|
|
87
|
+
"result": {"report_id": "report-001", "file_id": "file-001"},
|
|
88
|
+
"error_message": null,
|
|
89
|
+
"partial_result": null,
|
|
90
|
+
"metadata": {"run_id": "run-001", "attempt": "1"}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
详情还带 `created_at/completed_at` 以及 `tenant_id/user_id/origin_app`。示例省略这些字段。result 在网关中可解析为 JSON 时直接返回 JSON 值,否则返回字符串,空结果为 null;不能一律 `JSON.parse(result)`,也不能把 null 或空字符串当失败。failed 时读取 `error_message`,按执行服务契约保留 result 中的错误细节。多个 poller 或重复回调都可能观察同一终态,本 App 按 run/attempt 条件更新,并对通知、计费或后续步骤等结果消费做幂等。
|
|
96
|
+
|
|
97
|
+
可从每 1–2 秒轮询起步,再按任务时长逐步放缓。每次取一个有效令牌,进程重启从已保存 task_id 恢复;本次等待期限、单次 HTTP 超时和执行器超时分别配置。期限到达只结束观察,不把任务记成已停止;没有证据时不另起新任务。
|
|
98
|
+
|
|
99
|
+
`partial_result` 是累积文本:连续拿到 `"a"`、`"ab"` 应展示 `"ab"`。Portal HTTP 没有 `/v1/tasks/{id}/stream`、SSE 或 WebSocket 订阅;需要向浏览器推送时由本 App 后端轮询再转发。
|
|
100
|
+
|
|
101
|
+
列表默认按用户过滤;`scope=tenant` 需管理员,服务态无 user_id 时看全租户。详情/取消只做租户校验;本 App 必须用自己保存的 run/task 关联执行用户和业务权限检查。列表默认过滤不能代替该授权。
|
|
102
|
+
|
|
103
|
+
## 取消与回调
|
|
104
|
+
|
|
105
|
+
普通 `/v1/tasks/{id}/cancel` 只取消 pending,成功 `data={task_id,state:"failed"}`;领取后返回 HTTP 200 + `INVALID_STATE`。重复或竞态请求可能已进入终态,重新查权威状态。添加 `abortIfRunning` 不能让此路由终止运行进程;专用运行中止仅在 workflow 动作面。
|
|
106
|
+
|
|
107
|
+
可选回调优先级:请求 `callback_url` → 租户默认 → 无。默认拒绝 loopback、私网和 link-local,提交和投递均有 SSRF 检查。内部 `portal-api` 或 App 容器地址不能直接当公开回调。
|
|
108
|
+
|
|
109
|
+
回调 POST 只有 `{"task_id":"...","state":"..."}`;没有 result、用户 TDT、自定义认证头或当前内建签名。它不能直接通过需要 TDT 的普通业务路由。若采用回调,仅接受本 App 已关联的 task_id,把通知去重后用自己的合法 TDT 回查权威详情,再更新业务状态。投递有重试但不保证送达,保留轮询恢复路径;普通接入可直接只做轮询。
|
|
110
|
+
|
|
111
|
+
## 非鉴权故障定位
|
|
112
|
+
|
|
113
|
+
| 现象 | 先检查 |
|
|
114
|
+
| --- | --- |
|
|
115
|
+
| 404/502 或非 JSON | Gateway 安装/启用、实际基址、Portal 反代;是否误拼内部 API_BASE_URL |
|
|
116
|
+
| `NOT_FOUND` | 服务物理名、租户可见性、provisioned;任务是否属于当前租户或已过保留期 |
|
|
117
|
+
| `VALIDATION_FAILED` | 幂等头、JSON、metadata 字符串值、callback SSRF |
|
|
118
|
+
| 长期 pending | 服务 active_nodes、gRPC 出站连接、节点 token 服务集合、并发容量 |
|
|
119
|
+
| 领取后失败 | 对齐 payload dispatch 路径、执行程序/运行账号、依赖、环境凭据与 stderr |
|
|
120
|
+
|
|
121
|
+
行为依据:`gateway/src/portal/tasks.rs`、`gateway/src/queue/redis.rs`、`gateway/src/metadata_guard.rs`、`gateway/src/portal/respond.rs`。不要求调用方自行实现网关的 canonical JSON 摘要,保存并重传原请求即可。
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# 执行服务与 VM 对齐
|
|
2
|
+
|
|
3
|
+
仅在需要新增执行能力或排查执行端时使用本参考。调用已有服务的 App 只需掌握其 payload/结果契约,不必安装 agent。
|
|
4
|
+
|
|
5
|
+
## 服务与机器的分工
|
|
6
|
+
|
|
7
|
+
App 调用 `service_name`,节点反向领取该服务队列;普通任务请求没有用于直接指定机器的 `host_id/node_id/cwd`。确需某 VM 上的本地仓库/CLI 会话时,可将专门服务只部署到该 VM,并保存业务工作区到服务名的绑定。现有服务亲和配置可影响分配,但普通 metadata 不是任意节点派发接口。
|
|
8
|
+
|
|
9
|
+
租户管理员创建 `POST /v1/services`(`task_gateway.admin` + 用户 admin role),填写展示名、描述、可选 template_id 和超时;保存服务器返回的真实 name,创建体中的 name 不用于指定物理名。服务 `provisioned=false` 时用 `POST /v1/services/{name}/provision` 修复队列,无需重复创建。
|
|
10
|
+
|
|
11
|
+
手工接入由管理员用 `POST /v1/node-tokens` 为该机的完整服务集合签发 Node Token,凭据只展示一次。
|
|
12
|
+
|
|
13
|
+
先确认服务在线节点,再验证实际任务。缺 VM、依赖服务或容器时请求用户/运维提供环境,不擅自拉镜像或安装。
|
|
14
|
+
|
|
15
|
+
## SSH 自动部署的能力确认
|
|
16
|
+
|
|
17
|
+
需要新增机器且选择 SSH 自动部署时,先用具有 `task_gateway.read` 的 TDT 调用目标 Gateway 的 `GET /v1/onboarding`。HTTP 成功且信封 `ok:true` 后,读取 `data.auto_deploy`;鉴权或请求失败不能当成能力关闭。`auto_deploy=false` 时向网关维护方提供实际环境和版本,按用户选择使用手工接入或等待开通;不要把“接异步任务”默认扩展成机器部署。
|
|
18
|
+
|
|
19
|
+
1.9.3 的打包配置默认启用 SSH 部署,根密钥由**网关自己的 manifest** 声明生成,并由支持该能力的门户在同一部署复用。调用方 App 不声明或持有网关根密钥。正常开通和升级由网关维护方通过 manifest、新镜像与发布链完成,不要求管理员登录系统手改环境,也不能通过重新生成存量密钥绕过故障。目标门户和网关仍须完成对应升级与发布;新版 skill 或本地 onebox 验证通过不代表线上能力已开启。
|
|
20
|
+
|
|
21
|
+
能力确认后仍需准备目标服务/模板,并由机器所有者安装租户 SSH 公钥、核对目标主机指纹。自动部署会按保存快照生成完整 agent 配置并重启该机 agent,可能覆盖手工 YAML;当前服务 PATCH 只改展示名/描述,不是 executor 更新接口。五步向导可见只证明入口可用,实际部署成功还须确认 agent 上线并完成真实任务。
|
|
22
|
+
|
|
23
|
+
## 最小多服务格式配置
|
|
24
|
+
|
|
25
|
+
以下单服务配置使用当前 `services[].executor.kind` 格式;所有名称/路径均为需要替换的示例。Node Token 由 agent 进程环境注入,机器只需出站连接 gRPC,不走 Portal `/svc`。
|
|
26
|
+
|
|
27
|
+
```yaml
|
|
28
|
+
agent_id: "report-vm-01"
|
|
29
|
+
node_token: "${XGENT_NODE_TOKEN}"
|
|
30
|
+
service_key:
|
|
31
|
+
path: "service"
|
|
32
|
+
gateway:
|
|
33
|
+
address: "gateway.example.com:50051"
|
|
34
|
+
tls: true
|
|
35
|
+
services:
|
|
36
|
+
- name: "report-worker-a1b2c3-d4e5"
|
|
37
|
+
max_concurrent_tasks: 1
|
|
38
|
+
executor:
|
|
39
|
+
kind: cli
|
|
40
|
+
command: ["/usr/bin/python3", "/opt/task-handlers/report.py"]
|
|
41
|
+
input_mode: stdin
|
|
42
|
+
timeout_secs: 300
|
|
43
|
+
cwd: "/srv/report-work"
|
|
44
|
+
response:
|
|
45
|
+
success:
|
|
46
|
+
body: "<stdout>"
|
|
47
|
+
failed:
|
|
48
|
+
body: "<stderr>"
|
|
49
|
+
max_bytes: 1048576
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
agent_id 应稳定,不在每次重启时随机生成,尤其使用 lease 时。Node Token 必须允许配置中的所有服务且租户归属相符。开发明文 gRPC 可按实际部署将 tls 设为 false;生产使用平台给定 TLS 地址和信任配置,不默认跳过验证。
|
|
53
|
+
|
|
54
|
+
服务 `task_timeout_secs` 应覆盖执行器 timeout 并留出回传余量。App 的 HTTP/观察超时不替代上述执行时限。
|
|
55
|
+
|
|
56
|
+
## payload 与执行模式
|
|
57
|
+
|
|
58
|
+
`service_key.path` 是从提交 payload 读取服务名的 dot-path。本例要求 `payload.service` 等于服务真实 name;该校验发生在执行侧。stdin 只收到整个 payload,HTTP metadata 不自动并入 stdin。需要 operation/report_id/workspace_id 等参数时放入 payload,并在适配器中校验。
|
|
59
|
+
|
|
60
|
+
| executor kind | 适用能力 |
|
|
61
|
+
| --- | --- |
|
|
62
|
+
| `cli` | 一次非交互命令执行,退出码 0 成功;按 response 模板返回 stdout/stderr |
|
|
63
|
+
| `sync-api` | agent 调用已有同步 HTTP 服务 |
|
|
64
|
+
| `async-api` | agent 提交下游异步 API 并按配置轮询下游 |
|
|
65
|
+
| `streaming-cli` | 持续转发 CLI stdout,App 提交需 streaming=true |
|
|
66
|
+
| `streaming-sync-api` | 消费下游流式 HTTP 响应 |
|
|
67
|
+
|
|
68
|
+
这些是执行端模式;App 到 Gateway 的提交/回查始终可以是异步 HTTP。不要因 App 要异步,就要求下游必须用 async-api。采用 API executor 时,以实际下游提交/轮询/流格式补配置;当前 schema 维护入口是 `gateway/src/agent/config.rs`,不要把 CLI 示例直接改 kind 当作完整 API 配置。
|
|
69
|
+
|
|
70
|
+
CLI 适配器解析 JSON 后选择已配置能力,使用 argv 调用固定程序;网关不会自动执行 payload.command。用户传工作区逻辑 ID,再映射允许目录,避免直接采信任意绝对路径或 shell 文本。`cwd` 与 executor.env 是本机启动配置,不按任务 payload 动态求值;`<payload.prompt>` 当前会产生带引号的 JSON 字符串,不能当已解码 argv,复杂输入优先 stdin。
|
|
71
|
+
|
|
72
|
+
仓库、工具、模型登录/凭据、产物上传均由 VM/App 准备;systemd 运行环境不会自动继承交互终端 export。模型密钥不放任务 payload,执行输出控制在 response.max_bytes 内,大文件上传对象/文件服务后返回引用,本地路径不自动变下载链接。
|
|
73
|
+
|
|
74
|
+
需要流式 CLI 时,在 executor 内设置:
|
|
75
|
+
|
|
76
|
+
```yaml
|
|
77
|
+
kind: streaming-cli
|
|
78
|
+
# command/input_mode/timeout_secs 等 CLI 配置仍须提供
|
|
79
|
+
streaming:
|
|
80
|
+
response_format: lines
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
真实进程需换行并 flush。当前 streaming-cli 按原始 stdout 行转发,不按 content_path 自动提取某个 CLI 的 JSON 事件;NDJSON 等要由适配器/App 解析。
|
|
84
|
+
|
|
85
|
+
`max_concurrent_tasks` 按单服务、单 agent 限制,多服务仍可并行;同仓库写入须调用方串行化、加锁或使用独立 worktree。Gateway 不创建/同步仓库、提供交互终端或管理 coding-agent 会话;task_id 不是 CLI session_id,多节点也不共享本地会话。App 等待超时、普通 cancel 拒绝、乃至任务已 failed,都不能单独证明远端所有进程和外部副作用已停止;严格生命周期由执行适配层管理并验证。
|