SPDXVersion: SPDX-2.1 DataLicense: CC0-1.0 SPDXID: SPDXRef-DOCUMENT DocumentName: project DocumentNamespace: http://spdx.org/spdxdocs/spdx-v2.1-0d517d3a-81f5-4008-958b-1a860f4a6d06 Creator: Person: Anonymous () Creator: Organization: Anonymous () Creator: Tool: reuse-6.1.0 Created: 2026-07-30T05:16:10Z CreatorComment: This document was created automatically using available reuse information consistent with REUSE. Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-e68ca9b35540953a6738b25f36ce3c41 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-0c411d4e7324905984ce72da53ce7e19 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a2c894eb697b67eecf81fe1489773366 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-827df7a4296dd2159d8b546bb78e06e3 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c1e9b3f11855ab1eeeb22394d0c43bb5 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ffe47dd867d6a697756855ea234a39c8 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c4ed16822670c97104e45f372de32b95 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ddc5f0ea4d99fee4c1156cd0977149b0 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-811db3df00837e7db587ae61f08c65ed Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-36ac58d494d5572f9ee5b81528e353d5 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f3994830b789b8724321e11cefe4365a Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-16001b20ebb6b3a16f932c5e5d0f43c7 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-0a05a09409a758ed3619d073b84f3d2f Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a005b80aad504d7e96f2874c305b766c Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-caa79f81d00cd131249286625b8209b6 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ef29505cf725ebdde85b628443bcbbed Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-242fd36961c46c40de993c968578bec5 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3800b58d73cdb371f8cfc0eb50f89891 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a591915b2a7dc448ea27afa70e3d0707 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-084863b55751841b50b8799c7417a709 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-bdd852299a0723d732072402e709db05 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f727d07dd49b8445723a4aa2428e0096 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-894ff10dbb5f288d033d0d34dbd537a5 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8dfbb33ae524240b8ebac4fca19cdb0a Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7e67422536e197d65b9aaff0d39aab0d Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8b598848493be14e4837735f8b0f0ca4 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2d4af7e159b711d442ec87b92695e8d9 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-9ce4be73cdc8d9e7d67efecb2e51298c Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-55caaf411c02b5b76c1ab3aecbd3a19e Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-fd7c5e5eaefac70fd82cb4e388ba3eee Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f55b7f789819bd2528c0bfc98ae0d4ad Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-79ca5238f355c4122f4e9210d570c9ca Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ac72331e44c460f45f0b6a5c190cd211 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3922fcce30537cb78b1d14be96c10692 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-982ec9b561b9fe4c1f497b2a6a1e4fe8 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-44b58831bde3223fd1dc9774ed94e9a9 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-25f970c4371ec400c1eb26c2142ef4ad Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-098fb6b481d3306ff8c6d4b39e2a5f3d Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d9af3af8eec8a75720d3b4c9b4527c23 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-233924bfe150dd4942123fa9b9116332 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ae959669deea13717d01376fec7739cc Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f5a149742df474c0ca58e994c1cf4316 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a62f8466899ee647fcc7cfa27592d4a7 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a9f95f7b0f572b654c855057f7605fdf Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-fc6189e9a534efad2967fed09cc35570 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-134fc421bba7af2e6575d8a90d93a485 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1c37fa2810f7d0c599be2450452550cb Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f1b0d80559ae80de26ae7836cfd99c1a Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-9678002da8409c310f0475f50503f671 FileName: ./.agents/setup SPDXID: SPDXRef-e68ca9b35540953a6738b25f36ce3c41 FileChecksum: SHA1: ac9395eeec99cde68e18c1628417815b0da99f8c LicenseConcluded: NOASSERTION LicenseInfoInFile: CC0-1.0 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./.agents/skills/acai/SKILL.md SPDXID: SPDXRef-0c411d4e7324905984ce72da53ce7e19 FileChecksum: SHA1: dd8da5c6ad936672817dffbc4bcd30299f210d5f LicenseConcluded: NOASSERTION LicenseInfoInFile: Apache-2.0 FileCopyrightText: SPDX-FileCopyrightText: Canvis Software LLC FileName: ./.agents/skills/feature-loop/SKILL.md SPDXID: SPDXRef-a2c894eb697b67eecf81fe1489773366 FileChecksum: SHA1: b51e1abced136cf261e33b9e19fe1b906210d808 LicenseConcluded: NOASSERTION LicenseInfoInFile: CC0-1.0 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./.gitignore SPDXID: SPDXRef-827df7a4296dd2159d8b546bb78e06e3 FileChecksum: SHA1: 367aba8dc9908f77bf69fcd9bf01daa5b9e61bbd LicenseConcluded: NOASSERTION LicenseInfoInFile: CC0-1.0 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./.golangci.toml SPDXID: SPDXRef-c1e9b3f11855ab1eeeb22394d0c43bb5 FileChecksum: SHA1: 5b6c0aa8892d0240521f14d6d9312d54bb66bf16 LicenseConcluded: NOASSERTION LicenseInfoInFile: CC0-1.0 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./AGENTS.md SPDXID: SPDXRef-ffe47dd867d6a697756855ea234a39c8 FileChecksum: SHA1: f8e9b34dfc8bad70df007e57c5805d90aab361db LicenseConcluded: NOASSERTION LicenseInfoInFile: CC0-1.0 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./README.md SPDXID: SPDXRef-c4ed16822670c97104e45f372de32b95 FileChecksum: SHA1: b7fa9c4d59d8a6532f184ec1dfe074ab79d15120 LicenseConcluded: NOASSERTION LicenseInfoInFile: CC0-1.0 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./cmd/cooked-mcp/main.go SPDXID: SPDXRef-ddc5f0ea4d99fee4c1156cd0977149b0 FileChecksum: SHA1: 5b6f7c7a46b0d715e55760a6b7b2381108d153ca LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./cmd/cooked-mcp/main_test.go SPDXID: SPDXRef-811db3df00837e7db587ae61f08c65ed FileChecksum: SHA1: d3f86645657862887a0bc5f2e306ee2407d38641 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./features/cooked-mcp/api-client.feature.yaml SPDXID: SPDXRef-36ac58d494d5572f9ee5b81528e353d5 FileChecksum: SHA1: 7ddc3ee18ae89b1e021a70eb0356a9c7d1252112 LicenseConcluded: NOASSERTION LicenseInfoInFile: CC0-1.0 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./features/cooked-mcp/authentication.feature.yaml SPDXID: SPDXRef-f3994830b789b8724321e11cefe4365a FileChecksum: SHA1: 78c84152fe0fd06037803c907db20be0a2f7dcff LicenseConcluded: NOASSERTION LicenseInfoInFile: CC0-1.0 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./features/cooked-mcp/config-values.feature.yaml SPDXID: SPDXRef-16001b20ebb6b3a16f932c5e5d0f43c7 FileChecksum: SHA1: 43d8e4a2443eabea607a99c6988b9bc03d49c5a2 LicenseConcluded: NOASSERTION LicenseInfoInFile: CC0-1.0 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./features/cooked-mcp/recipes.feature.yaml SPDXID: SPDXRef-0a05a09409a758ed3619d073b84f3d2f FileChecksum: SHA1: 717fbebb197b2631955cf79bfe1f3405fd6f0c0a LicenseConcluded: NOASSERTION LicenseInfoInFile: CC0-1.0 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./features/cooked-mcp/server.feature.yaml SPDXID: SPDXRef-a005b80aad504d7e96f2874c305b766c FileChecksum: SHA1: 7984ff045ff1ca739fe62d9fc01b58e492b3bb26 LicenseConcluded: NOASSERTION LicenseInfoInFile: CC0-1.0 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./features/cooked-mcp/shopping-list.feature.yaml SPDXID: SPDXRef-caa79f81d00cd131249286625b8209b6 FileChecksum: SHA1: 36f7fa7adfd3c1a802119f436f8a39b9ec6b133f LicenseConcluded: NOASSERTION LicenseInfoInFile: CC0-1.0 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./features/cooked-mcp/tools.feature.yaml SPDXID: SPDXRef-ef29505cf725ebdde85b628443bcbbed FileChecksum: SHA1: ce6f8be894ee26c2dae1c4a7d1910c9785324beb LicenseConcluded: NOASSERTION LicenseInfoInFile: CC0-1.0 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./go.mod SPDXID: SPDXRef-242fd36961c46c40de993c968578bec5 FileChecksum: SHA1: 6282364d5f6cfac02da47ff598767fd94a523089 LicenseConcluded: NOASSERTION LicenseInfoInFile: CC0-1.0 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./go.sum SPDXID: SPDXRef-3800b58d73cdb371f8cfc0eb50f89891 FileChecksum: SHA1: b1cded65c4650fae303b2e09e82a2231b647de13 LicenseConcluded: NOASSERTION LicenseInfoInFile: CC0-1.0 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/appconfig/config.go SPDXID: SPDXRef-a591915b2a7dc448ea27afa70e3d0707 FileChecksum: SHA1: eacb676459dd1bd319b4b3780aaf5980034f0b08 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/appconfig/config_test.go SPDXID: SPDXRef-084863b55751841b50b8799c7417a709 FileChecksum: SHA1: 10d54117c1ee2dcae897b512bbe23497a9cb655b LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/configvalue/configvalue.go SPDXID: SPDXRef-bdd852299a0723d732072402e709db05 FileChecksum: SHA1: 4c33753f96dbe0dc0da739a761d1cb96a61d773a LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/configvalue/configvalue_test.go SPDXID: SPDXRef-f727d07dd49b8445723a4aa2428e0096 FileChecksum: SHA1: b39bbd7d5e545545f746ffff4591bec7b43d8cf8 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/cooked/client.go SPDXID: SPDXRef-894ff10dbb5f288d033d0d34dbd537a5 FileChecksum: SHA1: ff0ddc2e446ed13d35925e22a6827707a09182f0 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/cooked/client_preview_validation_test.go SPDXID: SPDXRef-8dfbb33ae524240b8ebac4fca19cdb0a FileChecksum: SHA1: a466f487afa60532226a7e6a19591188204c5919 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/cooked/client_recipe_validation_test.go SPDXID: SPDXRef-7e67422536e197d65b9aaff0d39aab0d FileChecksum: SHA1: a616ed80af9339b361cb978ce0f7cf6083912bbc LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/cooked/client_shopping_list_validation_test.go SPDXID: SPDXRef-8b598848493be14e4837735f8b0f0ca4 FileChecksum: SHA1: 269477f72f027c97919bf894c67738f8842873d2 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/cooked/client_test.go SPDXID: SPDXRef-2d4af7e159b711d442ec87b92695e8d9 FileChecksum: SHA1: 346b2920aa81a5d102f9e6299e41fafa2ddcc3e5 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/example_recipes.go SPDXID: SPDXRef-9ce4be73cdc8d9e7d67efecb2e51298c FileChecksum: SHA1: 636481aaf049c3317fec369cff8340fb47cdbf42 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/http.go SPDXID: SPDXRef-55caaf411c02b5b76c1ab3aecbd3a19e FileChecksum: SHA1: c83c2e3153d6e143d8647c0a4c12d418232f73e8 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/http_test.go SPDXID: SPDXRef-fd7c5e5eaefac70fd82cb4e388ba3eee FileChecksum: SHA1: 9b73550f7e079145bfd205ee91333f6544f55572 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/server.go SPDXID: SPDXRef-f55b7f789819bd2528c0bfc98ae0d4ad FileChecksum: SHA1: 31cc8f5204cc158f771d847b3e7897231a462785 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/server_example_recipes_test.go SPDXID: SPDXRef-79ca5238f355c4122f4e9210d570c9ca FileChecksum: SHA1: a02dd31aef062cf2040b5ee938a0d08b22f7d251 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/server_fake_test.go SPDXID: SPDXRef-ac72331e44c460f45f0b6a5c190cd211 FileChecksum: SHA1: 5278da4041d30087d711eb48a27d91789584f422 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/server_format.go SPDXID: SPDXRef-3922fcce30537cb78b1d14be96c10692 FileChecksum: SHA1: 54537528cb4851bc4cd76c15903907384aabc51c LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/server_ids.go SPDXID: SPDXRef-982ec9b561b9fe4c1f497b2a6a1e4fe8 FileChecksum: SHA1: 62d290bc6bd5ad26d77af3b497efc3dd83443b28 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/server_ids_test.go SPDXID: SPDXRef-44b58831bde3223fd1dc9774ed94e9a9 FileChecksum: SHA1: c4bfead171596e9148b20957806c13050c046c5e LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/server_pagination_test.go SPDXID: SPDXRef-25f970c4371ec400c1eb26c2142ef4ad FileChecksum: SHA1: 00ba7c6030cd247a09d7b5a226971818a9befef8 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/server_save_default_test.go SPDXID: SPDXRef-098fb6b481d3306ff8c6d4b39e2a5f3d FileChecksum: SHA1: 66f03bf0fb76bb737ea63f4f7289521cca705195 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/server_save_draft.go SPDXID: SPDXRef-d9af3af8eec8a75720d3b4c9b4527c23 FileChecksum: SHA1: b8a61c76840c18c80361203a32557e534b4ea33c LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/server_save_draft_test.go SPDXID: SPDXRef-233924bfe150dd4942123fa9b9116332 FileChecksum: SHA1: b163305895e8594d2528b9a116cd751040a6455f LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/server_save_url_test.go SPDXID: SPDXRef-ae959669deea13717d01376fec7739cc FileChecksum: SHA1: f5e3be64822d91b9b27f66e4180d0c1a3f09fe3f LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/server_structured_test.go SPDXID: SPDXRef-f5a149742df474c0ca58e994c1cf4316 FileChecksum: SHA1: 751858cc453ea0d32d3ffa37986814e599ef761a LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/server_test.go SPDXID: SPDXRef-a62f8466899ee647fcc7cfa27592d4a7 FileChecksum: SHA1: 7d26c5c54117ce888a05bb4f00315752d92f30a8 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/server_types.go SPDXID: SPDXRef-a9f95f7b0f572b654c855057f7605fdf FileChecksum: SHA1: 28063898f89773a37b0b5ff4d6938d2f62dccfd5 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/server_wording_test.go SPDXID: SPDXRef-fc6189e9a534efad2967fed09cc35570 FileChecksum: SHA1: e933d4ed64c2a512822db58bdf5638a6d89b13b3 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/shopping_list_add_test.go SPDXID: SPDXRef-134fc421bba7af2e6575d8a90d93a485 FileChecksum: SHA1: d7b21c2acb2dba2639d93fd9be918fa4ce1d90f8 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/shopping_list_update_test.go SPDXID: SPDXRef-1c37fa2810f7d0c599be2450452550cb FileChecksum: SHA1: 7846af7fa9dc9262fba5098c85b24768253d43c4 LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./internal/mcp/tool_result.go SPDXID: SPDXRef-f1b0d80559ae80de26ae7836cfd99c1a FileChecksum: SHA1: 9e9cf16db10e2d07752b542adbf53f471e5ae9ea LicenseConcluded: NOASSERTION LicenseInfoInFile: LicenseRef-MutuaL-1.2 FileCopyrightText: SPDX-FileCopyrightText: Amolith FileName: ./mise.toml SPDXID: SPDXRef-9678002da8409c310f0475f50503f671 FileChecksum: SHA1: f9bd97174bf79245b75c01b38387b322ce706547 LicenseConcluded: NOASSERTION LicenseInfoInFile: CC0-1.0 FileCopyrightText: SPDX-FileCopyrightText: Amolith LicenseID: LicenseRef-MutuaL-1.2 LicenseName: NOASSERTION ExtractedText: # The Mutualist License v1.2 **© 2026 ** **Short ID: MutuaL-1.2** or **MutuaL-1.2-only** *Please note that not including “only” automatically allows license upgrades.* “Mutualist License” and “MutuaL” should be seen as the same name everywhere one of them is used after this. Everyone is allowed to share exact copies of this license, with or without changing the formatting, as long as the changes do not alter, remove, or add any terms. You may not change the terms of this license and still call it the Mutualist License, except for clearly marked excerpts, quotations, or commentary. You are free to use this text as a starting point for your own license under a different name. If you do, credit back to us is appreciated, but not required. This license is not legal advice and does not create an attorney-client relationship. --- ## Credit **Name of this software:** cooked-mcp **Project home:** https://tangled.org/secluded.site/cooked-mcp **Original copyright holder(s):** Amolith ## Purpose This license’s goal is to allow you to use this software as freely as possible, while protecting the people who make it from harm and making sure everyone plays fair. As long as you follow all of this license’s rules, you can use, run, study, copy, change, share, or sell this software for any reason, without having to ask permission first. This section is only here to explain why the Mutualist License exists. It is not a rule or permission by itself. Those are found in the sections to follow. MutuaL is a [flipped form](https://flippedform.com/) in everyday English. If something doesn’t make sense, that’s MutuaL’s fault, not yours. Please [open an issue](https://codeberg.org/Mutualism/Mutualist-License/issues) so we can fix it. ## Acceptance In order to receive any benefits from this license, you must agree to all of its rules. These rules are the conditions of the deal. If you do not follow the rules, you do not have a license. Do not use this software if you cannot or will not follow these rules. Please read this license as a whole; different sections rely on each other to make sense. You agree to these rules if you **use, run, study, copy, change, share, or sell** this software in any way that normally needs permission. From now on, we’ll just use “**use**” when we want to refer to this long list. When bolded, “**use**” should always be read to mean the full list in this paragraph. ## Generosity The copyright holders and contributors allow you to do everything with this software that would otherwise break that contributor’s copyright and related rights. You must follow this license’s rules to get and keep these rights. This license, by itself, does not give you any rights to use any names, logos, or trademarks in promotion. ## Symmetry This section should be read as a basic contributor agreement. It describes what you agree to when you contribute changes to this software, separate from your rights as a user or distributor. If you change this software and then make your changes available to anyone that makes or shares this software, you license those changes under this same license for everyone. You “make them available” when you: - open a pull request, merge request, or patch submission, - post them in a public project space, forum, or issue tracker, - include them in any public sharing, or - let people use them in the project. Your license for your changes applies only to the parts you made or changed. It does not apply to separate code you mixed with your changes unless you own that code or have permission to license it this way. By making your changes available, you promise that: - you have the right to share those changes under this license, and - you are not adding code that has rules you aren’t allowed to give. If someone claims your changes include code they own or that needs different terms, that dispute is between you and the person making the claim. Other contributors and copyright holders are not responsible for verifying your contributions. ## Notice Everyone who receives a copy of this software from you, with or without changes, must also receive: - this license or a [link to it](https://codeberg.org/Mutualism/Mutualist-License), and - the current Credit block from the copy you received, if any. You may include the license and Credit in any reasonable way. For example, you can put them in a “LICENSE” file, document, an about box, or other place where people normally look for license and copyright information. You may add your own Credit, or update facts in the Credit block, if: - you keep the original Credit block somewhere in the project, and - you do not suggest that anyone approves of you or your changes unless they actually do. If you add credit, the original Credit block must be at least as easy to find. If the copy you received didn’t have a Credit block, you do not have to add one. If you want, you can still add one for your own changes. Metadata like SPDX® headers count as a “reasonable way” to follow this section’s rules about including the license. ## Mutualism If you share this software or software based on it, you must use this same license for any copies that you share and follow the Notice rule. This applies whether or not you’ve made changes. You must not add rules to these copies that would limit or take away the rights people get under this license. You must not add technical measures to this software that are designed or used mostly to stop others from using their own rights under this license. You are allowed to use security measures whose purpose is to protect users, systems, or data, and that do not stop people from using their rights under this license. If you change this software and allow others (as defined in Clarity) to interact with it over a network, like the internet, you must give them a clear and easy way to get the source code and this license. The source code must be for that exact version. For example, a clear link in the user interface that lets them download the source for the version they’re using. You must keep that source available for as long as you are letting others interact with a modified version over a network. If you stop running or offering that modified version, you no longer need to offer source. If you start offering a modified version again later, you must provide the source code again. If you run an unchanged copy of this software over a network, and others can use it directly as you offer it, you do not have to provide source code. This exception applies only when people interact with this software as itself. It does not apply when this software acts as a hidden component of something else you have made. To use this exception, you must keep any links or references to this software’s home that were already present. You do not have to add new links to the software’s home if none were included when you received your copy. This exception is for straightforward hosting. It applies when someone connects to your instance and gets the software as it was made, without a separate layer of your own software between them and it. It does not apply if this software is a backend or component of a different product or service you have built, or if what users primarily interact with is something you made that depends on this software to run. If you run software for others (as defined in Clarity) over a network that depends on this software for core functionality, you must also follow the rules above for sharing source code, as if you were sharing this software itself. This applies even if others never use this software directly, and even if your copy of this software is unchanged. A service “depends on this software for core functionality” when it could not operate in its current form without this software, and this software provides substantial functionality that users of the service benefit from. This does not apply when this software is merely a tool-like an operating system, compiler, or utility-that happens to be used in the stack but is not a core part of what makes the service valuable to users. If you share this software or software based on it with others in a form people can run off of a network, you must also offer them the source code for those parts. You can do this by including the source code with the sharing or by letting them know about a standard and no-cost way to get the source code over a network. Any time you must provide others with source code, it must not require separate contracts or extra terms beyond this license. ## Innovation Every copyright holder and contributor, and everyone who gives you this software under this license, also gives you a patent license to **use** this software as this license allows. It covers any patents of theirs that you would break by **using** the software as this license allows. If they later get new patents, those patents are also covered if they would be broken by using this software as this license allows. If you start what we will call a *patent attack*, you immediately and permanently lose **all** rights under this license for this software. A *patent attack* means starting a patent lawsuit or making a legal demand (such as a cease-and-desist letter or a request for royalty payment). For an action to count as a patent attack, ALL of the following must be true: - The action claims that someone **using** this software (or software based on it, or any contribution to it) has broken a patent you control. - The action is aimed at someone who is **using** this software under this license. - The person you are suing or demanding from has accepted this license for that use. ### What is not a patent attack A patent attack does *not* include legal actions against people who don’t have rights under this license. For example: - Someone who never accepted this license, or - Someone who lost their rights under Redemption and did not fix the problem in time, or - Someone who already lost their rights under this Innovation section in a past patent attack. None of these count as patent attacks. ### Defense exception This rule does not apply if you are only defending yourself. You are only defending yourself if *all* of the following are true: - Someone else sued you first over patents about this software (or software based on it). - You were following this license’s rules when they sued you. - Your response stays within that same dispute, or a dispute covering the same core issue. If you meet all three conditions above, you may: - Argue that their patent is invalid, not broken by your **use**, or can’t be enforced, and/or - Bring a counterclaim or cross-claim about their **use** of this software (or software based on it). If you do anything beyond these defensive actions in that dispute, or if you start a separate patent action, this exception does not apply. ### Unrelated patent cases This rule also does not apply to patent cases that are only about software or technology clearly unrelated to this software, which does not include it or software based on it. This patent rule does not affect any other rights you might have under other agreements for the same software. ### What this means in plain English Patent law requires precise language. Here is what the rules above mean in simple terms: A *patent attack* is when you use patents you control to stop someone from **using** this software as this license allows. If you do this, you lose all your rights to the software immediately and forever. There is no Redemption period. The **defense exception** protects you if someone else attacks *you* first. You can fight back in that same lawsuit without losing your license. However, you cannot start a separate patent action and claim it is “defense.” Your response must stay in the dispute they started. You can sue people who never accepted this license, who already lost their rights under Redemption, or who already lost rights under this Innovation section. None of those count as patent attacks under this license. This section explains these terms for your understanding, but are not themselves the binding terms. Everything from “Innovation” to just before “What this means in plain English” are the legally binding terms you need to listen to. ## Cooperation You are allowed to link or combine this software with other software licensed under different terms if that other software’s license gives everyone the rights to **use** it. The other software’s source code must be shared to others to fit this description. If the other software’s license fits that description, the Mutualism rule changes. MutuaL still applies to *this* software; however, it does not force you to share the *other* software’s source code. You must still follow the source sharing and network rules from Mutualism for the MutuaL-licensed parts, but you do not have to license the combined work as a whole under this license. If the other software does not meet that condition (like if it’s closed source), this Cooperation exception does not apply. In that case, the full Mutualism rule applies to the entire combined work. This exception only applies if the *source code* remains separable; that is, the MutuaL-licensed source files remain separate from other source files and are not mixed in a way that prevents easy separation. What happens when source code is compiled into binaries does not change whether the source is separable. Code becomes inseparable when: - It is copy-pasted across file boundaries, OR - Source files are merged so the MutuaL-licensed portions cannot be spotted and separated by reasonable effort. Separable means the MutuaL-licensed source code stays in its own identifiable files, even if those files are later compiled into a combined binary. If the source code becomes inseparable, the full Mutualism rule applies to everything. Static and dynamic linking are both allowed under this exception as long as the *source* files remain separate and identifiable. Any license that fits the [Free Software Definition](https://www.gnu.org/philosophy/free-sw.html) or [Open Source Definition](https://opensource.org/osd) meets this condition. This is not the only way for a license to qualify. This exception is offered by the Mutualist License, but please make sure the other license also plays nice by allowing this on its end. Ask a legal expert if you are unsure. ## Redemption If any copyright holder of this software lets you know in writing that you have not followed any of the rules of this license *except* for Innovation, you can keep your license by fixing the problem. The notice must reasonably identify which rule or rules were broken so you know what to fix. To fix the problem, you must, within 30 days after you receive the notice: - stop doing the thing that breaks the rules of this license, and - do what is needed to fix the mistake and make things right, such as giving people missing source code, Notice, or license copies. If you do this in time, your rights under this license continue as if you never broke its rules. You have done this successfully either when the person who let you know agrees with your fix, or when you have let them know about your fix but they have not responded after seven days. If these seven days extend beyond the 30 day Redemption period, the Redemption period extends to cover this time. If you do not do this in time, all your rights under this license for this software end automatically at the end of the 30 days. Any copyright holder may choose to give you a new license if they choose, but they do not have to. If they do, it must be in writing. You do not get this Redemption period if you violate the Innovation rule. In that case, your rights under this license end immediately and permanently when you start the patent attack. ## Reliability This license, along with its rights and grants, lasts forever. No one can revoke them or ask you to stop using the software, except where this license states that your rights may end (for example, under Innovation and Redemption). The law likes to see certain terms here, so legally speaking: this counts as a **worldwide, non-exclusive, perpetual, royalty-free** license that lasts as long as copyright and related rights and patent law allows, unless otherwise ended under this license. ## Foresight **If you are using this license for your own software, please read this section carefully and choose the wording that matches what you actually want.** New versions of the Mutualist License may be released over time. You can tell a version is newer by its higher number. Each copy of the software will say which version it uses at the top of its license section. If your copy does not say “only,” you may follow that version or any later one. If it says “only,” you must follow that exact version and not a later one. If you combine code under different versions, the newest version applies to the whole combined work. You cannot mix code that requires “only” a specific version with code that does not, unless all code uses “only” that same version. Updating the license in the software does not change the license for copies you already received. You can only move to a higher version number, never lower. ## Clarity By *this software,* we are including both its source code and any form built from that source code. By *software based on this software,* we mean work that fits the legal definition of a derivative work under copyright law. Software is not *based on this software* if it only runs alongside it or talks to it through a *standard interface.* This license does not touch separate software. By *source code,* we mean the best form for making changes. This includes the code itself, plus the scripts and files needed to build, install, connect, and run it. By *share,* we mean giving copies of this software or software based on it to someone else, in any form, by any method, for free or for money. By *copyright and related rights,* we mean that besides copyright, we’re also including neighboring rights, database rights, and similar rights in any country. By *standard interface,* we mean a public way for software to talk to other software. This includes things like APIs, protocols, or file formats. It must be documented in a way that allows independent implementation, and available for anyone in the general public to use. By *others,* we mean any person, company, or group that is not you, and not part of the same single legal entity as you. - If you are acting as an individual, “others” means people you don’t live with and who aren’t part of your immediate family. Regardless of how your jurisdiction defines “immediate family”, your spouse, romantic partner(s), parents, siblings, and children always count as part of your immediate family as far as this license is concerned. - If you are acting for a legal entity, “others” are anyone outside that entity. Contractors do not count as “others” while they are: - Under direct contract to do specific work for you, AND - Bound by confidentiality obligations to your entity, AND - Working under your direction and control (not as an independent service provider) Once a contractor’s work ends or these conditions no longer apply, they become “others” if they retain access to the software. - Public users, customers, clients, federated groups, and unrelated organizations always count as “others,” even if access to the service is limited, invite-only, or requires registration. - Cloud providers, CDNs, and similar outside services do not count as “others” or a group that “shares” the software if they just run or deliver what you tell them to. We need to use *legal entity* here, but it means a company, non-profit, or organization that the law treats as one single person. By *core functionality,* we mean the essential features that make a service valuable to its users. Software provides core functionality when the service could not operate in its current form without it, and it provides substantial value that users benefit from. A version of the software is *unchanged* if you have not modified any part of its code or build configuration in a way that creates a derivative work under copyright or related rights. Changing only how the software is configured, such as setting environment variables, editing configuration files, or adjusting settings through the software’s own interface, does not count as modifying its code or build configuration. A copy remains unchanged even if you have configured it for your environment or use case. By *in writing,* we mean a physical document or digital message. It must clearly show who sent it and what they mean. A version of the Mutualist License is only considered real and applicable to Foresight if it appears, or has ever appeared, at [the license’s home](https://codeberg.org/Mutualism/Mutualist-License) or a future home that the original author(s) designate. This license is only valid in English. If a court or regulatory body looks at it, they must use the English text. Translations are just for help and have no legal power. ## Holism If any part of this license is invalid or can’t be enforced, the rest still applies. The invalid part will be changed to make it valid if possible. If it can’t be fixed, that part will be removed, but the rest of the license stays in effect. ## Non-Liability **Unless the law says we have to, or unless we signed a separate written agreement with you, we provide this software to you “AS IS.”** **We do not make any promises about the software. We do not guarantee that it works perfectly. This includes, but is not limited to, the legal warranties of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.** **Unless the law forces us to be, WE ARE NOT RESPONSIBLE TO YOU OR ANYONE ELSE FOR ANY KIND OF LOSS OR DAMAGE THAT COMES FROM USING THIS SOFTWARE, EVEN IF WE KNEW IT COULD HAPPEN. This includes things like lost data, broken systems, or money you lose because the software did not work the way you hoped.** **You are the one who has to decide if this software is safe or right for you to use or share. You take all the risks when you use it.** Some of the capitalized words in this section break the flipped form goal. This is because the law requires us to use those specific words, often in capital letters, to make sure you see them. Unfortunately, because they are legal terms, they can be confusing. Here is what they mean in simple English: - AS-IS: In the state the software is in when you receive a copy of it, no matter what state that may be. - TITLE: This means we formally promise that we own the software or have the right to give it to you. **We are not making that promise.** - NON-INFRINGEMENT: This means we promise the software does not steal anyone else’s work or break copyright rules. **We are not making that promise.** - MERCHANTABILITY: This means the software is good enough to be sold in a store and works like a normal person would expect. **We are not making that promise.** - FITNESS FOR A PARTICULAR PURPOSE: This means the software will work for the specific job or goal you have in mind. **We are not making that promise.** This list explains these terms for your understanding, but the capitalized phrases are the binding terms.