diff --git a/.fuze/installed.json b/.fuze/installed.json index 85267efd..23dfba50 100644 --- a/.fuze/installed.json +++ b/.fuze/installed.json @@ -1,1777 +1,1790 @@ -{ - "schemaVersion": 1, - "files": { - ".claude/agents/a2a-maintainer.md": { - "capability": "core-agents", - "mode": "managed", - "sourcePath": "agents/a2a-maintainer.md", - "sourceSha256": "07663ea2678e6bf142fe2669399c1a80bb50ebbe555a78e4744177ac0e23bd4c", - "renderedSha256": "07663ea2678e6bf142fe2669399c1a80bb50ebbe555a78e4744177ac0e23bd4c" - }, - ".claude/agents/agile-manager.md": { - "capability": "core-agents", - "mode": "managed", - "sourcePath": "agents/agile-manager.md", - "sourceSha256": "d530d5adfcda0b6333d62fa6b3227678438a4a16ce174df2a3647bb2b4170760", - "renderedSha256": "d530d5adfcda0b6333d62fa6b3227678438a4a16ce174df2a3647bb2b4170760" - }, - ".claude/agents/backend-engineer.md": { - "capability": "core-agents", - "mode": "managed", - "sourcePath": "agents/backend-engineer.md", - "sourceSha256": "19d770b9133bff5fa199affe79e15d91c0eeeaef145cfff1fc39522a1f40a312", - "renderedSha256": "19d770b9133bff5fa199affe79e15d91c0eeeaef145cfff1fc39522a1f40a312" - }, - ".claude/agents/billing-payments-engineer.md": { - "capability": "core-agents", - "mode": "managed", - "sourcePath": "agents/billing-payments-engineer.md", - "sourceSha256": "ff16996460f0a135a9820fcfe92045ae3e8b13df385999847cc8a638571bf8f7", - "renderedSha256": "ff16996460f0a135a9820fcfe92045ae3e8b13df385999847cc8a638571bf8f7" - }, - ".claude/agents/contract-designer.md": { - "capability": "core-agents", - "mode": "managed", - "sourcePath": "agents/contract-designer.md", - "sourceSha256": "5623bf51e3eb1b5a45d3b0af4d0b32b618a7ac3a4bb1332ec09e7bcdc4e44b86", - "renderedSha256": "5623bf51e3eb1b5a45d3b0af4d0b32b618a7ac3a4bb1332ec09e7bcdc4e44b86" - }, - ".claude/agents/database-engineer.md": { - "capability": "core-agents", - "mode": "managed", - "sourcePath": "agents/database-engineer.md", - "sourceSha256": "469c17a2e7eef16a5154128440630841bd8b52d6cc8ab0b36f13ba324b4660d7", - "renderedSha256": "469c17a2e7eef16a5154128440630841bd8b52d6cc8ab0b36f13ba324b4660d7" - }, - ".claude/agents/devops-engineer.md": { - "capability": "core-agents", - "mode": "managed", - "sourcePath": "agents/devops-engineer.md", - "sourceSha256": "4d67f10a83df88cd5cb4e3d0be2f70a364c8c0701009e167221f57e207ec97fe", - "renderedSha256": "4d67f10a83df88cd5cb4e3d0be2f70a364c8c0701009e167221f57e207ec97fe" - }, - ".claude/agents/docs-maintainer.md": { - "capability": "core-agents", - "mode": "managed", - "sourcePath": "agents/docs-maintainer.md", - "sourceSha256": "0bea0439212a2ef3bb1d612b67f7ea329ac3039bced4018b6079aa25754f367c", - "renderedSha256": "0bea0439212a2ef3bb1d612b67f7ea329ac3039bced4018b6079aa25754f367c" - }, - ".claude/agents/feature-flags-engineer.md": { - "capability": "core-agents", - "mode": "managed", - "sourcePath": "agents/feature-flags-engineer.md", - "sourceSha256": "64c25ea55acbe4fabbacad7a3f838b7aa806d3383a76fda26ff464517ff66b27", - "renderedSha256": "64c25ea55acbe4fabbacad7a3f838b7aa806d3383a76fda26ff464517ff66b27" - }, - ".claude/agents/frontend-engineer.md": { - "capability": "core-agents", - "mode": "managed", - "sourcePath": "agents/frontend-engineer.md", - "sourceSha256": "c6e35d44bd6768c6d5969546d76a668e4ba3ef62d175763b25ac96a5b3d71ce4", - "renderedSha256": "c6e35d44bd6768c6d5969546d76a668e4ba3ef62d175763b25ac96a5b3d71ce4" - }, - ".claude/agents/frontend-test-engineer.md": { - "capability": "core-agents", - "mode": "managed", - "sourcePath": "agents/frontend-test-engineer.md", - "sourceSha256": "852dc7ee0010c5b76e7fa00a553502e61acf227f28d02866a16bfc1cccd17e4d", - "renderedSha256": "852dc7ee0010c5b76e7fa00a553502e61acf227f28d02866a16bfc1cccd17e4d" - }, - ".claude/agents/fuzeinfra-expert.md": { - "capability": "core-agents", - "mode": "managed", - "sourcePath": "agents/fuzeinfra-expert.md", - "sourceSha256": "7914c87c5ed8adbbaa44c62bfd1d68d2cca4f528d2591885dd9e486645ebbbdb", - "renderedSha256": "7914c87c5ed8adbbaa44c62bfd1d68d2cca4f528d2591885dd9e486645ebbbdb" - }, - ".claude/agents/security.md": { - "capability": "core-agents", - "mode": "managed", - "sourcePath": "agents/security.md", - "sourceSha256": "ab941e989cab87edbd623fd5b9bf912c1e2531cd7d80ea4e06bd17efc6919f33", - "renderedSha256": "ab941e989cab87edbd623fd5b9bf912c1e2531cd7d80ea4e06bd17efc6919f33" - }, - ".claude/agents/telephony-integrator.md": { - "capability": "core-agents", - "mode": "managed", - "sourcePath": "agents/telephony-integrator.md", - "sourceSha256": "47743dd70ccd7a3a3f00510bfe87bc0c5dd1e91a1b2d73fba1939faa48d46ff8", - "renderedSha256": "47743dd70ccd7a3a3f00510bfe87bc0c5dd1e91a1b2d73fba1939faa48d46ff8" - }, - ".claude/agents/test-engineer.md": { - "capability": "core-agents", - "mode": "managed", - "sourcePath": "agents/test-engineer.md", - "sourceSha256": "13d5767b93bd23abb310c76d9f85fafbc4b32467af3a220d5cf985b2c016a9fb", - "renderedSha256": "13d5767b93bd23abb310c76d9f85fafbc4b32467af3a220d5cf985b2c016a9fb" - }, - ".claude/skills/api-contract-first/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/api-contract-first/SKILL.md", - "sourceSha256": "83f269decf84233f7ac91f7c05340737a13752d1c5b334cbd88df23a5e2d9300", - "renderedSha256": "83f269decf84233f7ac91f7c05340737a13752d1c5b334cbd88df23a5e2d9300" - }, - ".claude/skills/design-system-conformance/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/design-system-conformance/SKILL.md", - "sourceSha256": "7d1950ec4c070b26affc6f462b6111ff045802fec0d87d972370059b6b75f9e9", - "renderedSha256": "7d1950ec4c070b26affc6f462b6111ff045802fec0d87d972370059b6b75f9e9" - }, - ".claude/skills/design-system-inheritance/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/design-system-inheritance/SKILL.md", - "sourceSha256": "507f39db4a2a4a759794464a7b653d7eb6c5f9ce12340d74f3f21ac1429c9e04", - "renderedSha256": "507f39db4a2a4a759794464a7b653d7eb6c5f9ce12340d74f3f21ac1429c9e04" - }, - ".claude/skills/doc-validity/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/doc-validity/SKILL.md", - "sourceSha256": "e7d0d4c99895edf3fd604fa8878b39e6554165501765c74e573ef1b6e2740210", - "renderedSha256": "e7d0d4c99895edf3fd604fa8878b39e6554165501765c74e573ef1b6e2740210" - }, - ".claude/skills/feature-flags/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/feature-flags/SKILL.md", - "sourceSha256": "e03f51ed05aa8bb50287a20d10a307cc3a23970173c123bfd3673a92b7346009", - "renderedSha256": "e03f51ed05aa8bb50287a20d10a307cc3a23970173c123bfd3673a92b7346009" - }, - ".claude/skills/feature-tech-planning/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/feature-tech-planning/SKILL.md", - "sourceSha256": "7b0797dc973404c94d02a5d57258f8befb7b490f7643f9b01619eed1e83c9127", - "renderedSha256": "7b0797dc973404c94d02a5d57258f8befb7b490f7643f9b01619eed1e83c9127" - }, - ".claude/skills/fuzefront-ui-package/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/fuzefront-ui-package/SKILL.md", - "sourceSha256": "516db73f20f26cbf99f2b37b5adc48f2d7c192e61612092570f2ca97ee41b9b8", - "renderedSha256": "516db73f20f26cbf99f2b37b5adc48f2d7c192e61612092570f2ca97ee41b9b8" - }, - ".claude/skills/logging/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/logging/SKILL.md", - "sourceSha256": "b80bd1a00ad2ad001c357ad66d486bffa6b8d691a04a69c56d8ccd810b854f4b", - "renderedSha256": "b80bd1a00ad2ad001c357ad66d486bffa6b8d691a04a69c56d8ccd810b854f4b" - }, - ".claude/skills/managed-agents-roles/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/managed-agents-roles/SKILL.md", - "sourceSha256": "888ffd0b73f3233f27f9b60b3ca5415fba65399ee6a471571a6be98f43e61437", - "renderedSha256": "888ffd0b73f3233f27f9b60b3ca5415fba65399ee6a471571a6be98f43e61437" - }, - ".claude/skills/mobile-conformance/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/mobile-conformance/SKILL.md", - "sourceSha256": "476983a3b24b634d1a8c0e33e7475d4053c31ed20ac1a2ccf6bea2cc3c362046", - "renderedSha256": "476983a3b24b634d1a8c0e33e7475d4053c31ed20ac1a2ccf6bea2cc3c362046" - }, - ".claude/skills/model-cascade/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/model-cascade/SKILL.md", - "sourceSha256": "1673f06d41c25b894fc587e55bd02da02e338bbc3d9eee4d69a3b5031c3f1913", - "renderedSha256": "1673f06d41c25b894fc587e55bd02da02e338bbc3d9eee4d69a3b5031c3f1913" - }, - ".claude/skills/repo-hardening/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/repo-hardening/SKILL.md", - "sourceSha256": "b33d38d40d677f2f62385971efb9ba7401a47aa22cf9d642ef70854b56cf688b", - "renderedSha256": "b33d38d40d677f2f62385971efb9ba7401a47aa22cf9d642ef70854b56cf688b" - }, - ".claude/skills/ticket-creator/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-creator/SKILL.md", - "sourceSha256": "401d94c0ff9a99acabdfc6de19a0338c9a2337abf53b5bf13a6b39eca7e05e78", - "renderedSha256": "401d94c0ff9a99acabdfc6de19a0338c9a2337abf53b5bf13a6b39eca7e05e78" - }, - ".claude/skills/ticket-creator/backend/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-creator/backend/SKILL.md", - "sourceSha256": "f4254bc5a8cda575acdee84bbb8769fc353e5a60fcd90a369f3ee099805331b0", - "renderedSha256": "f4254bc5a8cda575acdee84bbb8769fc353e5a60fcd90a369f3ee099805331b0" - }, - ".claude/skills/ticket-creator/bug/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-creator/bug/SKILL.md", - "sourceSha256": "bb5faa8e5b9aa8b627c65bce935bbe73df4d95c28af63589a48bd76e18fbbd42", - "renderedSha256": "bb5faa8e5b9aa8b627c65bce935bbe73df4d95c28af63589a48bd76e18fbbd42" - }, - ".claude/skills/ticket-creator/devops/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-creator/devops/SKILL.md", - "sourceSha256": "9c6d38d7f96ff200c8ca8217a3de3850d2ac2945728a0a16199e0fc318baa84d", - "renderedSha256": "9c6d38d7f96ff200c8ca8217a3de3850d2ac2945728a0a16199e0fc318baa84d" - }, - ".claude/skills/ticket-creator/docs/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-creator/docs/SKILL.md", - "sourceSha256": "7ef59d846b605c5a3ff8362a700d3d88fca62365bfb03bd4e3761994a1e63bd4", - "renderedSha256": "7ef59d846b605c5a3ff8362a700d3d88fca62365bfb03bd4e3761994a1e63bd4" - }, - ".claude/skills/ticket-creator/epic/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-creator/epic/SKILL.md", - "sourceSha256": "9e66e9e76a2209b1c81f1086389f02dc8c9187f9e1418f5b5e27d49cf3db94b5", - "renderedSha256": "9e66e9e76a2209b1c81f1086389f02dc8c9187f9e1418f5b5e27d49cf3db94b5" - }, - ".claude/skills/ticket-creator/frontend/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-creator/frontend/SKILL.md", - "sourceSha256": "b4400c8aabfac295364fe1e326adfe0085eef35ff772b9f10d46a28e42764899", - "renderedSha256": "b4400c8aabfac295364fe1e326adfe0085eef35ff772b9f10d46a28e42764899" - }, - ".claude/skills/ticket-creator/qa/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-creator/qa/SKILL.md", - "sourceSha256": "020e1c3a40efa097f9dc883137a0b9937ddc68f7cc32da739957f2b3dbcd3d92", - "renderedSha256": "020e1c3a40efa097f9dc883137a0b9937ddc68f7cc32da739957f2b3dbcd3d92" - }, - ".claude/skills/ticket-creator/qa/functional/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-creator/qa/functional/SKILL.md", - "sourceSha256": "6f9016fec42a5cd3779b282f488188342b8d8f890e9f5191c52ab76bf7a648bd", - "renderedSha256": "6f9016fec42a5cd3779b282f488188342b8d8f890e9f5191c52ab76bf7a648bd" - }, - ".claude/skills/ticket-creator/qa/integration/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-creator/qa/integration/SKILL.md", - "sourceSha256": "7cb4ebfc0736c56f61b382a08bbf9ec02932eba8dc78c700b1e1a0c61c6d6f31", - "renderedSha256": "7cb4ebfc0736c56f61b382a08bbf9ec02932eba8dc78c700b1e1a0c61c6d6f31" - }, - ".claude/skills/ticket-creator/qa/load-stress/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-creator/qa/load-stress/SKILL.md", - "sourceSha256": "7e492d0c0a6bc951d883761df01ba2b01301886a738d521a36b25f7fe3a6af93", - "renderedSha256": "7e492d0c0a6bc951d883761df01ba2b01301886a738d521a36b25f7fe3a6af93" - }, - ".claude/skills/ticket-creator/qa/security/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-creator/qa/security/SKILL.md", - "sourceSha256": "2bbe07ad8f27c5ec318f4cf712055dd281bd21140b2f8055cfb044c99c6b179a", - "renderedSha256": "2bbe07ad8f27c5ec318f4cf712055dd281bd21140b2f8055cfb044c99c6b179a" - }, - ".claude/skills/ticket-creator/qa/unit/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-creator/qa/unit/SKILL.md", - "sourceSha256": "4201415d62fc24cd9b5bfb521798017a4e74c92fd5cb7f1577c3c001e7ca3268", - "renderedSha256": "4201415d62fc24cd9b5bfb521798017a4e74c92fd5cb7f1577c3c001e7ca3268" - }, - ".claude/skills/ticket-creator/story/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-creator/story/SKILL.md", - "sourceSha256": "737bd59465e739035b287b5ebe144a511c097871f6ce68c09141da0d5dfa5cf8", - "renderedSha256": "737bd59465e739035b287b5ebe144a511c097871f6ce68c09141da0d5dfa5cf8" - }, - ".claude/skills/ticket-creator/ux/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-creator/ux/SKILL.md", - "sourceSha256": "1f6aeca9a59c029a3cd9c5c3ff865ef1cede51488cddfbee65092684315a54b6", - "renderedSha256": "1f6aeca9a59c029a3cd9c5c3ff865ef1cede51488cddfbee65092684315a54b6" - }, - ".claude/skills/ticket-enforcer/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-enforcer/SKILL.md", - "sourceSha256": "58b936c8670162d3f6281e9b960f98ab6223937a5aac12c2e63d88dcaf6b6e7a", - "renderedSha256": "58b936c8670162d3f6281e9b960f98ab6223937a5aac12c2e63d88dcaf6b6e7a" - }, - ".claude/skills/ticket-reviewer/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-reviewer/SKILL.md", - "sourceSha256": "99ebdc75bbc5eae409cc35b147ba04dbc36979bd6512ae448dd8c5d8d0e7e675", - "renderedSha256": "99ebdc75bbc5eae409cc35b147ba04dbc36979bd6512ae448dd8c5d8d0e7e675" - }, - ".claude/skills/ticket-reviewer/bug/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-reviewer/bug/SKILL.md", - "sourceSha256": "3ec912e90d2da19eaa68917817f48d786b59b3cb0b6183c49bce81d4689ec5f5", - "renderedSha256": "3ec912e90d2da19eaa68917817f48d786b59b3cb0b6183c49bce81d4689ec5f5" - }, - ".claude/skills/ticket-reviewer/dev-task/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-reviewer/dev-task/SKILL.md", - "sourceSha256": "f3984f390e7acfbc50320c4ddb554640e9cfae28cd397e12bf348516067daa9b", - "renderedSha256": "f3984f390e7acfbc50320c4ddb554640e9cfae28cd397e12bf348516067daa9b" - }, - ".claude/skills/ticket-reviewer/devops/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-reviewer/devops/SKILL.md", - "sourceSha256": "d72c24d9f49fa3d4522210f9a32f0a12c2efe9cd18e2f35d455b69f4840c0590", - "renderedSha256": "d72c24d9f49fa3d4522210f9a32f0a12c2efe9cd18e2f35d455b69f4840c0590" - }, - ".claude/skills/ticket-reviewer/docs/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-reviewer/docs/SKILL.md", - "sourceSha256": "aa98b1c9983209cd7305984462cb363174e5ba9f7ddbdb9570b6472723161b85", - "renderedSha256": "aa98b1c9983209cd7305984462cb363174e5ba9f7ddbdb9570b6472723161b85" - }, - ".claude/skills/ticket-reviewer/epic/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-reviewer/epic/SKILL.md", - "sourceSha256": "1f414cccadd1e84f1a5947be3fd043911b98f04a3140bb301983dd35e708f008", - "renderedSha256": "1f414cccadd1e84f1a5947be3fd043911b98f04a3140bb301983dd35e708f008" - }, - ".claude/skills/ticket-reviewer/qa/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-reviewer/qa/SKILL.md", - "sourceSha256": "394f95a4cfcfe776a1ea65f47f0583bcd71f20cdad96a7eb8d17e8c2216d9608", - "renderedSha256": "394f95a4cfcfe776a1ea65f47f0583bcd71f20cdad96a7eb8d17e8c2216d9608" - }, - ".claude/skills/ticket-reviewer/story/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ticket-reviewer/story/SKILL.md", - "sourceSha256": "a832ba5f191a5b3277fb9b0b4c09343fe5b7363104adf8eb960f132f7297a722", - "renderedSha256": "a832ba5f191a5b3277fb9b0b4c09343fe5b7363104adf8eb960f132f7297a722" - }, - ".claude/skills/ui-frame-contract/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ui-frame-contract/SKILL.md", - "sourceSha256": "42f37f74cc1d3e81feb72c2fdf123a40e4a90f1bc30045649fbadf4ac932f92d", - "renderedSha256": "42f37f74cc1d3e81feb72c2fdf123a40e4a90f1bc30045649fbadf4ac932f92d" - }, - ".claude/skills/ui-runtime-validation/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/ui-runtime-validation/SKILL.md", - "sourceSha256": "9a025e7dec7ddd21b72374676adea53d3e16136d4f6fec735f6b2b778540ec10", - "renderedSha256": "9a025e7dec7ddd21b72374676adea53d3e16136d4f6fec735f6b2b778540ec10" - }, - ".claude/skills/verification-protocol/SKILL.md": { - "capability": "skills", - "mode": "managed", - "sourcePath": "skills/verification-protocol/SKILL.md", - "sourceSha256": "de74336a097829dbc6019af52f3f192b62339272935413e718b3917f42e5b3db", - "renderedSha256": "de74336a097829dbc6019af52f3f192b62339272935413e718b3917f42e5b3db" - }, - ".fuze/identifier-allowlist.txt": { - "capability": "entity-identity", - "mode": "seeded", - "sourcePath": "governance/identifier-allowlist.txt", - "sourceSha256": "e63c72829872d7e7a42b1766bf161b6f7dec119b929b217a8333e3f6440dc883", - "renderedSha256": "e63c72829872d7e7a42b1766bf161b6f7dec119b929b217a8333e3f6440dc883" - }, - ".fuze/repo-manifest.schema.json": { - "capability": "schema-validate", - "mode": "managed", - "sourcePath": "governance/repo-manifest.schema.json", - "sourceSha256": "0609a29df35b0adb8fbda5c15a695a693bc09fb6d01b40bc19b933d23fc249d5", - "renderedSha256": "0609a29df35b0adb8fbda5c15a695a693bc09fb6d01b40bc19b933d23fc249d5" - }, - ".github/actions/fuze-code-action/__tests__/test_classify.sh": { - "capability": "workflows", - "mode": "managed", - "sourcePath": ".github/actions/fuze-code-action/__tests__/test_classify.sh", - "sourceSha256": "b9dda1ea613488303a0ab92c21a4a04f03436bc71bc158ff6c648c74e5432d0f", - "renderedSha256": "b9dda1ea613488303a0ab92c21a4a04f03436bc71bc158ff6c648c74e5432d0f" - }, - ".github/actions/fuze-code-action/__tests__/test_extra_env.py": { - "capability": "workflows", - "mode": "managed", - "sourcePath": ".github/actions/fuze-code-action/__tests__/test_extra_env.py", - "sourceSha256": "221e33fd19bff90a77b2a5311d92c526332fd78ba1690502e79c0e9c02a94179", - "renderedSha256": "221e33fd19bff90a77b2a5311d92c526332fd78ba1690502e79c0e9c02a94179" - }, - ".github/actions/fuze-code-action/__tests__/test_passthrough_defaults.py": { - "capability": "workflows", - "mode": "managed", - "sourcePath": ".github/actions/fuze-code-action/__tests__/test_passthrough_defaults.py", - "sourceSha256": "580b152d228f7b7120d843129397400b83408ec1afe9069bccf4bc2488b696c0", - "renderedSha256": "580b152d228f7b7120d843129397400b83408ec1afe9069bccf4bc2488b696c0" - }, - ".github/actions/fuze-code-action/__tests__/test_run_blocks_parse.py": { - "capability": "workflows", - "mode": "managed", - "sourcePath": ".github/actions/fuze-code-action/__tests__/test_run_blocks_parse.py", - "sourceSha256": "68c504dc7077f393b86ca12f70e9e303a97eee1b6cb113234e2db8cb3f640e67", - "renderedSha256": "68c504dc7077f393b86ca12f70e9e303a97eee1b6cb113234e2db8cb3f640e67" - }, - ".github/actions/fuze-code-action/__tests__/test_rung_gating.py": { - "capability": "workflows", - "mode": "managed", - "sourcePath": ".github/actions/fuze-code-action/__tests__/test_rung_gating.py", - "sourceSha256": "9e26b65902c0309b7231715c96543dd62393ddca42d6ce784206f3a7b296879a", - "renderedSha256": "9e26b65902c0309b7231715c96543dd62393ddca42d6ce784206f3a7b296879a" - }, - ".github/actions/fuze-code-action/action.yml": { - "capability": "workflows", - "mode": "managed", - "sourcePath": ".github/actions/fuze-code-action/action.yml", - "sourceSha256": "a260b5ab31ad6645183612fc90953b3d0b6f21d083b23260b7765404d325a75e", - "renderedSha256": "a260b5ab31ad6645183612fc90953b3d0b6f21d083b23260b7765404d325a75e" - }, - ".github/actions/fuze-code-action/classify.sh": { - "capability": "workflows", - "mode": "managed", - "sourcePath": ".github/actions/fuze-code-action/classify.sh", - "sourceSha256": "071c727ea2f347ed43f9fb44ae224630ec99b55a117777c2a3bc8e3c97bccbd1", - "renderedSha256": "071c727ea2f347ed43f9fb44ae224630ec99b55a117777c2a3bc8e3c97bccbd1" - }, - ".github/actions/fuze-push-identity/action.yml": { - "capability": "workflows", - "mode": "managed", - "sourcePath": ".github/actions/fuze-push-identity/action.yml", - "sourceSha256": "57b7c90c55a8b15649b22a73703cb6faa54ba7749d695592ff911e8a7f040963", - "renderedSha256": "57b7c90c55a8b15649b22a73703cb6faa54ba7749d695592ff911e8a7f040963" - }, - ".github/actions/llm-endpoint/action.yml": { - "capability": "workflows", - "mode": "managed", - "sourcePath": ".github/actions/llm-endpoint/action.yml", - "sourceSha256": "939fe5e84568530a6fc2a8328deefa52a31137d639b2fbe6f5c1bd4ca8dae3c9", - "renderedSha256": "939fe5e84568530a6fc2a8328deefa52a31137d639b2fbe6f5c1bd4ca8dae3c9" - }, - ".github/labels.json": { - "capability": "community", - "mode": "seeded", - "sourcePath": "community-templates/labels.json", - "sourceSha256": "e179fa24088c360b368cf468d5974d1813029229d9f08f4127892eb4c15c5bb5", - "renderedSha256": "e179fa24088c360b368cf468d5974d1813029229d9f08f4127892eb4c15c5bb5" - }, - ".github/workflows/a2a-maintain.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/a2a-maintain.yml", - "sourceSha256": "35d9e4cf7b06623fa892cfc36fd440c4b19d633dacfc9d61c0362cb0383ce77b", - "renderedSha256": "35d9e4cf7b06623fa892cfc36fd440c4b19d633dacfc9d61c0362cb0383ce77b", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - ".github/workflows/auto-merge.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/auto-merge.yml", - "sourceSha256": "2d2d09380b72e9d56725a137205bc7351e91dc9feb20be41120d6e418d8b4027", - "renderedSha256": "2d2d09380b72e9d56725a137205bc7351e91dc9feb20be41120d6e418d8b4027", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - ".github/workflows/claude-auto-pr.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/claude-auto-pr.yml", - "sourceSha256": "7d0fd50f72145abe4225120998b68bb23a5a79dee8a7d93cbe7f94730ea5e354", - "renderedSha256": "7d0fd50f72145abe4225120998b68bb23a5a79dee8a7d93cbe7f94730ea5e354", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - ".github/workflows/claude-ci-autofix.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/claude-ci-autofix.yml", - "sourceSha256": "35da8c61ab208185aadb47d3e70b31d782bde856e3804d64ef574cc7bcefe0c7", - "renderedSha256": "35da8c61ab208185aadb47d3e70b31d782bde856e3804d64ef574cc7bcefe0c7", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - ".github/workflows/claude.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/claude.yml", - "sourceSha256": "f79807ed2e35d8bc6e0dc48a5697c3537e4ebe33ffe33212c15571aec6285aff", - "renderedSha256": "f79807ed2e35d8bc6e0dc48a5697c3537e4ebe33ffe33212c15571aec6285aff", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - ".github/workflows/design-approval.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/design-approval.yml", - "sourceSha256": "ee6fa15c16a2c5df69e184e9817da9a80fd7a68cff9f9d9cc23c6b4da376040f", - "renderedSha256": "ee6fa15c16a2c5df69e184e9817da9a80fd7a68cff9f9d9cc23c6b4da376040f", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - ".github/workflows/design-review-notify.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/design-review-notify.yml", - "sourceSha256": "31efd5b3f9c6239dadf2a719eb7bebf413a02bb49580fae6cec60e1345ff1e71", - "renderedSha256": "31efd5b3f9c6239dadf2a719eb7bebf413a02bb49580fae6cec60e1345ff1e71" - }, - ".github/workflows/fuze-ci-autofix.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/fuze-ci-autofix.yml", - "sourceSha256": "a95d17e5045acf7e01a7848b89f831f037b64554b2d8e5c73151ff9682ea78bc", - "renderedSha256": "a95d17e5045acf7e01a7848b89f831f037b64554b2d8e5c73151ff9682ea78bc", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1", - "repoName": "izzywdev/FuzeFront" - } - }, - ".github/workflows/fuze-code-review.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/fuze-code-review.yml", - "sourceSha256": "d8c46216212e373a19ace47c387cf382d57df352987ff1d85cf8b16ec4ce43da", - "renderedSha256": "d8c46216212e373a19ace47c387cf382d57df352987ff1d85cf8b16ec4ce43da", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1", - "repoName": "izzywdev/FuzeFront" - } - }, - ".github/workflows/gate-frames-stamped.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/gate-frames-stamped.yml", - "sourceSha256": "69fd04a77f3dc79a15756aa43bc1b4cd2ae760952b6b6d85e6846cd4b81539da", - "renderedSha256": "69fd04a77f3dc79a15756aa43bc1b4cd2ae760952b6b6d85e6846cd4b81539da", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - ".github/workflows/gate-line-endings.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/gate-line-endings.yml", - "sourceSha256": "07ee2e135bd267da6b03b99c9990e2b898a7584c7191a12816af56a830e74d30", - "renderedSha256": "07ee2e135bd267da6b03b99c9990e2b898a7584c7191a12816af56a830e74d30", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - ".github/workflows/gate-required-checks.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/gate-required-checks.yml", - "sourceSha256": "9bfea128c996a9ad6b704ec6542adae6f5308d04484f24dea809095bddb00a66", - "renderedSha256": "9bfea128c996a9ad6b704ec6542adae6f5308d04484f24dea809095bddb00a66", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1", - "repoName": "izzywdev/FuzeFront" - } - }, - ".github/workflows/gate-workflow-drift.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/gate-workflow-drift.yml", - "sourceSha256": "0224aeeb692bfb7873f9815e3d0f4af3b42acaf54649b2564a81e27b73320a57", - "renderedSha256": "0224aeeb692bfb7873f9815e3d0f4af3b42acaf54649b2564a81e27b73320a57", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1", - "repoName": "izzywdev/FuzeFront" - } - }, - ".github/workflows/governance-nightly.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/governance-nightly.yml", - "sourceSha256": "8bc3fbb28fb307f33cf03ea04a71fb6a68c3d8e8ebd2f5920a41faa60f81343d", - "renderedSha256": "8bc3fbb28fb307f33cf03ea04a71fb6a68c3d8e8ebd2f5920a41faa60f81343d", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - ".github/workflows/governance-sync.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/governance-sync.yml", - "sourceSha256": "8fbd260435ddeb153996c0d73abcadb6459a08106b193862a9ff3821547055ba", - "renderedSha256": "8fbd260435ddeb153996c0d73abcadb6459a08106b193862a9ff3821547055ba", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - ".github/workflows/harden-gate.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/harden-gate.yml", - "sourceSha256": "13333b6ec21976755e849a3de6f831befbb24eb9b78f7ad16b6c0b79e12bb97f", - "renderedSha256": "13333b6ec21976755e849a3de6f831befbb24eb9b78f7ad16b6c0b79e12bb97f", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - ".github/workflows/helm-validate.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/helm-validate.yml", - "sourceSha256": "c137a042911ed9b0dc2bacda6477f8176e396f41b4d5e17bebba02654a8401da", - "renderedSha256": "c137a042911ed9b0dc2bacda6477f8176e396f41b4d5e17bebba02654a8401da", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - ".github/workflows/label-sync.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/label-sync.yml", - "sourceSha256": "cbc346e3bb08d8217ee0fec7c95899876c2713ac9db68ab050bb2e1d4ae04204", - "renderedSha256": "cbc346e3bb08d8217ee0fec7c95899876c2713ac9db68ab050bb2e1d4ae04204", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - ".github/workflows/mcp-maintain.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/mcp-maintain.yml", - "sourceSha256": "5fb529630898bc1bdc0163d251ec4f2c650b544342bac2c9fe43920775d1759d", - "renderedSha256": "5fb529630898bc1bdc0163d251ec4f2c650b544342bac2c9fe43920775d1759d", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - ".github/workflows/nightly-integration.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/nightly-integration.yml", - "sourceSha256": "6efaff8acf9a32a236f81da8a9beee5b05a5a7226d9df8178ddc0be7048edea5", - "renderedSha256": "6efaff8acf9a32a236f81da8a9beee5b05a5a7226d9df8178ddc0be7048edea5", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - ".github/workflows/pages-frames.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/pages-frames.yml", - "sourceSha256": "65f59bb2870ac1bd38ab946e6f174fb26b6f78ce892a2d7c0a44b847f3071416", - "renderedSha256": "65f59bb2870ac1bd38ab946e6f174fb26b6f78ce892a2d7c0a44b847f3071416", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - ".github/workflows/publish-expert.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/publish-expert.yml", - "sourceSha256": "5615c0e40b1ffe784ee90d2c181ab3c18452c7429c9216ca5482938b2f51ab0e", - "renderedSha256": "5615c0e40b1ffe784ee90d2c181ab3c18452c7429c9216ca5482938b2f51ab0e", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - ".github/workflows/telegram-pr-merged.yml": { - "capability": "workflows", - "mode": "stamped", - "sourcePath": "workflow-templates/telegram-pr-merged.yml", - "sourceSha256": "d7b161e66268ee150ccda2726176449262f608b4ee29e397051709aa4c2a3ecc", - "renderedSha256": "d7b161e66268ee150ccda2726176449262f608b4ee29e397051709aa4c2a3ecc", - "renderVars": { - "defaultBranch": "master", - "baselineRef": "v1" - } - }, - "FuzeQuality/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "FuzeQuality/apps/web/vite.config.ts": { - "capability": "mf-remote", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "04195c2f62f9c8167b4d011f81f195e6db04a70ca0f22d8fa768dc5438cc4cc8", - "renderedSha256": "04195c2f62f9c8167b4d011f81f195e6db04a70ca0f22d8fa768dc5438cc4cc8" - }, - "FuzeQuality/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "0c55390a478175c2c96010c09ada7262d1f3c6ed4a307b5ba9543c2e9b3400d3", - "renderedSha256": "0c55390a478175c2c96010c09ada7262d1f3c6ed4a307b5ba9543c2e9b3400d3" - }, - "agent-templates/providers/README.md": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/providers/README.md", - "sourceSha256": "b0d8e9a70db32dd620ba8bbdc795231fb41dc34dafa3de1c1e322aa9e9c698e3", - "renderedSha256": "b0d8e9a70db32dd620ba8bbdc795231fb41dc34dafa3de1c1e322aa9e9c698e3" - }, - "agent-templates/providers/__init__.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/providers/__init__.py", - "sourceSha256": "27c57128919ac2b76540a16e90c09a16c0fff7254f332c54e1060a828729e7d4", - "renderedSha256": "27c57128919ac2b76540a16e90c09a16c0fff7254f332c54e1060a828729e7d4" - }, - "agent-templates/providers/anthropic/__init__.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/providers/anthropic/__init__.py", - "sourceSha256": "c1fd152a1c0758aca7b27979c0634f8d816ce99aa757bb870e4736bf82f478b0", - "renderedSha256": "c1fd152a1c0758aca7b27979c0634f8d816ce99aa757bb870e4736bf82f478b0" - }, - "agent-templates/providers/anthropic/adapter.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/providers/anthropic/adapter.py", - "sourceSha256": "0a9e17075c50772298d71f4a163c67554d8894ec7fbf612285a8343acf8f7612", - "renderedSha256": "0a9e17075c50772298d71f4a163c67554d8894ec7fbf612285a8343acf8f7612" - }, - "agent-templates/providers/base.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/providers/base.py", - "sourceSha256": "480821608c9c009aea949caca9df9701b2d88857e3aa1fc122a858ad7ad3c773", - "renderedSha256": "480821608c9c009aea949caca9df9701b2d88857e3aa1fc122a858ad7ad3c773" - }, - "agent-templates/providers/hermes/__init__.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/providers/hermes/__init__.py", - "sourceSha256": "6453fce6d954113ba0e5182543c500f010e3578162e07301a361807fd13ea0c1", - "renderedSha256": "6453fce6d954113ba0e5182543c500f010e3578162e07301a361807fd13ea0c1" - }, - "agent-templates/providers/hermes/adapter.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/providers/hermes/adapter.py", - "sourceSha256": "9fcedb97b327e5b48d960c19a943e800144de5a2b0fbd0b213be9578b76b6e70", - "renderedSha256": "9fcedb97b327e5b48d960c19a943e800144de5a2b0fbd0b213be9578b76b6e70" - }, - "agent-templates/providers/openai/__init__.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/providers/openai/__init__.py", - "sourceSha256": "bf0bc1ad3e08bf4fa29852ceb8018c7ac614797c07a65462b1c3411f6bf55567", - "renderedSha256": "bf0bc1ad3e08bf4fa29852ceb8018c7ac614797c07a65462b1c3411f6bf55567" - }, - "agent-templates/providers/openai/adapter.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/providers/openai/adapter.py", - "sourceSha256": "0bfdae63b2caf64309443bea5bd612189cca780511ef5bb1883ea4ca48387057", - "renderedSha256": "0bfdae63b2caf64309443bea5bd612189cca780511ef5bb1883ea4ca48387057" - }, - "agent-templates/providers/provision.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/providers/provision.py", - "sourceSha256": "757da115f5426ce955670e49e378e2489d29e54314b9c54dfbc4176434149b2d", - "renderedSha256": "757da115f5426ce955670e49e378e2489d29e54314b9c54dfbc4176434149b2d" - }, - "agent-templates/roles/_base/role.json": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/roles/_base/role.json", - "sourceSha256": "67add1adf33f093cb9ac0ef63546b623a9a11ace98789caf7d141be502a4e937", - "renderedSha256": "67add1adf33f093cb9ac0ef63546b623a9a11ace98789caf7d141be502a4e937" - }, - "agent-templates/schema/environment.schema.json": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/schema/environment.schema.json", - "sourceSha256": "525b7489a4044190c40f13443012f23985cc4de0602893438057feb20a8b39f3", - "renderedSha256": "525b7489a4044190c40f13443012f23985cc4de0602893438057feb20a8b39f3" - }, - "agent-templates/schema/memory.schema.json": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/schema/memory.schema.json", - "sourceSha256": "f2645779babcc1d8ac7efa3c61021c60e5e75011bb2a79cadf7a470a7f12d4ef", - "renderedSha256": "f2645779babcc1d8ac7efa3c61021c60e5e75011bb2a79cadf7a470a7f12d4ef" - }, - "agent-templates/schema/mobile-requirements.schema.json": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/schema/mobile-requirements.schema.json", - "sourceSha256": "30a1e94b36bfb25ec65aecda3dac5d62c4ac7fe9153c85b4fb279728b3497fe5", - "renderedSha256": "30a1e94b36bfb25ec65aecda3dac5d62c4ac7fe9153c85b4fb279728b3497fe5" - }, - "agent-templates/schema/role-manifest.schema.json": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/schema/role-manifest.schema.json", - "sourceSha256": "cdeacc70a3a55aafc8c2e7a2ae63227216b9eed38183895b42b6e2426fd16e1c", - "renderedSha256": "cdeacc70a3a55aafc8c2e7a2ae63227216b9eed38183895b42b6e2426fd16e1c" - }, - "agent-templates/schema/vault.schema.json": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/schema/vault.schema.json", - "sourceSha256": "993c7415d20397688502fbc3f27ae4a564769a6f5d258216a929d55691a291be", - "renderedSha256": "993c7415d20397688502fbc3f27ae4a564769a6f5d258216a929d55691a291be" - }, - "agent-templates/sync/.gitignore": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/sync/.gitignore", - "sourceSha256": "5e7a2fb056f4ee84e115d0594961787158d521873482319df251d8ee27e0ebad", - "renderedSha256": "5e7a2fb056f4ee84e115d0594961787158d521873482319df251d8ee27e0ebad" - }, - "agent-templates/sync/common.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/sync/common.py", - "sourceSha256": "01b1126a920f5aab5be113a71b85d97b6b26eb4f727a9ce641cdd0c57158ae02", - "renderedSha256": "01b1126a920f5aab5be113a71b85d97b6b26eb4f727a9ce641cdd0c57158ae02" - }, - "agent-templates/sync/driver.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/sync/driver.py", - "sourceSha256": "b158508af21086c3a7c5ea40be3a151d5f27d6d009e26c4c8df64982b2461ade", - "renderedSha256": "b158508af21086c3a7c5ea40be3a151d5f27d6d009e26c4c8df64982b2461ade" - }, - "agent-templates/sync/launch_session.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/sync/launch_session.py", - "sourceSha256": "7fbe2aa20ec327b028d864469354dd697df7ce859999499955f2e95bede886da", - "renderedSha256": "7fbe2aa20ec327b028d864469354dd697df7ce859999499955f2e95bede886da" - }, - "agent-templates/sync/requirements.txt": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/sync/requirements.txt", - "sourceSha256": "462738ad889760ba38f2dc00976008a3c87201e17c9bc69972e5c213b6751d97", - "renderedSha256": "462738ad889760ba38f2dc00976008a3c87201e17c9bc69972e5c213b6751d97" - }, - "agent-templates/sync/role_loader.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/sync/role_loader.py", - "sourceSha256": "ac911e97bd594c29ccf6964fbf3bf218b286e79c0e6ae04b50367b1d0b326de6", - "renderedSha256": "ac911e97bd594c29ccf6964fbf3bf218b286e79c0e6ae04b50367b1d0b326de6" - }, - "agent-templates/sync/sync_agents.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/sync/sync_agents.py", - "sourceSha256": "6faafb497e8f8fbde6def1575069c6809775c314ed1e445b34adc83dd5a60e7c", - "renderedSha256": "6faafb497e8f8fbde6def1575069c6809775c314ed1e445b34adc83dd5a60e7c" - }, - "agent-templates/sync/sync_environments.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/sync/sync_environments.py", - "sourceSha256": "3aac67b84d61439b5203168138bd370d726b941e554f3c2fe284635663088e57", - "renderedSha256": "3aac67b84d61439b5203168138bd370d726b941e554f3c2fe284635663088e57" - }, - "agent-templates/sync/sync_memory.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/sync/sync_memory.py", - "sourceSha256": "6b204e3c95a6309e380a60d6b50ca486e06ab7f02278904a0bae65dcd0e42318", - "renderedSha256": "6b204e3c95a6309e380a60d6b50ca486e06ab7f02278904a0bae65dcd0e42318" - }, - "agent-templates/sync/sync_vaults.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/sync/sync_vaults.py", - "sourceSha256": "aa286b35e59f28361c953c5e6bbc8d2de6c97ece66d2605a027f46f4a05aee24", - "renderedSha256": "aa286b35e59f28361c953c5e6bbc8d2de6c97ece66d2605a027f46f4a05aee24" - }, - "agent-templates/sync/validate.py": { - "capability": "roles", - "mode": "managed", - "sourcePath": "agent-templates/sync/validate.py", - "sourceSha256": "74c9fac452b18d218f5fa8a55e189b20d653c065d376c70f12ae1b5fd800b51f", - "renderedSha256": "74c9fac452b18d218f5fa8a55e189b20d653c065d376c70f12ae1b5fd800b51f" - }, - "api-client/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "api-client/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "728204a22d27a708b289bdeae6551f469d422bfa43061dac563ca0cf299111e4", - "renderedSha256": "728204a22d27a708b289bdeae6551f469d422bfa43061dac563ca0cf299111e4" - }, - "apps-client/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "apps-client/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "8bd86a4408f1422978008b4db58b3cbaa44de79203ac5f40a3f38fbb0bb02737", - "renderedSha256": "8bd86a4408f1422978008b4db58b3cbaa44de79203ac5f40a3f38fbb0bb02737" - }, - "backend/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "backend/applications/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "backend/applications/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "7b3af1326e9efd2bfd87742bae94ccc5f7277342ec7be45e8c60ae381d2e602b", - "renderedSha256": "7b3af1326e9efd2bfd87742bae94ccc5f7277342ec7be45e8c60ae381d2e602b" - }, - "backend/core/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "backend/core/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "965c93c45cc1dd7ca3766e87aa014859d2f00c6f953460d305abfe85b9f1fc85", - "renderedSha256": "965c93c45cc1dd7ca3766e87aa014859d2f00c6f953460d305abfe85b9f1fc85" - }, - "backend/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "b8164ee365347116f70a864e60baba14fadcd06b0a51ceb9d11291f586a2926f", - "renderedSha256": "b8164ee365347116f70a864e60baba14fadcd06b0a51ceb9d11291f586a2926f" - }, - "backend/security/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "backend/security/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "9fe0ad072a039811c84480c19c6dc9ebd8d6c6879f7c18feb33815c543a12bf6", - "renderedSha256": "9fe0ad072a039811c84480c19c6dc9ebd8d6c6879f7c18feb33815c543a12bf6" - }, - "billing-client/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "billing-client/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "29fcd3a5f74684e73ecf2b3d1f5b079605e3ce60afa1187cb4f8226d3319b722", - "renderedSha256": "29fcd3a5f74684e73ecf2b3d1f5b079605e3ce60afa1187cb4f8226d3319b722" - }, - "clock-app/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "clock-app/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "c1504a0af3ead7e5f82b493263ffef2e8a2f1b6b29c8f64278e3a1006ec12539", - "renderedSha256": "c1504a0af3ead7e5f82b493263ffef2e8a2f1b6b29c8f64278e3a1006ec12539" - }, - "clock-app/vite.config.ts": { - "capability": "mf-remote", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "b235d54f98e566c120b4135c728bcbf02486fe606192eba398bede456d696a42", - "renderedSha256": "b235d54f98e566c120b4135c728bcbf02486fe606192eba398bede456d696a42" - }, - "config-client/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "config-client/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "0ff608fa871c509ee466170bdfa0c4bb65e2f0a3c827c5ce54d7613b81657066", - "renderedSha256": "0ff608fa871c509ee466170bdfa0c4bb65e2f0a3c827c5ce54d7613b81657066" - }, - "custom-hostname-client/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "custom-hostname-client/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "895106b52e4e9b1aac0e6d61cc4ed7a9ec922c7458509ec8d68be7f0928afe62", - "renderedSha256": "895106b52e4e9b1aac0e6d61cc4ed7a9ec922c7458509ec8d68be7f0928afe62" - }, - "design-system/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "design-system/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "2b763c42b7b7e5f0d6b06d717b1d47c37890fcbdafca0245443cb6e3d4741398", - "renderedSha256": "2b763c42b7b7e5f0d6b06d717b1d47c37890fcbdafca0245443cb6e3d4741398" - }, - "frontend/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "066c7ccd49771c7b54b26d0a791707268796a0d63bb549bb69d3b92cbd6dd499", - "renderedSha256": "066c7ccd49771c7b54b26d0a791707268796a0d63bb549bb69d3b92cbd6dd499" - }, - "frontend/vite.config.ts": { - "capability": "mf-remote", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "4a1b01c002aa63a81aa5567a85401f8d0d789ee14dcc06b75b857f38896240eb", - "renderedSha256": "4a1b01c002aa63a81aa5567a85401f8d0d789ee14dcc06b75b857f38896240eb" - }, - "fuzefront-website/backend/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "fuzefront-website/backend/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "6e4aaf7bf7e7d865a73345c9deb055642e87dcc837d2792c9f716c2bbd8826cf", - "renderedSha256": "6e4aaf7bf7e7d865a73345c9deb055642e87dcc837d2792c9f716c2bbd8826cf" - }, - "fuzefront-website/frontend/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "fuzefront-website/frontend/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "48e22f036c75f77be3ef1bb84fae36ec5429eb9c3ab445b42dba01d1a79d2a23", - "renderedSha256": "48e22f036c75f77be3ef1bb84fae36ec5429eb9c3ab445b42dba01d1a79d2a23" - }, - "governance/federation-contract-policy.json": { - "capability": "workflows", - "mode": "managed", - "sourcePath": "governance/federation-contract-policy.json", - "sourceSha256": "a22e09f472571a5ba94ae81b247dbfe945a0781f1509b0c494feb1d39ff22e67", - "renderedSha256": "a22e09f472571a5ba94ae81b247dbfe945a0781f1509b0c494feb1d39ff22e67" - }, - "governance/required-checks.json": { - "capability": "harden-gate-scripts", - "mode": "managed", - "sourcePath": "governance/required-checks.json", - "sourceSha256": "e2ed9b235e05fbfeed653c5dcce3b6532d184e3e87a9c1673756976ca3d5d6d5", - "renderedSha256": "e2ed9b235e05fbfeed653c5dcce3b6532d184e3e87a9c1673756976ca3d5d6d5" - }, - "governance/workflow-drift-policy.json": { - "capability": "workflows", - "mode": "managed", - "sourcePath": "governance/workflow-drift-policy.json", - "sourceSha256": "ecf965d0dd770daf18bd3445fc157a8589dd7865d7cf03b652b25ebc04229818", - "renderedSha256": "ecf965d0dd770daf18bd3445fc157a8589dd7865d7cf03b652b25ebc04229818" - }, - "package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "88a9942178dcef094f144472d0d93509a94445963f6654e1a02d1362f4190814", - "renderedSha256": "88a9942178dcef094f144472d0d93509a94445963f6654e1a02d1362f4190814" - }, - "packages/account-security-ui/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/account-security-ui/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "46eca4ed3e3638f3af95306326fefce04121a7b88f4fe370b2c50271496c33ee", - "renderedSha256": "46eca4ed3e3638f3af95306326fefce04121a7b88f4fe370b2c50271496c33ee" - }, - "packages/auth-ui/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/auth-ui/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "9f7af26ad79eabed1f6952a2f196d7e8fd515e42e2c23ac5c1c0b4e0f5b31ff1", - "renderedSha256": "9f7af26ad79eabed1f6952a2f196d7e8fd515e42e2c23ac5c1c0b4e0f5b31ff1" - }, - "packages/auth/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/auth/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "c0284fc11cddaf3e7e1ff550448af2ecdf9f1a6c3a49dd753afdfc0e26a41205", - "renderedSha256": "c0284fc11cddaf3e7e1ff550448af2ecdf9f1a6c3a49dd753afdfc0e26a41205" - }, - "packages/billing-ui/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/billing-ui/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "02b5c01b6174a699857b01e3f7ec747ff3519c6d11a798293915765250b5544a", - "renderedSha256": "02b5c01b6174a699857b01e3f7ec747ff3519c6d11a798293915765250b5544a" - }, - "packages/chat-client/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/chat-client/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "664b1b3fb4534a665d9d94000a672a3da5e4ee49f79c46cef3279580e68f4aa3", - "renderedSha256": "664b1b3fb4534a665d9d94000a672a3da5e4ee49f79c46cef3279580e68f4aa3" - }, - "packages/chat-ui/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/chat-ui/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "ffcaf83affba17a017fb4f2096c2db2dbba03fb5d9eb336f798cd41435180265", - "renderedSha256": "ffcaf83affba17a017fb4f2096c2db2dbba03fb5d9eb336f798cd41435180265" - }, - "packages/config-ui/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/config-ui/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "1f40761c01385608fcf358dfdb4b8bd65863661ca9a9ea27ee3f2c3f32ca3757", - "renderedSha256": "1f40761c01385608fcf358dfdb4b8bd65863661ca9a9ea27ee3f2c3f32ca3757" - }, - "packages/feature-flags/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/feature-flags/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "1e419752173fa5c1e052651f3022a9a0bf695c202057bacff45872f09fb8f29e", - "renderedSha256": "1e419752173fa5c1e052651f3022a9a0bf695c202057bacff45872f09fb8f29e" - }, - "packages/i18n-translate/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/i18n-translate/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "e5ef1d29efbbdf04426fbd15542bdb70a1c94d6cd791c1bf004a21ac48acc979", - "renderedSha256": "e5ef1d29efbbdf04426fbd15542bdb70a1c94d6cd791c1bf004a21ac48acc979" - }, - "packages/i18n/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/i18n/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "5f97d22a848b25b914c16fa4c3c1148079b2a8c7e397f667c96a573d97ff51d8", - "renderedSha256": "5f97d22a848b25b914c16fa4c3c1148079b2a8c7e397f667c96a573d97ff51d8" - }, - "packages/identity-ui/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/identity-ui/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "186730ca43f619cc9dce5092b34f2c4512f3888d3d8b9f5f4e3e2b6439a99d0f", - "renderedSha256": "186730ca43f619cc9dce5092b34f2c4512f3888d3d8b9f5f4e3e2b6439a99d0f" - }, - "packages/identity/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/identity/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "67126b8a6d5bc763ea4558b279a5a61cfec4f25447722e3872accd39d4938e90", - "renderedSha256": "67126b8a6d5bc763ea4558b279a5a61cfec4f25447722e3872accd39d4938e90" - }, - "packages/mcp-gateway/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/mcp-gateway/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "b91c33317bede88efba10576d861c1af57a98727eec89d60e06d04787c3889e3", - "renderedSha256": "b91c33317bede88efba10576d861c1af57a98727eec89d60e06d04787c3889e3" - }, - "packages/onboarding-kit/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/onboarding-kit/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "848ad53aab028514a7dcf2a71d869d3702197e8a28bb39c614f7e37d4da26617", - "renderedSha256": "848ad53aab028514a7dcf2a71d869d3702197e8a28bb39c614f7e37d4da26617" - }, - "packages/portal-admin-ui/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/portal-admin-ui/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "56616627ac960601e26371407df4881c0422552b61a453f3dd78f049df15b1f9", - "renderedSha256": "56616627ac960601e26371407df4881c0422552b61a453f3dd78f049df15b1f9" - }, - "packages/portal-branding-ui/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/portal-branding-ui/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "3645fab32b33c5aeb7e94a007a0758df51a42e825fba645a372162fdc060d07e", - "renderedSha256": "3645fab32b33c5aeb7e94a007a0758df51a42e825fba645a372162fdc060d07e" - }, - "packages/security/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/security/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "3998dc2312e745590efbc3a676df48b112544adf29e2bacae1184110f39ac272", - "renderedSha256": "3998dc2312e745590efbc3a676df48b112544adf29e2bacae1184110f39ac272" - }, - "packages/selection-lists-ui/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "packages/selection-lists-ui/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "3ac40f1f975e55de6beb93d90c188605f038f77899cff7689e06f8a4e745d4b0", - "renderedSha256": "3ac40f1f975e55de6beb93d90c188605f038f77899cff7689e06f8a4e745d4b0" - }, - "portal-client/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "portal-client/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "7dbd5628dd67a2f576a773e32f391161ad299298cc3cbf1ebfe5be102bf1a9b2", - "renderedSha256": "7dbd5628dd67a2f576a773e32f391161ad299298cc3cbf1ebfe5be102bf1a9b2" - }, - "scripts/__tests__/test_fuze_code_review_verdict.py": { - "capability": "workflows", - "mode": "managed", - "sourcePath": "scripts/__tests__/test_fuze_code_review_verdict.py", - "sourceSha256": "b8b8c86efbc5dbe83d7916d2bedfba2530989a6c4ececd9c02fb7df6d8328e90", - "renderedSha256": "b8b8c86efbc5dbe83d7916d2bedfba2530989a6c4ececd9c02fb7df6d8328e90" - }, - "scripts/__tests__/test_gate_api_version.py": { - "capability": "workflows", - "mode": "managed", - "sourcePath": "scripts/__tests__/test_gate_api_version.py", - "sourceSha256": "1fafd2bc7aa2ec7411a6486b5ea9750219dcc30d5d6074972cdc8c95c1bde67a", - "renderedSha256": "1fafd2bc7aa2ec7411a6486b5ea9750219dcc30d5d6074972cdc8c95c1bde67a" - }, - "scripts/__tests__/test_gate_federation_contract.py": { - "capability": "workflows", - "mode": "managed", - "sourcePath": "scripts/__tests__/test_gate_federation_contract.py", - "sourceSha256": "93dd164cdfe1d9c7ed3b3ba8bc0da3e2f49b9b1628669a69d177b957693b5ba5", - "renderedSha256": "93dd164cdfe1d9c7ed3b3ba8bc0da3e2f49b9b1628669a69d177b957693b5ba5" - }, - "scripts/__tests__/test_gate_identifier.py": { - "capability": "harden-gate-scripts", - "mode": "managed", - "sourcePath": "scripts/__tests__/test_gate_identifier.py", - "sourceSha256": "17d58a407e607fd34ac674927c69e44484ca02d55c404ca8caafe2ca5dd5f64b", - "renderedSha256": "17d58a407e607fd34ac674927c69e44484ca02d55c404ca8caafe2ca5dd5f64b" - }, - "scripts/__tests__/test_gate_openapi_conformance.py": { - "capability": "harden-gate-scripts", - "mode": "managed", - "sourcePath": "scripts/__tests__/test_gate_openapi_conformance.py", - "sourceSha256": "e77128e69431a108f64482ab48802b2abe1d39ed58669b4eda091c692e30be8d", - "renderedSha256": "e77128e69431a108f64482ab48802b2abe1d39ed58669b4eda091c692e30be8d" - }, - "scripts/__tests__/test_gate_required_checks.py": { - "capability": "harden-gate-scripts", - "mode": "managed", - "sourcePath": "scripts/__tests__/test_gate_required_checks.py", - "sourceSha256": "f0cf7e2415607d1be0ef41efb280374a0f3a0ae4e542774b77dca4d8ae6e9949", - "renderedSha256": "f0cf7e2415607d1be0ef41efb280374a0f3a0ae4e542774b77dca4d8ae6e9949" - }, - "scripts/__tests__/test_gate_vacuous_check.py": { - "capability": "harden-gate-scripts", - "mode": "managed", - "sourcePath": "scripts/__tests__/test_gate_vacuous_check.py", - "sourceSha256": "febd1091605fc00fc31f466dcf9529317826d0d648fc5d3250e2cebdda698187", - "renderedSha256": "febd1091605fc00fc31f466dcf9529317826d0d648fc5d3250e2cebdda698187" - }, - "scripts/build-frames-site.mjs": { - "capability": "workflows", - "mode": "managed", - "sourcePath": "scripts/build-frames-site.mjs", - "sourceSha256": "4fcb6bc3cb2d9c658622e55ada484ed9958a9591af36959301c6310a24d75aae", - "renderedSha256": "4fcb6bc3cb2d9c658622e55ada484ed9958a9591af36959301c6310a24d75aae" - }, - "scripts/check-registration.mjs": { - "capability": "portal-registration", - "mode": "managed", - "sourcePath": "scripts/check-registration.mjs", - "sourceSha256": "fab83bb03d7505832d12095db184c019c7565d8e050c23b8f2482436c2302f30", - "renderedSha256": "fab83bb03d7505832d12095db184c019c7565d8e050c23b8f2482436c2302f30" - }, - "scripts/fuze_code_review_verdict.py": { - "capability": "workflows", - "mode": "managed", - "sourcePath": "scripts/fuze_code_review_verdict.py", - "sourceSha256": "d408d9d29e01accc1a736b296a3c4367a9e23bab12a05a6eaa01ecbdc0c5e58d", - "renderedSha256": "d408d9d29e01accc1a736b296a3c4367a9e23bab12a05a6eaa01ecbdc0c5e58d" - }, - "scripts/gate_api_version.py": { - "capability": "workflows", - "mode": "managed", - "sourcePath": "scripts/gate_api_version.py", - "sourceSha256": "dbdcc301f2a9607ac4b23b71919ff990931cea0ef6404ec8646c03b3c428fafe", - "renderedSha256": "dbdcc301f2a9607ac4b23b71919ff990931cea0ef6404ec8646c03b3c428fafe" - }, - "scripts/gate_ds_conformance.py": { - "capability": "harden-gate-scripts", - "mode": "managed", - "sourcePath": "scripts/gate_ds_conformance.py", - "sourceSha256": "fbedf04a6aa91033e0513b00d59184fbe132d76d3d04ad3259efd22b9e0830b3", - "renderedSha256": "fbedf04a6aa91033e0513b00d59184fbe132d76d3d04ad3259efd22b9e0830b3" - }, - "scripts/gate_federation_contract.py": { - "capability": "workflows", - "mode": "managed", - "sourcePath": "scripts/gate_federation_contract.py", - "sourceSha256": "306612164d7a33855bb4e1e36f70bbf289b1e00b29c1eebc3c8887f53351e10f", - "renderedSha256": "306612164d7a33855bb4e1e36f70bbf289b1e00b29c1eebc3c8887f53351e10f" - }, - "scripts/gate_identifier.py": { - "capability": "harden-gate-scripts", - "mode": "managed", - "sourcePath": "scripts/gate_identifier.py", - "sourceSha256": "ae5f4b8d2c1a8390e1339adb269232754c95b2ad0801c751c29e6dcd02cd4aaf", - "renderedSha256": "ae5f4b8d2c1a8390e1339adb269232754c95b2ad0801c751c29e6dcd02cd4aaf" - }, - "scripts/gate_manifest.py": { - "capability": "schema-validate", - "mode": "managed", - "sourcePath": "scripts/gate_manifest.py", - "sourceSha256": "527abd1ed32ff9a928b65e082b306b4055e55d1346cf031a3b8b6ec70ccd76b1", - "renderedSha256": "527abd1ed32ff9a928b65e082b306b4055e55d1346cf031a3b8b6ec70ccd76b1" - }, - "scripts/gate_openapi_conformance.py": { - "capability": "harden-gate-scripts", - "mode": "managed", - "sourcePath": "scripts/gate_openapi_conformance.py", - "sourceSha256": "9c417c928d98942eebd51c79c3f1e61d67e80f17f57ff775da37b932743a1950", - "renderedSha256": "9c417c928d98942eebd51c79c3f1e61d67e80f17f57ff775da37b932743a1950" - }, - "scripts/gate_pagination.py": { - "capability": "harden-gate-scripts", - "mode": "managed", - "sourcePath": "scripts/gate_pagination.py", - "sourceSha256": "7f1e0d79e2a80a79250db72ff8e437c9cb4a7b596728c4c9b377d66c080f6c35", - "renderedSha256": "7f1e0d79e2a80a79250db72ff8e437c9cb4a7b596728c4c9b377d66c080f6c35" - }, - "scripts/gate_required_checks.py": { - "capability": "harden-gate-scripts", - "mode": "managed", - "sourcePath": "scripts/gate_required_checks.py", - "sourceSha256": "0bf1dd75d601cfad14e935fd702e2667fc243e020f5e20758a493926c4fe9a6f", - "renderedSha256": "0bf1dd75d601cfad14e935fd702e2667fc243e020f5e20758a493926c4fe9a6f" - }, - "scripts/gate_vacuous_check.py": { - "capability": "harden-gate-scripts", - "mode": "managed", - "sourcePath": "scripts/gate_vacuous_check.py", - "sourceSha256": "3415c860699eda3f3a81c2d935251558f25f8a147024842e4dc8927d19bb7fb0", - "renderedSha256": "3415c860699eda3f3a81c2d935251558f25f8a147024842e4dc8927d19bb7fb0" - }, - "scripts/stamp-frames.mjs": { - "capability": "workflows", - "mode": "managed", - "sourcePath": "scripts/stamp-frames.mjs", - "sourceSha256": "71ede05b3cf69848c595302b4d80a041d2e7cb177e7afa8b2fe68ace2d04d6b9", - "renderedSha256": "71ede05b3cf69848c595302b4d80a041d2e7cb177e7afa8b2fe68ace2d04d6b9" - }, - "scripts/sync-chart-files.sh": { - "capability": "portal-registration", - "mode": "managed", - "sourcePath": "scripts/sync-chart-files.sh", - "sourceSha256": "b53985271e99279897baa5f3ae229e2676400e5ae2b2944a692cf0f54bde9d57", - "renderedSha256": "b53985271e99279897baa5f3ae229e2676400e5ae2b2944a692cf0f54bde9d57" - }, - "sdk/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "sdk/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "6f027e2850dc7c8cb7e88a3fbfee32bb5646d3ec2891fdc132ff85040753e116", - "renderedSha256": "6f027e2850dc7c8cb7e88a3fbfee32bb5646d3ec2891fdc132ff85040753e116" - }, - "selection-list-client/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "selection-list-client/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "d771f17e89e4234a2d620abe1a8862b50ec323d135e9e98016573d9a5b421914", - "renderedSha256": "d771f17e89e4234a2d620abe1a8862b50ec323d135e9e98016573d9a5b421914" - }, - "services/billing-service/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "services/billing-service/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "f522389c258fa4d752711be7794b176cf4d166c850498fcb252ba22ca89a8cec", - "renderedSha256": "f522389c258fa4d752711be7794b176cf4d166c850498fcb252ba22ca89a8cec" - }, - "services/chat-service/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "services/chat-service/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "b56fe13cb48499bc3355c5426307dee3a5e390892c207ebdb6231c67a3d81ab4", - "renderedSha256": "b56fe13cb48499bc3355c5426307dee3a5e390892c207ebdb6231c67a3d81ab4" - }, - "services/config-service/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "services/config-service/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "b6171c1153b07a2563a38bc7c45255eafd13c7a3a2ec37851c7a8414c3d47e12", - "renderedSha256": "b6171c1153b07a2563a38bc7c45255eafd13c7a3a2ec37851c7a8414c3d47e12" - }, - "services/email-service/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "services/email-service/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "22277c125e170ad4b03e286fc4a31eeadbb0e9a5d02ef1ccf4a8da19671e2e9f", - "renderedSha256": "22277c125e170ad4b03e286fc4a31eeadbb0e9a5d02ef1ccf4a8da19671e2e9f" - }, - "services/notification-service/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "services/notification-service/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "377b867c3369b89cdc890de12c5b9dbf2249cb04aec7bccd267d3c0b8fbf753d", - "renderedSha256": "377b867c3369b89cdc890de12c5b9dbf2249cb04aec7bccd267d3c0b8fbf753d" - }, - "services/payment-service/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "services/payment-service/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "05d31e5f7fa2b50bb2dc5c5fe78057e9b3cf5fc1eedd390fdb815615f32487cc", - "renderedSha256": "05d31e5f7fa2b50bb2dc5c5fe78057e9b3cf5fc1eedd390fdb815615f32487cc" - }, - "services/provisioning-service/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "services/provisioning-service/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "3c22ed09b3e9a3beba7f6931f2ec80d6d8f9cb1611369f8da073f67c1f6e3ae5", - "renderedSha256": "3c22ed09b3e9a3beba7f6931f2ec80d6d8f9cb1611369f8da073f67c1f6e3ae5" - }, - "services/selection-list-service/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "services/selection-list-service/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "e548124b63bd75fc8dd4bacca029526481ae1cd42a54505b9f15e1e90fe5d05f", - "renderedSha256": "e548124b63bd75fc8dd4bacca029526481ae1cd42a54505b9f15e1e90fe5d05f" - }, - "services/sms-service/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "services/sms-service/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "e3b26ba73dc967bbbbd6c408e1d1e0581ba158df4f8777e8146489b6d1b0e507", - "renderedSha256": "e3b26ba73dc967bbbbd6c408e1d1e0581ba158df4f8777e8146489b6d1b0e507" - }, - "shared/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "shared/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "194be46a9fe2fab083505a6ebd1fa7052607afed6ca9b11fc570cb892d5564af", - "renderedSha256": "194be46a9fe2fab083505a6ebd1fa7052607afed6ca9b11fc570cb892d5564af" - }, - "tests/e2e/billing-invoices/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "tests/e2e/billing-invoices/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "879455111ae7bc0498bbde2a2e05bc5b25b4829483fcf08160b7138161bee84c", - "renderedSha256": "879455111ae7bc0498bbde2a2e05bc5b25b4829483fcf08160b7138161bee84c" - }, - "tests/selection-list-service/.npmrc": { - "capability": "npm-registry", - "mode": "seeded", - "sourcePath": "community-templates/npmrc", - "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", - "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" - }, - "tests/selection-list-service/package.json": { - "capability": "node-toolchain", - "mode": "derived", - "sourcePath": "", - "sourceSha256": "45672c1f91889a84d3a34c499bb2d75c43f3c09b3e05236d752a5c3b7b7737c4", - "renderedSha256": "45672c1f91889a84d3a34c499bb2d75c43f3c09b3e05236d752a5c3b7b7737c4" - } - }, - "workflows": { - "a2a-maintain.yml": { - "template": "a2a-maintain.yml", - "baseline": "v1", - "renderedSha256": "4298b3a94c7c05cacc09de13b4004e68d09adc0657609d974eeaf1efe6c282bc" - } - } -} \ No newline at end of file +{ + "schemaVersion": 1, + "files": { + ".claude/agents/a2a-maintainer.md": { + "capability": "core-agents", + "mode": "managed", + "sourcePath": "agents/a2a-maintainer.md", + "sourceSha256": "07663ea2678e6bf142fe2669399c1a80bb50ebbe555a78e4744177ac0e23bd4c", + "renderedSha256": "07663ea2678e6bf142fe2669399c1a80bb50ebbe555a78e4744177ac0e23bd4c" + }, + ".claude/agents/agile-manager.md": { + "capability": "core-agents", + "mode": "managed", + "sourcePath": "agents/agile-manager.md", + "sourceSha256": "d530d5adfcda0b6333d62fa6b3227678438a4a16ce174df2a3647bb2b4170760", + "renderedSha256": "d530d5adfcda0b6333d62fa6b3227678438a4a16ce174df2a3647bb2b4170760" + }, + ".claude/agents/backend-engineer.md": { + "capability": "core-agents", + "mode": "managed", + "sourcePath": "agents/backend-engineer.md", + "sourceSha256": "19d770b9133bff5fa199affe79e15d91c0eeeaef145cfff1fc39522a1f40a312", + "renderedSha256": "19d770b9133bff5fa199affe79e15d91c0eeeaef145cfff1fc39522a1f40a312" + }, + ".claude/agents/billing-payments-engineer.md": { + "capability": "core-agents", + "mode": "managed", + "sourcePath": "agents/billing-payments-engineer.md", + "sourceSha256": "ff16996460f0a135a9820fcfe92045ae3e8b13df385999847cc8a638571bf8f7", + "renderedSha256": "ff16996460f0a135a9820fcfe92045ae3e8b13df385999847cc8a638571bf8f7" + }, + ".claude/agents/contract-designer.md": { + "capability": "core-agents", + "mode": "managed", + "sourcePath": "agents/contract-designer.md", + "sourceSha256": "5623bf51e3eb1b5a45d3b0af4d0b32b618a7ac3a4bb1332ec09e7bcdc4e44b86", + "renderedSha256": "5623bf51e3eb1b5a45d3b0af4d0b32b618a7ac3a4bb1332ec09e7bcdc4e44b86" + }, + ".claude/agents/database-engineer.md": { + "capability": "core-agents", + "mode": "managed", + "sourcePath": "agents/database-engineer.md", + "sourceSha256": "469c17a2e7eef16a5154128440630841bd8b52d6cc8ab0b36f13ba324b4660d7", + "renderedSha256": "469c17a2e7eef16a5154128440630841bd8b52d6cc8ab0b36f13ba324b4660d7" + }, + ".claude/agents/devops-engineer.md": { + "capability": "core-agents", + "mode": "managed", + "sourcePath": "agents/devops-engineer.md", + "sourceSha256": "4d67f10a83df88cd5cb4e3d0be2f70a364c8c0701009e167221f57e207ec97fe", + "renderedSha256": "4d67f10a83df88cd5cb4e3d0be2f70a364c8c0701009e167221f57e207ec97fe" + }, + ".claude/agents/docs-maintainer.md": { + "capability": "core-agents", + "mode": "managed", + "sourcePath": "agents/docs-maintainer.md", + "sourceSha256": "0bea0439212a2ef3bb1d612b67f7ea329ac3039bced4018b6079aa25754f367c", + "renderedSha256": "0bea0439212a2ef3bb1d612b67f7ea329ac3039bced4018b6079aa25754f367c" + }, + ".claude/agents/feature-flags-engineer.md": { + "capability": "core-agents", + "mode": "managed", + "sourcePath": "agents/feature-flags-engineer.md", + "sourceSha256": "64c25ea55acbe4fabbacad7a3f838b7aa806d3383a76fda26ff464517ff66b27", + "renderedSha256": "64c25ea55acbe4fabbacad7a3f838b7aa806d3383a76fda26ff464517ff66b27" + }, + ".claude/agents/frontend-engineer.md": { + "capability": "core-agents", + "mode": "managed", + "sourcePath": "agents/frontend-engineer.md", + "sourceSha256": "c6e35d44bd6768c6d5969546d76a668e4ba3ef62d175763b25ac96a5b3d71ce4", + "renderedSha256": "c6e35d44bd6768c6d5969546d76a668e4ba3ef62d175763b25ac96a5b3d71ce4" + }, + ".claude/agents/frontend-test-engineer.md": { + "capability": "core-agents", + "mode": "managed", + "sourcePath": "agents/frontend-test-engineer.md", + "sourceSha256": "852dc7ee0010c5b76e7fa00a553502e61acf227f28d02866a16bfc1cccd17e4d", + "renderedSha256": "852dc7ee0010c5b76e7fa00a553502e61acf227f28d02866a16bfc1cccd17e4d" + }, + ".claude/agents/fuzeinfra-expert.md": { + "capability": "core-agents", + "mode": "managed", + "sourcePath": "agents/fuzeinfra-expert.md", + "sourceSha256": "7914c87c5ed8adbbaa44c62bfd1d68d2cca4f528d2591885dd9e486645ebbbdb", + "renderedSha256": "7914c87c5ed8adbbaa44c62bfd1d68d2cca4f528d2591885dd9e486645ebbbdb" + }, + ".claude/agents/security.md": { + "capability": "core-agents", + "mode": "managed", + "sourcePath": "agents/security.md", + "sourceSha256": "ab941e989cab87edbd623fd5b9bf912c1e2531cd7d80ea4e06bd17efc6919f33", + "renderedSha256": "ab941e989cab87edbd623fd5b9bf912c1e2531cd7d80ea4e06bd17efc6919f33" + }, + ".claude/agents/telephony-integrator.md": { + "capability": "core-agents", + "mode": "managed", + "sourcePath": "agents/telephony-integrator.md", + "sourceSha256": "47743dd70ccd7a3a3f00510bfe87bc0c5dd1e91a1b2d73fba1939faa48d46ff8", + "renderedSha256": "47743dd70ccd7a3a3f00510bfe87bc0c5dd1e91a1b2d73fba1939faa48d46ff8" + }, + ".claude/agents/test-engineer.md": { + "capability": "core-agents", + "mode": "managed", + "sourcePath": "agents/test-engineer.md", + "sourceSha256": "13d5767b93bd23abb310c76d9f85fafbc4b32467af3a220d5cf985b2c016a9fb", + "renderedSha256": "13d5767b93bd23abb310c76d9f85fafbc4b32467af3a220d5cf985b2c016a9fb" + }, + ".claude/skills/api-contract-first/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/api-contract-first/SKILL.md", + "sourceSha256": "83f269decf84233f7ac91f7c05340737a13752d1c5b334cbd88df23a5e2d9300", + "renderedSha256": "83f269decf84233f7ac91f7c05340737a13752d1c5b334cbd88df23a5e2d9300" + }, + ".claude/skills/design-system-conformance/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/design-system-conformance/SKILL.md", + "sourceSha256": "7d1950ec4c070b26affc6f462b6111ff045802fec0d87d972370059b6b75f9e9", + "renderedSha256": "7d1950ec4c070b26affc6f462b6111ff045802fec0d87d972370059b6b75f9e9" + }, + ".claude/skills/design-system-inheritance/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/design-system-inheritance/SKILL.md", + "sourceSha256": "507f39db4a2a4a759794464a7b653d7eb6c5f9ce12340d74f3f21ac1429c9e04", + "renderedSha256": "507f39db4a2a4a759794464a7b653d7eb6c5f9ce12340d74f3f21ac1429c9e04" + }, + ".claude/skills/doc-validity/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/doc-validity/SKILL.md", + "sourceSha256": "e7d0d4c99895edf3fd604fa8878b39e6554165501765c74e573ef1b6e2740210", + "renderedSha256": "e7d0d4c99895edf3fd604fa8878b39e6554165501765c74e573ef1b6e2740210" + }, + ".claude/skills/feature-flags/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/feature-flags/SKILL.md", + "sourceSha256": "e03f51ed05aa8bb50287a20d10a307cc3a23970173c123bfd3673a92b7346009", + "renderedSha256": "e03f51ed05aa8bb50287a20d10a307cc3a23970173c123bfd3673a92b7346009" + }, + ".claude/skills/feature-tech-planning/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/feature-tech-planning/SKILL.md", + "sourceSha256": "7b0797dc973404c94d02a5d57258f8befb7b490f7643f9b01619eed1e83c9127", + "renderedSha256": "7b0797dc973404c94d02a5d57258f8befb7b490f7643f9b01619eed1e83c9127" + }, + ".claude/skills/fuzefront-ui-package/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/fuzefront-ui-package/SKILL.md", + "sourceSha256": "516db73f20f26cbf99f2b37b5adc48f2d7c192e61612092570f2ca97ee41b9b8", + "renderedSha256": "516db73f20f26cbf99f2b37b5adc48f2d7c192e61612092570f2ca97ee41b9b8" + }, + ".claude/skills/logging/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/logging/SKILL.md", + "sourceSha256": "b80bd1a00ad2ad001c357ad66d486bffa6b8d691a04a69c56d8ccd810b854f4b", + "renderedSha256": "b80bd1a00ad2ad001c357ad66d486bffa6b8d691a04a69c56d8ccd810b854f4b" + }, + ".claude/skills/managed-agents-roles/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/managed-agents-roles/SKILL.md", + "sourceSha256": "888ffd0b73f3233f27f9b60b3ca5415fba65399ee6a471571a6be98f43e61437", + "renderedSha256": "888ffd0b73f3233f27f9b60b3ca5415fba65399ee6a471571a6be98f43e61437" + }, + ".claude/skills/mobile-conformance/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/mobile-conformance/SKILL.md", + "sourceSha256": "476983a3b24b634d1a8c0e33e7475d4053c31ed20ac1a2ccf6bea2cc3c362046", + "renderedSha256": "476983a3b24b634d1a8c0e33e7475d4053c31ed20ac1a2ccf6bea2cc3c362046" + }, + ".claude/skills/model-cascade/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/model-cascade/SKILL.md", + "sourceSha256": "1673f06d41c25b894fc587e55bd02da02e338bbc3d9eee4d69a3b5031c3f1913", + "renderedSha256": "1673f06d41c25b894fc587e55bd02da02e338bbc3d9eee4d69a3b5031c3f1913" + }, + ".claude/skills/repo-hardening/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/repo-hardening/SKILL.md", + "sourceSha256": "b33d38d40d677f2f62385971efb9ba7401a47aa22cf9d642ef70854b56cf688b", + "renderedSha256": "b33d38d40d677f2f62385971efb9ba7401a47aa22cf9d642ef70854b56cf688b" + }, + ".claude/skills/ticket-creator/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-creator/SKILL.md", + "sourceSha256": "401d94c0ff9a99acabdfc6de19a0338c9a2337abf53b5bf13a6b39eca7e05e78", + "renderedSha256": "401d94c0ff9a99acabdfc6de19a0338c9a2337abf53b5bf13a6b39eca7e05e78" + }, + ".claude/skills/ticket-creator/backend/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-creator/backend/SKILL.md", + "sourceSha256": "f4254bc5a8cda575acdee84bbb8769fc353e5a60fcd90a369f3ee099805331b0", + "renderedSha256": "f4254bc5a8cda575acdee84bbb8769fc353e5a60fcd90a369f3ee099805331b0" + }, + ".claude/skills/ticket-creator/bug/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-creator/bug/SKILL.md", + "sourceSha256": "bb5faa8e5b9aa8b627c65bce935bbe73df4d95c28af63589a48bd76e18fbbd42", + "renderedSha256": "bb5faa8e5b9aa8b627c65bce935bbe73df4d95c28af63589a48bd76e18fbbd42" + }, + ".claude/skills/ticket-creator/devops/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-creator/devops/SKILL.md", + "sourceSha256": "9c6d38d7f96ff200c8ca8217a3de3850d2ac2945728a0a16199e0fc318baa84d", + "renderedSha256": "9c6d38d7f96ff200c8ca8217a3de3850d2ac2945728a0a16199e0fc318baa84d" + }, + ".claude/skills/ticket-creator/docs/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-creator/docs/SKILL.md", + "sourceSha256": "7ef59d846b605c5a3ff8362a700d3d88fca62365bfb03bd4e3761994a1e63bd4", + "renderedSha256": "7ef59d846b605c5a3ff8362a700d3d88fca62365bfb03bd4e3761994a1e63bd4" + }, + ".claude/skills/ticket-creator/epic/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-creator/epic/SKILL.md", + "sourceSha256": "9e66e9e76a2209b1c81f1086389f02dc8c9187f9e1418f5b5e27d49cf3db94b5", + "renderedSha256": "9e66e9e76a2209b1c81f1086389f02dc8c9187f9e1418f5b5e27d49cf3db94b5" + }, + ".claude/skills/ticket-creator/frontend/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-creator/frontend/SKILL.md", + "sourceSha256": "b4400c8aabfac295364fe1e326adfe0085eef35ff772b9f10d46a28e42764899", + "renderedSha256": "b4400c8aabfac295364fe1e326adfe0085eef35ff772b9f10d46a28e42764899" + }, + ".claude/skills/ticket-creator/qa/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-creator/qa/SKILL.md", + "sourceSha256": "020e1c3a40efa097f9dc883137a0b9937ddc68f7cc32da739957f2b3dbcd3d92", + "renderedSha256": "020e1c3a40efa097f9dc883137a0b9937ddc68f7cc32da739957f2b3dbcd3d92" + }, + ".claude/skills/ticket-creator/qa/functional/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-creator/qa/functional/SKILL.md", + "sourceSha256": "6f9016fec42a5cd3779b282f488188342b8d8f890e9f5191c52ab76bf7a648bd", + "renderedSha256": "6f9016fec42a5cd3779b282f488188342b8d8f890e9f5191c52ab76bf7a648bd" + }, + ".claude/skills/ticket-creator/qa/integration/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-creator/qa/integration/SKILL.md", + "sourceSha256": "7cb4ebfc0736c56f61b382a08bbf9ec02932eba8dc78c700b1e1a0c61c6d6f31", + "renderedSha256": "7cb4ebfc0736c56f61b382a08bbf9ec02932eba8dc78c700b1e1a0c61c6d6f31" + }, + ".claude/skills/ticket-creator/qa/load-stress/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-creator/qa/load-stress/SKILL.md", + "sourceSha256": "7e492d0c0a6bc951d883761df01ba2b01301886a738d521a36b25f7fe3a6af93", + "renderedSha256": "7e492d0c0a6bc951d883761df01ba2b01301886a738d521a36b25f7fe3a6af93" + }, + ".claude/skills/ticket-creator/qa/security/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-creator/qa/security/SKILL.md", + "sourceSha256": "2bbe07ad8f27c5ec318f4cf712055dd281bd21140b2f8055cfb044c99c6b179a", + "renderedSha256": "2bbe07ad8f27c5ec318f4cf712055dd281bd21140b2f8055cfb044c99c6b179a" + }, + ".claude/skills/ticket-creator/qa/unit/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-creator/qa/unit/SKILL.md", + "sourceSha256": "4201415d62fc24cd9b5bfb521798017a4e74c92fd5cb7f1577c3c001e7ca3268", + "renderedSha256": "4201415d62fc24cd9b5bfb521798017a4e74c92fd5cb7f1577c3c001e7ca3268" + }, + ".claude/skills/ticket-creator/story/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-creator/story/SKILL.md", + "sourceSha256": "737bd59465e739035b287b5ebe144a511c097871f6ce68c09141da0d5dfa5cf8", + "renderedSha256": "737bd59465e739035b287b5ebe144a511c097871f6ce68c09141da0d5dfa5cf8" + }, + ".claude/skills/ticket-creator/ux/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-creator/ux/SKILL.md", + "sourceSha256": "1f6aeca9a59c029a3cd9c5c3ff865ef1cede51488cddfbee65092684315a54b6", + "renderedSha256": "1f6aeca9a59c029a3cd9c5c3ff865ef1cede51488cddfbee65092684315a54b6" + }, + ".claude/skills/ticket-enforcer/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-enforcer/SKILL.md", + "sourceSha256": "58b936c8670162d3f6281e9b960f98ab6223937a5aac12c2e63d88dcaf6b6e7a", + "renderedSha256": "58b936c8670162d3f6281e9b960f98ab6223937a5aac12c2e63d88dcaf6b6e7a" + }, + ".claude/skills/ticket-reviewer/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-reviewer/SKILL.md", + "sourceSha256": "99ebdc75bbc5eae409cc35b147ba04dbc36979bd6512ae448dd8c5d8d0e7e675", + "renderedSha256": "99ebdc75bbc5eae409cc35b147ba04dbc36979bd6512ae448dd8c5d8d0e7e675" + }, + ".claude/skills/ticket-reviewer/bug/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-reviewer/bug/SKILL.md", + "sourceSha256": "3ec912e90d2da19eaa68917817f48d786b59b3cb0b6183c49bce81d4689ec5f5", + "renderedSha256": "3ec912e90d2da19eaa68917817f48d786b59b3cb0b6183c49bce81d4689ec5f5" + }, + ".claude/skills/ticket-reviewer/dev-task/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-reviewer/dev-task/SKILL.md", + "sourceSha256": "f3984f390e7acfbc50320c4ddb554640e9cfae28cd397e12bf348516067daa9b", + "renderedSha256": "f3984f390e7acfbc50320c4ddb554640e9cfae28cd397e12bf348516067daa9b" + }, + ".claude/skills/ticket-reviewer/devops/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-reviewer/devops/SKILL.md", + "sourceSha256": "d72c24d9f49fa3d4522210f9a32f0a12c2efe9cd18e2f35d455b69f4840c0590", + "renderedSha256": "d72c24d9f49fa3d4522210f9a32f0a12c2efe9cd18e2f35d455b69f4840c0590" + }, + ".claude/skills/ticket-reviewer/docs/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-reviewer/docs/SKILL.md", + "sourceSha256": "aa98b1c9983209cd7305984462cb363174e5ba9f7ddbdb9570b6472723161b85", + "renderedSha256": "aa98b1c9983209cd7305984462cb363174e5ba9f7ddbdb9570b6472723161b85" + }, + ".claude/skills/ticket-reviewer/epic/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-reviewer/epic/SKILL.md", + "sourceSha256": "1f414cccadd1e84f1a5947be3fd043911b98f04a3140bb301983dd35e708f008", + "renderedSha256": "1f414cccadd1e84f1a5947be3fd043911b98f04a3140bb301983dd35e708f008" + }, + ".claude/skills/ticket-reviewer/qa/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-reviewer/qa/SKILL.md", + "sourceSha256": "394f95a4cfcfe776a1ea65f47f0583bcd71f20cdad96a7eb8d17e8c2216d9608", + "renderedSha256": "394f95a4cfcfe776a1ea65f47f0583bcd71f20cdad96a7eb8d17e8c2216d9608" + }, + ".claude/skills/ticket-reviewer/story/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ticket-reviewer/story/SKILL.md", + "sourceSha256": "a832ba5f191a5b3277fb9b0b4c09343fe5b7363104adf8eb960f132f7297a722", + "renderedSha256": "a832ba5f191a5b3277fb9b0b4c09343fe5b7363104adf8eb960f132f7297a722" + }, + ".claude/skills/ui-frame-contract/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ui-frame-contract/SKILL.md", + "sourceSha256": "42f37f74cc1d3e81feb72c2fdf123a40e4a90f1bc30045649fbadf4ac932f92d", + "renderedSha256": "42f37f74cc1d3e81feb72c2fdf123a40e4a90f1bc30045649fbadf4ac932f92d" + }, + ".claude/skills/ui-runtime-validation/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/ui-runtime-validation/SKILL.md", + "sourceSha256": "9a025e7dec7ddd21b72374676adea53d3e16136d4f6fec735f6b2b778540ec10", + "renderedSha256": "9a025e7dec7ddd21b72374676adea53d3e16136d4f6fec735f6b2b778540ec10" + }, + ".claude/skills/verification-protocol/SKILL.md": { + "capability": "skills", + "mode": "managed", + "sourcePath": "skills/verification-protocol/SKILL.md", + "sourceSha256": "de74336a097829dbc6019af52f3f192b62339272935413e718b3917f42e5b3db", + "renderedSha256": "de74336a097829dbc6019af52f3f192b62339272935413e718b3917f42e5b3db" + }, + ".fuze/identifier-allowlist.txt": { + "capability": "entity-identity", + "mode": "seeded", + "sourcePath": "governance/identifier-allowlist.txt", + "sourceSha256": "e63c72829872d7e7a42b1766bf161b6f7dec119b929b217a8333e3f6440dc883", + "renderedSha256": "e63c72829872d7e7a42b1766bf161b6f7dec119b929b217a8333e3f6440dc883" + }, + ".fuze/repo-manifest.schema.json": { + "capability": "schema-validate", + "mode": "managed", + "sourcePath": "governance/repo-manifest.schema.json", + "sourceSha256": "0609a29df35b0adb8fbda5c15a695a693bc09fb6d01b40bc19b933d23fc249d5", + "renderedSha256": "0609a29df35b0adb8fbda5c15a695a693bc09fb6d01b40bc19b933d23fc249d5" + }, + ".github/actions/fuze-code-action/__tests__/test_classify.sh": { + "capability": "workflows", + "mode": "managed", + "sourcePath": ".github/actions/fuze-code-action/__tests__/test_classify.sh", + "sourceSha256": "b9dda1ea613488303a0ab92c21a4a04f03436bc71bc158ff6c648c74e5432d0f", + "renderedSha256": "b9dda1ea613488303a0ab92c21a4a04f03436bc71bc158ff6c648c74e5432d0f" + }, + ".github/actions/fuze-code-action/__tests__/test_extra_env.py": { + "capability": "workflows", + "mode": "managed", + "sourcePath": ".github/actions/fuze-code-action/__tests__/test_extra_env.py", + "sourceSha256": "221e33fd19bff90a77b2a5311d92c526332fd78ba1690502e79c0e9c02a94179", + "renderedSha256": "221e33fd19bff90a77b2a5311d92c526332fd78ba1690502e79c0e9c02a94179" + }, + ".github/actions/fuze-code-action/__tests__/test_passthrough_defaults.py": { + "capability": "workflows", + "mode": "managed", + "sourcePath": ".github/actions/fuze-code-action/__tests__/test_passthrough_defaults.py", + "sourceSha256": "580b152d228f7b7120d843129397400b83408ec1afe9069bccf4bc2488b696c0", + "renderedSha256": "580b152d228f7b7120d843129397400b83408ec1afe9069bccf4bc2488b696c0" + }, + ".github/actions/fuze-code-action/__tests__/test_run_blocks_parse.py": { + "capability": "workflows", + "mode": "managed", + "sourcePath": ".github/actions/fuze-code-action/__tests__/test_run_blocks_parse.py", + "sourceSha256": "68c504dc7077f393b86ca12f70e9e303a97eee1b6cb113234e2db8cb3f640e67", + "renderedSha256": "68c504dc7077f393b86ca12f70e9e303a97eee1b6cb113234e2db8cb3f640e67" + }, + ".github/actions/fuze-code-action/__tests__/test_rung_gating.py": { + "capability": "workflows", + "mode": "managed", + "sourcePath": ".github/actions/fuze-code-action/__tests__/test_rung_gating.py", + "sourceSha256": "9e26b65902c0309b7231715c96543dd62393ddca42d6ce784206f3a7b296879a", + "renderedSha256": "9e26b65902c0309b7231715c96543dd62393ddca42d6ce784206f3a7b296879a" + }, + ".github/actions/fuze-code-action/action.yml": { + "capability": "workflows", + "mode": "managed", + "sourcePath": ".github/actions/fuze-code-action/action.yml", + "sourceSha256": "a260b5ab31ad6645183612fc90953b3d0b6f21d083b23260b7765404d325a75e", + "renderedSha256": "a260b5ab31ad6645183612fc90953b3d0b6f21d083b23260b7765404d325a75e" + }, + ".github/actions/fuze-code-action/classify.sh": { + "capability": "workflows", + "mode": "managed", + "sourcePath": ".github/actions/fuze-code-action/classify.sh", + "sourceSha256": "071c727ea2f347ed43f9fb44ae224630ec99b55a117777c2a3bc8e3c97bccbd1", + "renderedSha256": "071c727ea2f347ed43f9fb44ae224630ec99b55a117777c2a3bc8e3c97bccbd1" + }, + ".github/actions/fuze-push-identity/action.yml": { + "capability": "workflows", + "mode": "managed", + "sourcePath": ".github/actions/fuze-push-identity/action.yml", + "sourceSha256": "57b7c90c55a8b15649b22a73703cb6faa54ba7749d695592ff911e8a7f040963", + "renderedSha256": "57b7c90c55a8b15649b22a73703cb6faa54ba7749d695592ff911e8a7f040963" + }, + ".github/actions/llm-endpoint/action.yml": { + "capability": "workflows", + "mode": "managed", + "sourcePath": ".github/actions/llm-endpoint/action.yml", + "sourceSha256": "939fe5e84568530a6fc2a8328deefa52a31137d639b2fbe6f5c1bd4ca8dae3c9", + "renderedSha256": "939fe5e84568530a6fc2a8328deefa52a31137d639b2fbe6f5c1bd4ca8dae3c9" + }, + ".github/labels.json": { + "capability": "community", + "mode": "seeded", + "sourcePath": "community-templates/labels.json", + "sourceSha256": "e179fa24088c360b368cf468d5974d1813029229d9f08f4127892eb4c15c5bb5", + "renderedSha256": "e179fa24088c360b368cf468d5974d1813029229d9f08f4127892eb4c15c5bb5" + }, + ".github/workflows/a2a-maintain.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/a2a-maintain.yml", + "sourceSha256": "35d9e4cf7b06623fa892cfc36fd440c4b19d633dacfc9d61c0362cb0383ce77b", + "renderedSha256": "35d9e4cf7b06623fa892cfc36fd440c4b19d633dacfc9d61c0362cb0383ce77b", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1" + } + }, + ".github/workflows/auto-merge.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/auto-merge.yml", + "sourceSha256": "2d2d09380b72e9d56725a137205bc7351e91dc9feb20be41120d6e418d8b4027", + "renderedSha256": "2d2d09380b72e9d56725a137205bc7351e91dc9feb20be41120d6e418d8b4027", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1" + } + }, + ".github/workflows/claude-ci-autofix.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/claude-ci-autofix.yml", + "sourceSha256": "35da8c61ab208185aadb47d3e70b31d782bde856e3804d64ef574cc7bcefe0c7", + "renderedSha256": "35da8c61ab208185aadb47d3e70b31d782bde856e3804d64ef574cc7bcefe0c7", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1" + } + }, + ".github/workflows/claude.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/claude.yml", + "sourceSha256": "f79807ed2e35d8bc6e0dc48a5697c3537e4ebe33ffe33212c15571aec6285aff", + "renderedSha256": "f79807ed2e35d8bc6e0dc48a5697c3537e4ebe33ffe33212c15571aec6285aff", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1" + } + }, + ".github/workflows/design-approval.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/design-approval.yml", + "sourceSha256": "ee6fa15c16a2c5df69e184e9817da9a80fd7a68cff9f9d9cc23c6b4da376040f", + "renderedSha256": "ee6fa15c16a2c5df69e184e9817da9a80fd7a68cff9f9d9cc23c6b4da376040f", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1" + } + }, + ".github/workflows/design-review-notify.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/design-review-notify.yml", + "sourceSha256": "31efd5b3f9c6239dadf2a719eb7bebf413a02bb49580fae6cec60e1345ff1e71", + "renderedSha256": "31efd5b3f9c6239dadf2a719eb7bebf413a02bb49580fae6cec60e1345ff1e71" + }, + ".github/workflows/fuze-auto-pr.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/fuze-auto-pr.yml", + "sourceSha256": "a066aa0c1fb0843482ad74445ba2783b90aa41bfdb6cc908c11cc2d2d81c4889", + "renderedSha256": "a066aa0c1fb0843482ad74445ba2783b90aa41bfdb6cc908c11cc2d2d81c4889", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1", + "repoName": "izzywdev/FuzeFront" + } + }, + ".github/workflows/fuze-ci-autofix.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/fuze-ci-autofix.yml", + "sourceSha256": "a95d17e5045acf7e01a7848b89f831f037b64554b2d8e5c73151ff9682ea78bc", + "renderedSha256": "a95d17e5045acf7e01a7848b89f831f037b64554b2d8e5c73151ff9682ea78bc", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1", + "repoName": "izzywdev/FuzeFront" + } + }, + ".github/workflows/fuze-code-review.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/fuze-code-review.yml", + "sourceSha256": "d8c46216212e373a19ace47c387cf382d57df352987ff1d85cf8b16ec4ce43da", + "renderedSha256": "d8c46216212e373a19ace47c387cf382d57df352987ff1d85cf8b16ec4ce43da", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1", + "repoName": "izzywdev/FuzeFront" + } + }, + ".github/workflows/fuze.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/fuze.yml", + "sourceSha256": "94880c4f76a38aaee7c356d8aeed23e5dea01c563a8ef3db878a428212b71022", + "renderedSha256": "94880c4f76a38aaee7c356d8aeed23e5dea01c563a8ef3db878a428212b71022", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1", + "repoName": "izzywdev/FuzeFront" + } + }, + ".github/workflows/gate-frames-stamped.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/gate-frames-stamped.yml", + "sourceSha256": "69fd04a77f3dc79a15756aa43bc1b4cd2ae760952b6b6d85e6846cd4b81539da", + "renderedSha256": "69fd04a77f3dc79a15756aa43bc1b4cd2ae760952b6b6d85e6846cd4b81539da", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1" + } + }, + ".github/workflows/gate-line-endings.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/gate-line-endings.yml", + "sourceSha256": "07ee2e135bd267da6b03b99c9990e2b898a7584c7191a12816af56a830e74d30", + "renderedSha256": "07ee2e135bd267da6b03b99c9990e2b898a7584c7191a12816af56a830e74d30", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1" + } + }, + ".github/workflows/gate-required-checks.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/gate-required-checks.yml", + "sourceSha256": "9bfea128c996a9ad6b704ec6542adae6f5308d04484f24dea809095bddb00a66", + "renderedSha256": "9bfea128c996a9ad6b704ec6542adae6f5308d04484f24dea809095bddb00a66", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1", + "repoName": "izzywdev/FuzeFront" + } + }, + ".github/workflows/gate-workflow-drift.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/gate-workflow-drift.yml", + "sourceSha256": "0224aeeb692bfb7873f9815e3d0f4af3b42acaf54649b2564a81e27b73320a57", + "renderedSha256": "0224aeeb692bfb7873f9815e3d0f4af3b42acaf54649b2564a81e27b73320a57", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1", + "repoName": "izzywdev/FuzeFront" + } + }, + ".github/workflows/governance-nightly.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/governance-nightly.yml", + "sourceSha256": "8bc3fbb28fb307f33cf03ea04a71fb6a68c3d8e8ebd2f5920a41faa60f81343d", + "renderedSha256": "8bc3fbb28fb307f33cf03ea04a71fb6a68c3d8e8ebd2f5920a41faa60f81343d", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1" + } + }, + ".github/workflows/governance-sync.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/governance-sync.yml", + "sourceSha256": "8fbd260435ddeb153996c0d73abcadb6459a08106b193862a9ff3821547055ba", + "renderedSha256": "8fbd260435ddeb153996c0d73abcadb6459a08106b193862a9ff3821547055ba", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1" + } + }, + ".github/workflows/harden-gate.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/harden-gate.yml", + "sourceSha256": "13333b6ec21976755e849a3de6f831befbb24eb9b78f7ad16b6c0b79e12bb97f", + "renderedSha256": "13333b6ec21976755e849a3de6f831befbb24eb9b78f7ad16b6c0b79e12bb97f", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1" + } + }, + ".github/workflows/helm-validate.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/helm-validate.yml", + "sourceSha256": "c137a042911ed9b0dc2bacda6477f8176e396f41b4d5e17bebba02654a8401da", + "renderedSha256": "c137a042911ed9b0dc2bacda6477f8176e396f41b4d5e17bebba02654a8401da", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1" + } + }, + ".github/workflows/label-sync.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/label-sync.yml", + "sourceSha256": "cbc346e3bb08d8217ee0fec7c95899876c2713ac9db68ab050bb2e1d4ae04204", + "renderedSha256": "cbc346e3bb08d8217ee0fec7c95899876c2713ac9db68ab050bb2e1d4ae04204", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1" + } + }, + ".github/workflows/mcp-maintain.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/mcp-maintain.yml", + "sourceSha256": "5fb529630898bc1bdc0163d251ec4f2c650b544342bac2c9fe43920775d1759d", + "renderedSha256": "5fb529630898bc1bdc0163d251ec4f2c650b544342bac2c9fe43920775d1759d", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1" + } + }, + ".github/workflows/nightly-integration.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/nightly-integration.yml", + "sourceSha256": "6efaff8acf9a32a236f81da8a9beee5b05a5a7226d9df8178ddc0be7048edea5", + "renderedSha256": "6efaff8acf9a32a236f81da8a9beee5b05a5a7226d9df8178ddc0be7048edea5", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1" + } + }, + ".github/workflows/pages-frames.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/pages-frames.yml", + "sourceSha256": "65f59bb2870ac1bd38ab946e6f174fb26b6f78ce892a2d7c0a44b847f3071416", + "renderedSha256": "65f59bb2870ac1bd38ab946e6f174fb26b6f78ce892a2d7c0a44b847f3071416", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1" + } + }, + ".github/workflows/publish-expert.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/publish-expert.yml", + "sourceSha256": "5615c0e40b1ffe784ee90d2c181ab3c18452c7429c9216ca5482938b2f51ab0e", + "renderedSha256": "5615c0e40b1ffe784ee90d2c181ab3c18452c7429c9216ca5482938b2f51ab0e", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1" + } + }, + ".github/workflows/telegram-pr-merged.yml": { + "capability": "workflows", + "mode": "stamped", + "sourcePath": "workflow-templates/telegram-pr-merged.yml", + "sourceSha256": "d7b161e66268ee150ccda2726176449262f608b4ee29e397051709aa4c2a3ecc", + "renderedSha256": "d7b161e66268ee150ccda2726176449262f608b4ee29e397051709aa4c2a3ecc", + "renderVars": { + "defaultBranch": "master", + "baselineRef": "v1" + } + }, + "FuzeQuality/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "FuzeQuality/apps/web/vite.config.ts": { + "capability": "mf-remote", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "04195c2f62f9c8167b4d011f81f195e6db04a70ca0f22d8fa768dc5438cc4cc8", + "renderedSha256": "04195c2f62f9c8167b4d011f81f195e6db04a70ca0f22d8fa768dc5438cc4cc8" + }, + "FuzeQuality/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "0c55390a478175c2c96010c09ada7262d1f3c6ed4a307b5ba9543c2e9b3400d3", + "renderedSha256": "0c55390a478175c2c96010c09ada7262d1f3c6ed4a307b5ba9543c2e9b3400d3" + }, + "agent-templates/providers/README.md": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/providers/README.md", + "sourceSha256": "b0d8e9a70db32dd620ba8bbdc795231fb41dc34dafa3de1c1e322aa9e9c698e3", + "renderedSha256": "b0d8e9a70db32dd620ba8bbdc795231fb41dc34dafa3de1c1e322aa9e9c698e3" + }, + "agent-templates/providers/__init__.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/providers/__init__.py", + "sourceSha256": "27c57128919ac2b76540a16e90c09a16c0fff7254f332c54e1060a828729e7d4", + "renderedSha256": "27c57128919ac2b76540a16e90c09a16c0fff7254f332c54e1060a828729e7d4" + }, + "agent-templates/providers/anthropic/__init__.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/providers/anthropic/__init__.py", + "sourceSha256": "c1fd152a1c0758aca7b27979c0634f8d816ce99aa757bb870e4736bf82f478b0", + "renderedSha256": "c1fd152a1c0758aca7b27979c0634f8d816ce99aa757bb870e4736bf82f478b0" + }, + "agent-templates/providers/anthropic/adapter.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/providers/anthropic/adapter.py", + "sourceSha256": "0a9e17075c50772298d71f4a163c67554d8894ec7fbf612285a8343acf8f7612", + "renderedSha256": "0a9e17075c50772298d71f4a163c67554d8894ec7fbf612285a8343acf8f7612" + }, + "agent-templates/providers/base.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/providers/base.py", + "sourceSha256": "480821608c9c009aea949caca9df9701b2d88857e3aa1fc122a858ad7ad3c773", + "renderedSha256": "480821608c9c009aea949caca9df9701b2d88857e3aa1fc122a858ad7ad3c773" + }, + "agent-templates/providers/hermes/__init__.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/providers/hermes/__init__.py", + "sourceSha256": "6453fce6d954113ba0e5182543c500f010e3578162e07301a361807fd13ea0c1", + "renderedSha256": "6453fce6d954113ba0e5182543c500f010e3578162e07301a361807fd13ea0c1" + }, + "agent-templates/providers/hermes/adapter.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/providers/hermes/adapter.py", + "sourceSha256": "9fcedb97b327e5b48d960c19a943e800144de5a2b0fbd0b213be9578b76b6e70", + "renderedSha256": "9fcedb97b327e5b48d960c19a943e800144de5a2b0fbd0b213be9578b76b6e70" + }, + "agent-templates/providers/openai/__init__.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/providers/openai/__init__.py", + "sourceSha256": "bf0bc1ad3e08bf4fa29852ceb8018c7ac614797c07a65462b1c3411f6bf55567", + "renderedSha256": "bf0bc1ad3e08bf4fa29852ceb8018c7ac614797c07a65462b1c3411f6bf55567" + }, + "agent-templates/providers/openai/adapter.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/providers/openai/adapter.py", + "sourceSha256": "0bfdae63b2caf64309443bea5bd612189cca780511ef5bb1883ea4ca48387057", + "renderedSha256": "0bfdae63b2caf64309443bea5bd612189cca780511ef5bb1883ea4ca48387057" + }, + "agent-templates/providers/provision.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/providers/provision.py", + "sourceSha256": "757da115f5426ce955670e49e378e2489d29e54314b9c54dfbc4176434149b2d", + "renderedSha256": "757da115f5426ce955670e49e378e2489d29e54314b9c54dfbc4176434149b2d" + }, + "agent-templates/roles/_base/role.json": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/roles/_base/role.json", + "sourceSha256": "67add1adf33f093cb9ac0ef63546b623a9a11ace98789caf7d141be502a4e937", + "renderedSha256": "67add1adf33f093cb9ac0ef63546b623a9a11ace98789caf7d141be502a4e937" + }, + "agent-templates/schema/environment.schema.json": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/schema/environment.schema.json", + "sourceSha256": "525b7489a4044190c40f13443012f23985cc4de0602893438057feb20a8b39f3", + "renderedSha256": "525b7489a4044190c40f13443012f23985cc4de0602893438057feb20a8b39f3" + }, + "agent-templates/schema/memory.schema.json": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/schema/memory.schema.json", + "sourceSha256": "f2645779babcc1d8ac7efa3c61021c60e5e75011bb2a79cadf7a470a7f12d4ef", + "renderedSha256": "f2645779babcc1d8ac7efa3c61021c60e5e75011bb2a79cadf7a470a7f12d4ef" + }, + "agent-templates/schema/mobile-requirements.schema.json": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/schema/mobile-requirements.schema.json", + "sourceSha256": "30a1e94b36bfb25ec65aecda3dac5d62c4ac7fe9153c85b4fb279728b3497fe5", + "renderedSha256": "30a1e94b36bfb25ec65aecda3dac5d62c4ac7fe9153c85b4fb279728b3497fe5" + }, + "agent-templates/schema/role-manifest.schema.json": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/schema/role-manifest.schema.json", + "sourceSha256": "cdeacc70a3a55aafc8c2e7a2ae63227216b9eed38183895b42b6e2426fd16e1c", + "renderedSha256": "cdeacc70a3a55aafc8c2e7a2ae63227216b9eed38183895b42b6e2426fd16e1c" + }, + "agent-templates/schema/vault.schema.json": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/schema/vault.schema.json", + "sourceSha256": "993c7415d20397688502fbc3f27ae4a564769a6f5d258216a929d55691a291be", + "renderedSha256": "993c7415d20397688502fbc3f27ae4a564769a6f5d258216a929d55691a291be" + }, + "agent-templates/sync/.gitignore": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/sync/.gitignore", + "sourceSha256": "5e7a2fb056f4ee84e115d0594961787158d521873482319df251d8ee27e0ebad", + "renderedSha256": "5e7a2fb056f4ee84e115d0594961787158d521873482319df251d8ee27e0ebad" + }, + "agent-templates/sync/common.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/sync/common.py", + "sourceSha256": "01b1126a920f5aab5be113a71b85d97b6b26eb4f727a9ce641cdd0c57158ae02", + "renderedSha256": "01b1126a920f5aab5be113a71b85d97b6b26eb4f727a9ce641cdd0c57158ae02" + }, + "agent-templates/sync/driver.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/sync/driver.py", + "sourceSha256": "b158508af21086c3a7c5ea40be3a151d5f27d6d009e26c4c8df64982b2461ade", + "renderedSha256": "b158508af21086c3a7c5ea40be3a151d5f27d6d009e26c4c8df64982b2461ade" + }, + "agent-templates/sync/launch_session.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/sync/launch_session.py", + "sourceSha256": "7fbe2aa20ec327b028d864469354dd697df7ce859999499955f2e95bede886da", + "renderedSha256": "7fbe2aa20ec327b028d864469354dd697df7ce859999499955f2e95bede886da" + }, + "agent-templates/sync/requirements.txt": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/sync/requirements.txt", + "sourceSha256": "462738ad889760ba38f2dc00976008a3c87201e17c9bc69972e5c213b6751d97", + "renderedSha256": "462738ad889760ba38f2dc00976008a3c87201e17c9bc69972e5c213b6751d97" + }, + "agent-templates/sync/role_loader.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/sync/role_loader.py", + "sourceSha256": "ac911e97bd594c29ccf6964fbf3bf218b286e79c0e6ae04b50367b1d0b326de6", + "renderedSha256": "ac911e97bd594c29ccf6964fbf3bf218b286e79c0e6ae04b50367b1d0b326de6" + }, + "agent-templates/sync/sync_agents.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/sync/sync_agents.py", + "sourceSha256": "6faafb497e8f8fbde6def1575069c6809775c314ed1e445b34adc83dd5a60e7c", + "renderedSha256": "6faafb497e8f8fbde6def1575069c6809775c314ed1e445b34adc83dd5a60e7c" + }, + "agent-templates/sync/sync_environments.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/sync/sync_environments.py", + "sourceSha256": "3aac67b84d61439b5203168138bd370d726b941e554f3c2fe284635663088e57", + "renderedSha256": "3aac67b84d61439b5203168138bd370d726b941e554f3c2fe284635663088e57" + }, + "agent-templates/sync/sync_memory.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/sync/sync_memory.py", + "sourceSha256": "6b204e3c95a6309e380a60d6b50ca486e06ab7f02278904a0bae65dcd0e42318", + "renderedSha256": "6b204e3c95a6309e380a60d6b50ca486e06ab7f02278904a0bae65dcd0e42318" + }, + "agent-templates/sync/sync_vaults.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/sync/sync_vaults.py", + "sourceSha256": "aa286b35e59f28361c953c5e6bbc8d2de6c97ece66d2605a027f46f4a05aee24", + "renderedSha256": "aa286b35e59f28361c953c5e6bbc8d2de6c97ece66d2605a027f46f4a05aee24" + }, + "agent-templates/sync/validate.py": { + "capability": "roles", + "mode": "managed", + "sourcePath": "agent-templates/sync/validate.py", + "sourceSha256": "74c9fac452b18d218f5fa8a55e189b20d653c065d376c70f12ae1b5fd800b51f", + "renderedSha256": "74c9fac452b18d218f5fa8a55e189b20d653c065d376c70f12ae1b5fd800b51f" + }, + "api-client/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "api-client/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "728204a22d27a708b289bdeae6551f469d422bfa43061dac563ca0cf299111e4", + "renderedSha256": "728204a22d27a708b289bdeae6551f469d422bfa43061dac563ca0cf299111e4" + }, + "apps-client/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "apps-client/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "8bd86a4408f1422978008b4db58b3cbaa44de79203ac5f40a3f38fbb0bb02737", + "renderedSha256": "8bd86a4408f1422978008b4db58b3cbaa44de79203ac5f40a3f38fbb0bb02737" + }, + "backend/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "backend/applications/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "backend/applications/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "7b3af1326e9efd2bfd87742bae94ccc5f7277342ec7be45e8c60ae381d2e602b", + "renderedSha256": "7b3af1326e9efd2bfd87742bae94ccc5f7277342ec7be45e8c60ae381d2e602b" + }, + "backend/core/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "backend/core/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "965c93c45cc1dd7ca3766e87aa014859d2f00c6f953460d305abfe85b9f1fc85", + "renderedSha256": "965c93c45cc1dd7ca3766e87aa014859d2f00c6f953460d305abfe85b9f1fc85" + }, + "backend/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "b8164ee365347116f70a864e60baba14fadcd06b0a51ceb9d11291f586a2926f", + "renderedSha256": "b8164ee365347116f70a864e60baba14fadcd06b0a51ceb9d11291f586a2926f" + }, + "backend/security/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "backend/security/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "9fe0ad072a039811c84480c19c6dc9ebd8d6c6879f7c18feb33815c543a12bf6", + "renderedSha256": "9fe0ad072a039811c84480c19c6dc9ebd8d6c6879f7c18feb33815c543a12bf6" + }, + "billing-client/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "billing-client/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "29fcd3a5f74684e73ecf2b3d1f5b079605e3ce60afa1187cb4f8226d3319b722", + "renderedSha256": "29fcd3a5f74684e73ecf2b3d1f5b079605e3ce60afa1187cb4f8226d3319b722" + }, + "clock-app/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "clock-app/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "c1504a0af3ead7e5f82b493263ffef2e8a2f1b6b29c8f64278e3a1006ec12539", + "renderedSha256": "c1504a0af3ead7e5f82b493263ffef2e8a2f1b6b29c8f64278e3a1006ec12539" + }, + "clock-app/vite.config.ts": { + "capability": "mf-remote", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "b235d54f98e566c120b4135c728bcbf02486fe606192eba398bede456d696a42", + "renderedSha256": "b235d54f98e566c120b4135c728bcbf02486fe606192eba398bede456d696a42" + }, + "config-client/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "config-client/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "0ff608fa871c509ee466170bdfa0c4bb65e2f0a3c827c5ce54d7613b81657066", + "renderedSha256": "0ff608fa871c509ee466170bdfa0c4bb65e2f0a3c827c5ce54d7613b81657066" + }, + "custom-hostname-client/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "custom-hostname-client/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "895106b52e4e9b1aac0e6d61cc4ed7a9ec922c7458509ec8d68be7f0928afe62", + "renderedSha256": "895106b52e4e9b1aac0e6d61cc4ed7a9ec922c7458509ec8d68be7f0928afe62" + }, + "design-system/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "design-system/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "2b763c42b7b7e5f0d6b06d717b1d47c37890fcbdafca0245443cb6e3d4741398", + "renderedSha256": "2b763c42b7b7e5f0d6b06d717b1d47c37890fcbdafca0245443cb6e3d4741398" + }, + "frontend/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "066c7ccd49771c7b54b26d0a791707268796a0d63bb549bb69d3b92cbd6dd499", + "renderedSha256": "066c7ccd49771c7b54b26d0a791707268796a0d63bb549bb69d3b92cbd6dd499" + }, + "frontend/vite.config.ts": { + "capability": "mf-remote", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "4a1b01c002aa63a81aa5567a85401f8d0d789ee14dcc06b75b857f38896240eb", + "renderedSha256": "4a1b01c002aa63a81aa5567a85401f8d0d789ee14dcc06b75b857f38896240eb" + }, + "fuzefront-website/backend/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "fuzefront-website/backend/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "6e4aaf7bf7e7d865a73345c9deb055642e87dcc837d2792c9f716c2bbd8826cf", + "renderedSha256": "6e4aaf7bf7e7d865a73345c9deb055642e87dcc837d2792c9f716c2bbd8826cf" + }, + "fuzefront-website/frontend/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "fuzefront-website/frontend/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "48e22f036c75f77be3ef1bb84fae36ec5429eb9c3ab445b42dba01d1a79d2a23", + "renderedSha256": "48e22f036c75f77be3ef1bb84fae36ec5429eb9c3ab445b42dba01d1a79d2a23" + }, + "governance/federation-contract-policy.json": { + "capability": "workflows", + "mode": "managed", + "sourcePath": "governance/federation-contract-policy.json", + "sourceSha256": "a22e09f472571a5ba94ae81b247dbfe945a0781f1509b0c494feb1d39ff22e67", + "renderedSha256": "a22e09f472571a5ba94ae81b247dbfe945a0781f1509b0c494feb1d39ff22e67" + }, + "governance/required-checks.json": { + "capability": "harden-gate-scripts", + "mode": "managed", + "sourcePath": "governance/required-checks.json", + "sourceSha256": "e2ed9b235e05fbfeed653c5dcce3b6532d184e3e87a9c1673756976ca3d5d6d5", + "renderedSha256": "e2ed9b235e05fbfeed653c5dcce3b6532d184e3e87a9c1673756976ca3d5d6d5" + }, + "governance/workflow-drift-policy.json": { + "capability": "workflows", + "mode": "managed", + "sourcePath": "governance/workflow-drift-policy.json", + "sourceSha256": "ecf965d0dd770daf18bd3445fc157a8589dd7865d7cf03b652b25ebc04229818", + "renderedSha256": "ecf965d0dd770daf18bd3445fc157a8589dd7865d7cf03b652b25ebc04229818" + }, + "package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "88a9942178dcef094f144472d0d93509a94445963f6654e1a02d1362f4190814", + "renderedSha256": "88a9942178dcef094f144472d0d93509a94445963f6654e1a02d1362f4190814" + }, + "packages/account-security-ui/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/account-security-ui/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "46eca4ed3e3638f3af95306326fefce04121a7b88f4fe370b2c50271496c33ee", + "renderedSha256": "46eca4ed3e3638f3af95306326fefce04121a7b88f4fe370b2c50271496c33ee" + }, + "packages/auth-ui/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/auth-ui/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "9f7af26ad79eabed1f6952a2f196d7e8fd515e42e2c23ac5c1c0b4e0f5b31ff1", + "renderedSha256": "9f7af26ad79eabed1f6952a2f196d7e8fd515e42e2c23ac5c1c0b4e0f5b31ff1" + }, + "packages/auth/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/auth/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "c0284fc11cddaf3e7e1ff550448af2ecdf9f1a6c3a49dd753afdfc0e26a41205", + "renderedSha256": "c0284fc11cddaf3e7e1ff550448af2ecdf9f1a6c3a49dd753afdfc0e26a41205" + }, + "packages/billing-ui/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/billing-ui/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "02b5c01b6174a699857b01e3f7ec747ff3519c6d11a798293915765250b5544a", + "renderedSha256": "02b5c01b6174a699857b01e3f7ec747ff3519c6d11a798293915765250b5544a" + }, + "packages/chat-client/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/chat-client/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "664b1b3fb4534a665d9d94000a672a3da5e4ee49f79c46cef3279580e68f4aa3", + "renderedSha256": "664b1b3fb4534a665d9d94000a672a3da5e4ee49f79c46cef3279580e68f4aa3" + }, + "packages/chat-ui/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/chat-ui/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "ffcaf83affba17a017fb4f2096c2db2dbba03fb5d9eb336f798cd41435180265", + "renderedSha256": "ffcaf83affba17a017fb4f2096c2db2dbba03fb5d9eb336f798cd41435180265" + }, + "packages/config-ui/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/config-ui/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "1f40761c01385608fcf358dfdb4b8bd65863661ca9a9ea27ee3f2c3f32ca3757", + "renderedSha256": "1f40761c01385608fcf358dfdb4b8bd65863661ca9a9ea27ee3f2c3f32ca3757" + }, + "packages/feature-flags/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/feature-flags/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "1e419752173fa5c1e052651f3022a9a0bf695c202057bacff45872f09fb8f29e", + "renderedSha256": "1e419752173fa5c1e052651f3022a9a0bf695c202057bacff45872f09fb8f29e" + }, + "packages/i18n-translate/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/i18n-translate/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "e5ef1d29efbbdf04426fbd15542bdb70a1c94d6cd791c1bf004a21ac48acc979", + "renderedSha256": "e5ef1d29efbbdf04426fbd15542bdb70a1c94d6cd791c1bf004a21ac48acc979" + }, + "packages/i18n/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/i18n/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "5f97d22a848b25b914c16fa4c3c1148079b2a8c7e397f667c96a573d97ff51d8", + "renderedSha256": "5f97d22a848b25b914c16fa4c3c1148079b2a8c7e397f667c96a573d97ff51d8" + }, + "packages/identity-ui/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/identity-ui/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "186730ca43f619cc9dce5092b34f2c4512f3888d3d8b9f5f4e3e2b6439a99d0f", + "renderedSha256": "186730ca43f619cc9dce5092b34f2c4512f3888d3d8b9f5f4e3e2b6439a99d0f" + }, + "packages/identity/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/identity/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "67126b8a6d5bc763ea4558b279a5a61cfec4f25447722e3872accd39d4938e90", + "renderedSha256": "67126b8a6d5bc763ea4558b279a5a61cfec4f25447722e3872accd39d4938e90" + }, + "packages/mcp-gateway/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/mcp-gateway/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "b91c33317bede88efba10576d861c1af57a98727eec89d60e06d04787c3889e3", + "renderedSha256": "b91c33317bede88efba10576d861c1af57a98727eec89d60e06d04787c3889e3" + }, + "packages/onboarding-kit/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/onboarding-kit/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "848ad53aab028514a7dcf2a71d869d3702197e8a28bb39c614f7e37d4da26617", + "renderedSha256": "848ad53aab028514a7dcf2a71d869d3702197e8a28bb39c614f7e37d4da26617" + }, + "packages/portal-admin-ui/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/portal-admin-ui/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "56616627ac960601e26371407df4881c0422552b61a453f3dd78f049df15b1f9", + "renderedSha256": "56616627ac960601e26371407df4881c0422552b61a453f3dd78f049df15b1f9" + }, + "packages/portal-branding-ui/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/portal-branding-ui/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "3645fab32b33c5aeb7e94a007a0758df51a42e825fba645a372162fdc060d07e", + "renderedSha256": "3645fab32b33c5aeb7e94a007a0758df51a42e825fba645a372162fdc060d07e" + }, + "packages/security/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/security/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "3998dc2312e745590efbc3a676df48b112544adf29e2bacae1184110f39ac272", + "renderedSha256": "3998dc2312e745590efbc3a676df48b112544adf29e2bacae1184110f39ac272" + }, + "packages/selection-lists-ui/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "packages/selection-lists-ui/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "3ac40f1f975e55de6beb93d90c188605f038f77899cff7689e06f8a4e745d4b0", + "renderedSha256": "3ac40f1f975e55de6beb93d90c188605f038f77899cff7689e06f8a4e745d4b0" + }, + "portal-client/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "portal-client/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "7dbd5628dd67a2f576a773e32f391161ad299298cc3cbf1ebfe5be102bf1a9b2", + "renderedSha256": "7dbd5628dd67a2f576a773e32f391161ad299298cc3cbf1ebfe5be102bf1a9b2" + }, + "scripts/__tests__/test_fuze_code_review_verdict.py": { + "capability": "workflows", + "mode": "managed", + "sourcePath": "scripts/__tests__/test_fuze_code_review_verdict.py", + "sourceSha256": "b8b8c86efbc5dbe83d7916d2bedfba2530989a6c4ececd9c02fb7df6d8328e90", + "renderedSha256": "b8b8c86efbc5dbe83d7916d2bedfba2530989a6c4ececd9c02fb7df6d8328e90" + }, + "scripts/__tests__/test_gate_api_version.py": { + "capability": "workflows", + "mode": "managed", + "sourcePath": "scripts/__tests__/test_gate_api_version.py", + "sourceSha256": "1fafd2bc7aa2ec7411a6486b5ea9750219dcc30d5d6074972cdc8c95c1bde67a", + "renderedSha256": "1fafd2bc7aa2ec7411a6486b5ea9750219dcc30d5d6074972cdc8c95c1bde67a" + }, + "scripts/__tests__/test_gate_federation_contract.py": { + "capability": "workflows", + "mode": "managed", + "sourcePath": "scripts/__tests__/test_gate_federation_contract.py", + "sourceSha256": "93dd164cdfe1d9c7ed3b3ba8bc0da3e2f49b9b1628669a69d177b957693b5ba5", + "renderedSha256": "93dd164cdfe1d9c7ed3b3ba8bc0da3e2f49b9b1628669a69d177b957693b5ba5" + }, + "scripts/__tests__/test_gate_identifier.py": { + "capability": "harden-gate-scripts", + "mode": "managed", + "sourcePath": "scripts/__tests__/test_gate_identifier.py", + "sourceSha256": "17d58a407e607fd34ac674927c69e44484ca02d55c404ca8caafe2ca5dd5f64b", + "renderedSha256": "17d58a407e607fd34ac674927c69e44484ca02d55c404ca8caafe2ca5dd5f64b" + }, + "scripts/__tests__/test_gate_openapi_conformance.py": { + "capability": "harden-gate-scripts", + "mode": "managed", + "sourcePath": "scripts/__tests__/test_gate_openapi_conformance.py", + "sourceSha256": "e77128e69431a108f64482ab48802b2abe1d39ed58669b4eda091c692e30be8d", + "renderedSha256": "e77128e69431a108f64482ab48802b2abe1d39ed58669b4eda091c692e30be8d" + }, + "scripts/__tests__/test_gate_required_checks.py": { + "capability": "harden-gate-scripts", + "mode": "managed", + "sourcePath": "scripts/__tests__/test_gate_required_checks.py", + "sourceSha256": "f0cf7e2415607d1be0ef41efb280374a0f3a0ae4e542774b77dca4d8ae6e9949", + "renderedSha256": "f0cf7e2415607d1be0ef41efb280374a0f3a0ae4e542774b77dca4d8ae6e9949" + }, + "scripts/__tests__/test_gate_vacuous_check.py": { + "capability": "harden-gate-scripts", + "mode": "managed", + "sourcePath": "scripts/__tests__/test_gate_vacuous_check.py", + "sourceSha256": "febd1091605fc00fc31f466dcf9529317826d0d648fc5d3250e2cebdda698187", + "renderedSha256": "febd1091605fc00fc31f466dcf9529317826d0d648fc5d3250e2cebdda698187" + }, + "scripts/build-frames-site.mjs": { + "capability": "workflows", + "mode": "managed", + "sourcePath": "scripts/build-frames-site.mjs", + "sourceSha256": "4fcb6bc3cb2d9c658622e55ada484ed9958a9591af36959301c6310a24d75aae", + "renderedSha256": "4fcb6bc3cb2d9c658622e55ada484ed9958a9591af36959301c6310a24d75aae" + }, + "scripts/check-registration.mjs": { + "capability": "portal-registration", + "mode": "managed", + "sourcePath": "scripts/check-registration.mjs", + "sourceSha256": "fab83bb03d7505832d12095db184c019c7565d8e050c23b8f2482436c2302f30", + "renderedSha256": "fab83bb03d7505832d12095db184c019c7565d8e050c23b8f2482436c2302f30" + }, + "scripts/fuze_code_review_verdict.py": { + "capability": "workflows", + "mode": "managed", + "sourcePath": "scripts/fuze_code_review_verdict.py", + "sourceSha256": "d408d9d29e01accc1a736b296a3c4367a9e23bab12a05a6eaa01ecbdc0c5e58d", + "renderedSha256": "d408d9d29e01accc1a736b296a3c4367a9e23bab12a05a6eaa01ecbdc0c5e58d" + }, + "scripts/gate_api_version.py": { + "capability": "workflows", + "mode": "managed", + "sourcePath": "scripts/gate_api_version.py", + "sourceSha256": "dbdcc301f2a9607ac4b23b71919ff990931cea0ef6404ec8646c03b3c428fafe", + "renderedSha256": "dbdcc301f2a9607ac4b23b71919ff990931cea0ef6404ec8646c03b3c428fafe" + }, + "scripts/gate_ds_conformance.py": { + "capability": "harden-gate-scripts", + "mode": "managed", + "sourcePath": "scripts/gate_ds_conformance.py", + "sourceSha256": "fbedf04a6aa91033e0513b00d59184fbe132d76d3d04ad3259efd22b9e0830b3", + "renderedSha256": "fbedf04a6aa91033e0513b00d59184fbe132d76d3d04ad3259efd22b9e0830b3" + }, + "scripts/gate_federation_contract.py": { + "capability": "workflows", + "mode": "managed", + "sourcePath": "scripts/gate_federation_contract.py", + "sourceSha256": "306612164d7a33855bb4e1e36f70bbf289b1e00b29c1eebc3c8887f53351e10f", + "renderedSha256": "306612164d7a33855bb4e1e36f70bbf289b1e00b29c1eebc3c8887f53351e10f" + }, + "scripts/gate_identifier.py": { + "capability": "harden-gate-scripts", + "mode": "managed", + "sourcePath": "scripts/gate_identifier.py", + "sourceSha256": "ae5f4b8d2c1a8390e1339adb269232754c95b2ad0801c751c29e6dcd02cd4aaf", + "renderedSha256": "ae5f4b8d2c1a8390e1339adb269232754c95b2ad0801c751c29e6dcd02cd4aaf" + }, + "scripts/gate_manifest.py": { + "capability": "schema-validate", + "mode": "managed", + "sourcePath": "scripts/gate_manifest.py", + "sourceSha256": "527abd1ed32ff9a928b65e082b306b4055e55d1346cf031a3b8b6ec70ccd76b1", + "renderedSha256": "527abd1ed32ff9a928b65e082b306b4055e55d1346cf031a3b8b6ec70ccd76b1" + }, + "scripts/gate_openapi_conformance.py": { + "capability": "harden-gate-scripts", + "mode": "managed", + "sourcePath": "scripts/gate_openapi_conformance.py", + "sourceSha256": "9c417c928d98942eebd51c79c3f1e61d67e80f17f57ff775da37b932743a1950", + "renderedSha256": "9c417c928d98942eebd51c79c3f1e61d67e80f17f57ff775da37b932743a1950" + }, + "scripts/gate_pagination.py": { + "capability": "harden-gate-scripts", + "mode": "managed", + "sourcePath": "scripts/gate_pagination.py", + "sourceSha256": "7f1e0d79e2a80a79250db72ff8e437c9cb4a7b596728c4c9b377d66c080f6c35", + "renderedSha256": "7f1e0d79e2a80a79250db72ff8e437c9cb4a7b596728c4c9b377d66c080f6c35" + }, + "scripts/gate_required_checks.py": { + "capability": "harden-gate-scripts", + "mode": "managed", + "sourcePath": "scripts/gate_required_checks.py", + "sourceSha256": "0bf1dd75d601cfad14e935fd702e2667fc243e020f5e20758a493926c4fe9a6f", + "renderedSha256": "0bf1dd75d601cfad14e935fd702e2667fc243e020f5e20758a493926c4fe9a6f" + }, + "scripts/gate_vacuous_check.py": { + "capability": "harden-gate-scripts", + "mode": "managed", + "sourcePath": "scripts/gate_vacuous_check.py", + "sourceSha256": "3415c860699eda3f3a81c2d935251558f25f8a147024842e4dc8927d19bb7fb0", + "renderedSha256": "3415c860699eda3f3a81c2d935251558f25f8a147024842e4dc8927d19bb7fb0" + }, + "scripts/stamp-frames.mjs": { + "capability": "workflows", + "mode": "managed", + "sourcePath": "scripts/stamp-frames.mjs", + "sourceSha256": "71ede05b3cf69848c595302b4d80a041d2e7cb177e7afa8b2fe68ace2d04d6b9", + "renderedSha256": "71ede05b3cf69848c595302b4d80a041d2e7cb177e7afa8b2fe68ace2d04d6b9" + }, + "scripts/sync-chart-files.sh": { + "capability": "portal-registration", + "mode": "managed", + "sourcePath": "scripts/sync-chart-files.sh", + "sourceSha256": "b53985271e99279897baa5f3ae229e2676400e5ae2b2944a692cf0f54bde9d57", + "renderedSha256": "b53985271e99279897baa5f3ae229e2676400e5ae2b2944a692cf0f54bde9d57" + }, + "sdk/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "sdk/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "6f027e2850dc7c8cb7e88a3fbfee32bb5646d3ec2891fdc132ff85040753e116", + "renderedSha256": "6f027e2850dc7c8cb7e88a3fbfee32bb5646d3ec2891fdc132ff85040753e116" + }, + "selection-list-client/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "selection-list-client/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "d771f17e89e4234a2d620abe1a8862b50ec323d135e9e98016573d9a5b421914", + "renderedSha256": "d771f17e89e4234a2d620abe1a8862b50ec323d135e9e98016573d9a5b421914" + }, + "services/billing-service/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "services/billing-service/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "f522389c258fa4d752711be7794b176cf4d166c850498fcb252ba22ca89a8cec", + "renderedSha256": "f522389c258fa4d752711be7794b176cf4d166c850498fcb252ba22ca89a8cec" + }, + "services/chat-service/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "services/chat-service/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "b56fe13cb48499bc3355c5426307dee3a5e390892c207ebdb6231c67a3d81ab4", + "renderedSha256": "b56fe13cb48499bc3355c5426307dee3a5e390892c207ebdb6231c67a3d81ab4" + }, + "services/config-service/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "services/config-service/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "b6171c1153b07a2563a38bc7c45255eafd13c7a3a2ec37851c7a8414c3d47e12", + "renderedSha256": "b6171c1153b07a2563a38bc7c45255eafd13c7a3a2ec37851c7a8414c3d47e12" + }, + "services/email-service/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "services/email-service/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "22277c125e170ad4b03e286fc4a31eeadbb0e9a5d02ef1ccf4a8da19671e2e9f", + "renderedSha256": "22277c125e170ad4b03e286fc4a31eeadbb0e9a5d02ef1ccf4a8da19671e2e9f" + }, + "services/notification-service/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "services/notification-service/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "377b867c3369b89cdc890de12c5b9dbf2249cb04aec7bccd267d3c0b8fbf753d", + "renderedSha256": "377b867c3369b89cdc890de12c5b9dbf2249cb04aec7bccd267d3c0b8fbf753d" + }, + "services/payment-service/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "services/payment-service/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "05d31e5f7fa2b50bb2dc5c5fe78057e9b3cf5fc1eedd390fdb815615f32487cc", + "renderedSha256": "05d31e5f7fa2b50bb2dc5c5fe78057e9b3cf5fc1eedd390fdb815615f32487cc" + }, + "services/provisioning-service/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "services/provisioning-service/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "3c22ed09b3e9a3beba7f6931f2ec80d6d8f9cb1611369f8da073f67c1f6e3ae5", + "renderedSha256": "3c22ed09b3e9a3beba7f6931f2ec80d6d8f9cb1611369f8da073f67c1f6e3ae5" + }, + "services/selection-list-service/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "services/selection-list-service/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "e548124b63bd75fc8dd4bacca029526481ae1cd42a54505b9f15e1e90fe5d05f", + "renderedSha256": "e548124b63bd75fc8dd4bacca029526481ae1cd42a54505b9f15e1e90fe5d05f" + }, + "services/sms-service/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "services/sms-service/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "e3b26ba73dc967bbbbd6c408e1d1e0581ba158df4f8777e8146489b6d1b0e507", + "renderedSha256": "e3b26ba73dc967bbbbd6c408e1d1e0581ba158df4f8777e8146489b6d1b0e507" + }, + "shared/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "shared/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "194be46a9fe2fab083505a6ebd1fa7052607afed6ca9b11fc570cb892d5564af", + "renderedSha256": "194be46a9fe2fab083505a6ebd1fa7052607afed6ca9b11fc570cb892d5564af" + }, + "tests/e2e/billing-invoices/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "tests/e2e/billing-invoices/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "879455111ae7bc0498bbde2a2e05bc5b25b4829483fcf08160b7138161bee84c", + "renderedSha256": "879455111ae7bc0498bbde2a2e05bc5b25b4829483fcf08160b7138161bee84c" + }, + "tests/selection-list-service/.npmrc": { + "capability": "npm-registry", + "mode": "seeded", + "sourcePath": "community-templates/npmrc", + "sourceSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc", + "renderedSha256": "0dc82809c288fc8380df0d3701f3abe8bbb594860f7425ab97a0f82bd69469fc" + }, + "tests/selection-list-service/package.json": { + "capability": "node-toolchain", + "mode": "derived", + "sourcePath": "", + "sourceSha256": "45672c1f91889a84d3a34c499bb2d75c43f3c09b3e05236d752a5c3b7b7737c4", + "renderedSha256": "45672c1f91889a84d3a34c499bb2d75c43f3c09b3e05236d752a5c3b7b7737c4" + } + }, + "workflows": { + "a2a-maintain.yml": { + "template": "a2a-maintain.yml", + "baseline": "v1", + "renderedSha256": "4298b3a94c7c05cacc09de13b4004e68d09adc0657609d974eeaf1efe6c282bc" + } + } +} diff --git a/.github/workflows/claude-auto-pr.yml b/.github/workflows/claude-auto-pr.yml deleted file mode 100644 index 000b1655..00000000 --- a/.github/workflows/claude-auto-pr.yml +++ /dev/null @@ -1,337 +0,0 @@ -name: Stranded-branch detector (agent branches) - -# WHAT THIS CAN AND CANNOT DO — read before trusting it. -# -# CORRECTION (2026-08-26). Everything below the next paragraph described a repo -# where `can_approve_pull_request_reviews` was false. It was flipped to TRUE on -# 2026-08-23 (see CLAUDE.md, branch lifecycle), so the create path this file -# called "best-effort, fails today" now SUCCEEDS. The header went stale in the -# most dangerous direction: it told readers this workflow does nothing, while it -# was in fact opening PRs. -# -# And the PRs it opened could not merge. GitHub does not trigger workflow runs -# from events raised by GITHUB_TOKEN, so a PR created with it gets no -# pull_request runs — no gates, no auto-merge job. With the auto-merge label -# attached, the result is a PR that looks handled and is permanently blocked on -# checks that will never start. #815, #817 and #818 each sat at exactly one -# check until someone closed and reopened them by hand. That is strictly worse -# than the stranded branch this workflow exists to surface. -# -# Fixed by creating the PR with GH_RELEASE_PAT (an ordinary user event, which -# does trigger CI) and failing loudly if only GITHUB_TOKEN is available. See the -# comment on the create step. -# -# Historical note, kept because it explains the original design: the setting was -# deliberately OFF because GitHub bundles create-PR and approve-PR into one -# toggle, and `master` here is deploy-on-push, so enabling it gave workflows a -# self-approval path to production. That tradeoff was re-decided on 2026-08-23 — -# the gate set is now the production guard rather than the human review step. -# -# It was previously named "Auto-PR" and claimed to close the autonomy gap. It did -# not: every green run was the early-exit path ("PR already open") because the -# agent had already opened its own PR. It only ever ran its create path when -# genuinely needed — and failed. A check that passes when its work is already -# done by someone else, and fails only when actually asked to work, is not -# evidence of anything. -# -# THEREFORE: opening the PR is the AGENT'S job, not CI's (see CLAUDE.md, branch -# lifecycle). This workflow's real and only job is to make a stranded branch — -# commits pushed, no PR, e.g. the session died first — LOUD instead of silent, so -# it gets salvaged rather than reaped by governance-nightly a week later. -# -# It attempts `gh pr create` first. That path is now LIVE (see the correction at -# the top) — the permission was granted and a PAT is wired in, so this opens a -# real, CI-triggering PR. It still does not depend on it: if creation fails the -# stranded-branch reporting below runs exactly as before. -# -# Watches every agent-created prefix: -# claude/** — anthropics/claude-code-action (claude.yml, cloud sessions) -# claude-auto-fix-ci-* — claude-ci-autofix.yml → izzywdev/AITools -# ds-propagate/** — ds-propagate.yml multi-agent runs (3 per DS push) -# nightly-autofix-* — nightly-integration.yml autofix job -# -# Happy path: agent opens a non-draft PR + auto-merge label → auto-merge.yml runs -# `gh pr merge --auto --squash --delete-branch` → CI passes → GitHub merges. -on: - push: - branches: - - 'claude/**' - - 'claude-auto-fix-ci-*' - - 'claude-auto-fix-ci-*/**' - - 'ds-propagate/**' - - 'nightly-autofix-*' - - 'nightly-autofix-*/**' - -permissions: - contents: read - pull-requests: write - issues: write # required for gh label create (repo-level labels API) - -# One waiter per branch. The step below sits in a grace window for up to five -# minutes, and an agent that pushes three times in a row would otherwise stack -# three overlapping waiters all asking the same question. Only the newest push -# reflects the branch's current state, so cancel the older ones. -concurrency: - group: stranded-branch-${{ github.ref }} - cancel-in-progress: true - -jobs: - open-pr: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v5 - with: - fetch-depth: 0 - - - name: Ensure auto-merge label exists - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - gh label create "auto-merge" --color "#0052cc" --description "Enable squash auto-merge once CI passes" --force 2>/dev/null || true - - # GH_RELEASE_PAT, not GITHUB_TOKEN, and the distinction is load-bearing. - # GitHub refuses to trigger workflow runs from events raised by - # GITHUB_TOKEN (its recursion guard). A PR opened with GITHUB_TOKEN - # therefore gets NO pull_request workflow runs at all — no gates, no - # auto-merge job, nothing. Combined with the auto-merge label applied - # below, that produced PRs which look handled and can never merge, - # because branch protection is waiting on checks that will never start. - # Observed on #815, #817 and #818, each of which sat at exactly one - # check (this job) until a human closed and reopened them by hand. - # - # A PAT-raised event is an ordinary user event and triggers CI normally. - # GH_RELEASE_PAT is already present in this repo and is validated nightly - # by fleet-pat-health.yml. If it is ever unset the fallback below keeps - # the old behaviour rather than failing the job, and the create step says - # loudly which token it used, because "PR exists" is not the same as - # "PR can merge". - - name: Detect stranded branch (and best-effort open a PR) - env: - GH_TOKEN: ${{ secrets.GH_RELEASE_PAT || secrets.GITHUB_TOKEN }} - PR_TOKEN_IS_PAT: ${{ secrets.GH_RELEASE_PAT != '' }} - BRANCH: ${{ github.ref_name }} - BASE: ${{ github.event.repository.default_branch }} - run: | - # --------------------------------------------------------------------- - # "Is this branch still work in need of a PR?" — asked in THREE places - # below (up front, inside the grace loop, and after it closes), because - # the answer can change during the five minutes we wait. - # - # Until 2026-08-27 the only question asked was "is there an OPEN PR?", - # and that is not the same question. Two happy-path endings both look - # like "no open PR" and both produced a red X plus a summary telling a - # human to salvage work that was already safely merged: - # - # 1. THE BRANCH IS GONE. auto-merge.yml runs `gh pr merge --auto - # --squash --delete-branch`, so a successful merge deletes the - # branch — and a push-triggered run of THIS workflow can still be - # sitting in its grace window when that happens. Observed live on - # #834: `gh pr create` came back "Head sha can't be blank, Base sha - # can't be blank, No commits between master and - # claude/issue-238-themed-signin-consumer, Head ref must be a - # branch" — four symptoms of one cause, a head ref that no longer - # exists — and the job then waited the full 300s and failed. - # - # The pre-existing `git rev-list origin/BASE..origin/BRANCH` guard - # does NOT cover this: it reads remote-tracking refs frozen at - # checkout time, so a branch deleted after checkout still looks - # present and (because the merge was a SQUASH, giving master a new - # commit rather than these commits) still looks ahead of base. - # - # 2. ITS PR MERGED. Same race, branch retained. `--state open` finds - # nothing and the merged PR goes unseen. - # - # 3. THE LOOKUP ITSELF FAILED. `gh pr list` is a GraphQL call, and the - # old code ran it as `... 2>/dev/null || true`, so an API error and - # "no PR exists" produced the identical empty string. Observed live - # on #843, whose PR was open the entire time: - # - # No PR for claude/required-checks-and-merge-queue yet (waited 300s of 300s) - # GraphQL: API rate limit already exceeded for user ID 99821070. - # ### ⚠️ Stranded agent branch: `claude/required-checks-and-merge-queue` - # - # All 15 polls were rate-limited and every one was read as "no PR". - # This is the worst of the three: it is silent, it is triggered by - # LOAD — many agents pushing at once, which is exactly when this - # detector is supposed to be useful — and it produces a confident - # wrong answer telling a human to salvage work that is fine. - # - # A closed-but-NOT-merged PR is deliberately not an exit: the branch has - # commits, nobody is going to merge them, and that is exactly what this - # detector is for. - # - # This matters more than an ordinary false positive. The whole design - # note above ("A detector that cries wolf on the happy path gets - # ignored, which is the actual failure mode worth engineering against") - # is the reason the 300s grace window exists at all. Failing on a branch - # that merged SUCCESSFULLY is the same bug the grace window was added to - # fix, arriving from the other end of the PR's life. - # - # Every lookup below is REST (`gh api`), never `gh pr list`. Two reasons, - # and both are load-bearing: REST has a far larger budget than GraphQL's - # point system, which is what ran out above; and `gh api` exit status - # distinguishes a real answer from a failed call, which `gh pr list - # --json ... --jq` collapsed into an empty string. One REST call now - # returns open AND merged PRs together, halving the request count too. - # - # Returns: 0 = resolved (nothing to strand) · 1 = genuinely stranded - # 2 = INCONCLUSIVE (a lookup failed; we do not know) - OWNER="${GITHUB_REPOSITORY%%/*}" - resolved() { - # Does the branch still exist? A 404 means merged-and-deleted or - # reaped. Any OTHER error means we could not tell — never guess. - if ! gh api "repos/${GITHUB_REPOSITORY}/branches/${BRANCH}" >/dev/null 2>/tmp/branch-err; then - if grep -qiE 'not found|HTTP 404' /tmp/branch-err; then - echo "Branch $BRANCH no longer exists on the remote — its PR merged with --delete-branch, or it was reaped. Nothing to strand." - return 0 - fi - echo "::warning::branch lookup for $BRANCH failed (not a 404): $(head -c 200 /tmp/branch-err)" - return 2 - fi - - # One REST call for every PR on this head, any state. - if ! gh api "repos/${GITHUB_REPOSITORY}/pulls?head=${OWNER}:${BRANCH}&state=all&per_page=100" \ - > /tmp/pr-lookup.json 2>/tmp/pr-lookup-err; then - echo "::warning::PR lookup for $BRANCH failed: $(head -c 200 /tmp/pr-lookup-err)" - return 2 - fi - - open_pr=$(jq -r 'map(select(.state=="open"))|.[0].number // empty' /tmp/pr-lookup.json 2>/dev/null || true) - if [ -n "$open_pr" ]; then - echo "PR #$open_pr is open for $BRANCH — the agent did its job. Nothing to do." - return 0 - fi - merged_pr=$(jq -r 'map(select(.merged_at != null))|.[0].number // empty' /tmp/pr-lookup.json 2>/dev/null || true) - if [ -n "$merged_pr" ]; then - echo "PR #$merged_pr for $BRANCH is already MERGED — the work landed. Nothing to strand." - return 0 - fi - return 1 - } - - verdict=0; resolved || verdict=$? - if [ "$verdict" -eq 0 ]; then exit 0; fi - - # A branch with no commits ahead of base is not stranded — it is empty. - if ! git rev-list --count "origin/${BASE}..origin/${BRANCH}" | grep -qvE '^0$'; then - echo "No commits on $BRANCH ahead of $BASE — nothing to strand, no PR needed." - exit 0 - fi - - # Commits exist with no PR. Create it. - if gh pr create --base "$BASE" --head "$BRANCH" --fill --label "auto-merge" 2>/tmp/pr-err; then - num=$(gh api "repos/${GITHUB_REPOSITORY}/pulls?head=${OWNER}:${BRANCH}&state=open" --jq '.[0].number // empty' 2>/dev/null || true) - if [ "$PR_TOKEN_IS_PAT" = "true" ]; then - echo "Opened PR #${num:-?} for $BRANCH using GH_RELEASE_PAT — CI will trigger normally." - exit 0 - fi - # Created with GITHUB_TOKEN: the PR exists but no pull_request - # workflows will ever run on it, so auto-merge can never be - # satisfied. Say so and fail — a silently unmergeable PR is worse - # than a stranded branch, because it looks handled. - echo "::error title=PR opened but CI will not run::Opened PR #${num:-?} for $BRANCH with GITHUB_TOKEN because GH_RELEASE_PAT is unset. GitHub does not trigger workflow runs from GITHUB_TOKEN events, so this PR has NO gates and auto-merge cannot complete." - echo "" - echo "To fix the PR: close and reopen it as a user (this raises a" - echo "pull_request.reopened event that does trigger CI):" - echo " gh pr close ${num:-} && gh pr reopen ${num:-}" - echo "" - echo "To fix the cause: set the GH_RELEASE_PAT repo secret (classic PAT, repo scope)." - exit 1 - fi - - # WAIT before declaring the branch stranded. The agent is REQUIRED to open its - # own PR, so the normal, correct sequence races this job: the push starts the - # workflow, and the agent opens its PR seconds to minutes later. - # - # A single immediate re-check used to sit here and was not enough — it ran - # within ~5s of the push and lost the race every time. Measured on three - # consecutive PRs (#563, #571, #583): the job ran 11:51:13-11:51:19 while the - # PR appeared at 11:51:38, so the re-check was ~20s early. Every one of those - # was a red X that cleared on a manual re-run, i.e. a false positive that - # fired precisely BECAUSE the process was followed correctly. - # - # So poll instead of peeking once. A live agent gets its PR seen; an agent - # that died still fails, just $GRACE_SECONDS later. That delay costs nothing - # real — this job is seconds of runner time, `governance-nightly` is the - # backstop for anything missed, and a stranded branch is not an emergency - # measured in minutes. A detector that cries wolf on the happy path gets - # ignored, which is the actual failure mode worth engineering against. - GRACE_SECONDS=300 - INTERVAL=20 - waited=0 - while [ "$waited" -lt "$GRACE_SECONDS" ]; do - # Re-ask the FULL question, not just "is a PR open?" — the branch can - # be merged and deleted out from under us mid-window (see `resolved`). - verdict=0; resolved || verdict=$? - if [ "$verdict" -eq 0 ]; then - echo " (resolved after ${waited}s)" - exit 0 - fi - sleep "$INTERVAL" - waited=$((waited + INTERVAL)) - if [ "$verdict" -eq 2 ]; then - echo "Lookup for $BRANCH was inconclusive (waited ${waited}s of ${GRACE_SECONDS}s) — retrying." - else - echo "No PR for $BRANCH yet (waited ${waited}s of ${GRACE_SECONDS}s) — still within the agent's grace window." - fi - done - - # Final check after the window closes, so a PR opened — or a merge - # completed — during the last interval is not missed. - verdict=0; resolved || verdict=$? - if [ "$verdict" -eq 0 ]; then - echo " (resolved just as the grace window closed)" - exit 0 - fi - - # INCONCLUSIVE, not stranded. Every lookup in the window failed, so we - # do not know whether a PR exists — and "I could not check" must never - # print as "this branch is abandoned, go salvage it". That is the #843 - # failure, where a rate-limited lookup produced a confident wrong answer - # about a branch whose PR was open the whole time. - # - # Warn rather than fail, deliberately: a false "stranded" sends someone - # to salvage work that is fine and teaches them to ignore this check, - # which is the failure mode this whole file is engineered against. A - # missed stranded branch is caught by governance-nightly within a day. - # This is a NAMED, LOGGED condition on a specific API failure — not a - # blanket pass — and it cannot hide a real stranded branch silently, - # because the warning says exactly which lookup failed. - if [ "$verdict" -eq 2 ]; then - { - echo "### ⚠️ Could not determine whether \`$BRANCH\` has a PR" - echo "" - echo "Every lookup in the ${GRACE_SECONDS}s window failed (see the warnings above —" - echo "typically \`API rate limit already exceeded\` when many agents push at once)." - echo "This is NOT a finding about the branch: it may well have an open PR." - echo "" - echo "\`governance-nightly\` re-checks branches daily and is the backstop here." - } | tee -a "$GITHUB_STEP_SUMMARY" - echo "::warning::Stranded-branch check for $BRANCH was inconclusive — the GitHub API lookups failed. Not reporting it as stranded." - exit 0 - fi - - # Genuinely stranded. Report the ACTUAL remedy, not the raw API error — - # a stranded branch is an agent that pushed and died before opening its - # PR, and a human/orchestrator salvaging it needs to know that, not to go - # hunting for a permissions bug that is an intentional security choice. - cat /tmp/pr-err - { - echo "### ⚠️ Stranded agent branch: \`$BRANCH\`" - echo "" - echo "It has commits but **no pull request**, and CI cannot open one for it" - echo "(Actions lacks create-PR permission here **by design** — the toggle that" - echo "grants it would also let workflows approve PRs into a deploy-on-push" - echo "\`$BASE\`)." - echo "" - echo "**The agent that pushed this branch was supposed to open its own PR and" - echo "did not** — most likely it died mid-run. No PR appeared in the" - echo "${GRACE_SECONDS}s after the push, so this is not the usual push-then-open" - echo "race. The work is safe on the remote but invisible, and" - echo "\`governance-nightly\` will reap the branch if it stays that way." - echo "" - echo "**To salvage:** \`gh pr create --base $BASE --head $BRANCH --fill --label auto-merge\`" - } | tee -a "$GITHUB_STEP_SUMMARY" - echo "::error::Stranded branch $BRANCH — commits pushed but no PR, and CI cannot open one. See the job summary to salvage." - exit 1 diff --git a/.github/workflows/fuze-auto-pr.yml b/.github/workflows/fuze-auto-pr.yml new file mode 100644 index 00000000..51445f5d --- /dev/null +++ b/.github/workflows/fuze-auto-pr.yml @@ -0,0 +1,88 @@ +# fuze:managed template=fuze-auto-pr.yml baseline=v1 digest=sha256:81f87278191d3589313218d5737228e94cd6901906299747a81c6853680f5e45 +name: Auto-PR from agent branches + +# RENAMED from `claude-auto-pr.yml` (and `name:` from "Auto-PR from claude branches") for +# naming consistency with the `@fuze` entrypoint (`fuze.yml`). NAMING ONLY — this workflow +# makes NO LLM call of any kind: it is `gh pr create` and nothing else, so there is nothing +# here to route through the LiteLLM gateway and nothing was added. Anyone reading the rename +# as "this now goes through fuze-code-action" is reading it wrong. +# +# Closes the issue->PR autonomy gap: `anthropics/claude-code-action` (in `claude.yml` and +# `fuze.yml`) pushes a branch and only posts a "Create PR" link — it does not open the PR +# itself. This workflow opens a DRAFT PR from any pushed agent branch when one doesn't +# already exist (draft = a human still reviews before merge). +# +# BOTH PREFIXES, deliberately. `claude/**` is what claude-code-action actually names its +# branches today and MUST stay — dropping it would silently stop every agent PR in the +# fleet. `fuze/**` is added because after the rename the filename promises fuze branches, +# and a repo whose `@fuze` handler pushes that prefix (FuzeInfra's cluster-capable variant +# does) would otherwise be covered by the name and not by the trigger. Strictly additive: +# nothing that worked before stops working. +on: + push: + branches: + - 'claude/**' + - 'fuze/**' + +permissions: + contents: read + pull-requests: write + +jobs: + open-draft-pr: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + fetch-depth: 0 + + # Agent-PR identity (governance/hardening-convention.md §8): open the PR under a + # collaborator-backed identity so its head actually gets CI. A PR opened by the default + # GITHUB_TOKEN is frozen as action_required (public) or gets no runs at all (private). + # Mint a fuze-agent App installation token; fall back App -> bot PAT -> GITHUB_TOKEN, + # the last emitting a ::warning:: so a repo lacking the App secrets degrades, not breaks. + - name: Mint fuze-agent App token + id: app_token + continue-on-error: true + uses: actions/create-github-app-token@v1 + with: + app-id: ${{ secrets.FUZE_AGENT_APP_ID }} + private-key: ${{ secrets.FUZE_AGENT_APP_PRIVATE_KEY }} + - name: Resolve agent-PR identity + id: identity + env: + APP_TOKEN: ${{ steps.app_token.outputs.token }} + BOT_PAT: ${{ secrets.GH_RELEASE_PAT }} + GH_DEFAULT: ${{ secrets.GITHUB_TOKEN }} + run: | + if [ -n "${APP_TOKEN:-}" ]; then + tok="$APP_TOKEN"; who="fuze-agent (App installation token)" + elif [ -n "${BOT_PAT:-}" ]; then + tok="$BOT_PAT"; who="GH_RELEASE_PAT (bot PAT)" + else + tok="$GH_DEFAULT"; who="GITHUB_TOKEN" + echo "::warning title=agent-identity::No FUZE_AGENT_APP_* App secrets and no GH_RELEASE_PAT on this repo — opening this PR as GITHUB_TOKEN, whose head gets NO CI (hardening-convention.md §8). Set the fuze-agent App secrets to fix." + fi + echo "::add-mask::$tok" + echo "token=$tok" >> "$GITHUB_OUTPUT" + echo "Agent-PR identity: $who" + + - name: Open draft PR if none exists + env: + GH_TOKEN: ${{ steps.identity.outputs.token }} + BRANCH: ${{ github.ref_name }} + BASE: ${{ github.event.repository.default_branch }} + run: | + existing=$(gh pr list --head "$BRANCH" --state open --json number --jq '.[0].number' 2>/dev/null || true) + if [ -n "$existing" ]; then + echo "PR #$existing already open for $BRANCH — nothing to do." + exit 0 + fi + # Only open a PR if the branch actually diverges from base. + if git rev-list --count "origin/${BASE}..origin/${BRANCH}" | grep -qvE '^0$'; then + gh pr create --draft --base "$BASE" --head "$BRANCH" --fill \ + || echo "gh pr create failed (no diff or transient) — skipping." + else + echo "No commits on $BRANCH ahead of $BASE — no PR opened." + fi diff --git a/.github/workflows/fuze.yml b/.github/workflows/fuze.yml new file mode 100644 index 00000000..7f3744eb --- /dev/null +++ b/.github/workflows/fuze.yml @@ -0,0 +1,331 @@ +# fuze:managed template=fuze.yml baseline=v1 digest=sha256:e9a5b6234d2b2341e1bb38ec4a68f4c4ceccac7338046f0393457dace68bca61 +name: Fuze + +# THE CANONICAL `@fuze` ENTRYPOINT. Every onboarded repo gets this file, and this is the +# handler a human — or an automated workflow that posts a comment — reaches by mentioning +# `@fuze` on an issue, an issue comment, a PR review or a review comment. +# +# WHY THIS EXISTS AS A CANONICAL TEMPLATE AT ALL. `@fuze` was a real, working entrypoint in +# exactly ONE repo (izzywdev/FuzeInfra) and in no other, so `@fuze` in any other repo was a +# mention nothing answered. Community issue templates already seed `@fuze — please triage.` +# (community-templates/.github/ISSUE_TEMPLATE/*.md), and the baseline documents `@fuze` as +# the delegation handle, so 21 of 22 repos were pointed at a handler they did not have. +# +# WHAT WAS **NOT** COPIED HERE, AND WHY THAT IS THE WHOLE POINT. +# FuzeInfra's version of this file is CLUSTER-CAPABLE: it mounts the prod k3s kubeconfig +# secret, installs the cluster and IaC CLIs, and runs on FuzeInfra's in-cluster ARC pool so +# it can reach a ClusterIP-only gateway. Promoting THAT verbatim would have handed prod +# cluster credentials to every product repo in the family — a privilege escalation dressed +# as a sync — and would have pinned every repo's `@fuze` to a self-hosted pool only +# FuzeInfra has, where a job does not fail but QUEUES FOREVER (governance/ci-runners.md). +# So the capability is SPLIT: +# * THIS file — the baseline entrypoint, no cluster credential of any kind, on the repo's +# own runner. It is the only `@fuze` handler a product repo ever gets. +# * `workflow-templates/fuze-cluster.yml` — the privileged variant, installed ONLY into a +# repo whose `.fuze/manifest.json` declares `clusterOps.enabled: true` (today: FuzeInfra +# alone, which owns the cluster), and inert even there until `vars.FUZE_CLUSTER_ENTRYPOINT` +# is set. See that file's header and scripts/bootstrap/caps/workflows.py CONDITIONAL. +# +# The privileged identifiers — the kubeconfig secret name, the IaC CLI name, and the +# self-hosted pool label — are deliberately ABSENT FROM THIS FILE AS LITERAL TEXT, not merely +# unused. Grep the three of them across a non-opted-in repo's `.github/workflows/` and the +# `@fuze` entrypoint contributes zero hits; that is the check. Do not reintroduce those +# strings here, not even inside a comment: to an auditor's grep a prose mention is +# indistinguishable from a real reference, which is exactly how a checkable security property +# decays into an unverifiable claim. The strings live in `fuze-cluster.yml` and nowhere else. +# +# LLM CREDENTIAL — routed, never hardcoded. FuzeInfra's version sets +# `ANTHROPIC_BASE_URL: http://litellm.fuzeinfra.svc.cluster.local:4000` directly. That is +# correct for a pod inside the cluster and USELESS anywhere else: the name does not resolve +# from a GitHub-hosted runner, so a verbatim copy would have failed DNS on 21 repos. This +# template routes through `./.github/actions/fuze-code-action`, which resolves the endpoint +# via `./.github/actions/llm-endpoint` — a bounded-timeout probe of the in-cluster gateway +# that falls back to a direct vendor key when the gateway is unreachable. That fallback is +# precisely what the FuzeInfra file lacks. +# +# HONEST LIMIT OF THAT ROUTING, stated here so nobody reads more resilience into it than +# exists: with no `task-prompt` this is MENTION MODE, and fuze-code-action DELIBERATELY +# disables rungs 2 and 3 there (codex-action and run-gemini-cli have no GitHub event +# context, so a rung that "succeeds" at seeing nothing is a manufactured green). The +# openai/gemini keys are passed below for shape-parity with the other call sites and are +# genuinely inert on this path. In mention mode there is exactly ONE rung, and if the +# Anthropic-or-LiteLLM leg has no working credential, this workflow fails — it does not +# quietly answer from somewhere else. +# +# THE TRIGGER TOKEN, AND WHY THIS IS NOT A CUTOVER. Gate 1 below matches the literal string +# `@fuze`. Before this template existed, NO repo but FuzeInfra matched that token — every +# other repo's only handler was `claude.yml`, gated on `@claude` — so a comment saying only +# `@fuze` triggered nothing at all, in 21 of 22 repos, silently. That is the gap this file +# closes, and it is why the documentation change and the workflow change must land together: +# documenting `@fuze` in a repo that has not yet received THIS FILE points people at a token +# no workflow listens for, which is strictly worse than the status quo. +# +# `@claude` KEEPS WORKING, and deliberately not by being matched here. Every repo already +# carries `claude.yml`, which matches `@claude` and routes through the SAME +# fuze-code-action/llm-endpoint path this file uses — so existing issue threads and muscle +# memory continue to work untouched, and no open issue is stranded. Adding `@claude` to Gate 1 +# would NOT be a kindness: both handlers would then answer the same `@claude` mention and two +# agents would act on one thread. The two gates are deliberately DISJOINT. A comment that +# mentions both tokens does run both handlers — write one or the other. +# +# `@fuze` is the family's default handle and the one every doc, agent and skill now names +# (governance/routing.md, CLAUDE.baseline.md §9). `@claude`/`@codex`/`@gemini` remain +# human-typed escape hatches for when you deliberately want a named provider. +# +# SECURITY — trusted authors only. Gate 2 restricts triggering to OWNER/MEMBER/COLLABORATOR. +# This handler holds a repo-write token and an agent that will push branches with it; an +# untrusted commenter must never be able to drive that. The gate is kept here even though +# this variant holds no cluster credential, because "no cluster credential" is not the same +# as "harmless". +on: + issue_comment: + types: [created] + pull_request_review_comment: + types: [created] + issues: + types: [opened, assigned, labeled] + pull_request_review: + types: [submitted] + +jobs: + fuze: + # DEDUP: at most one run per issue/PR at a time (latest wins). cancel-in-progress + # collapses near-simultaneous duplicates — an issue opened WITH labels emits both + # `issues.opened` and `issues.labeled`, and without this both would start an agent. + concurrency: + group: fuze-${{ github.event.issue.number || github.event.pull_request.number }} + cancel-in-progress: true + # Gate 1: `@fuze` is actually mentioned (or the issue is labeled/assigned `fuze`). + # Gate 2 (SECURITY): trusted collaborator — see the header. + # Gate 3 (LOOP-BREAKER): the `fuze-loop-guard` sentinel. The failure notice this + # workflow posts below itself contains `@fuze`, and would otherwise re-trigger the + # workflow forever. DO NOT remove the sentinel from that comment body. + # Gate 4 (PRIVILEGE SPLIT): stand down in a repo that has activated the cluster-capable + # entrypoint, so `fuze.yml` and `fuze-cluster.yml` can never both answer the same + # mention. Unset/absent — every repo except an activated FuzeInfra — means THIS + # handler runs, which is the fail-safe direction: the default is the UNPRIVILEGED one. + if: | + vars.FUZE_CLUSTER_ENTRYPOINT != 'true' && + ( + (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@fuze') && + !contains(github.event.comment.body, 'fuze-loop-guard') && + contains(fromJSON('["OWNER","MEMBER","COLLABORATOR"]'), github.event.comment.author_association)) || + (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@fuze') && + !contains(github.event.comment.body, 'fuze-loop-guard') && + contains(fromJSON('["OWNER","MEMBER","COLLABORATOR"]'), github.event.comment.author_association)) || + (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@fuze') && + !contains(github.event.review.body, 'fuze-loop-guard') && + contains(fromJSON('["OWNER","MEMBER","COLLABORATOR"]'), github.event.review.author_association)) || + (github.event_name == 'issues' && github.event.action == 'opened' && + (contains(github.event.issue.body, '@fuze') || contains(github.event.issue.title, '@fuze')) && + contains(fromJSON('["OWNER","MEMBER","COLLABORATOR"]'), github.event.issue.author_association)) || + (github.event_name == 'issues' && github.event.action == 'labeled' && + github.event.label.name == 'fuze' && + contains(fromJSON('["OWNER","MEMBER","COLLABORATOR"]'), github.event.issue.author_association)) || + (github.event_name == 'issues' && github.event.action == 'assigned' && + github.event.assignee.login == 'fuze' && + contains(fromJSON('["OWNER","MEMBER","COLLABORATOR"]'), github.event.issue.author_association)) + ) + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + issues: write + id-token: write + actions: read + + steps: + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + fetch-depth: 1 + + - name: Checkout PR branch (when triggered from a PR) + if: | + (github.event_name == 'issue_comment' && github.event.issue.pull_request != null) || + github.event_name == 'pull_request_review_comment' || + github.event_name == 'pull_request_review' + # Every `github` context value reaches the shell through env:, never through + # `${{ }}` inside run:. A branch name is attacker-controlled and git permits `;`, + # `|`, `$`, `"` and backticks in a ref, so an interpolated head.ref executes on the + # runner with the job's token in scope — the documented GitHub Actions script + # injection. actionlint flags it as `expression`, semgrep as run-shell-injection. + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + EVENT_NAME: ${{ github.event_name }} + REPO: ${{ github.repository }} + PR_NUM: ${{ github.event.issue.number }} + PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }} + PR_HEAD_REF: ${{ github.event.pull_request.head.ref }} + run: | + if [ "$EVENT_NAME" = "issue_comment" ]; then + HEAD_SHA=$(gh api "repos/${REPO}/pulls/${PR_NUM}" --jq .head.sha) + HEAD_REF=$(gh api "repos/${REPO}/pulls/${PR_NUM}" --jq .head.ref) + else + HEAD_SHA="$PR_HEAD_SHA" + HEAD_REF="$PR_HEAD_REF" + fi + git fetch origin "$HEAD_SHA" + git checkout "$HEAD_SHA" + echo "Checked out PR branch: $HEAD_REF @ $HEAD_SHA" + + - name: Run Fuze + id: fuze + # continue-on-error so the detect + alert steps below run and OWN the job's final + # status. Without it the action fails the job outright and the requester is never + # told on their own thread — the failure is only visible to whoever opens the run + # log, which in practice is nobody. + continue-on-error: true + uses: ./.github/actions/fuze-code-action + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + # WHERE THE GATEWAY IS, as a repo variable rather than a hardcoded literal. + # + # The default is the in-cluster service DNS name, which resolves only from a pod in + # the cluster. On the GitHub-hosted runner this job uses, the probe simply fails and + # llm-endpoint falls back to the direct vendor key — degraded but working, and the + # reason this template does not hardcode the base URL the way FuzeInfra's did. + # + # THE GATEWAY *IS* PUBLICLY REACHABLE, and pointing at it is the intended fix rather + # than a hypothetical: helm/litellm/values-contabo.yaml enables an ingress on + # `litellm.prod.fuzefront.com`. What blocks it today is Cloudflare Access, verified + # rather than assumed — `GET https://litellm.prod.fuzefront.com/v1/models` returns + # 302 to fuzefront.cloudflareaccess.com with `"service_token_status": false` and + # `"auth_status": "NONE"`. A hosted runner therefore gets a login page, not the API. + # + # Making the public host work needs TWO things this template cannot supply: + # 1. a Cloudflare Access SERVICE TOKEN — none exists (no `cloudflare_access_service_token` + # declared in FuzeInfra's IaC). Minting it is a human step; + # 2. `CF-Access-Client-Id` / `CF-Access-Client-Secret` support in + # ./.github/actions/llm-endpoint, which has no such inputs today. + # Until both land, setting this variable to the public host makes things WORSE, not + # better: the probe would get a 302 instead of a connection error and still fall + # back, with a configuration that looks deliberate. Leave it unset until then. + litellm-base-url: ${{ vars.FUZE_LITELLM_BASE_URL || 'http://litellm.fuzeinfra.svc.cluster.local:4000' }} + litellm-key: ${{ secrets.LITELLM_FUZE_KEY }} + anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }} + # Inert on this path — see MENTION MODE in the header. Passed for shape-parity + # with the fleet's other fuze-code-action call sites, NOT as a claimed fallback. + openai-api-key: ${{ secrets.OPENAI_API_KEY }} + gemini-api-key: ${{ secrets.GEMINI_API_KEY }} + show-full-output: true + # allowed_bots — REQUIRED here, and not for the reason it is required in + # governance-nightly.yml. That one is a cron, whose actor is the scheduler + # identity. This one is mention-triggered, and a mention can legitimately be + # posted BY a workflow: the family's CI-failure triage, Argo out-of-sync autofix, + # nightly-integration and crit-alert workflows all comment `@fuze` to hand work + # over. The actor on that `issue_comment` event is the bot that posted it, and + # claude-code-action's human-actor check aborts the rung ~1s in, BEFORE any model + # call, with "Workflow initiated by non-human actor: . Add bot to + # allowed_bots list or use '*' to allow all bots." — a failure that looks in a + # skimmed log exactly like a provider outage. + # + # Deliberately a NAMED list, never `*`. Under `*` any bot-authored event — every + # repo here runs dependabot — could start an agent run holding the resolved LLM + # credential and repo write. `fuzeone-bot` is the fleet's scheduler/automation + # identity; `github-actions` covers a comment posted by a workflow using the + # default token; `fuze-agent` is the App identity agent PRs are opened under + # (governance/identity-and-attribution.md). Gate 2 above still independently + # requires the commenter to be OWNER/MEMBER/COLLABORATOR, so this list widens + # only the actor-type check, never the trust check. + allowed-bots: "fuzeone-bot,github-actions,fuze-agent" + # Without these, every mutating tool call (git push, gh pr/issue create, file + # edits) sits behind an interactive approval gate that nothing can clear in + # headless CI and is silently DENIED — the agent reads the repo, reports success, + # and changes nothing. Measured across the fleet on exactly this defect + # (governance-nightly.yml's header records the numbers). + additional-permissions: | + Bash + Write + Edit + MultiEdit + Task + TodoWrite + claude-args: >- + --permission-mode bypassPermissions + --max-turns 60 + --append-system-prompt "EXPERT-FIRST: begin every task by invoking this repo's -expert subagent (via Task) to load its architecture/deploy/gotcha context before planning or coding; the expert is named in .fuze/manifest.json under `expert`. Follow governance/routing.md for ownership: refuse work that belongs to another agent and name the correct owner. This runner holds NO cluster credential and NO prod access — never attempt cluster or infrastructure-as-code commands here (they are not installed and there is no credential for them); infra changes are delegated to FuzeInfra via a `@fuze` issue (CLAUDE.baseline.md 1), and cluster READS are self-service via FuzeInfra's cluster-query workflow. End issue replies with DONE: or BLOCKED: so cross-repo monitors can key off it. CROSS-REPO HAND-OFF: if a delegated issue's REMAINING work belongs to another repo, do NOT leave it open here — open (or comment on) an issue in that repo mentioning its `@fuze` with full context and a STATE block, post a closing note here, and CLOSE this issue." + + # DETECT: did the responder actually fail? Two signals — the composite action's own + # step outcome, and `is_error` in claude-code-action's execution log (a run can end + # is_error WITHOUT failing the step, which is how a dead responder reported green). + - name: Detect Fuze failure + id: detect + if: always() + env: + STEP_OUTCOME: ${{ steps.fuze.outcome }} + MODE: ${{ steps.fuze.outputs.mode }} + CONCLUSION: ${{ steps.fuze.outputs.conclusion }} + run: | + set -uo pipefail + failed=false; reason="" + if [ "${STEP_OUTCOME:-}" = "failure" ]; then + failed=true + reason="fuze-code-action failed (mode=${MODE:-?}, conclusion=${CONCLUSION:-?}). In mention mode there is only one rung, so this is the Anthropic-or-LiteLLM leg failing — check LITELLM_FUZE_KEY and ANTHROPIC_API_KEY on this repo." + elif [ "${CONCLUSION:-}" = "failure" ]; then + failed=true + reason="the responder ran and reported conclusion=failure (mode=${MODE:-?}) — it errored before completing the task" + fi + echo "failed=$failed" >> "$GITHUB_OUTPUT" + { + echo "reason<> "$GITHUB_OUTPUT" + if [ "$failed" = "true" ]; then + echo "::error::@fuze responder failed: $reason" + else + echo "@fuze responder completed without an error signal (mode=${MODE:-?})" + fi + + # ALERT: a failed responder tells the requester on their own thread, and pings + # Telegram where that is configured. Without this the requester waits on a reply that + # is never coming, which is indistinguishable from the agent still thinking. + - name: Alert on Fuze failure + if: always() && steps.detect.outputs.failed == 'true' + env: + TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} + CHAT: ${{ secrets.TELEGRAM_CHAT_ID }} + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + REPO: ${{ github.repository }} + ISSUE: ${{ github.event.issue.number || github.event.pull_request.number }} + ACTOR: ${{ github.actor }} + REASON: ${{ steps.detect.outputs.reason }} + RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + run: | + set -uo pipefail + if [ -n "${TOKEN:-}" ]; then + TEXT=$(printf '@fuze responder FAILED\nRepo: %s\nIssue/PR: #%s\nBy: %s\nReason: %s\nRun: %s' \ + "$REPO" "${ISSUE:-?}" "$ACTOR" "$REASON" "$RUN_URL") + curl -s -X POST "https://api.telegram.org/bot${TOKEN}/sendMessage" \ + --data-urlencode "chat_id=${CHAT:-}" \ + --data-urlencode "text=${TEXT}" \ + --data "disable_web_page_preview=true" >/dev/null \ + && echo "telegram alert sent" || echo "::warning::telegram send failed" + else + echo "::notice::TELEGRAM_BOT_TOKEN unset — skipping Telegram alert" + fi + # LOOP-BREAKER: this comment mentions `@fuze` and would otherwise re-trigger this + # workflow. The hidden `fuze-loop-guard` sentinel is what Gate 3 keys off to + # ignore it — DO NOT remove it. + if [ -n "${ISSUE:-}" ]; then + { + printf '\n' + printf '### Fuze responder did not run to completion\n\n' + printf 'The responder errored before finishing your request, so **no changes were made and no branch was created**.\n\n' + printf -- '- **Reason:** %s\n' "$REASON" + printf -- '- **Run log:** %s\n\n' "$RUN_URL" + printf 'This notice is automated and will **not** retry on its own. Re-trigger by posting a new comment mentioning @fuze once the cause is fixed.\n' + } > "${RUNNER_TEMP}/fuze-fail.md" + gh issue comment "$ISSUE" --repo "$REPO" --body-file "${RUNNER_TEMP}/fuze-fail.md" \ + && echo "posted failure notice to #$ISSUE" || echo "::warning::could not comment on #$ISSUE" + fi + + # Reflect the failure in the job status AFTER alerting had a chance to run. + - name: Fail job if Fuze failed + if: always() && steps.detect.outputs.failed == 'true' + env: + REASON: ${{ steps.detect.outputs.reason }} + run: | + echo "::error::Marking job failed — @fuze responder did not complete: ${REASON}" + exit 1