Document agent tool availability contracts
This commit is contained in:
1 parent
f79c4905d0
commit
cef76ce1fc
30 files changed
+408
-160
No files matched your search
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"pageVersion": "sha256:fad06b683f4e91f808959ed85ce962b1c86d64a67078b39c7ba20f8aa12ad35b",
|
||||
"pageVersion": "sha256:9e4dcfe15396af0c8e9ed77ff7347eac829aeff9d111ad37757a2e3f1e63b2c1",
|
||||
"claims": [
|
||||
{
|
||||
"id": "claim_5a53c5a47b7445f7a7b6f8865297a805",
|
||||
@@ -104,13 +104,17 @@
|
||||
"id": "claim_1361b995f8e646c6a534186edcd83dc7",
|
||||
"statement": "The workspace compact Assistant has routing separate from the full Assistant destination and composes transcript/interaction regions with explicit terminal context; Escape cannot fall through from a blocking interaction into closing the conversation.",
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://TFM/Features/Assistant/AssistantView.swift#L152-L225",
|
||||
"version": "repo-lines-v1:sha256:d47d11a81fc91f016d97ec23e87c1a89e608cb049d364bda5cc33966ce5e6a5e:eyJzZWxlY3RlZExpbmVDb3VudCI6NzQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6Ijk0YmFkZWYzNjBmZDM2NTYwNGE2ODg4NGU5NDJiYzA4M2RjZDQ0ZTJhNTBlYzYyMjkzOTExZDYxOTg1MmVhNDAiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjU1MDMyZTk2NGQwOTMyMzUxZTVkMTg1MjY5MjgxYjE3MWEzYTA5YjA4YjI4NmU2NjFlYTQ3MDMyM2M4MmViNGQiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjEyZjUyZjI3YTJiNzI0ZTlmYTM4NjA0ZGJkZGZlODczYTlkMTJhOTNiZWI0YWNiYWU5ZjFmNzk3ZDZkOTg1OTEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6Ijk5OWJkZWZlZWFjYTYzNDBlMDI5MGRjODZlODg5Yzg5ZDVlMTg5YWE1YmE0NGI1ODViM2I3MDczNGY0YTYyZDgifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Features/Assistant/AssistantView.swift#L7-L14",
|
||||
"version": "repo-lines-v1:sha256:a3755412e818d877b2c9c59bc75105e21157bb4519e47f13f4ee6fd2764de97b:eyJzZWxlY3RlZExpbmVDb3VudCI6OCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiZmFlZDhjNWNjMzg0MGRjMjMwYTRiNGY3MTExN2UxZGE4MjRmZmJmYjA5ZTZjMWVmYWY4M2U1Mzc5MTNkNjkzZCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDEyY2EzNDVjY2Y3NWJmOWMwODA2YmNlNjk1YmU4ZGU4MDhiNzk5ODQyNTFhN2E1NGQyMDJjZjYxMDFkZDQ1MSIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiNTcxZGE3NDM0NTdjMDNhMjQwNDRhMTk3NTQ2MGE2YzQ4OTllODBiNzUyOGUzMDRkMzE0ZDY3ZmU1NWE0MTYwNiIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiMWMwMDRmMzdkODZkOTFjYzUyZGY1ZDhiYjAyYjU0YmI1ODk5YjA1MWYzY2M0YTU5ODk2ZDFiNTZjYjQ1NGNiMiJ9"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Features/Assistant/AssistantView.swift#L89-L225",
|
||||
"version": "repo-lines-v1:sha256:a235a02d0e28feb4b79c8d8a6f5e3844a9598fd35568c864ee8ed9cabfbc4c8d:eyJzZWxlY3RlZExpbmVDb3VudCI6MTM3LCJmaXJzdFNlbGVjdGVkTGluZUhhc2giOiI5MTFlOGI2MmUzM2JjNDg0MWM4NmE1MmJiZmQ0MjRhZTQxZTBiYmVhODI0MjJkMTBlMGQyMGI5ZjMwNWZiNDBjIiwibGFzdFNlbGVjdGVkTGluZUhhc2giOiI1NTAzMmU5NjRkMDkzMjM1MWU1ZDE4NTI2OTI4MWIxNzFhM2EwOWIwOGIyODZlNjYxZWE0NzAzMjNjODJlYjRkIiwicHJlY2VkaW5nQ29udGV4dExpbmVDb3VudCI6MywicHJlY2VkaW5nQ29udGV4dEhhc2giOiIyYTFiOTczN2RlNTU1MTEwZjU1YmYyZmI2N2UxNzk1ZTU1ODA4NDdjYTQzOWI0YjBkZmJjN2U1YmZjNGU1YjcxIiwiZm9sbG93aW5nQ29udGV4dExpbmVDb3VudCI6MywiZm9sbG93aW5nQ29udGV4dEhhc2giOiI5OTliZGVmZWVhY2E2MzQwZTAyOTBkYzg2ZTg4OWM4OWQ1ZTE4OWFhNWJhNDRiNTg1YjNiNzA3MzRmNGE2MmQ4In0"
|
||||
"resource": "repo://TFM/Features/Assistant/AssistantView.swift#L89-L96",
|
||||
"version": "repo-lines-v1:sha256:b2fe9ba7bbc30e22c4c7c13247a4e7f913020f78afc2693088e31914f9c554ac:eyJzZWxlY3RlZExpbmVDb3VudCI6OCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiOTExZThiNjJlMzNiYzQ4NDFjODZhNTJiYmZkNDI0YWU0MWUwYmJlYTgyNDIyZDEwZTBkMjBiOWYzMDVmYjQwYyIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiMDFiYTQ3MTljODBiNmZlOTExYjA5MWE3YzA1MTI0YjY0ZWVlY2U5NjRlMDljMDU4ZWY4Zjk4MDVkYWNhNTQ2YiIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiMmExYjk3MzdkZTU1NTExMGY1NWJmMmZiNjdlMTc5NWU1NTgwODQ3Y2E0MzliNGIwZGZiYzdlNWJmYzRlNWI3MSIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiOGE0ZjU3YTVlYzJkYWUxY2Q0ZmY3MDczMDE0Zjg4YTM0NWJiMzVlMmJmNDFjNDMzMzc4NjE2ZjAzNjM2OGM2MSJ9"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -203,6 +207,6 @@
|
||||
],
|
||||
"verification": {
|
||||
"by": "openwiki/0.5.2",
|
||||
"at": "2026-09-23T00:14:42.075Z"
|
||||
"at": "2026-09-23T01:34:03.251Z"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"pageVersion": "sha256:6f98da9e8f070ebc2a0b91545058eb3aa5a411129c7a18c9b33ee9eb6da8e799",
|
||||
"pageVersion": "sha256:75fe464fb65e761e5eeaab3f31f1a2d852175cc5f78f5b099ddffee4a8655971",
|
||||
"claims": [
|
||||
{
|
||||
"id": "claim_72f9329a158e418cbf0fd6394f82815e",
|
||||
@@ -52,11 +52,11 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/App/AppModel.swift",
|
||||
"version": "repo-file-v1:sha256:1ac6f933da6e8e14162cab3e53a64ad3f1b4bd1bb3c55f6f3ead3286054c0cc1"
|
||||
"version": "repo-file-v1:sha256:ba89018766f45b430033efc2969c0307ba30c0d298bd8b55a51e17a08915c767"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Features/Workspaces/WindowModel.swift",
|
||||
"version": "repo-file-v1:sha256:4bff3bbe87d980066344224e6c189b784360bb2c0fc360d138b4bb0a6d816420"
|
||||
"version": "repo-file-v1:sha256:4c153bf5b7d97bf82683269527c35e76d9666ce459b681af16e7eed4a586e837"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -110,11 +110,11 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/AssistantToolRegistry.swift",
|
||||
"version": "repo-file-v1:sha256:486ca4d2997672c82c417051e24392ee610f9f838dff89cffedaceff0891f9fd"
|
||||
"version": "repo-file-v1:sha256:8ccfafe881aacc3f7232d30cef9c97588787771dd925d726b5591efa15c92021"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/TermindAgentTools.swift",
|
||||
"version": "repo-file-v1:sha256:9a6ac5989bbe56b568db0e639c84f0608a8dc5b4cd089438c64d91a587a91527"
|
||||
"version": "repo-file-v1:sha256:48b3039f44d716afaacc3e0986a88fcaad3a32d6fa00a68dba265b82e0efc284"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFMTests/ArchitectureBoundaryTests.swift#L137-L160",
|
||||
@@ -325,6 +325,6 @@
|
||||
],
|
||||
"verification": {
|
||||
"by": "openwiki/0.5.2",
|
||||
"at": "2026-09-23T00:59:31.979Z"
|
||||
"at": "2026-09-23T01:34:03.251Z"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"pageVersion": "sha256:769919ef95916ccc91f27ef2666730600005e79c052893c2ae098644ac389a07",
|
||||
"pageVersion": "sha256:a1e240ca495ddf76ace3e9861b2f459a2fa61e2d53179352e87b15452e6828ee",
|
||||
"claims": [
|
||||
{
|
||||
"id": "claim_fbb919f62a2d4ab88aafcc4c1186731b",
|
||||
@@ -142,7 +142,7 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFI/Application/Agent/MobileAssistantModel.swift#L9-L39",
|
||||
"version": "repo-lines-v1:sha256:82b51c51f7632b9209f536cc1ff9f4eff1e9b61477387dbf7369a46f05bd8809:eyJzZWxlY3RlZExpbmVDb3VudCI6MzEsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjI4ZDUwMzc5NDJmNThhMWQwZWRlN2QxNDYwNmMwZTJlOTE2OGUwMzRkNDFiYTU2ZThkMTA5YTRlNzY5NTgxZGUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjIwYWZkMDliMDljYTY2Y2Y0YmIyN2QwZWMxOWQ2ODUyMzA1OTYxNWE4OGQ2MzRjYTIzYjMxYjdmYmM1OGY5MDAiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImQ4NjlhNmI3MWE1OTA2NzY4MWZkOTE5ZWJlNThkZmMzODZkMzI3YTRhNmJlMDFiMGI0YWYwYmFkMmViYWY3MzcifQ"
|
||||
"version": "repo-lines-v1:sha256:f6690fa9486d7a196714cdb9b22349dae117807c62649feffd2126f03dba2f3f:eyJzZWxlY3RlZExpbmVDb3VudCI6MzMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjI4ZDUwMzc5NDJmNThhMWQwZWRlN2QxNDYwNmMwZTJlOTE2OGUwMzRkNDFiYTU2ZThkMTA5YTRlNzY5NTgxZGUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjIwYWZkMDliMDljYTY2Y2Y0YmIyN2QwZWMxOWQ2ODUyMzA1OTYxNWE4OGQ2MzRjYTIzYjMxYjdmYmM1OGY5MDAiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImQ4NjlhNmI3MWE1OTA2NzY4MWZkOTE5ZWJlNThkZmMzODZkMzI3YTRhNmJlMDFiMGI0YWYwYmFkMmViYWY3MzcifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFI/Features/AI/MobileAssistantConversation.swift#L447-L544",
|
||||
@@ -263,6 +263,6 @@
|
||||
],
|
||||
"verification": {
|
||||
"by": "openwiki/0.5.2",
|
||||
"at": "2026-09-23T00:59:31.979Z"
|
||||
"at": "2026-09-23T01:34:03.251Z"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"pageVersion": "sha256:8c5b708036c7d089f4821e24e31a00e1684e44d78bf3a8182b9df0800ffe7f00",
|
||||
"pageVersion": "sha256:cd736475053bed4751ff7b4f06ee0433c8d3ac3e74f3866d585bc958dd6b25d5",
|
||||
"claims": [
|
||||
{
|
||||
"id": "claim_34230e88036241baad093fb8de5bac8e",
|
||||
@@ -44,7 +44,7 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Features/Workspaces/WindowModel.swift",
|
||||
"version": "repo-file-v1:sha256:4bff3bbe87d980066344224e6c189b784360bb2c0fc360d138b4bb0a6d816420"
|
||||
"version": "repo-file-v1:sha256:4c153bf5b7d97bf82683269527c35e76d9666ce459b681af16e7eed4a586e837"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -88,7 +88,7 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/TermindAgentTools.swift#L5-L68",
|
||||
"version": "repo-lines-v1:sha256:b37728d2b6eed175b24a9d2761439467c6455e58de8c995e99c80bcdd740c58f:eyJzZWxlY3RlZExpbmVDb3VudCI6NjQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjM2NTgzYWUxYWM2NTU4YTlmNGQ0MTYyYzcxZDJjMTk4OTE3OWI2MDljYWE0MDg0OTMzYjZlY2E5YWEzYWU1ZDUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjgzMDBjMjE3MTcwZWFmOGZmOGRmMTgyYzc0Y2FkZDY2YjQ0NWFiOTZiYTVmY2YzOWYyZGE0MjM3YzdmYTA3ZDYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImM0NmY4Y2RkMDA0NDk4MWZkNzI0N2EwYzg5MzE2ODM0ZDNlZGFjOWU1MTAwNThkNGMwNGNhM2RkODczYzFhYTYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImQxOGJkYjA3YzQ1MDc0ZDQ1OGM1ZTE2N2I2YmNiYzNkNDQ3M2E1NzNlZTExYzQyMzI0NjBjMmIyODZmNmRiNDgifQ"
|
||||
"version": "repo-lines-v1:sha256:8ec2078dc1ab7a5f6087ab497ecb18aa1b47942cd6213e8f611f6ee6b14c1d26:eyJzZWxlY3RlZExpbmVDb3VudCI6NjEsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjM2NTgzYWUxYWM2NTU4YTlmNGQ0MTYyYzcxZDJjMTk4OTE3OWI2MDljYWE0MDg0OTMzYjZlY2E5YWEzYWU1ZDUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjgzMDBjMjE3MTcwZWFmOGZmOGRmMTgyYzc0Y2FkZDY2YjQ0NWFiOTZiYTVmY2YzOWYyZGE0MjM3YzdmYTA3ZDYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImM0NmY4Y2RkMDA0NDk4MWZkNzI0N2EwYzg5MzE2ODM0ZDNlZGFjOWU1MTAwNThkNGMwNGNhM2RkODczYzFhYTYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImQxOGJkYjA3YzQ1MDc0ZDQ1OGM1ZTE2N2I2YmNiYzNkNDQ3M2E1NzNlZTExYzQyMzI0NjBjMmIyODZmNmRiNDgifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Termind.xcodeproj/project.pbxproj",
|
||||
@@ -102,7 +102,7 @@
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindApplication/Agent/AssistantExecutionController.swift#L6-L44",
|
||||
"version": "repo-lines-v1:sha256:c45de1cccebc1889e8de88bb9520e33aeaba05e6c2c8faa7876eba2acb7f3493:eyJzZWxlY3RlZExpbmVDb3VudCI6MzksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjA3YzgyYWM5Yzk2MGJhNjIyNDBlYWZkZDE0ZTY2NTI1NjQ2MTMzOTE5NjU2MzNiODhlMWIwNjk5MjY2MGI2NTEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjFhZDFiYmYwZjdkYWQyYTAyNGQxMzBmZjQzOWQ5M2Y0ODZhZDQwMmQ5Y2U5N2Q3ZDVhMDZhYTUxNjFlMmIyZWEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImI4MjgyYmRhZjE5OTYzODdkODg5MzczMjM0Njc1ZjQ2YTI5N2UxN2RhZjAxMGJjMWI5OGMzNjA0Zjk5OGEwNDMifQ"
|
||||
"version": "repo-lines-v1:sha256:acf89cdfba502ef9c32f962dc43493dd515971c9c8b203533c43044e3ebca670:eyJzZWxlY3RlZExpbmVDb3VudCI6MzksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjA3YzgyYWM5Yzk2MGJhNjIyNDBlYWZkZDE0ZTY2NTI1NjQ2MTMzOTE5NjU2MzNiODhlMWIwNjk5MjY2MGI2NTEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjFhZDFiYmYwZjdkYWQyYTAyNGQxMzBmZjQzOWQ5M2Y0ODZhZDQwMmQ5Y2U5N2Q3ZDVhMDZhYTUxNjFlMmIyZWEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImI4MjgyYmRhZjE5OTYzODdkODg5MzczMjM0Njc1ZjQ2YTI5N2UxN2RhZjAxMGJjMWI5OGMzNjA0Zjk5OGEwNDMifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindApplication/Transfers/RemoteFileSystem.swift#L4-L14",
|
||||
@@ -151,6 +151,6 @@
|
||||
],
|
||||
"verification": {
|
||||
"by": "openwiki/0.5.2",
|
||||
"at": "2026-09-23T00:14:42.075Z"
|
||||
"at": "2026-09-23T01:34:03.251Z"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"pageVersion": "sha256:411c153b0239360e9fc0a413c9ff012607f8aa71dfd42cf349bcfc83eb2fb690",
|
||||
"pageVersion": "sha256:daaecfb65b33663c617a5627c7c65fc6e45cd05b85017d53e6a48c818a1e15b5",
|
||||
"claims": [
|
||||
{
|
||||
"id": "claim_8e9cf2adb50847f98fcd4516cb0ed521",
|
||||
@@ -20,7 +20,7 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Features/Workspaces/WindowModel.swift",
|
||||
"version": "repo-file-v1:sha256:4bff3bbe87d980066344224e6c189b784360bb2c0fc360d138b4bb0a6d816420"
|
||||
"version": "repo-file-v1:sha256:4c153bf5b7d97bf82683269527c35e76d9666ce459b681af16e7eed4a586e837"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -56,7 +56,7 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Application/MCPServer/MCPServerTools.swift",
|
||||
"version": "repo-file-v1:sha256:ad52ce8d73955e9220c24a05db6827b45359c2de46b59d5f315f733354bfc0fd"
|
||||
"version": "repo-file-v1:sha256:7fb10e9423fc06bfc8c45a3b189ffd03cc3b8f588915c1e9afa3cc33b91d6020"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Application/MCPServer/MCPUploadCoordinator.swift",
|
||||
@@ -112,7 +112,7 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Features/Assistant/AssistantView.swift",
|
||||
"version": "repo-file-v1:sha256:f452636d57e54e873af2d27b0a25492e6ae8f2cb2eff8543ae001d09c5a6b265"
|
||||
"version": "repo-file-v1:sha256:3d9babddce2d3da3e2f1787094a40692a2b7a4a2d2c22eed61f5372b4221b205"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Features/Shell/WindowRoute.swift",
|
||||
@@ -231,6 +231,6 @@
|
||||
],
|
||||
"verification": {
|
||||
"by": "openwiki/0.5.2",
|
||||
"at": "2026-09-23T00:14:42.075Z"
|
||||
"at": "2026-09-23T01:34:03.251Z"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"pageVersion": "sha256:1928bdff8b5655653f6d6eaa66489a0a3c967dfebdf9c9c86245df87bf2011c1",
|
||||
"pageVersion": "sha256:f6b1eae907640a27121b4c2f41cc040490003e2944d38858bc7a4719581bd0b3",
|
||||
"claims": [
|
||||
{
|
||||
"id": "claim_bd9f5ddda6b6466eb79c622b02fd73f2",
|
||||
@@ -40,7 +40,7 @@
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://TFM/App/AppModel.swift",
|
||||
"version": "repo-file-v1:sha256:1ac6f933da6e8e14162cab3e53a64ad3f1b4bd1bb3c55f6f3ead3286054c0cc1"
|
||||
"version": "repo-file-v1:sha256:ba89018766f45b430033efc2969c0307ba30c0d298bd8b55a51e17a08915c767"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/App/RootView.swift",
|
||||
@@ -48,7 +48,7 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Features/Workspaces/WindowModel.swift",
|
||||
"version": "repo-file-v1:sha256:4bff3bbe87d980066344224e6c189b784360bb2c0fc360d138b4bb0a6d816420"
|
||||
"version": "repo-file-v1:sha256:4c153bf5b7d97bf82683269527c35e76d9666ce459b681af16e7eed4a586e837"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -224,7 +224,7 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Features/Workspaces/WindowModel.swift",
|
||||
"version": "repo-file-v1:sha256:4bff3bbe87d980066344224e6c189b784360bb2c0fc360d138b4bb0a6d816420"
|
||||
"version": "repo-file-v1:sha256:4c153bf5b7d97bf82683269527c35e76d9666ce459b681af16e7eed4a586e837"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -257,6 +257,6 @@
|
||||
],
|
||||
"verification": {
|
||||
"by": "openwiki/0.5.2",
|
||||
"at": "2026-09-23T00:14:42.075Z"
|
||||
"at": "2026-09-23T01:34:03.251Z"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"pageVersion": "sha256:6ba56baf56fd5439756c528b55b7765f506ed716677142f0298cbad9f4cf2f93",
|
||||
"pageVersion": "sha256:42206a596cfd036cd1cf7bd7bc2f0e8ec5f96a4577648a864cebd3f8db5d0a3f",
|
||||
"claims": [
|
||||
{
|
||||
"id": "claim_6e30bc8cde134c23815d274543d0786c",
|
||||
@@ -60,11 +60,11 @@
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindApplication/Agent/AssistantExecutionController.swift#L6-L44",
|
||||
"version": "repo-lines-v1:sha256:c45de1cccebc1889e8de88bb9520e33aeaba05e6c2c8faa7876eba2acb7f3493:eyJzZWxlY3RlZExpbmVDb3VudCI6MzksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjA3YzgyYWM5Yzk2MGJhNjIyNDBlYWZkZDE0ZTY2NTI1NjQ2MTMzOTE5NjU2MzNiODhlMWIwNjk5MjY2MGI2NTEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjFhZDFiYmYwZjdkYWQyYTAyNGQxMzBmZjQzOWQ5M2Y0ODZhZDQwMmQ5Y2U5N2Q3ZDVhMDZhYTUxNjFlMmIyZWEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImI4MjgyYmRhZjE5OTYzODdkODg5MzczMjM0Njc1ZjQ2YTI5N2UxN2RhZjAxMGJjMWI5OGMzNjA0Zjk5OGEwNDMifQ"
|
||||
"version": "repo-lines-v1:sha256:acf89cdfba502ef9c32f962dc43493dd515971c9c8b203533c43044e3ebca670:eyJzZWxlY3RlZExpbmVDb3VudCI6MzksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjA3YzgyYWM5Yzk2MGJhNjIyNDBlYWZkZDE0ZTY2NTI1NjQ2MTMzOTE5NjU2MzNiODhlMWIwNjk5MjY2MGI2NTEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjFhZDFiYmYwZjdkYWQyYTAyNGQxMzBmZjQzOWQ5M2Y0ODZhZDQwMmQ5Y2U5N2Q3ZDVhMDZhYTUxNjFlMmIyZWEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImI4MjgyYmRhZjE5OTYzODdkODg5MzczMjM0Njc1ZjQ2YTI5N2UxN2RhZjAxMGJjMWI5OGMzNjA0Zjk5OGEwNDMifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/TermindAgentTools.swift#L5-L68",
|
||||
"version": "repo-lines-v1:sha256:b37728d2b6eed175b24a9d2761439467c6455e58de8c995e99c80bcdd740c58f:eyJzZWxlY3RlZExpbmVDb3VudCI6NjQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjM2NTgzYWUxYWM2NTU4YTlmNGQ0MTYyYzcxZDJjMTk4OTE3OWI2MDljYWE0MDg0OTMzYjZlY2E5YWEzYWU1ZDUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjgzMDBjMjE3MTcwZWFmOGZmOGRmMTgyYzc0Y2FkZDY2YjQ0NWFiOTZiYTVmY2YzOWYyZGE0MjM3YzdmYTA3ZDYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImM0NmY4Y2RkMDA0NDk4MWZkNzI0N2EwYzg5MzE2ODM0ZDNlZGFjOWU1MTAwNThkNGMwNGNhM2RkODczYzFhYTYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImQxOGJkYjA3YzQ1MDc0ZDQ1OGM1ZTE2N2I2YmNiYzNkNDQ3M2E1NzNlZTExYzQyMzI0NjBjMmIyODZmNmRiNDgifQ"
|
||||
"version": "repo-lines-v1:sha256:8ec2078dc1ab7a5f6087ab497ecb18aa1b47942cd6213e8f611f6ee6b14c1d26:eyJzZWxlY3RlZExpbmVDb3VudCI6NjEsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjM2NTgzYWUxYWM2NTU4YTlmNGQ0MTYyYzcxZDJjMTk4OTE3OWI2MDljYWE0MDg0OTMzYjZlY2E5YWEzYWU1ZDUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjgzMDBjMjE3MTcwZWFmOGZmOGRmMTgyYzc0Y2FkZDY2YjQ0NWFiOTZiYTVmY2YzOWYyZGE0MjM3YzdmYTA3ZDYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImM0NmY4Y2RkMDA0NDk4MWZkNzI0N2EwYzg5MzE2ODM0ZDNlZGFjOWU1MTAwNThkNGMwNGNhM2RkODczYzFhYTYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImQxOGJkYjA3YzQ1MDc0ZDQ1OGM1ZTE2N2I2YmNiYzNkNDQ3M2E1NzNlZTExYzQyMzI0NjBjMmIyODZmNmRiNDgifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/TermindAgentTools.swift#L92-L162",
|
||||
@@ -291,6 +291,6 @@
|
||||
],
|
||||
"verification": {
|
||||
"by": "openwiki/0.5.2",
|
||||
"at": "2026-09-23T00:14:42.075Z"
|
||||
"at": "2026-09-23T01:34:03.251Z"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"pageVersion": "sha256:fa243e662bcccf538fa4c830c781851a26ec9aea0c86163cfc99644ac7364159",
|
||||
"pageVersion": "sha256:2711b0e7d443185dd21a3d96c2cb80f84a5e2149a5a6fc64fda5363afcbc86be",
|
||||
"claims": [
|
||||
{
|
||||
"id": "claim_8809151c43594803b83cf0451d849112",
|
||||
@@ -60,7 +60,7 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/TermindAgentTools.swift#L5-L68",
|
||||
"version": "repo-lines-v1:sha256:b37728d2b6eed175b24a9d2761439467c6455e58de8c995e99c80bcdd740c58f:eyJzZWxlY3RlZExpbmVDb3VudCI6NjQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjM2NTgzYWUxYWM2NTU4YTlmNGQ0MTYyYzcxZDJjMTk4OTE3OWI2MDljYWE0MDg0OTMzYjZlY2E5YWEzYWU1ZDUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjgzMDBjMjE3MTcwZWFmOGZmOGRmMTgyYzc0Y2FkZDY2YjQ0NWFiOTZiYTVmY2YzOWYyZGE0MjM3YzdmYTA3ZDYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImM0NmY4Y2RkMDA0NDk4MWZkNzI0N2EwYzg5MzE2ODM0ZDNlZGFjOWU1MTAwNThkNGMwNGNhM2RkODczYzFhYTYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImQxOGJkYjA3YzQ1MDc0ZDQ1OGM1ZTE2N2I2YmNiYzNkNDQ3M2E1NzNlZTExYzQyMzI0NjBjMmIyODZmNmRiNDgifQ"
|
||||
"version": "repo-lines-v1:sha256:8ec2078dc1ab7a5f6087ab497ecb18aa1b47942cd6213e8f611f6ee6b14c1d26:eyJzZWxlY3RlZExpbmVDb3VudCI6NjEsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjM2NTgzYWUxYWM2NTU4YTlmNGQ0MTYyYzcxZDJjMTk4OTE3OWI2MDljYWE0MDg0OTMzYjZlY2E5YWEzYWU1ZDUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjgzMDBjMjE3MTcwZWFmOGZmOGRmMTgyYzc0Y2FkZDY2YjQ0NWFiOTZiYTVmY2YzOWYyZGE0MjM3YzdmYTA3ZDYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImM0NmY4Y2RkMDA0NDk4MWZkNzI0N2EwYzg5MzE2ODM0ZDNlZGFjOWU1MTAwNThkNGMwNGNhM2RkODczYzFhYTYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImQxOGJkYjA3YzQ1MDc0ZDQ1OGM1ZTE2N2I2YmNiYzNkNDQ3M2E1NzNlZTExYzQyMzI0NjBjMmIyODZmNmRiNDgifQ"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -70,7 +70,7 @@
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://TFM/Application/MCPServer/MCPServerTools.swift",
|
||||
"version": "repo-file-v1:sha256:ad52ce8d73955e9220c24a05db6827b45359c2de46b59d5f315f733354bfc0fd"
|
||||
"version": "repo-file-v1:sha256:7fb10e9423fc06bfc8c45a3b189ffd03cc3b8f588915c1e9afa3cc33b91d6020"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Infrastructure/MCP/MCPServerSession.swift",
|
||||
@@ -237,6 +237,6 @@
|
||||
],
|
||||
"verification": {
|
||||
"by": "openwiki/0.5.2",
|
||||
"at": "2026-09-22T10:02:02.985Z"
|
||||
"at": "2026-09-23T01:34:03.251Z"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"pageVersion": "sha256:db9f09d0c4799f6c8ecc04c8b993af8c45c2c71fbb32827587c3c99c945c3c2b",
|
||||
"pageVersion": "sha256:3cbf1be9eb94f0eb87d83be0a1277c9801cb4df9a3da898ef95b63b20b72a785",
|
||||
"claims": [
|
||||
{
|
||||
"id": "claim_085ce722f39f48eea75366ec3b3f7554",
|
||||
@@ -106,7 +106,7 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/AssistantToolRegistry.swift#L42-L68",
|
||||
"version": "repo-lines-v1:sha256:f00dc05b6b14f14e9071bb2c3725c64e133622f8e78ffc3e87a20fba2c5752af:eyJzZWxlY3RlZExpbmVDb3VudCI6MjcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImM4YjBhZGQ3NDg1ZGY0OTA5MTkwNzI5ZGEzYTVkZWY5MjVkZmFkMTQ2YTJkMTA1MDk5YmFjZTJiYmJhM2ViMDgiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjhiZTBhODk2YTNjYjAzNmM0NDZiNDgyMTA3MDA4ZDZkOTZmNTdkNzA2MGRiNDk4ZjQ5YTVhNjhkNDI1ZWI4NGIiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImRlYzQ4ZTU4YzVlMTBhZWJkMDdkOGQ5OTljOWJhYjg0MDBlNWRlMDA3NzE4YWQwNzA5OTkxOGRjOGMxMDg3ZjQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjoyLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjM3OTRkMDJhODEyMTk0NGQxNzZkMjY1ZTliYjljYzU5ZjZhYjg5MGJjYWRmOGFlZmRlYmRiYmI0ZjJlYTg0NDQifQ"
|
||||
"version": "repo-lines-v1:sha256:5e034e35b4291fbd3ada9dbf3613ec9e3f6865bf8b3945545efb078073d866f9:eyJzZWxlY3RlZExpbmVDb3VudCI6MjYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImM4YjBhZGQ3NDg1ZGY0OTA5MTkwNzI5ZGEzYTVkZWY5MjVkZmFkMTQ2YTJkMTA1MDk5YmFjZTJiYmJhM2ViMDgiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjhiZTBhODk2YTNjYjAzNmM0NDZiNDgyMTA3MDA4ZDZkOTZmNTdkNzA2MGRiNDk4ZjQ5YTVhNjhkNDI1ZWI4NGIiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImRlYzQ4ZTU4YzVlMTBhZWJkMDdkOGQ5OTljOWJhYjg0MDBlNWRlMDA3NzE4YWQwNzA5OTkxOGRjOGMxMDg3ZjQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjoyLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjM3OTRkMDJhODEyMTk0NGQxNzZkMjY1ZTliYjljYzU5ZjZhYjg5MGJjYWRmOGFlZmRlYmRiYmI0ZjJlYTg0NDQifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFMTests/ArchitectureBoundaryTests.swift#L137-L160",
|
||||
@@ -120,7 +120,7 @@
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/AssistantToolRegistry.swift#L42-L68",
|
||||
"version": "repo-lines-v1:sha256:f00dc05b6b14f14e9071bb2c3725c64e133622f8e78ffc3e87a20fba2c5752af:eyJzZWxlY3RlZExpbmVDb3VudCI6MjcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImM4YjBhZGQ3NDg1ZGY0OTA5MTkwNzI5ZGEzYTVkZWY5MjVkZmFkMTQ2YTJkMTA1MDk5YmFjZTJiYmJhM2ViMDgiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjhiZTBhODk2YTNjYjAzNmM0NDZiNDgyMTA3MDA4ZDZkOTZmNTdkNzA2MGRiNDk4ZjQ5YTVhNjhkNDI1ZWI4NGIiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImRlYzQ4ZTU4YzVlMTBhZWJkMDdkOGQ5OTljOWJhYjg0MDBlNWRlMDA3NzE4YWQwNzA5OTkxOGRjOGMxMDg3ZjQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjoyLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjM3OTRkMDJhODEyMTk0NGQxNzZkMjY1ZTliYjljYzU5ZjZhYjg5MGJjYWRmOGFlZmRlYmRiYmI0ZjJlYTg0NDQifQ"
|
||||
"version": "repo-lines-v1:sha256:5e034e35b4291fbd3ada9dbf3613ec9e3f6865bf8b3945545efb078073d866f9:eyJzZWxlY3RlZExpbmVDb3VudCI6MjYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImM4YjBhZGQ3NDg1ZGY0OTA5MTkwNzI5ZGEzYTVkZWY5MjVkZmFkMTQ2YTJkMTA1MDk5YmFjZTJiYmJhM2ViMDgiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjhiZTBhODk2YTNjYjAzNmM0NDZiNDgyMTA3MDA4ZDZkOTZmNTdkNzA2MGRiNDk4ZjQ5YTVhNjhkNDI1ZWI4NGIiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImRlYzQ4ZTU4YzVlMTBhZWJkMDdkOGQ5OTljOWJhYjg0MDBlNWRlMDA3NzE4YWQwNzA5OTkxOGRjOGMxMDg3ZjQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjoyLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjM3OTRkMDJhODEyMTk0NGQxNzZkMjY1ZTliYjljYzU5ZjZhYjg5MGJjYWRmOGFlZmRlYmRiYmI0ZjJlYTg0NDQifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/TermindAgentTools.swift#L45-L62",
|
||||
@@ -128,7 +128,7 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/TermindAgentTools.swift#L5-L23",
|
||||
"version": "repo-lines-v1:sha256:a6707f4eac40956e70af3b606852201b6d17b54d295c771bb743f37fbad2797f:eyJzZWxlY3RlZExpbmVDb3VudCI6MTksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjM2NTgzYWUxYWM2NTU4YTlmNGQ0MTYyYzcxZDJjMTk4OTE3OWI2MDljYWE0MDg0OTMzYjZlY2E5YWEzYWU1ZDUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6Ijk1OTRjZTkxMWRiMTE2YWVlNzAyNWMyYzAzNzE5NzZmZTVjN2M3Yzc1ZmY2MGQ3MTA4NDgyYzY0NjNmNDM4YTYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImM0NmY4Y2RkMDA0NDk4MWZkNzI0N2EwYzg5MzE2ODM0ZDNlZGFjOWU1MTAwNThkNGMwNGNhM2RkODczYzFhYTYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjkzNjg4OWY0NDhlNDhjMWE0MjM5NjQ5ZDdkZTEyNzBlNDU1NDk0NDgyODY3NjQ4M2ZkYWY1YjhmYjkwZWUzN2EifQ"
|
||||
"version": "repo-lines-v1:sha256:5e755dd6ce0298ca36f329631b3f5a5cc90482b69508938631e903a92f654856:eyJzZWxlY3RlZExpbmVDb3VudCI6MTgsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjM2NTgzYWUxYWM2NTU4YTlmNGQ0MTYyYzcxZDJjMTk4OTE3OWI2MDljYWE0MDg0OTMzYjZlY2E5YWEzYWU1ZDUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6Ijk1OTRjZTkxMWRiMTE2YWVlNzAyNWMyYzAzNzE5NzZmZTVjN2M3Yzc1ZmY2MGQ3MTA4NDgyYzY0NjNmNDM4YTYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImM0NmY4Y2RkMDA0NDk4MWZkNzI0N2EwYzg5MzE2ODM0ZDNlZGFjOWU1MTAwNThkNGMwNGNhM2RkODczYzFhYTYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjkzNjg4OWY0NDhlNDhjMWE0MjM5NjQ5ZDdkZTEyNzBlNDU1NDk0NDgyODY3NjQ4M2ZkYWY1YjhmYjkwZWUzN2EifQ"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -191,6 +191,6 @@
|
||||
],
|
||||
"verification": {
|
||||
"by": "openwiki/0.5.2",
|
||||
"at": "2026-09-23T00:14:42.075Z"
|
||||
"at": "2026-09-23T01:34:03.251Z"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"pageVersion": "sha256:6ba8f89374ad018a257cf1c10e91f9d4b3641420f6187d07c8829858671948d1",
|
||||
"pageVersion": "sha256:47fa6bbaa4a43b7bac039520e0bd6d4cf3f003b8969821fecaebe1cd9bdeac6b",
|
||||
"claims": [
|
||||
{
|
||||
"id": "claim_981f16f030e9469588af705aa377161e",
|
||||
@@ -12,29 +12,33 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindApplication/Agent/AssistantExecutionController.swift#L201-L328",
|
||||
"version": "repo-lines-v1:sha256:02c4383ae6885f3dea6168d146dfc1dfc12cfe9af93cd56bead4023f25f8bf25:eyJzZWxlY3RlZExpbmVDb3VudCI6MTI4LCJmaXJzdFNlbGVjdGVkTGluZUhhc2giOiI2NTVlMmVkYTc3Yzc3ODBiNjg2ODJiMmZiYTExNGQ4YWE5YmIwOTBkMDYzN2ZmY2RmMzgwNWViODkzNjZlYWZkIiwibGFzdFNlbGVjdGVkTGluZUhhc2giOiI1OTA5YTUzYTYxOGQwMjhlMWQzMDAwYzBhN2FiY2VlY2JlNWZiMzdmNGU1MTFlZmU0NjY0M2ZhZDZlNjY4NzJmIiwicHJlY2VkaW5nQ29udGV4dExpbmVDb3VudCI6MywicHJlY2VkaW5nQ29udGV4dEhhc2giOiI0YmE4NGEwNzc5OGYyNzk4NjliNDM1ZTdiZGU2MmZkYzg2ZDRhZjkzNzJkYTcyMmY5NWM2MjY5YTJhYjkwM2U3IiwiZm9sbG93aW5nQ29udGV4dExpbmVDb3VudCI6MywiZm9sbG93aW5nQ29udGV4dEhhc2giOiIyNGJkNzA2YzdkNTlkMjVmM2MxNTUzNDM5MDAxZmYyOWQ2ZGEzZjVlNjQ1YWIyZTE5ZjM2N2MwZmM3MDQ0MGU0In0"
|
||||
"version": "repo-lines-v1:sha256:2744f8cd1de07ff0f99433383a73d1424c77a6dee3edce41f125c652bfe7e1a7:eyJzZWxlY3RlZExpbmVDb3VudCI6MTI5LCJmaXJzdFNlbGVjdGVkTGluZUhhc2giOiI2NTVlMmVkYTc3Yzc3ODBiNjg2ODJiMmZiYTExNGQ4YWE5YmIwOTBkMDYzN2ZmY2RmMzgwNWViODkzNjZlYWZkIiwibGFzdFNlbGVjdGVkTGluZUhhc2giOiI1OTA5YTUzYTYxOGQwMjhlMWQzMDAwYzBhN2FiY2VlY2JlNWZiMzdmNGU1MTFlZmU0NjY0M2ZhZDZlNjY4NzJmIiwicHJlY2VkaW5nQ29udGV4dExpbmVDb3VudCI6MywicHJlY2VkaW5nQ29udGV4dEhhc2giOiI0YmE4NGEwNzc5OGYyNzk4NjliNDM1ZTdiZGU2MmZkYzg2ZDRhZjkzNzJkYTcyMmY5NWM2MjY5YTJhYjkwM2U3IiwiZm9sbG93aW5nQ29udGV4dExpbmVDb3VudCI6MywiZm9sbG93aW5nQ29udGV4dEhhc2giOiIyNGJkNzA2YzdkNTlkMjVmM2MxNTUzNDM5MDAxZmYyOWQ2ZGEzZjVlNjQ1YWIyZTE5ZjM2N2MwZmM3MDQ0MGU0In0"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/AssistantToolRegistry.swift#L42-L68",
|
||||
"version": "repo-lines-v1:sha256:f00dc05b6b14f14e9071bb2c3725c64e133622f8e78ffc3e87a20fba2c5752af:eyJzZWxlY3RlZExpbmVDb3VudCI6MjcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImM4YjBhZGQ3NDg1ZGY0OTA5MTkwNzI5ZGEzYTVkZWY5MjVkZmFkMTQ2YTJkMTA1MDk5YmFjZTJiYmJhM2ViMDgiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjhiZTBhODk2YTNjYjAzNmM0NDZiNDgyMTA3MDA4ZDZkOTZmNTdkNzA2MGRiNDk4ZjQ5YTVhNjhkNDI1ZWI4NGIiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImRlYzQ4ZTU4YzVlMTBhZWJkMDdkOGQ5OTljOWJhYjg0MDBlNWRlMDA3NzE4YWQwNzA5OTkxOGRjOGMxMDg3ZjQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjoyLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjM3OTRkMDJhODEyMTk0NGQxNzZkMjY1ZTliYjljYzU5ZjZhYjg5MGJjYWRmOGFlZmRlYmRiYmI0ZjJlYTg0NDQifQ"
|
||||
"version": "repo-lines-v1:sha256:5e034e35b4291fbd3ada9dbf3613ec9e3f6865bf8b3945545efb078073d866f9:eyJzZWxlY3RlZExpbmVDb3VudCI6MjYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImM4YjBhZGQ3NDg1ZGY0OTA5MTkwNzI5ZGEzYTVkZWY5MjVkZmFkMTQ2YTJkMTA1MDk5YmFjZTJiYmJhM2ViMDgiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjhiZTBhODk2YTNjYjAzNmM0NDZiNDgyMTA3MDA4ZDZkOTZmNTdkNzA2MGRiNDk4ZjQ5YTVhNjhkNDI1ZWI4NGIiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImRlYzQ4ZTU4YzVlMTBhZWJkMDdkOGQ5OTljOWJhYjg0MDBlNWRlMDA3NzE4YWQwNzA5OTkxOGRjOGMxMDg3ZjQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjoyLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjM3OTRkMDJhODEyMTk0NGQxNzZkMjY1ZTliYjljYzU5ZjZhYjg5MGJjYWRmOGFlZmRlYmRiYmI0ZjJlYTg0NDQifQ"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "claim_28c4b1e064e94a798fe0220965a3951e",
|
||||
"statement": "A submitted Termind turn records the user prompt, freezes run context and tool availability, constructs a new AgentRuntime, and starts it through ConversationModel; the runtime persists a running snapshot before requesting the model and persists transcript snapshots around each tool-result round.",
|
||||
"statement": "A submitted Termind turn records the user prompt and its context snapshot, resolves the catalog and run mode, constructs a fresh AgentRuntime, and starts it through ConversationModel; the runtime persists a running snapshot before requesting the model and persists transcript snapshots around each tool-result round.",
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://.build/verify-zh-hans/ios/SourcePackages/checkouts/AgentKit/Sources/AgentKit/Runtime/AgentRuntime.swift#L161-L241",
|
||||
"version": "repo-lines-v1:sha256:ca6910405404893e5f20a65facc669d891dab442eb019ea645c30141cb27798a:eyJzZWxlY3RlZExpbmVDb3VudCI6ODEsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjVkNWE5M2M2ZjljMzg2NWRjZjkwOTliYWE0YWNiZTI3MjI4MmY2ZTFhZDE5OGU3MWQ5NGU5MzRlMjIzNzNiMTQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImRkNGFlYTM3NDhjNzUxOGU3Zjk1MWMzNGM0MTQ5M2FlYjY4OTgxYTg1YzBiY2UwYTk5ZTZmOWY1MTQ2OGQ1NWQiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjBhZWFjOGZkNTg4ZjE5OWZlNzFmOWJiMGY3Mjk1NDI5NGNiMmVlOWRkNzgyYzQzMDJlYTg4NWE3MTAzMDNjMTQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImI3ZTA4ZDYzNDU5ZjAxMzEzODQ4MDgxMGIwZmI3ZjBiYTJhYWY3MmM5MzhkZGViZDEyYzRhZWZiNTEyZDQxMzYifQ"
|
||||
"resource": "repo://AgentKit/Sources/AgentKit/Runtime/AgentRuntime.swift#L213-L274",
|
||||
"version": "repo-lines-v1:sha256:0dfd924390c397077812263deb5dd48a301f249f10478b62641a686cfd342a4c:eyJzZWxlY3RlZExpbmVDb3VudCI6NjIsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImFiY2NmYjg3NmVhNWUyNGFhMjgxNzFhOTdlM2NlNDFhYjIyNjE1N2VlZjcyMzhjNDMxMmVkOGQ3NmJjOGEwODUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImRkNGFlYTM3NDhjNzUxOGU3Zjk1MWMzNGM0MTQ5M2FlYjY4OTgxYTg1YzBiY2UwYTk5ZTZmOWY1MTQ2OGQ1NWQiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjAzNDE3M2M2NjQ2NDEzMTc3YjQ1NmZmZjdiM2MxY2Y4Y2Q3Mjg1Y2IzMzAxYzI0ZDM3MGU4YmZiNzNiZWVmOTgiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImI3ZTA4ZDYzNDU5ZjAxMzEzODQ4MDgxMGIwZmI3ZjBiYTJhYWY3MmM5MzhkZGViZDEyYzRhZWZiNTEyZDQxMzYifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindApplication/Agent/AssistantExecutionController.swift#L285-L346",
|
||||
"version": "repo-lines-v1:sha256:00d555bfa02408a1b7619b54dfce3ea70403a2f114b8332941de455674e9c86c:eyJzZWxlY3RlZExpbmVDb3VudCI6NjIsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImI4YjA1OGQwZDE5MTQ0NzUxZmFhNDYzZmM5OTk3NjQyYjQ0OGNjMDVhZmFjZmMxYzY3YTg5NjhhZTA4MTgzMGIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjJkNWYxMjI0YzZkNDJlNjVhZWMzNmY2ZGNiMGIxNzZjYWQwYmNiNTQzZTVmMzcwMzM4ZDhmNjNmOTRkYTBlYzciLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImVlYThlMTdlZjdhMzg5MDQ1NjczYTQyYWZkOGFlYWFiMjk5OTg3NGIwYjdmNmEyMGY1YzEyNDc2OTU2ZGI1NzUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImVlYzAyYjAwYTc2Mjk0MTQ4MDZkMTIyMjc2OWI4MGUwZjZiMWM1MWZmYTQwYzU5YzExMjliMmY0MThjYTNlYzYifQ"
|
||||
"resource": "repo://AgentKit/Sources/AgentKit/Runtime/AgentRuntime.swift#L303-L318",
|
||||
"version": "repo-lines-v1:sha256:fd811671f5fdc47d264e5c3d26b3fb815385a39f5747a7d460403896bb8c0081:eyJzZWxlY3RlZExpbmVDb3VudCI6MTYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjBlMmZjMTRlMmFjYmU5MjgxYmI5OTRmZjQ1NGUyNDAyMTE3MDQ1OWI5ODJjM2ExNTlkOGJlODM5NWI2NmJkNzgiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImRkNGFlYTM3NDhjNzUxOGU3Zjk1MWMzNGM0MTQ5M2FlYjY4OTgxYTg1YzBiY2UwYTk5ZTZmOWY1MTQ2OGQ1NWQiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImVkN2RhMWFmYjFkMTc3MmUwNTY5YmU0MWZkOGQ0YTA4OTczNWNlMzczNDExNGU3OWZkYjJmMGJiMDdmN2ZmODkiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjE2ZGI3YjgwZDA1MzcwODYxOGIzZTUzNTJmYWM1YWE3NTUxN2M5OGE4OWVjNGNkYzU0MWUzZjE4YTgxMjY1ZGEifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindApplication/Agent/AssistantExecutionController.swift#L286-L351",
|
||||
"version": "repo-lines-v1:sha256:d7a10bdad07278a40279af680e0f3630aa1febdcb7851cb87e6a48a0509e7759:eyJzZWxlY3RlZExpbmVDb3VudCI6NjYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImI4YjA1OGQwZDE5MTQ0NzUxZmFhNDYzZmM5OTk3NjQyYjQ0OGNjMDVhZmFjZmMxYzY3YTg5NjhhZTA4MTgzMGIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImQzOThhZDkxNzk1ZTc5MjQwYjEzY2Q0MTU4NDY3NjI3Y2U3OGRjY2FiNzdkNmM3ZWRhZjczMTBlMTZhYjU3ODgiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImVlYThlMTdlZjdhMzg5MDQ1NjczYTQyYWZkOGFlYWFiMjk5OTg3NGIwYjdmNmEyMGY1YzEyNDc2OTU2ZGI1NzUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjJmNjk4YzQ5MTQ3ZGQzNjlmZDIwOTBmYzRkYmI2MGY1ODhiMzU3ODY1MmFjZTVkOWQwYjg2NzU0MjE0YWY3OTEifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindApplication/Agent/AssistantExecutionController.swift#L46-L95",
|
||||
"version": "repo-lines-v1:sha256:2a4b30082e0de792ca959a899e5cdbe5073c3fed89b37a6767845f2231d7a6b8:eyJzZWxlY3RlZExpbmVDb3VudCI6NTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjgzNTMzM2MzZTA4M2NlNjk4MjRiZTAyZTMyZWFlMzcxNjc0ZDhmOGZhZDMyYzNlOGU1MDViMmJmNTE0M2VmMTkiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImU2YjA0NDkxNDY5NzIyZTgzNjNhOTRlNDA0NDUzOGUwMTNhMmEyMTdlMzZiMWU1NjhiYTYwYWNiN2I0YzhmMmUiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjgzYWVlMmNjZDYwMjA1YzRmNTY0NWM0NjE3MzZlZTZmYjkyZTU1ZGQzZjE2MmQ2NGQ0Y2UzOGIwY2I1NjExZDAiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImZiNWI5MWZmNzRmYmZjZWY0OGZjOTZhMzNmMGFlNzk2NzkzODE3N2U1YTJlN2Q1OWE1YTg0MWJiZDU5OTY0NWMifQ"
|
||||
"version": "repo-lines-v1:sha256:42d8c99afe5dceebcaaabd0abd43c95d68ee3d1bacc4f900e60db34dfc667958:eyJzZWxlY3RlZExpbmVDb3VudCI6NTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjgzNTMzM2MzZTA4M2NlNjk4MjRiZTAyZTMyZWFlMzcxNjc0ZDhmOGZhZDMyYzNlOGU1MDViMmJmNTE0M2VmMTkiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImU2YjA0NDkxNDY5NzIyZTgzNjNhOTRlNDA0NDUzOGUwMTNhMmEyMTdlMzZiMWU1NjhiYTYwYWNiN2I0YzhmMmUiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjgzYWVlMmNjZDYwMjA1YzRmNTY0NWM0NjE3MzZlZTZmYjkyZTU1ZGQzZjE2MmQ2NGQ0Y2UzOGIwY2I1NjExZDAiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImZiNWI5MWZmNzRmYmZjZWY0OGZjOTZhMzNmMGFlNzk2NzkzODE3N2U1YTJlN2Q1OWE1YTg0MWJiZDU5OTY0NWMifQ"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -107,20 +111,20 @@
|
||||
"statement": "Steering messages are queued while a run is active and only become transcript history at the next model boundary; cancellation stops the runtime, cancels its task, discards run secrets, and returns undeliverable steering to the composer.",
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://.build/verify-zh-hans/ios/SourcePackages/checkouts/AgentKit/Sources/AgentKit/Runtime/AgentRuntime.swift#L135-L159",
|
||||
"version": "repo-lines-v1:sha256:1e7ee3251e0671722c1fa5ceddf8acaf9c387c1214e7d87e25b3061dc64e2dbd:eyJzZWxlY3RlZExpbmVDb3VudCI6MjUsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImY4N2Q1NGYyZWZiNDBlN2ZjNDdkYmUzNjJmOTgzNzNmYzJkZmI3NDM3Yzc1NTlkMzEzYWFmNzAyMWZjMDkyNGEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImFhYmQ3YjdjN2RkYTI0MTcyNTJhMDY3ZmY2YjU5NWQyMDllNGI5OTc1ZGRhYmJkODc2M2ZkYzFkOWQyMDQ0ZDIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjEyZmQ2NTFmYjQ2OWY4YjVmMTQ0NjRiY2M2ZGMwZDZhYjJkZTM1Njg4MDhhZDcyNzYxYjhiMGNlNTFlNDZjNjgifQ"
|
||||
"resource": "repo://AgentKit/Sources/AgentKit/Runtime/AgentRuntime.swift#L139-L165",
|
||||
"version": "repo-lines-v1:sha256:1893129dd01a1c8a79a01cdf4625cb226ff4ebca0b1b11cdfc4a9827340a17ca:eyJzZWxlY3RlZExpbmVDb3VudCI6MjcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImY4N2Q1NGYyZWZiNDBlN2ZjNDdkYmUzNjJmOTgzNzNmYzJkZmI3NDM3Yzc1NTlkMzEzYWFmNzAyMWZjMDkyNGEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImFhYmQ3YjdjN2RkYTI0MTcyNTJhMDY3ZmY2YjU5NWQyMDllNGI5OTc1ZGRhYmJkODc2M2ZkYzFkOWQyMDQ0ZDIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjEyZmQ2NTFmYjQ2OWY4YjVmMTQ0NjRiY2M2ZGMwZDZhYjJkZTM1Njg4MDhhZDcyNzYxYjhiMGNlNTFlNDZjNjgifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://.build/verify-zh-hans/ios/SourcePackages/checkouts/AgentKit/Sources/AgentKit/Runtime/AgentRuntime.swift#L217-L252",
|
||||
"version": "repo-lines-v1:sha256:33f1041e47578bf10577d59d8e680d52acc08b9618c31112ee86070cda232bb9:eyJzZWxlY3RlZExpbmVDb3VudCI6MzYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjM0OTgzZGE0OWNjMWViMzBkM2MzODMzNjMzM2I4NmM0ODc0ZmEwNDA2YWE3OTIxNDI3ZTU5YzgwN2Y3OWI2NDQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImEyNmU0MzY4ZjIxZjg4OTFjZWQyNGNmYWY3Y2EzYmY5OTg1YjNmNDY5ZDRhNjgyNTZlMTYwOWQ2NTZmMWE3OWUiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjRlOWQ2MDRlNmM4MjFhMGNkZDdjNjhjMGQ5MjM2ZGYzNGQzYWY1NjM5ZDI2YzAxNDRiMDQ5MDQzZTgxMjBmZWMiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6Ijg3YzhmMzI1N2Q0YmMwNGQ2ZjViYjFjYmRiY2FiN2QwNmQyMTA1MzJjMDhkZTExM2MyNzJmZDdjZjkzYmZlNzQifQ"
|
||||
"resource": "repo://AgentKit/Sources/AgentKit/Runtime/AgentRuntime.swift#L249-L265",
|
||||
"version": "repo-lines-v1:sha256:dd7262281b0133a9a56570381c1b52df5dededbbb751d9e81871e8fd08bb10b4:eyJzZWxlY3RlZExpbmVDb3VudCI6MTcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjFjMjU4YjdiNGY1YjRhZjg4NjE4ZDI4NGJkODg1Y2VmYzNiMmQxOWRhMTk5OTlmN2ExNDI0YmQxMDliMjNjZjMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImFmMGE5Mjg5N2Q0YzU4ODhhNzJmMDY5NDJjNmZkYmViM2NiNDAyMzBlY2U1ZmZjMThiNWJhYzU2ZTM0Mjk1YzYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjRlOWQ2MDRlNmM4MjFhMGNkZDdjNjhjMGQ5MjM2ZGYzNGQzYWY1NjM5ZDI2YzAxNDRiMDQ5MDQzZTgxMjBmZWMiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImY1N2YwZDhiZTM1MGE0NGY1YjRhYjlmZmE1MDUyMjc5NTBjODk3YmI4MGVhZjI3NzNkMTAxODNkZTljNjE1ZWQifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindApplication/Agent/ConversationModel.swift#L1909-L1987",
|
||||
"version": "repo-lines-v1:sha256:09a1dfd058b41e37f5cc8489c4536b2c966c4c0d75a6d766e18567e4b0934c92:eyJzZWxlY3RlZExpbmVDb3VudCI6NzksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImNmZmM0MzNjZDM1OTM3MTAxZjgyZTM2MzI0MGZiMDkzMWJlMjZkYTcwYjg1MjRlMDEwYjVjMzlkNzdkNWYyNjAiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImU2YjA0NDkxNDY5NzIyZTgzNjNhOTRlNDA0NDUzOGUwMTNhMmEyMTdlMzZiMWU1NjhiYTYwYWNiN2I0YzhmMmUiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImVkYjZjMmYzYTBiZWM4ZmU1ZTRlYjY3M2NlODAwMmMwODM0YWJiYTU1ZDM2MjhkOTMzNzUxYzA3MmUwYTc4NGQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjhmMThmMGI1OGIyNjAwNzUwYzBkMjdlZDlmMDA2ZGRhNjZiMjBmYWM4NDg1NzFlYTVlODUwOWFlZDQ3NWJmNjkifQ"
|
||||
"resource": "repo://Frameworks/TermindApplication/Agent/ConversationModel.swift#L1907-L1995",
|
||||
"version": "repo-lines-v1:sha256:6cda8b5a391dcf8703619fb4c97e81ac032fb3dc591c2369a20d2b9e8ba28f97:eyJzZWxlY3RlZExpbmVDb3VudCI6ODksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImY0NDkzM2JlYmY3OGIxOGFkNjc4Mjk0MzM1NjdjYzk4MWNlYjdiM2FlOGIyZTRlNjA5NjRlOWYwNDQ4MjJmNTUiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImMyZjFlOGM4MDY5ZDRmY2Q0OTQyZDIyYzQ1MGZmZmJmYjJmODE4NjAxYjE5ZDE3Njk0YWM0M2FjNDVmMTc0YTQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImI5NjI4ZWNhNWJkNzUyYzJmOThkZGFkY2VjOTU5YWNkNmFiMWZhMTA1MmVhYTY3MzZiZWFjODRmNDc4NjEwMDcifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFMTests/AgentRuntimeTests.swift#L428-L457",
|
||||
"version": "repo-lines-v1:sha256:5d7811288d8d6d02c029b2d582688bcaf07e08796cd196f6f69823d757672b3c:eyJzZWxlY3RlZExpbmVDb3VudCI6MzAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjFjYTZkN2QzNTY5ZTQwMDNkM2VkZTM4M2Y1NGZiMzM4ZTM3OTU1NmZmNGFlYTQ5NDNlNDIwMGFmZWJhMjM5MWIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImRlZTI3YzAxZDY3NDFjMWI2Y2YzNmJhMTM4YTk1NWU1YTA1MjhhZGRhMzQwOTNjNDEwNGRjNDE5MDUxNDFhMmQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjIxM2RlZDMwMDA2NTNlYzc5ZDMxNGQwOTIwZmE2NTFiY2M3OWY1ZmFiYjcwMTkyN2ZiODBjYjAxZTcyMWVjYzQifQ"
|
||||
"resource": "repo://Frameworks/TermindApplication/Agent/ConversationModel.swift#L2507-L2534",
|
||||
"version": "repo-lines-v1:sha256:fa1732f1c428eebb9fe5c6720dee5116ca6a8436ed3f480122180630d6cbb740:eyJzZWxlY3RlZExpbmVDb3VudCI6MjgsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjM4MDc5OTUxYmYwMGZiMjNmYzBkZDhiMGIxMDk4NzFmMzQ5MzJiYjNmZTEyZTA4ZWZhZDdkYjllMzQwMjY2NDMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImQ5MGQ2NzM0OTMwMjgxMjBkMGRhN2IyZGI0MmRmMjU0NGU3YjI0YTNjNGY0MjVhZjkzMDI4NGI0ZGE2NTg2OGEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjRiMTZkMmIxYWNkOWMwZTFiMzVhZmMwMzVhZWM4YmRkZjMyODcyZWJkNWQ1YzM2OGNiNDI5MGI3ZDU3MGJlMGMiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImEzMjA1NGIyODExNGMxNmJlMWM4MmQ5NDFjNzc1OGM1NzFhNzcxNzBkYzM0ZTA1ZDUwZDllMDk3NGEyMjRlODQifQ"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -184,7 +188,7 @@
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindApplication/Agent/AssistantExecutionController.swift#L218-L234",
|
||||
"version": "repo-lines-v1:sha256:5c7b2d3892cdad34fcb9cb2996fde4ff824188998dc264d7b3600bf156a37ad9:eyJzZWxlY3RlZExpbmVDb3VudCI6MTcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjdmMDg3ZmZlODE0NTk2NGYwZWIwOTlhM2FiMzQxOTRjMzlkM2E5YTY2YTM2NWJhYTQ3OWQ0OGIyOWJhY2ZiNDMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjIyZGFjYzM0NjMzZGIxZjRlY2ZjYjYzOGI5OTNjYWY1ZWE1MGU3ZThmZTk5MTFjNjBmODBhZjIxNWM4ODk5ZjYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjhkZjJlZWYyYmU0YTM1MGU3ZjI3MmVmZjExNDc2MWJlM2I1Y2MyYzMyYmI1NzllZTc3NjIyY2JkN2MxOWIxNDYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjEwNjZiMzQxNmZhZmQ5NWY2NjY2OTQ5MzJmMjc5ZmVjNWM4ZTliODY4N2I0NDk2NGM4MTU4Y2UzZDJmYWYxZjcifQ"
|
||||
"version": "repo-lines-v1:sha256:65ddf8be8b7a5adeab788e5df286c4169da771dbfd9f2a9919a9ee789c4ee562:eyJzZWxlY3RlZExpbmVDb3VudCI6MTcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjdmMDg3ZmZlODE0NTk2NGYwZWIwOTlhM2FiMzQxOTRjMzlkM2E5YTY2YTM2NWJhYTQ3OWQ0OGIyOWJhY2ZiNDMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjIyZGFjYzM0NjMzZGIxZjRlY2ZjYjYzOGI5OTNjYWY1ZWE1MGU3ZThmZTk5MTFjNjBmODBhZjIxNWM4ODk5ZjYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjhkZjJlZWYyYmU0YTM1MGU3ZjI3MmVmZjExNDc2MWJlM2I1Y2MyYzMyYmI1NzllZTc3NjIyY2JkN2MxOWIxNDYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjEwNjZiMzQxNmZhZmQ5NWY2NjY2OTQ5MzJmMjc5ZmVjNWM4ZTliODY4N2I0NDk2NGM4MTU4Y2UzZDJmYWYxZjcifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindApplication/Agent/TermindAgentPolicy.swift#L46-L49",
|
||||
@@ -235,10 +239,168 @@
|
||||
"version": "repo-lines-v1:sha256:63a4e0832eb58af19f1014b010116530bd83aa6cfe5c62c9e3643d154d77383e:eyJzZWxlY3RlZExpbmVDb3VudCI6NDMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6Ijk5MmZkOWM4MzE1NGM3OTBiNGI3MDUyY2ViZTk3ZWI5ZjVjZjYyNjZhOGFkNGY2ZWMyOGY4NjY5MjU4NWNhMmMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6Ijc3MmY5Njk1Yzc0NjdjNzQ3NzNjOWNlN2ZjNDI5YzVkMGQwZTQ4N2YzYzUxZDE1ZDY2NjhhM2QyNDA3MmJiOTUiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImFiYzgyYTk3NzE1YzQ3N2I3MzM1MWJkN2M4NGVkYWRjNTdmMTlhM2QzOTIyYjE2NjRjZTlmOGZlNTdkNzU3ODIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImQyNWZmZTlhNjZiY2Q1Y2QwNWE0NDhhYjFlYmQ1NmVjMTJkNTg1ZjYyN2RhOGM5YmI2ZjYxYTVhNWUzOWU2YzcifQ"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "claim_160c57c07ff642b2b69e08cf0cb7a9cd",
|
||||
"statement": "Termind's static host-tool registrations are shared across Assistant surfaces; injected workspace capability controls scratch transfer construction, and AssistantToolRegistry returns no tools for models without toolCall rather than using a surface-registration flag.",
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/AssistantToolRegistry.swift#L9-L67",
|
||||
"version": "repo-lines-v1:sha256:915c7bd8855c34a13501e84f0aadb71d52d5c58dfa1f7088814d1cc76cbfe214:eyJzZWxlY3RlZExpbmVDb3VudCI6NTksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImRiNDlhZWQwZGQ2OTMyYzRkOTUyOTMzYWQwMWVlNDFkZmM4Mjk3NDBhZjk2NTFiOGFiMmZkZmZiMTQ4NWVhMmIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6Ijk5YTE2NTM1ODdkZjYyOWQzM2I2Y2FmY2I2ODQwNGNjMjAxYjIxODdjMjI3MzNjYTQyM2RkNDUzYzcwMjE1NDAiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjoxLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/TermindAgentTools.swift#L131-L146",
|
||||
"version": "repo-lines-v1:sha256:115a05de9a5dfe6bb311e843026f4ed7d847445773c7c667c42bdaa0f904cb0f:eyJzZWxlY3RlZExpbmVDb3VudCI6MTYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImI1MmVhOTZlMjgzMzE3ZTg1M2E5MjFkNTJmYzg0OTllNGQyM2MxMTI3NDQ1ZDEzOWUyYzlmM2E4NDBkOGE3ODciLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjFlNjczYWJkNDU3YTk3ZWVhMTdhNjAwNjJlYjBmYWVhNmJkZjA5NDg2OGNjNmI4ZjhjMGViZGEyZjYxZWQ0MmYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjI3NmI3Y2RhMDE5NDc2YjllZmM4NmVlNGU2YzQ0NzNkNWEyYTA3ZjZiMjk1MDFlN2QyZDNjMTcyMWZkZjFlYmIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImU3OTQxNzg4NDc3NTljMDg1ODZkYWRkZjhjMThjNjI1YzYyYzAzMjFhOWI4NGMwMzQ4MThiMTA3YzM2OTZiNjMifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/TermindAgentTools.swift#L5-L51",
|
||||
"version": "repo-lines-v1:sha256:fc358f76511590c37149cb7d366c5ea14c99d6725c9f39630daefb9d4193c103:eyJzZWxlY3RlZExpbmVDb3VudCI6NDcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjM2NTgzYWUxYWM2NTU4YTlmNGQ0MTYyYzcxZDJjMTk4OTE3OWI2MDljYWE0MDg0OTMzYjZlY2E5YWEzYWU1ZDUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjcyNTZmZGZhNTNlMTBjZjU2N2FjODRhOTE3NzBmOTFjYmUzMTI2NWNiY2Q0MzMwNThiZTkzNGE3MTI4ZDZjYzMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImM0NmY4Y2RkMDA0NDk4MWZkNzI0N2EwYzg5MzE2ODM0ZDNlZGFjOWU1MTAwNThkNGMwNGNhM2RkODczYzFhYTYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImEwZWNmZjVkZTA1NjBhMmI3MTUzMWYxNzMyZGUwODYwNTQwZDBiZmI5NTFiZWRiYjc4YTEwMTIzZGMwNDYzMTgifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFITests/MobileAssistantTests.swift#L356-L397",
|
||||
"version": "repo-lines-v1:sha256:95a9040323f538be29d9e56bfbb0b5cc9027f1f81c0405c95b5b8c3f5c4352a3:eyJzZWxlY3RlZExpbmVDb3VudCI6NDIsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImI4Yjg4ZWMxM2YwNTU4YTZkMWMyNDE5NjVlOTI3Y2NkODdkNzlhY2Q3NzNhMjcwYzJjZjhjMDU3ODE0MDljNjQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImFmNmY2NDA3ZmVjZjhlZWM3YzI0ZmZjYzY2YjgwNmQzZTA5ZWQyZmI3MzUwNjlkYWJjMzBjMGVjMTY2MTliNmYifQ"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "claim_5065d1f6ebd64ecab27645b10fd07fc8",
|
||||
"statement": "Termind planning excludes remote SFTP mutations and scratch_push and reviewing receives no Termind tools; planning and acting share the ssh_exec schema while destructive-command preflight denies in planning and asks in acting, and proven-safe reads approve in parallel.",
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/PlanningSSHTools.swift#L7-L37",
|
||||
"version": "repo-lines-v1:sha256:63c13612b283532ff8687a7aa1b8efa537e435acfb72f67c612bf4b7ba4b10ff:eyJzZWxlY3RlZExpbmVDb3VudCI6MzEsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjRkZWRiZjg4M2E5OTFkYzA3ZjQwMzVhZGFkODU3OTYyMzIxNzRjNzQ5NWJhOTMwNjlhZDJiZGQyOGYxZjQ3YTQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjNiMzg5MzZjYTRiYTA5NDE1ZWFhYjk0ZTI2OTNlMzk3NzJhMmQ3NzQ4MjZiMzVjZTliZmQ2ZDAzNGJiMTc0NzUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjowLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/TermindAgentTools.swift#L81-L146",
|
||||
"version": "repo-lines-v1:sha256:d28a016e97cfc3923d1b0e6641e2531a6c7d866c1ba850ef6bcae3f1586f6677:eyJzZWxlY3RlZExpbmVDb3VudCI6NjYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjJmMWY5ZGIzYzBkNGZjYzA4YjgxOWIxZmNkNzE5YjMzYzc5ZDljZGVjNDdkMWJhOWYxZGRhMmRmM2MwOWZhZmQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjFlNjczYWJkNDU3YTk3ZWVhMTdhNjAwNjJlYjBmYWVhNmJkZjA5NDg2OGNjNmI4ZjhjMGViZGEyZjYxZWQ0MmYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImRiNzJhMmNhNDdjMTY2YWY3M2MzZDdiZjQxMzQwYTdjMmVjYWE1ZTYwMWEzYTlhOTFiMjZhNTUzMGYwM2NkZWMiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImU3OTQxNzg4NDc3NTljMDg1ODZkYWRkZjhjMThjNjI1YzYyYzAzMjFhOWI4NGMwMzQ4MThiMTA3YzM2OTZiNjMifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFMTests/AgentBuiltInToolAvailabilityTests.swift#L104-L152",
|
||||
"version": "repo-lines-v1:sha256:809a5de195526464131f750190928f8a7f174538c892091e1b1ca5a04e3e1303:eyJzZWxlY3RlZExpbmVDb3VudCI6NDksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjYxYzk1MmUxNDJjNjkzMjk4NmMwOTRjYmU3MzIxZmRmNzc2MWEwN2MyNTMxZTg0YmVkYzA1ODllZWQ0NzU0N2EiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjE0YTFlOTRhZTRhNGU2NTI4YjQxODUxYzM4NWViMzIyMzhhMmY0YjQ2NTkxYzcyMTBkYWNmYWIwZTJmMTBjMzYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImNlZjg1MGYyMjYzODY4ZTAzMTRiZWE3NmU0NTlmMWRiYzQ3NWY0NWFkN2RjMGRiZGJlMzQxYzE3ZDZhOTAyODYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjhlZjg4NTUyZmE5YjUzZDI2ZDY4NDE4MmZmNDEwODg4NTAxNzVhM2EzMTcyYmY5Mjg3ZDY0Y2UxMWZmNzkzYjgifQ"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "claim_b8c40ec0ba40450ea891e04123a70f0f",
|
||||
"statement": "The terminal_suggest schema remains registered across Assistant surfaces, while its execution gate is captured in toolAvailability: TFM Workspace sidebar sends true, TFM standalone and TFI send false; this partial gate does not disable independent SSH/SFTP execution.",
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindApplication/Agent/AssistantExecutionController.swift#L388-L403",
|
||||
"version": "repo-lines-v1:sha256:f5bad0e8ec4b31fdac4505332e2c746548c179c72239909f782501aec3db7129:eyJzZWxlY3RlZExpbmVDb3VudCI6MTYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImRjYTA3Y2I3YmYxMDg4OGZkZDFlMmMwMDMzYzI4MDIzMGVkMTRkNjkzNGY0NjFiNTZhNTg3NDllNmRjOTUyNWYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjViOGQzYzU0YjEwNzZiYmJmNTcwMmQyMTc3NDA0NmFlZDI3ZmNlYzVhM2JiNzYzNzQ0NjNlN2RlYTEwNGMwMmEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjcwYmFhMzUxMmU3OGFiOGM2NzBiZWU2NWVlNDQ4MzQ4ZTNjODVkNWZkYTFmM2JmYmYzYWRlMzI3MGIyNDY3MDgifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFI/Application/Agent/MobileAssistantModel.swift#L11-L16",
|
||||
"version": "repo-lines-v1:sha256:a43583fa28f32662ba3edc9845073bfd7bfacb29b7c16c21536c56a4fe75a32e:eyJzZWxlY3RlZExpbmVDb3VudCI6NiwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiNDQ3NTE0MGUyNmU5YzVhMTcxMWQ2NDQ1YTE4YjdmNGFlMjAyMmY5OTNlZjYyODQwNzU1NDMwMWI5NmUwZGMyMCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiMmI2ODNiYzA0Njk2MWVmOTJkOWI3Y2JkNmQ5YWNhZjJlOTk5Yzg2Zjg2ZjM1MzM1MTFiNWIyZTNmNjZhYjZmMSIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiZTJlNWI4YTJmMzJlNTczMDY2NDkyZTk4ZTUyNjFmZDQ1ZGQxMGYzZGQ1MDk3NjY2MzYwMzQzZjVjMWRmYzZhNSIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiNzlhM2ZjZTUzZjAwNjc0MmEyNjdhOThkZTNhZTI5Mjg2MzgzNmUwNzA3YTlmODgyZDllZGFhMzdmNjU5MTU1MiJ9"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFI/Application/Agent/MobileAssistantModel.swift#L115-L134",
|
||||
"version": "repo-lines-v1:sha256:05f9c81933d87f71280921366aef45ca6b7595c2a37bbc09748f17358ab5a4ad:eyJzZWxlY3RlZExpbmVDb3VudCI6MjAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImQ3N2Q1YWM0NmZkNzdmMWZlYWMyMTM1ZTlmZDAxMGYyMzk4MWQxYzBhMzMzZWJkMTNlZjE2MmUyYzZiNTg0MDIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImU2YjA0NDkxNDY5NzIyZTgzNjNhOTRlNDA0NDUzOGUwMTNhMmEyMTdlMzZiMWU1NjhiYTYwYWNiN2I0YzhmMmUiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjMzZDE2ODk4MTU0MTExNzUyNDc4NGZlZWJjNTY5NzIzNmYyZDk2ZDI2YWJmYjA2ZTIxYmM2OWQ4MzIwODY0MTkiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjdiNmZkYjFiZmUzOGYyNzNlMzRkZjZjYzA4YTViMmRlMWNkN2IwM2M0N2FhZDE5Zjg5YjM1ZWU2ZjUwMzdjOTAifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Features/AI/ConversationTranscriptView.swift#L103-L110",
|
||||
"version": "repo-lines-v1:sha256:541872e190e6d37c8cbb564bd335c76a333ede612d55b5bebc52340c1b584861:eyJzZWxlY3RlZExpbmVDb3VudCI6OCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiY2EyMDdlOTU2YmFkYTg5NzAwZTdkZDYyMzI4NjA3NzRmODk3YmYyZmIyNzlhN2EyZDFmNzgxMjU1YTQ5MTk4YSIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiODQxMTE4MWVlMmVkMzkyYTZmNzJlZGYyMTBhY2I1MjA0YjBmMzQ5YzM4NWM4NTAyYTBmOGRiY2RkYWJlMTZiZSIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiN2MxYTA5MGM3OTQzNmQyY2ExMTBlOGZkZDk2YTJhYjkzMGMzZTI4Njc1MzQ5NjU3ZGU4MWNlNDAzZmZkYWY2YyIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiYTU1N2E1YTU0OGJlOGIyZjAzMzVlZmNjMDc2ZTVmZDQ2ZDMwYzQyNTdhMGY5Mzc0ZWM3MDE5ODczOTYyNDVmNiJ9"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Features/Assistant/AssistantView.swift#L201-L227",
|
||||
"version": "repo-lines-v1:sha256:3cd1bb860992a27cf2aee06e68ee551298ee0464e891894fee9736399936f21f:eyJzZWxlY3RlZExpbmVDb3VudCI6MjcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImYwMjA0MzJkYzQ3NGFmN2VmY2NlYmMwZTQ1ZDAzYzIxYmM3OTY0ZWMzZWY5NDE2Zjg5NmRlMDVlNmM0ODAzMzQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6Ijk5OWJkZWZlZWFjYTYzNDBlMDI5MGRjODZlODg5Yzg5ZDVlMTg5YWE1YmE0NGI1ODViM2I3MDczNGY0YTYyZDgiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjI3ZjNmZmEwM2YxMTJmOWYzOWMwOWNjYjQ4YmIxYzY4MmUzODBmNmY0YTI2ZmQzOWU2NDJmMmI5ZTllMGJhYjAifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFMTests/AgentBuiltInToolAvailabilityTests.swift#L155-L186",
|
||||
"version": "repo-lines-v1:sha256:322e4385cb4f30c48e2aede580612d470b10baca410ceceed97de8fc9a9b385e:eyJzZWxlY3RlZExpbmVDb3VudCI6MzIsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImY4ZmRiMWE0ZmJiNDNlODMyMWI3MmU0Y2Y1ZmI2MDViMzJjMGRhMDlmMDVjZjQ2NjRkOTk1ZWFhYWZmZjk3YjAiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjZlYzUwNDQwYjc4NjEyMDAwOWZkYmFiMzJiY2U1YmUyMjI2NGU4YTI3NjBkOWQ4NDY5MGM4ZTlmMDFmMTVmMzkiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImVjYTRkZTNjNjI1OWM4ZmNkNTlmZGJkYWI2NWI1MDM4ZjRhM2YwYmNjYWU1OGRkYTAzMTJlZDNiNWQyNWNlYTIifQ"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "claim_4296080efd51499ab9a11b9100c41210",
|
||||
"statement": "Conversation steering changes the sending session and only the terminal_suggest availability key, preserves other overrides and skill/plan/memory context, leaves a legacy absent snapshot unknown, and updates activeContextSnapshot only when delivery occurs.",
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://FrameworkTests/AgentSteeringTests.swift#L187-L233",
|
||||
"version": "repo-lines-v1:sha256:c063ee9ee073185632ec59778a870a9595ae3c988770a96bd2dfee10f2ba5338:eyJzZWxlY3RlZExpbmVDb3VudCI6NDcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjAxYmE0NzE5YzgwYjZmZTkxMWIwOTFhN2MwNTEyNGI2NGVlZWNlOTY0ZTA5YzA1OGVmOGY5ODA1ZGFjYTU0NmIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjUyNTlmOTQwOWQzOTg3ODRhY2EzOWEzMGU1M2VmY2E0MjlkZDdhNzExZWY1NTZhMzhmYTZlNGRlY2VmYzIwNjUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjAxZjljNDg3Y2RiYjcyYTAyZDg2OWMyNmNmMGM5ZDYwYTdmZDg4ZTBkMjcxYzM1MGM5MTgyNDM4YjYzY2E3YmIifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindApplication/Agent/ConversationModel.swift#L1961-L1981",
|
||||
"version": "repo-lines-v1:sha256:2f0d3e9bf56ee4865528a8d17aa69083d4c03d3719d26929e40b6b7fe5c80a70:eyJzZWxlY3RlZExpbmVDb3VudCI6MjEsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImI5MzFhZDdmZGZiNjJkOTVjY2U1NTA2NDE1NmIxYmM1Nzg5ZTU3ZjhiZDc5MDQ4OGM3MzU1ZWM4MDhkZTJlNzgiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6Ijg1MjU4NmJjYTA5MDczZjY4Y2EyNDQxMWJiNTUzYTk2MjNiOWEwNTk4ZWNjM2QxNWE0ZmEzOWI2ODNjYzhkYzciLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImE3YjgzYmUzYzE2ZmJiMzE3MTQ1NzRmYjUyZDFhYjU4MWI3YTFiZmI2MTI2ZTI5YmI5ZjkxMWUxMzNiN2QzZmQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjE1N2RkZTZiYTE3NTBhYTU3ZjU2MzdlZTdjM2JiYjU4YzU3NWJjMmU0YTA1ZWQyNGJjMTBmNWMyYTM2YjM0YzYifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindApplication/Agent/ConversationModel.swift#L2507-L2534",
|
||||
"version": "repo-lines-v1:sha256:fa1732f1c428eebb9fe5c6720dee5116ca6a8436ed3f480122180630d6cbb740:eyJzZWxlY3RlZExpbmVDb3VudCI6MjgsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjM4MDc5OTUxYmYwMGZiMjNmYzBkZDhiMGIxMDk4NzFmMzQ5MzJiYjNmZTEyZTA4ZWZhZDdkYjllMzQwMjY2NDMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImQ5MGQ2NzM0OTMwMjgxMjBkMGRhN2IyZGI0MmRmMjU0NGU3YjI0YTNjNGY0MjVhZjkzMDI4NGI0ZGE2NTg2OGEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjRiMTZkMmIxYWNkOWMwZTFiMzVhZmMwMzVhZWM4YmRkZjMyODcyZWJkNWQ1YzM2OGNiNDI5MGI3ZDU3MGJlMGMiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImEzMjA1NGIyODExNGMxNmJlMWM4MmQ5NDFjNzc1OGM1NzFhNzcxNzBkYzM0ZTA1ZDUwZDllMDk3NGEyMjRlODQifQ"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "claim_0f474c4805ab4e409b923408dd4549ab",
|
||||
"statement": "Host discovery and SSH/SFTP work require no sidebar session or PTY; list_hosts exposes enabled protocols without credentials, including Telnet-only hosts, while SSH operations independently require SSH capability.",
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/AgentBuiltInSSHTools.swift#L256-L271",
|
||||
"version": "repo-lines-v1:sha256:fce45075c99663778285b25c7abe8ece6aa908ebb6d1c53269dcbb03aa1a48bb:eyJzZWxlY3RlZExpbmVDb3VudCI6MTYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImVhZDUwNmZjNWRkYjMwYTRlNTIyN2RiYzM1M2VkMWU2MTE5M2YwMjNmODhhNjU0YWRlODcyYmY3NmM2NTYxOTkiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjBjYmQ3MmQ2YTYyMzBhYTIyYTg4NTliMDc5OWM0ZjM4MjIxMmE1ZmFlYjI2ZGRiZDAxN2M1MmM3YzBhNWRkZmUiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImI5MWRhOWI2NzM5MGE2NWQxOWMzMWQwMDVkMjZmYzA4ODUwOTI1YWZlNWY3NzJmODc5MmVmMTI2Nzc1MDI5YzQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImZiZWNlODZhMjEwODAzNGFjYjkwNTA5OGY2YjBkNjIyOWIyOWMxMTM2Y2E2MzFiOWZkYjU0ZmZkY2Q2M2Y0YzkifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/AgentBuiltInSSHTools.swift#L6-L64",
|
||||
"version": "repo-lines-v1:sha256:48da14999a958a09cb035525dafba38750e0bb081cc66da4c0f47e9e22b5143c:eyJzZWxlY3RlZExpbmVDb3VudCI6NTksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImRmNmU1MDljYjBiNDFmOGJhOTkxNzEwMDk3MDUwNGY5ZTUxMDNlMDI4OWIwNGNlODNhNDhjMWE1ZDAzZmQzNjciLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjAxYmE0NzE5YzgwYjZmZTkxMWIwOTFhN2MwNTEyNGI2NGVlZWNlOTY0ZTA5YzA1OGVmOGY5ODA1ZGFjYTU0NmIiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImVkZGI4NTc4MDBhNWQ3MjQ3ZmYyM2M1Y2Q1ZTUyYzU0N2JiZjRiYzM2NWI5YTc0MjY5OWVlMzNkYmIyODkyYzAiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImY3Y2ExZDJlZTI1NTc2ZjQwMmI0YjhkMWQzYTAzMzcxYTJmMjY1ZjNlMmIzYjJkZTllNWYyNzExM2UwY2JkOTkifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/AgentConnections.swift#L190-L204",
|
||||
"version": "repo-lines-v1:sha256:ddc000d6744d96886c57972da1be80dbc195567cc5d08777a91970d51d14d78a:eyJzZWxlY3RlZExpbmVDb3VudCI6MTUsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImQ4ZGM4Zjg1ZTg4MTk2NjcxOThmNDBjZmM2MDNmODg2NWQzOTUzN2Y4YTIwODdkZDdjMDkwZmU0MmZmYTE2MzMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjliYjI1MGMxMWI4ZWVlZDllMDA0ODIxOGFlMDBmMmEzM2E3ODAyZmEzMDY2ZTA0MWMzY2RiNzI0MGYzMzVjMjUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjNmNDIyYjk4MDFlMWIwNTliNWYwNzViNjFkZDAwZTZlYjY4MWFmOGY2OTJmZDU4ZDg2NTE2YjRmMzM4ODg1NDMifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFMTests/AgentHostProtocolListingTests.swift#L8-L40",
|
||||
"version": "repo-lines-v1:sha256:52cfc9d8f6ee2c924351cec308f735e811f4a107c9a394b3fac62324c76d104f:eyJzZWxlY3RlZExpbmVDb3VudCI6MzMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjZjODI4MTNjZjZlYzQ4NTFmYzUxZTEzMGMzM2Y3ZWY4MGI3MzhhMDlmYWFiY2VkZjE1NDNhN2M4NWQ5ZTMwNzEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjgwNjZjMGUyZDJhNzZhZGViYTcyYzdmMjY3OWJlMTNkM2UzZWM5MzgzNzFhODliNTUzM2I0OTk0OTQwZTBhOGMiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjowLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUifQ"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "claim_8c4ca4222f6048c1a1219542352d56ec",
|
||||
"statement": "Historical tool cards resolve persisted presenter IDs through the immutable combined presenter registry or a closed legacy tool-name list; the terminal_suggest context key and presenter identities are independent of surface-registration arguments.",
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindApplication/Agent/AssistantExecutionController.swift#L388-L403",
|
||||
"version": "repo-lines-v1:sha256:f5bad0e8ec4b31fdac4505332e2c746548c179c72239909f782501aec3db7129:eyJzZWxlY3RlZExpbmVDb3VudCI6MTYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImRjYTA3Y2I3YmYxMDg4OGZkZDFlMmMwMDMzYzI4MDIzMGVkMTRkNjkzNGY0NjFiNTZhNTg3NDllNmRjOTUyNWYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjViOGQzYzU0YjEwNzZiYmJmNTcwMmQyMTc3NDA0NmFlZDI3ZmNlYzVhM2JiNzYzNzQ0NjNlN2RlYTEwNGMwMmEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjcwYmFhMzUxMmU3OGFiOGM2NzBiZWU2NWVlNDQ4MzQ4ZTNjODVkNWZkYTFmM2JmYmYzYWRlMzI3MGIyNDY3MDgifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/TermindAgentTools.swift#L149-L158",
|
||||
"version": "repo-lines-v1:sha256:c2cd49fd1e16036c717fbc1b42f836d5e74f05a170aa2948e44d0b2d1bf02f67:eyJzZWxlY3RlZExpbmVDb3VudCI6MTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjFjMzVhOTk3YWU3ZDJmYmEwOGI0NzEwMzY2MmEyMjJhN2Q2MjAyN2UyZjYzNjU4MTZiNjUwNjE4ODg0NjlhNjciLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImFkZDI0NDU4MmI2ZmIwM2QyM2I4NDE1YWJlY2QzNDZiMGM5ZjQ2NmI2Zjc1MmIwNjgxODljZTdlOWEyZGMzNTAiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjY1ZTIzNWFhNDZkYTJjNzQyOTRhYzg2MGNiMjNhMTI4NzQ5OGQ0MzU0ZTg5MDJlZDFiY2Y0NDc0ZmZhZDE4YmEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjoxLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/TermindAgentTools.swift#L43-L78",
|
||||
"version": "repo-lines-v1:sha256:bfbfe308d074e8ffa2b4e02d12f57a78b6d8948b8955edb455cab1248c9f8747:eyJzZWxlY3RlZExpbmVDb3VudCI6MzYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjkxMWU4YjYyZTMzYmM0ODQxYzg2YTUyYmJmZDQyNGFlNDFlMGJiZWE4MjQyMmQxMGUwZDIwYjlmMzA1ZmI0MGMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjU0ZWE1OTQ0YTVlNDQxYjEzN2M5ZmExN2VhNDhhNWE4OTUwMzgxZTMyNTk4MDk0YWQxNzg0ZDIxODY0ZDc1NjQiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImQxNWYzNzg5MWI0ZDRiYzMxOGEwMGY5MmRmZTE0YzVlMDIyYTczMzIwODc4MDYyNTdjOTUwYmZlZWE2NzE3MTciLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImFjYmU1NTQ5ODQ4YjQzMjZiN2RlMWJjYTM0NjI4MmQwZGNmOWYzZDk4OTM2ZTZmZDM5YWU1NTA1NTg0NGJiMGEifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFMTests/AgentPersistenceTests.swift#L18-L80",
|
||||
"version": "repo-lines-v1:sha256:d51c0c4c465d3934681538007cfee163e4405202fcc8ee34d0f5e06a361d8040:eyJzZWxlY3RlZExpbmVDb3VudCI6NjMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjRjZjA5ZWIwYzU3NDRmYjk3MzMxYjk4ZmYzZmJmMDVhNjAyYmEzZjdmNjdlNWRhNWJlOTA5NTAzM2Y2MjU4MjUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjcxMmZmNGQxNjM3ZTA0MzVlZjQ1OTNmZmZhNTE1MWI5ZDRkMmI0ODA4OWNiOWM0OWU5OTM0YjYyN2UyMjQ2ZGIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjI2YzYwOTBhNTdkNWMwNjNmMTJmMjgyMDZlZGUwM2VkODQzMDdlZTY1YTE5MmEwNTg0ZjY4YzA4ZjVkNTRiZjEifQ"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "claim_3a0928a1336e4d36b595ecc6fb11fbb2",
|
||||
"statement": "The desktop MCP server selects acting tools before exported-name and disabled-tool filtering, exposing shared host tools, request_user_secret and four HTTP transfer tools but no terminal, scratch, web, skill, plan or task tools; its stdio bridge only forwards and TFI provides no local server.",
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://TFI/App/MobileAppModel.swift#L47-L93",
|
||||
"version": "repo-lines-v1:sha256:1056a9ca82b4056925102595ba293ee161bb0294cefe1f6475a3b90bb0c96c83:eyJzZWxlY3RlZExpbmVDb3VudCI6NDcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ0NzUxNDBlMjZlOWM1YTE3MTFkNjQ0NWExOGI3ZjRhZTIwMjJmOTkzZWY2Mjg0MDc1NTQzMDFiOTZlMGRjMjAiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjAxYmE0NzE5YzgwYjZmZTkxMWIwOTFhN2MwNTEyNGI2NGVlZWNlOTY0ZTA5YzA1OGVmOGY5ODA1ZGFjYTU0NmIiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjE5ZTc2MzU1Y2YxMTk5NDgwYzNmOTk4MzZiMTQ4NmM4NDFkODkxZmFhZDkwNGM2MDhlMDkzMDIyZDM3NTdhZWUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6Ijg4YTBiYjFhNzA4Y2RkN2FjN2YzMzAzN2QzYTFkNzNhZDA2NWMyODA2YTI3NTczYmE2OGYxM2M1Y2YwZWQ4YzMifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Application/MCPServer/MCPServerTools.swift#L179-L212",
|
||||
"version": "repo-lines-v1:sha256:2bb74f25d66d630c0c93ab18f3f9d8a3d417d7ef27dfab256a29790e5c73ecd7:eyJzZWxlY3RlZExpbmVDb3VudCI6MzQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjdiZGIzN2RmNzgzMDk5M2FlNGFjYmU5ZjMzNzc5ZmY0ZDM4NDNjYTllZTVmNjRkMGUzNTM1YmVlYWE2ZWY1MWQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjJkODIwMmZkOGJmZDcwYzFlMjFiM2RmMGEwOGY5YzI2MDYyMTMxMmQxNmVlZmY1YzdlODMzYmRlMDU5ZTg4MzQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjUzZGZiMWU0NTkxZTcxZTBmM2UxNmQwZTU2M2VjZjNlYWE5ZmJhNjZhNTg3MmZkOWNmYWZmOTA2ZTliZWM2YmIifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Application/MCPServer/MCPServerTools.swift#L7-L14",
|
||||
"version": "repo-lines-v1:sha256:fad9923aac1ae9624586bae0f53dac344511e7a50b49909b279154a2e345c6ad:eyJzZWxlY3RlZExpbmVDb3VudCI6OCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiMGI0NjVkOWExMDQwNDZiYTI3NTgwNTQ3ZjNlZDgwMmEyNWExYWUxZjhjZWYxODYyNjMyZTY0ZGQwYjUwN2U3OCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiMDFiYTQ3MTljODBiNmZlOTExYjA5MWE3YzA1MTI0YjY0ZWVlY2U5NjRlMDljMDU4ZWY4Zjk4MDVkYWNhNTQ2YiIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiMmE0ZDY1ODhmOWI3YWQwODA5MzgyODExMDk1NTQ3ZTJjZDE4OGEzYTM0ZDMzM2E0OGQ4YmM5NzgxZDY0NTM5NyIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiMDRkMTAwNzkwOTYxYjkzNmIzNmM0MzJiZjdlOTY4NGI0MmIwZWJhYTE2MDM1YzdjMmQ0OTU4YmFkYmQyM2Y2YSJ9"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFMTests/MCPServerToolsTests.swift#L100-L138",
|
||||
"version": "repo-lines-v1:sha256:48ab8222146a818c183b835519f4a64ebafbfab173934945b9fb1a14a4d986df:eyJzZWxlY3RlZExpbmVDb3VudCI6MzksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjA0MWJjMzU3ZWE2YzA2MmNiNjE1MGRiZmIwY2Q3YTBhZTM4ZTA3MTllYzU1Y2QwOWY0OGY3Y2U4MGVjOTcyZmIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjUzY2FiZTJjOWMxZDJhNGE4MGNjMTVhNWE0ZDVjMDBhZjQxMGNlYmNhNGZhYTM4YWYwNmE3YzM4NDhhNWUzZWEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImU4ZWFmM2UxZGIyODRmNmE2ZmQ0ZTA2NmFlMmZiNjU0YWU2OGZkZmNmM2U3ZTRkY2E0YzJkZDIxNGE0OWI5ZDAiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6Ijk5OWJkZWZlZWFjYTYzNDBlMDI5MGRjODZlODg5Yzg5ZDVlMTg5YWE1YmE0NGI1ODViM2I3MDczNGY0YTYyZDgifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TermindMCPBridge/main.swift#L4-L87",
|
||||
"version": "repo-lines-v1:sha256:ecccf30acbd284a663e31c1aa7f40e224b2264fb038003a81dceaa30c6449866:eyJzZWxlY3RlZExpbmVDb3VudCI6ODQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjVjZmJkYmI1MDE2YWM3ZGVlYTU2ZTg5MGFlOTNhZDc3MzY1Y2I0ZDhhMGQ4NjhiMmU2YzliZTNjYzExYzQ2NGQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImE3M2Y1YTY5MGEwZjAwODY0Y2RmNDU3MjY3OTAxZjNkNzg5ZmRjYzgwNzQ5NzlmNWUzMDQ2ODVlMjFiMzNlNTUiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjE0ODcxYWY5NDg1Yzg3ZThjMGM0ZGNhN2IyYTI3MThiOWY5YTJmN2QxM2RlYWM1Y2MyYTY5YzgyNWVhY2ViZmQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6Ijk5OWJkZWZlZWFjYTYzNDBlMDI5MGRjODZlODg5Yzg5ZDVlMTg5YWE1YmE0NGI1ODViM2I3MDczNGY0YTYyZDgifQ"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"verification": {
|
||||
"by": "openwiki/0.5.2",
|
||||
"at": "2026-09-22T03:23:14.035Z"
|
||||
"at": "2026-09-23T01:34:03.251Z"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"pageVersion": "sha256:df4482efaa9bf8c8456a93e90ca849b5c53f58754ec6b5f653cc9acffd52fda9",
|
||||
"pageVersion": "sha256:e2720aa6320a8e366bf71c3fa0c7a03da39dc3ef8d3f20aebaabdaef585258a8",
|
||||
"claims": [
|
||||
{
|
||||
"id": "claim_7c677489fd8b4a4fadd006a4da4e9937",
|
||||
@@ -12,7 +12,7 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/AssistantToolRegistry.swift",
|
||||
"version": "repo-file-v1:sha256:486ca4d2997672c82c417051e24392ee610f9f838dff89cffedaceff0891f9fd"
|
||||
"version": "repo-file-v1:sha256:8ccfafe881aacc3f7232d30cef9c97588787771dd925d726b5591efa15c92021"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/SSH/PortForwardingController.swift",
|
||||
@@ -195,6 +195,6 @@
|
||||
],
|
||||
"verification": {
|
||||
"by": "openwiki/0.5.2",
|
||||
"at": "2026-09-22T11:34:21.807Z"
|
||||
"at": "2026-09-23T01:34:03.251Z"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"pageVersion": "sha256:d5354c90144215080870d9769a26cb62524794d9f08d9222bf13f1dfaab336a0",
|
||||
"pageVersion": "sha256:25994ac645085f10b88bf658588df753039ac6bd5c79e6cdde785a0323fb495e",
|
||||
"claims": [
|
||||
{
|
||||
"id": "claim_b47979774aa94e7dae517a6894c508d4",
|
||||
@@ -136,19 +136,23 @@
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://TFM/Application/MCPServer/MCPServerTools.swift#L183-L211",
|
||||
"version": "repo-lines-v1:sha256:3c47a9f75666c7e0501e5cfe9367d0bf69ecdb6d889fe10cd823e8c92bfa297f:eyJzZWxlY3RlZExpbmVDb3VudCI6MjksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjY5OGU0MzcyYjgwNTM0ZmI5NjNmYzVlNGFmZDlhY2JlZGQ0NTNhZWEzYjU0ODAzMThmMWE2MWZmZTQzNGMyMTciLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImU2YjA0NDkxNDY5NzIyZTgzNjNhOTRlNDA0NDUzOGUwMTNhMmEyMTdlMzZiMWU1NjhiYTYwYWNiN2I0YzhmMmUiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImVlYTYxNGM5ZTJkZjc0NWU4Y2ZkZTdiNGIwZThiMmE5OWYxYTNjMTM3YmEzMmE5YjE4YzQ4MzBkMDg1NTY0M2IiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjE5ZTc2MzU1Y2YxMTk5NDgwYzNmOTk4MzZiMTQ4NmM4NDFkODkxZmFhZDkwNGM2MDhlMDkzMDIyZDM3NTdhZWUifQ"
|
||||
"version": "repo-lines-v1:sha256:e65acffc19af44a25ec55b13ae180d24988b848bf32107c1dc55fdbb203c10dd:eyJzZWxlY3RlZExpbmVDb3VudCI6MjksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjY5OGU0MzcyYjgwNTM0ZmI5NjNmYzVlNGFmZDlhY2JlZGQ0NTNhZWEzYjU0ODAzMThmMWE2MWZmZTQzNGMyMTciLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImU2YjA0NDkxNDY5NzIyZTgzNjNhOTRlNDA0NDUzOGUwMTNhMmEyMTdlMzZiMWU1NjhiYTYwYWNiN2I0YzhmMmUiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImVlYTYxNGM5ZTJkZjc0NWU4Y2ZkZTdiNGIwZThiMmE5OWYxYTNjMTM3YmEzMmE5YjE4YzQ4MzBkMDg1NTY0M2IiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjE5ZTc2MzU1Y2YxMTk5NDgwYzNmOTk4MzZiMTQ4NmM4NDFkODkxZmFhZDkwNGM2MDhlMDkzMDIyZDM3NTdhZWUifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Application/MCPServer/MCPServerTools.swift#L7-L13",
|
||||
"version": "repo-lines-v1:sha256:37e1cc2fd471a7feaba49f4edbfcbc40f04e035bbf4b08b3f68416aa598e3d88:eyJzZWxlY3RlZExpbmVDb3VudCI6NywiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiMGI0NjVkOWExMDQwNDZiYTI3NTgwNTQ3ZjNlZDgwMmEyNWExYWUxZjhjZWYxODYyNjMyZTY0ZGQwYjUwN2U3OCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiYWRkMjQ0NTgyYjZmYjAzZDIzYjg0MTVhYmVjZDM0NmIwYzlmNDY2YjZmNzUyYjA2ODE4OWNlN2U5YTJkYzM1MCIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiMmE0ZDY1ODhmOWI3YWQwODA5MzgyODExMDk1NTQ3ZTJjZDE4OGEzYTM0ZDMzM2E0OGQ4YmM5NzgxZDY0NTM5NyIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiMGY0ZWNlYzhkOWUyZDdhM2I4MjVjMTVlOTc2MjQwMmExZDZlZDIxMGI1YzVhNTQ5NWEwMjBjYmJiZDU1MzA1ZiJ9"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Application/MCPServer/MCPServerTools.swift#L81-L112",
|
||||
"version": "repo-lines-v1:sha256:9a47d3738e9223dc103b59b1c730fef89233e69f4ef011e9ff4a31d4646cf9e8:eyJzZWxlY3RlZExpbmVDb3VudCI6MzIsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjE4ZWM0MWMzYmVkYjQ5MGE1MzIyZDJkZWRmNGYzZDYyY2U0NjE5YzIwOWNlNmY5ODk2NWM5ZjgzMzRlMDVmYTciLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjQwOWQxYTBlZGQxY2RmNzllMjI1Yzg3ZDFlODMxYmMwMTU0ZGExNzA1NTZhZTFkMzBlMzZkNDg2ZjhkZTg3OTIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjM2OGE1Yjk5MDRlNmQzOTZhNzllNGY1OWYzMmNjODc2NDA3MmUwZmMxZTJiYzg4MWM2YmIzNWViNGU3MjliM2IifQ"
|
||||
"resource": "repo://TFM/Application/MCPServer/MCPServerTools.swift#L81-L118",
|
||||
"version": "repo-lines-v1:sha256:7f52edfeccd8a684b8b897873405fa21702498b14be32417802dd124eaa3b2ae:eyJzZWxlY3RlZExpbmVDb3VudCI6MzgsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjE4ZWM0MWMzYmVkYjQ5MGE1MzIyZDJkZWRmNGYzZDYyY2U0NjE5YzIwOWNlNmY5ODk2NWM5ZjgzMzRlMDVmYTciLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImRmNTYyYzdmNzMzNjJhZTBlYzk1MmM4M2ViMGJjYjIxYmE2YjBjNTM4MzY0YjExYzAwMGNlM2ZkZWU2NjNhZDUiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjQwOWQxYTBlZGQxY2RmNzllMjI1Yzg3ZDFlODMxYmMwMTU0ZGExNzA1NTZhZTFkMzBlMzZkNDg2ZjhkZTg3OTIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjE3ZmZjZjA0MWQ2MGRmODliNjFiYTQ4MDFmZGUxMmE0ZDI0MTBiZjJiZmJiZjRiZjc3YTcxOWQ4MTNhYzg4NWIifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFMTests/MCPServerToolsTests.swift#L99-L144",
|
||||
"version": "repo-lines-v1:sha256:ac61705a90aec4fc5ad8fe90ba5336d9d529b77717009ddbf93e6f52d1fbfe85:eyJzZWxlY3RlZExpbmVDb3VudCI6NDYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjRjZjA5ZWIwYzU3NDRmYjk3MzMxYjk4ZmYzZmJmMDVhNjAyYmEzZjdmNjdlNWRhNWJlOTA5NTAzM2Y2MjU4MjUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6Ijk5OWJkZWZlZWFjYTYzNDBlMDI5MGRjODZlODg5Yzg5ZDVlMTg5YWE1YmE0NGI1ODViM2I3MDczNGY0YTYyZDgiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImJkZDA4NDk0MjZmMmNmMDE4MTZiNTkwMzQ0YTBkZTI0NDUzNTVkZjliNDdmNjYyMGY4YjA0ZTI1OWYyMDg0YzgifQ"
|
||||
"resource": "repo://TFMTests/MCPServerToolsTests.swift#L100-L140",
|
||||
"version": "repo-lines-v1:sha256:bbe609256f29f5d3f57df07fd079fd2175c599b92d24faf60060b97a17b592d7:eyJzZWxlY3RlZExpbmVDb3VudCI6NDEsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjA0MWJjMzU3ZWE2YzA2MmNiNjE1MGRiZmIwY2Q3YTBhZTM4ZTA3MTllYzU1Y2QwOWY0OGY3Y2U4MGVjOTcyZmIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImU4ZWFmM2UxZGIyODRmNmE2ZmQ0ZTA2NmFlMmZiNjU0YWU2OGZkZmNmM2U3ZTRkY2E0YzJkZDIxNGE0OWI5ZDAiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjhjYzgwYmFjZGQ0ZWUwOTdkYmRlMzFjZTEzNGIzM2YyODlhMzVhMWM1ZTBmZjNhYmFhZWI3YTVhNmY5ZmVmNDEifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFMTests/MCPServerToolsTests.swift#L163-L175",
|
||||
"version": "repo-lines-v1:sha256:bdac8ae222cc6ca064fa19fd6dff53d846496c96a833df866044e6f194e139c4:eyJzZWxlY3RlZExpbmVDb3VudCI6MTMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjRjZjA5ZWIwYzU3NDRmYjk3MzMxYjk4ZmYzZmJmMDVhNjAyYmEzZjdmNjdlNWRhNWJlOTA5NTAzM2Y2MjU4MjUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImE5MTFhNjcyMTJjNDdjOGU2Zjc3YzQyOWVmM2YyYmIzMTQ3MDY3OWVhNjEzMDc1OWJkZDZkZWUyYzVhY2MwNmIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImJkZDA4NDk0MjZmMmNmMDE4MTZiNTkwMzQ0YTBkZTI0NDUzNTVkZjliNDdmNjYyMGY4YjA0ZTI1OWYyMDg0YzgifQ"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -289,10 +293,32 @@
|
||||
"version": "repo-lines-v1:sha256:676f68b4f8a905336cf6f8b0b5bc81a72bcf7ea601c3b8f4e551d921c3876c36:eyJzZWxlY3RlZExpbmVDb3VudCI6OTQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjRjZjA5ZWIwYzU3NDRmYjk3MzMxYjk4ZmYzZmJmMDVhNjAyYmEzZjdmNjdlNWRhNWJlOTA5NTAzM2Y2MjU4MjUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjBiOTg0YjBlZTVlMDZlNWRlNzQzMTYwZjc2MTlkMDNiMjNmMTFjOTU2ODUxYmU5MWRmNDUzYmVlY2UzMzU4MzMiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjExMTM5NDQ5ODE1YWRkNzZiMTM3OGJkODhiMDU3MmQ5MTk5MjA2YTdhYTQyZmM2ZGVjYTk2MjkzYWRjMGMxZjQifQ"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "claim_42f9ef4c43524e90b670a096c7be1b1c",
|
||||
"statement": "The MCP registry composes shared Termind tool definitions without a scratch workspace, AgentKit's user-interaction group, and four transfer tools; it explicitly selects acting mode before exported-name and disabled-tool filtering, so its 18 exports use acting ssh_exec and exclude terminal_suggest and scratch tools. A regression test checks shared descriptor parity with the acting host subset.",
|
||||
"evidence": [
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/TermindAgentTools.swift#L131-L146",
|
||||
"version": "repo-lines-v1:sha256:115a05de9a5dfe6bb311e843026f4ed7d847445773c7c667c42bdaa0f904cb0f:eyJzZWxlY3RlZExpbmVDb3VudCI6MTYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImI1MmVhOTZlMjgzMzE3ZTg1M2E5MjFkNTJmYzg0OTllNGQyM2MxMTI3NDQ1ZDEzOWUyYzlmM2E4NDBkOGE3ODciLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjFlNjczYWJkNDU3YTk3ZWVhMTdhNjAwNjJlYjBmYWVhNmJkZjA5NDg2OGNjNmI4ZjhjMGViZGEyZjYxZWQ0MmYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjI3NmI3Y2RhMDE5NDc2YjllZmM4NmVlNGU2YzQ0NzNkNWEyYTA3ZjZiMjk1MDFlN2QyZDNjMTcyMWZkZjFlYmIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImU3OTQxNzg4NDc3NTljMDg1ODZkYWRkZjhjMThjNjI1YzYyYzAzMjFhOWI4NGMwMzQ4MThiMTA3YzM2OTZiNjMifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/TermindAgentTools.swift#L88-L103",
|
||||
"version": "repo-lines-v1:sha256:dbe61a3ba9b1ab79a313f4945a50099e4d2aea4d3be81879cf5988c566ff33f4:eyJzZWxlY3RlZExpbmVDb3VudCI6MTYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjY2ZGRhY2EwZGI3ZWZlN2MzYWRlNDlmMDM0ZGYyMmFhNmY2YTkyZGFlOWRkZGU3YzI4NjUyYjg3ZWFmNmMyNWUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjFlNjczYWJkNDU3YTk3ZWVhMTdhNjAwNjJlYjBmYWVhNmJkZjA5NDg2OGNjNmI4ZjhjMGViZGEyZjYxZWQ0MmYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjFjNjdjZjE4NTFhZDE4ZDRiZmI3ODYyYjQxNGFkODRlZTI3N2Y5Y2MwZDQ5MTQxOGVkMTUwNzM0YTc4MWM0NWIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjQ1OTk0MWEwZmZkZmM0OGQ3NTA1NzFhMjc0Zjc2YjdjNGNhOTA2NjMwNjBmNTcxZjVhNGY3ZDZhNjExOTBmNDEifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Application/MCPServer/MCPServerTools.swift#L183-L211",
|
||||
"version": "repo-lines-v1:sha256:e65acffc19af44a25ec55b13ae180d24988b848bf32107c1dc55fdbb203c10dd:eyJzZWxlY3RlZExpbmVDb3VudCI6MjksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjY5OGU0MzcyYjgwNTM0ZmI5NjNmYzVlNGFmZDlhY2JlZGQ0NTNhZWEzYjU0ODAzMThmMWE2MWZmZTQzNGMyMTciLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImU2YjA0NDkxNDY5NzIyZTgzNjNhOTRlNDA0NDUzOGUwMTNhMmEyMTdlMzZiMWU1NjhiYTYwYWNiN2I0YzhmMmUiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImVlYTYxNGM5ZTJkZjc0NWU4Y2ZkZTdiNGIwZThiMmE5OWYxYTNjMTM3YmEzMmE5YjE4YzQ4MzBkMDg1NTY0M2IiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjE5ZTc2MzU1Y2YxMTk5NDgwYzNmOTk4MzZiMTQ4NmM4NDFkODkxZmFhZDkwNGM2MDhlMDkzMDIyZDM3NTdhZWUifQ"
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFMTests/MCPServerToolsTests.swift#L100-L140",
|
||||
"version": "repo-lines-v1:sha256:bbe609256f29f5d3f57df07fd079fd2175c599b92d24faf60060b97a17b592d7:eyJzZWxlY3RlZExpbmVDb3VudCI6NDEsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjA0MWJjMzU3ZWE2YzA2MmNiNjE1MGRiZmIwY2Q3YTBhZTM4ZTA3MTllYzU1Y2QwOWY0OGY3Y2U4MGVjOTcyZmIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImU4ZWFmM2UxZGIyODRmNmE2ZmQ0ZTA2NmFlMmZiNjU0YWU2OGZkZmNmM2U3ZTRkY2E0YzJkZDIxNGE0OWI5ZDAiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjhjYzgwYmFjZGQ0ZWUwOTdkYmRlMzFjZTEzNGIzM2YyODlhMzVhMWM1ZTBmZjNhYmFhZWI3YTVhNmY5ZmVmNDEifQ"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"verification": {
|
||||
"by": "openwiki/0.5.2",
|
||||
"at": "2026-09-23T00:14:42.075Z"
|
||||
"at": "2026-09-23T01:34:03.251Z"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"pageVersion": "sha256:36dd6088760d21cfecb2ca2fffc6e6ea9aa667c3f14011c61dcbb354b0377150",
|
||||
"pageVersion": "sha256:61210d26025511ef69e04ecbb09c4b5266e8a8b365fdc612edc432f355271193",
|
||||
"claims": [
|
||||
{
|
||||
"id": "claim_83870f4f1ad6403ea0d8bd8775729a76",
|
||||
@@ -38,7 +38,7 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Features/Workspaces/WindowModel.swift",
|
||||
"version": "repo-file-v1:sha256:4bff3bbe87d980066344224e6c189b784360bb2c0fc360d138b4bb0a6d816420"
|
||||
"version": "repo-file-v1:sha256:4c153bf5b7d97bf82683269527c35e76d9666ce459b681af16e7eed4a586e837"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -90,7 +90,7 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://Frameworks/TermindRemoteInfrastructure/Agent/TermindAgentTools.swift",
|
||||
"version": "repo-file-v1:sha256:9a6ac5989bbe56b568db0e639c84f0608a8dc5b4cd089438c64d91a587a91527"
|
||||
"version": "repo-file-v1:sha256:48b3039f44d716afaacc3e0986a88fcaad3a32d6fa00a68dba265b82e0efc284"
|
||||
},
|
||||
{
|
||||
"resource": "repo://Termind.xcodeproj/project.pbxproj",
|
||||
@@ -129,6 +129,6 @@
|
||||
],
|
||||
"verification": {
|
||||
"by": "openwiki/0.5.2",
|
||||
"at": "2026-09-23T00:14:42.075Z"
|
||||
"at": "2026-09-23T01:34:03.251Z"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"pageVersion": "sha256:5cad513345c5cd73a1bb915584cf0566e8f1a8f543c5e5dd4da91692e6407352",
|
||||
"pageVersion": "sha256:2440bbfacd6925e8874548c87942c4f02c29835160dde94f309fb7abc29758f5",
|
||||
"claims": [
|
||||
{
|
||||
"id": "claim_69a9de4ce918417c8a44c6c87c9f6564",
|
||||
@@ -146,7 +146,7 @@
|
||||
},
|
||||
{
|
||||
"resource": "repo://TFM/Features/Workspaces/WindowModel.swift",
|
||||
"version": "repo-file-v1:sha256:4bff3bbe87d980066344224e6c189b784360bb2c0fc360d138b4bb0a6d816420"
|
||||
"version": "repo-file-v1:sha256:4c153bf5b7d97bf82683269527c35e76d9666ce459b681af16e7eed4a586e837"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -175,6 +175,6 @@
|
||||
],
|
||||
"verification": {
|
||||
"by": "openwiki/0.5.2",
|
||||
"at": "2026-09-23T00:14:42.075Z"
|
||||
"at": "2026-09-23T01:34:03.251Z"
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"updatedAt": "2026-09-23T01:00:12.175Z",
|
||||
"updatedAt": "2026-09-23T01:40:20.785Z",
|
||||
"command": "update",
|
||||
"gitHead": "2ded2a56a35c168034bdb82043a88bc0466e2088",
|
||||
"gitHead": "bdeb201d19b1d86d1bf1145d6cd6bbfbd95bd4a1",
|
||||
"model": "host-agent/codex",
|
||||
"status": "complete",
|
||||
"language": "en"
|
||||
|
||||
@@ -2,74 +2,74 @@
|
||||
"schemaVersion": 1,
|
||||
"pages": {
|
||||
"/openwiki/architecture/desktop-ui.md": {
|
||||
"gitHead": "2ded2a56a35c168034bdb82043a88bc0466e2088",
|
||||
"sourceFingerprint": "sha256:5695d0d8460e1bfb0a6bfc3981f4a8012f4c28db0c06cf36df962449676935db",
|
||||
"pageVersion": "sha256:fad06b683f4e91f808959ed85ce962b1c86d64a67078b39c7ba20f8aa12ad35b",
|
||||
"pageVersion": "sha256:9e4dcfe15396af0c8e9ed77ff7347eac829aeff9d111ad37757a2e3f1e63b2c1",
|
||||
"completedBy": "codex",
|
||||
"completedRunId": "aa140d94-d963-45b6-b682-05a1a3802ffa"
|
||||
"completedRunId": "07775097-b8b6-4b52-9321-61697240352d",
|
||||
"gitHead": "bdeb201d19b1d86d1bf1145d6cd6bbfbd95bd4a1",
|
||||
"sourceFingerprint": "sha256:f9936767fcb96648d4077d9b0eda87d3b9e9f36d42c78ac381d7c200080bcbf8"
|
||||
},
|
||||
"/openwiki/architecture/engineering-invariants.md": {
|
||||
"pageVersion": "sha256:6f98da9e8f070ebc2a0b91545058eb3aa5a411129c7a18c9b33ee9eb6da8e799",
|
||||
"pageVersion": "sha256:75fe464fb65e761e5eeaab3f31f1a2d852175cc5f78f5b099ddffee4a8655971",
|
||||
"completedBy": "codex",
|
||||
"completedRunId": "9d54b362-29b2-42d6-9960-30b93a494d0b",
|
||||
"gitHead": "2ded2a56a35c168034bdb82043a88bc0466e2088",
|
||||
"sourceFingerprint": "sha256:5695d0d8460e1bfb0a6bfc3981f4a8012f4c28db0c06cf36df962449676935db"
|
||||
"completedRunId": "07775097-b8b6-4b52-9321-61697240352d",
|
||||
"gitHead": "bdeb201d19b1d86d1bf1145d6cd6bbfbd95bd4a1",
|
||||
"sourceFingerprint": "sha256:f9936767fcb96648d4077d9b0eda87d3b9e9f36d42c78ac381d7c200080bcbf8"
|
||||
},
|
||||
"/openwiki/architecture/mobile-ui.md": {
|
||||
"pageVersion": "sha256:769919ef95916ccc91f27ef2666730600005e79c052893c2ae098644ac389a07",
|
||||
"pageVersion": "sha256:a1e240ca495ddf76ace3e9861b2f459a2fa61e2d53179352e87b15452e6828ee",
|
||||
"completedBy": "codex",
|
||||
"completedRunId": "9d54b362-29b2-42d6-9960-30b93a494d0b",
|
||||
"gitHead": "2ded2a56a35c168034bdb82043a88bc0466e2088",
|
||||
"sourceFingerprint": "sha256:5695d0d8460e1bfb0a6bfc3981f4a8012f4c28db0c06cf36df962449676935db"
|
||||
"completedRunId": "07775097-b8b6-4b52-9321-61697240352d",
|
||||
"gitHead": "bdeb201d19b1d86d1bf1145d6cd6bbfbd95bd4a1",
|
||||
"sourceFingerprint": "sha256:f9936767fcb96648d4077d9b0eda87d3b9e9f36d42c78ac381d7c200080bcbf8"
|
||||
},
|
||||
"/openwiki/architecture/module-map.md": {
|
||||
"gitHead": "2ded2a56a35c168034bdb82043a88bc0466e2088",
|
||||
"sourceFingerprint": "sha256:5695d0d8460e1bfb0a6bfc3981f4a8012f4c28db0c06cf36df962449676935db",
|
||||
"pageVersion": "sha256:8c5b708036c7d089f4821e24e31a00e1684e44d78bf3a8182b9df0800ffe7f00",
|
||||
"pageVersion": "sha256:cd736475053bed4751ff7b4f06ee0433c8d3ac3e74f3866d585bc958dd6b25d5",
|
||||
"completedBy": "codex",
|
||||
"completedRunId": "aa140d94-d963-45b6-b682-05a1a3802ffa"
|
||||
"completedRunId": "07775097-b8b6-4b52-9321-61697240352d",
|
||||
"gitHead": "bdeb201d19b1d86d1bf1145d6cd6bbfbd95bd4a1",
|
||||
"sourceFingerprint": "sha256:f9936767fcb96648d4077d9b0eda87d3b9e9f36d42c78ac381d7c200080bcbf8"
|
||||
},
|
||||
"/openwiki/architecture/native-app-directories.md": {
|
||||
"gitHead": "2ded2a56a35c168034bdb82043a88bc0466e2088",
|
||||
"sourceFingerprint": "sha256:5695d0d8460e1bfb0a6bfc3981f4a8012f4c28db0c06cf36df962449676935db",
|
||||
"pageVersion": "sha256:411c153b0239360e9fc0a413c9ff012607f8aa71dfd42cf349bcfc83eb2fb690",
|
||||
"pageVersion": "sha256:daaecfb65b33663c617a5627c7c65fc6e45cd05b85017d53e6a48c818a1e15b5",
|
||||
"completedBy": "codex",
|
||||
"completedRunId": "aa140d94-d963-45b6-b682-05a1a3802ffa"
|
||||
"completedRunId": "07775097-b8b6-4b52-9321-61697240352d",
|
||||
"gitHead": "bdeb201d19b1d86d1bf1145d6cd6bbfbd95bd4a1",
|
||||
"sourceFingerprint": "sha256:f9936767fcb96648d4077d9b0eda87d3b9e9f36d42c78ac381d7c200080bcbf8"
|
||||
},
|
||||
"/openwiki/architecture/platform-runtime.md": {
|
||||
"gitHead": "2ded2a56a35c168034bdb82043a88bc0466e2088",
|
||||
"sourceFingerprint": "sha256:5695d0d8460e1bfb0a6bfc3981f4a8012f4c28db0c06cf36df962449676935db",
|
||||
"pageVersion": "sha256:1928bdff8b5655653f6d6eaa66489a0a3c967dfebdf9c9c86245df87bf2011c1",
|
||||
"pageVersion": "sha256:f6b1eae907640a27121b4c2f41cc040490003e2944d38858bc7a4719581bd0b3",
|
||||
"completedBy": "codex",
|
||||
"completedRunId": "aa140d94-d963-45b6-b682-05a1a3802ffa"
|
||||
"completedRunId": "07775097-b8b6-4b52-9321-61697240352d",
|
||||
"gitHead": "bdeb201d19b1d86d1bf1145d6cd6bbfbd95bd4a1",
|
||||
"sourceFingerprint": "sha256:f9936767fcb96648d4077d9b0eda87d3b9e9f36d42c78ac381d7c200080bcbf8"
|
||||
},
|
||||
"/openwiki/architecture/shared-module-directories.md": {
|
||||
"gitHead": "2ded2a56a35c168034bdb82043a88bc0466e2088",
|
||||
"sourceFingerprint": "sha256:5695d0d8460e1bfb0a6bfc3981f4a8012f4c28db0c06cf36df962449676935db",
|
||||
"pageVersion": "sha256:6ba56baf56fd5439756c528b55b7765f506ed716677142f0298cbad9f4cf2f93",
|
||||
"pageVersion": "sha256:42206a596cfd036cd1cf7bd7bc2f0e8ec5f96a4577648a864cebd3f8db5d0a3f",
|
||||
"completedBy": "codex",
|
||||
"completedRunId": "aa140d94-d963-45b6-b682-05a1a3802ffa"
|
||||
"completedRunId": "07775097-b8b6-4b52-9321-61697240352d",
|
||||
"gitHead": "bdeb201d19b1d86d1bf1145d6cd6bbfbd95bd4a1",
|
||||
"sourceFingerprint": "sha256:f9936767fcb96648d4077d9b0eda87d3b9e9f36d42c78ac381d7c200080bcbf8"
|
||||
},
|
||||
"/openwiki/architecture/supporting-system-directories.md": {
|
||||
"gitHead": "cca15abd7682f33404485806d15c99541ef98c5e",
|
||||
"sourceFingerprint": "sha256:c257a6e01df7463636d1e57348f233f373c8ca070007bc8d15c824601c77538f",
|
||||
"pageVersion": "sha256:fa243e662bcccf538fa4c830c781851a26ec9aea0c86163cfc99644ac7364159",
|
||||
"pageVersion": "sha256:2711b0e7d443185dd21a3d96c2cb80f84a5e2149a5a6fc64fda5363afcbc86be",
|
||||
"completedBy": "codex",
|
||||
"completedRunId": "8bdb277a-cf85-4174-a91f-b6a4f89a046d"
|
||||
"completedRunId": "07775097-b8b6-4b52-9321-61697240352d",
|
||||
"gitHead": "bdeb201d19b1d86d1bf1145d6cd6bbfbd95bd4a1",
|
||||
"sourceFingerprint": "sha256:f9936767fcb96648d4077d9b0eda87d3b9e9f36d42c78ac381d7c200080bcbf8"
|
||||
},
|
||||
"/openwiki/architecture/system-boundaries.md": {
|
||||
"gitHead": "2ded2a56a35c168034bdb82043a88bc0466e2088",
|
||||
"sourceFingerprint": "sha256:5695d0d8460e1bfb0a6bfc3981f4a8012f4c28db0c06cf36df962449676935db",
|
||||
"pageVersion": "sha256:db9f09d0c4799f6c8ecc04c8b993af8c45c2c71fbb32827587c3c99c945c3c2b",
|
||||
"pageVersion": "sha256:3cbf1be9eb94f0eb87d83be0a1277c9801cb4df9a3da898ef95b63b20b72a785",
|
||||
"completedBy": "codex",
|
||||
"completedRunId": "aa140d94-d963-45b6-b682-05a1a3802ffa"
|
||||
"completedRunId": "07775097-b8b6-4b52-9321-61697240352d",
|
||||
"gitHead": "bdeb201d19b1d86d1bf1145d6cd6bbfbd95bd4a1",
|
||||
"sourceFingerprint": "sha256:f9936767fcb96648d4077d9b0eda87d3b9e9f36d42c78ac381d7c200080bcbf8"
|
||||
},
|
||||
"/openwiki/concepts/agent-runtime-and-assistant.md": {
|
||||
"gitHead": "58a0cfd1bf9d08057801c740e79bbcb3c1fcc37e",
|
||||
"sourceFingerprint": "sha256:8456f71ffdd978736ff6bf9aed042724573fd633b1d40f6d2b74fec0acb445f6",
|
||||
"pageVersion": "sha256:6ba8f89374ad018a257cf1c10e91f9d4b3641420f6187d07c8829858671948d1",
|
||||
"completedBy": "omp",
|
||||
"completedRunId": "691ddd1f-2966-4a5b-b437-127adf28ff38"
|
||||
"pageVersion": "sha256:47fa6bbaa4a43b7bac039520e0bd6d4cf3f003b8969821fecaebe1cd9bdeac6b",
|
||||
"completedBy": "codex",
|
||||
"completedRunId": "07775097-b8b6-4b52-9321-61697240352d",
|
||||
"gitHead": "bdeb201d19b1d86d1bf1145d6cd6bbfbd95bd4a1",
|
||||
"sourceFingerprint": "sha256:f9936767fcb96648d4077d9b0eda87d3b9e9f36d42c78ac381d7c200080bcbf8"
|
||||
},
|
||||
"/openwiki/concepts/commerce-localization-and-product-surfaces.md": {
|
||||
"gitHead": "58a0cfd1bf9d08057801c740e79bbcb3c1fcc37e",
|
||||
@@ -86,11 +86,11 @@
|
||||
"completedRunId": "aa140d94-d963-45b6-b682-05a1a3802ffa"
|
||||
},
|
||||
"/openwiki/concepts/remote-services-and-forwarding.md": {
|
||||
"gitHead": "7bd483abc1213e20114deb41e71be4a6bce3b048",
|
||||
"sourceFingerprint": "sha256:81824d0e5565b003414e71b5a66a7cd8b72768e06ea52f5391c6b25a6fefa67c",
|
||||
"pageVersion": "sha256:df4482efaa9bf8c8456a93e90ca849b5c53f58754ec6b5f653cc9acffd52fda9",
|
||||
"pageVersion": "sha256:e2720aa6320a8e366bf71c3fa0c7a03da39dc3ef8d3f20aebaabdaef585258a8",
|
||||
"completedBy": "codex",
|
||||
"completedRunId": "3202e468-3230-40c9-80ee-55ba3e53e4b6"
|
||||
"completedRunId": "07775097-b8b6-4b52-9321-61697240352d",
|
||||
"gitHead": "bdeb201d19b1d86d1bf1145d6cd6bbfbd95bd4a1",
|
||||
"sourceFingerprint": "sha256:f9936767fcb96648d4077d9b0eda87d3b9e9f36d42c78ac381d7c200080bcbf8"
|
||||
},
|
||||
"/openwiki/concepts/shell-integration.md": {
|
||||
"gitHead": "cca15abd7682f33404485806d15c99541ef98c5e",
|
||||
@@ -114,11 +114,11 @@
|
||||
"completedRunId": "aa140d94-d963-45b6-b682-05a1a3802ffa"
|
||||
},
|
||||
"/openwiki/integrations/mcp-server-and-bridge.md": {
|
||||
"gitHead": "2ded2a56a35c168034bdb82043a88bc0466e2088",
|
||||
"sourceFingerprint": "sha256:5695d0d8460e1bfb0a6bfc3981f4a8012f4c28db0c06cf36df962449676935db",
|
||||
"pageVersion": "sha256:d5354c90144215080870d9769a26cb62524794d9f08d9222bf13f1dfaab336a0",
|
||||
"pageVersion": "sha256:25994ac645085f10b88bf658588df753039ac6bd5c79e6cdde785a0323fb495e",
|
||||
"completedBy": "codex",
|
||||
"completedRunId": "aa140d94-d963-45b6-b682-05a1a3802ffa"
|
||||
"completedRunId": "07775097-b8b6-4b52-9321-61697240352d",
|
||||
"gitHead": "bdeb201d19b1d86d1bf1145d6cd6bbfbd95bd4a1",
|
||||
"sourceFingerprint": "sha256:f9936767fcb96648d4077d9b0eda87d3b9e9f36d42c78ac381d7c200080bcbf8"
|
||||
},
|
||||
"/openwiki/operations/build-test-and-release.md": {
|
||||
"gitHead": "58a0cfd1bf9d08057801c740e79bbcb3c1fcc37e",
|
||||
@@ -156,11 +156,11 @@
|
||||
"completedRunId": "691ddd1f-2966-4a5b-b437-127adf28ff38"
|
||||
},
|
||||
"/openwiki/quickstart.md": {
|
||||
"gitHead": "2ded2a56a35c168034bdb82043a88bc0466e2088",
|
||||
"sourceFingerprint": "sha256:5695d0d8460e1bfb0a6bfc3981f4a8012f4c28db0c06cf36df962449676935db",
|
||||
"pageVersion": "sha256:36dd6088760d21cfecb2ca2fffc6e6ea9aa667c3f14011c61dcbb354b0377150",
|
||||
"pageVersion": "sha256:61210d26025511ef69e04ecbb09c4b5266e8a8b365fdc612edc432f355271193",
|
||||
"completedBy": "codex",
|
||||
"completedRunId": "aa140d94-d963-45b6-b682-05a1a3802ffa"
|
||||
"completedRunId": "07775097-b8b6-4b52-9321-61697240352d",
|
||||
"gitHead": "bdeb201d19b1d86d1bf1145d6cd6bbfbd95bd4a1",
|
||||
"sourceFingerprint": "sha256:f9936767fcb96648d4077d9b0eda87d3b9e9f36d42c78ac381d7c200080bcbf8"
|
||||
},
|
||||
"/openwiki/testing/behavioral-boundaries-and-fixtures.md": {
|
||||
"gitHead": "2ded2a56a35c168034bdb82043a88bc0466e2088",
|
||||
@@ -191,11 +191,11 @@
|
||||
"completedRunId": "691ddd1f-2966-4a5b-b437-127adf28ff38"
|
||||
},
|
||||
"/openwiki/workflows/ssh-session-lifecycle.md": {
|
||||
"gitHead": "2ded2a56a35c168034bdb82043a88bc0466e2088",
|
||||
"sourceFingerprint": "sha256:5695d0d8460e1bfb0a6bfc3981f4a8012f4c28db0c06cf36df962449676935db",
|
||||
"pageVersion": "sha256:5cad513345c5cd73a1bb915584cf0566e8f1a8f543c5e5dd4da91692e6407352",
|
||||
"pageVersion": "sha256:2440bbfacd6925e8874548c87942c4f02c29835160dde94f309fb7abc29758f5",
|
||||
"completedBy": "codex",
|
||||
"completedRunId": "aa140d94-d963-45b6-b682-05a1a3802ffa"
|
||||
"completedRunId": "07775097-b8b6-4b52-9321-61697240352d",
|
||||
"gitHead": "bdeb201d19b1d86d1bf1145d6cd6bbfbd95bd4a1",
|
||||
"sourceFingerprint": "sha256:f9936767fcb96648d4077d9b0eda87d3b9e9f36d42c78ac381d7c200080bcbf8"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@ description: "How the macOS app composes its native window shell, persistent wor
|
||||
tags: [macos, tfm, ui, navigation, workspaces, swiftui, appkit, design]
|
||||
verified:
|
||||
- by: openwiki/0.5.2
|
||||
at: 2026-09-23T00:14:42.075Z
|
||||
at: 2026-09-23T01:34:03.251Z
|
||||
sources:
|
||||
- id: openwiki-source-e09fb7bc8e7ca0579f6d446e
|
||||
resource: repo://Frameworks/TermindApplication/FeatureModels/DeviceDirectoryModel.swift
|
||||
|
||||
@@ -107,7 +107,7 @@ sources:
|
||||
generated: { by: "codex", at: "2026-09-23T00:59:31.979Z" }
|
||||
verified:
|
||||
- by: openwiki/0.5.2
|
||||
at: 2026-09-23T00:59:31.979Z
|
||||
at: 2026-09-23T01:34:03.251Z
|
||||
---
|
||||
|
||||
# Cross-Cutting Engineering Invariants
|
||||
|
||||
@@ -49,7 +49,7 @@ sources:
|
||||
generated: { by: "codex", at: "2026-09-23T00:59:31.979Z" }
|
||||
verified:
|
||||
- by: openwiki/0.5.2
|
||||
at: 2026-09-23T00:59:31.979Z
|
||||
at: 2026-09-23T01:34:03.251Z
|
||||
---
|
||||
|
||||
# TFI Mobile UI Architecture
|
||||
|
||||
@@ -49,7 +49,7 @@ sources:
|
||||
generated: { by: "codex", at: "2026-09-22T09:17:11.491Z" }
|
||||
verified:
|
||||
- by: openwiki/0.5.2
|
||||
at: 2026-09-23T00:14:42.075Z
|
||||
at: 2026-09-23T01:34:03.251Z
|
||||
---
|
||||
|
||||
# Module and Directory Architecture Map
|
||||
|
||||
@@ -87,7 +87,7 @@ sources:
|
||||
generated: { by: "codex", at: "2026-09-23T00:14:42.075Z" }
|
||||
verified:
|
||||
- by: openwiki/0.5.2
|
||||
at: 2026-09-23T00:14:42.075Z
|
||||
at: 2026-09-23T01:34:03.251Z
|
||||
---
|
||||
|
||||
# Native App Directory Responsibilities
|
||||
|
||||
@@ -43,7 +43,7 @@ sources:
|
||||
generated: { by: "codex", at: "2026-09-23T00:14:42.075Z" }
|
||||
verified:
|
||||
- by: openwiki/0.5.2
|
||||
at: 2026-09-23T00:14:42.075Z
|
||||
at: 2026-09-23T01:34:03.251Z
|
||||
---
|
||||
|
||||
# Platform Runtime, App Composition, and Lifetimes
|
||||
|
||||
@@ -107,7 +107,7 @@ sources:
|
||||
generated: { by: "codex", at: "2026-09-23T00:14:42.075Z" }
|
||||
verified:
|
||||
- by: openwiki/0.5.2
|
||||
at: 2026-09-23T00:14:42.075Z
|
||||
at: 2026-09-23T01:34:03.251Z
|
||||
---
|
||||
|
||||
# Shared Framework Directory Responsibilities
|
||||
|
||||
@@ -81,7 +81,7 @@ sources:
|
||||
generated: { by: "omp", at: "2026-09-22T03:45:03.442Z" }
|
||||
verified:
|
||||
- by: openwiki/0.5.2
|
||||
at: 2026-09-22T10:02:02.985Z
|
||||
at: 2026-09-23T01:34:03.251Z
|
||||
---
|
||||
|
||||
# Supporting Products, Packages, and Tooling
|
||||
|
||||
@@ -43,7 +43,7 @@ sources:
|
||||
generated: { by: "codex", at: "2026-09-23T00:14:42.075Z" }
|
||||
verified:
|
||||
- by: openwiki/0.5.2
|
||||
at: 2026-09-23T00:14:42.075Z
|
||||
at: 2026-09-23T01:34:03.251Z
|
||||
---
|
||||
|
||||
# System Boundaries and Dependency Ownership
|
||||
|
||||
@@ -3,12 +3,9 @@ type: agent runtime concept
|
||||
title: Assistant, Agent Runtime, Skills, and Memory
|
||||
description: How Termind assembles AgentKit into durable assistant conversations, applies approval and host-security boundaries, and manages skills, scratch workspaces, and device-local Hermes memory.
|
||||
tags: [assistant, agent-runtime, approval, persistence, skills, memory, ssh, sftp]
|
||||
verified:
|
||||
- by: openwiki/0.5.2
|
||||
at: 2026-09-22T03:23:14.035Z
|
||||
sources:
|
||||
- id: openwiki-source-66f32c7d0994c9f18c0e5a98
|
||||
resource: repo://.build/verify-zh-hans/ios/SourcePackages/checkouts/AgentKit/Sources/AgentKit/Runtime/AgentRuntime.swift
|
||||
- id: openwiki-source-0e8cfe7d74554d8a17af60b7
|
||||
resource: repo://AgentKit/Sources/AgentKit/Runtime/AgentRuntime.swift
|
||||
- id: openwiki-source-8037e2358a2c4f9b2c722a11
|
||||
resource: repo://AGENTS.md
|
||||
- id: openwiki-source-5f99e8af445e073ffe9bc257
|
||||
@@ -25,10 +22,36 @@ sources:
|
||||
resource: repo://Frameworks/TermindPersistence/SwiftDataAgentRunRepository.swift
|
||||
- id: openwiki-source-1fc00d0407016efa5a0378eb
|
||||
resource: repo://Frameworks/TermindRemoteInfrastructure/Agent/AgentBuiltInSSHTools.swift
|
||||
- id: openwiki-source-0c82bf45bc197f879a54fd3a
|
||||
resource: repo://Frameworks/TermindRemoteInfrastructure/Agent/AgentConnections.swift
|
||||
- id: openwiki-source-e1a028bd99d4dbe6d1e14f6a
|
||||
resource: repo://Frameworks/TermindRemoteInfrastructure/Agent/AgentScratchTransferTools.swift
|
||||
- id: openwiki-source-1c845e5af67c400566be83bd
|
||||
resource: repo://Frameworks/TermindRemoteInfrastructure/Agent/AssistantToolRegistry.swift
|
||||
- id: openwiki-source-2a267454c356289bd66e8b40
|
||||
resource: repo://Frameworks/TermindRemoteInfrastructure/Agent/PlanningSSHTools.swift
|
||||
- id: openwiki-source-d2d4c06f734241db3badc1f5
|
||||
resource: repo://Frameworks/TermindRemoteInfrastructure/Agent/TermindAgentTools.swift
|
||||
- id: openwiki-source-6d759b4cb61f68a067dae42c
|
||||
resource: repo://FrameworkTests/AgentSteeringTests.swift
|
||||
- id: openwiki-source-a62bfbbc7de13a894444718b
|
||||
resource: repo://TermindMCPBridge/main.swift
|
||||
- id: openwiki-source-906678adb91c2fce2d3fcaed
|
||||
resource: repo://TFI/App/MobileAppModel.swift
|
||||
- id: openwiki-source-d44869be46c03fbd0ce9c64c
|
||||
resource: repo://TFI/Application/Agent/MobileAssistantModel.swift
|
||||
- id: openwiki-source-a154b5d36ec59496392d45e4
|
||||
resource: repo://TFITests/MobileAssistantTests.swift
|
||||
- id: openwiki-source-76b1cdca4a02038756187f92
|
||||
resource: repo://TFM/Application/MCPServer/MCPServerTools.swift
|
||||
- id: openwiki-source-16db5d5459897d40fe080701
|
||||
resource: repo://TFM/Features/AI/ConversationTranscriptView.swift
|
||||
- id: openwiki-source-d35453512ef488d0cacdc06e
|
||||
resource: repo://TFM/Features/Assistant/AssistantView.swift
|
||||
- id: openwiki-source-49c5ca81284394384f3c3913
|
||||
resource: repo://TFMTests/AgentBuiltInToolAvailabilityTests.swift
|
||||
- id: openwiki-source-8f676dd306369e67985f3dd0
|
||||
resource: repo://TFMTests/AgentHostProtocolListingTests.swift
|
||||
- id: openwiki-source-715de8d16be5a3d06ae915ad
|
||||
resource: repo://TFMTests/AgentPersistenceTests.swift
|
||||
- id: openwiki-source-d57db929d0047db53dd73cdd
|
||||
@@ -37,7 +60,12 @@ sources:
|
||||
resource: repo://TFMTests/AgentScratchTests.swift
|
||||
- id: openwiki-source-7e117096f381ecc32caff068
|
||||
resource: repo://TFMTests/AgentSkillTests.swift
|
||||
generated: { by: "openwiki/0.5.2", at: "2026-09-22T00:31:10.149Z" }
|
||||
- id: openwiki-source-8d265a8732f0af93c5d4e274
|
||||
resource: repo://TFMTests/MCPServerToolsTests.swift
|
||||
generated: { by: "codex", at: "2026-09-23T01:34:03.251Z" }
|
||||
verified:
|
||||
- by: openwiki/0.5.2
|
||||
at: 2026-09-23T01:34:03.251Z
|
||||
---
|
||||
|
||||
# Assistant, Agent Runtime, Skills, and Memory
|
||||
@@ -52,7 +80,7 @@ This split is a security boundary as well as a modularity boundary. A model prop
|
||||
|
||||
A runtime is deliberately single-run. It owns one event stream and one event consumer. `ConversationModel` owns the live runtime and projects its events into visible messages, tool cards, approval and input queues, run summaries, and the authoritative model transcript. The visible message list is not replay history: tool calls and results are separately rendered as cards, so replay must use `transcript`.
|
||||
|
||||
Tool availability is fixed at run start. A tool-capable model receives the resolved skill catalog, AgentKit built-ins, and Termind tools; a model without tool-call capability does not receive the skill/tool catalog. Session facts, plan posture, surface availability, and the memory-session identity are captured in an `AgentTurnContextSnapshot`, rather than reread from mutable UI state while the run is executing.
|
||||
The registered tool catalog and run mode are resolved at run start. A tool-capable model receives the resolved skill catalog, AgentKit built-ins, and Termind tools; a model without tool-call capability does not receive the skill/tool catalog. Session facts, plan posture, surface availability, and the memory-session identity are captured in an `AgentTurnContextSnapshot`. Surface availability follows the latest delivered user snapshot rather than mutable UI focus.
|
||||
|
||||
Termind composes the registry in this order:
|
||||
|
||||
@@ -60,6 +88,23 @@ Termind composes the registry in this order:
|
||||
2. Termind's host tools: host/metrics discovery, `ssh_exec`, terminal suggestions, SFTP operations, and the host-facing `scratch_pull` / `scratch_push` endpoints.
|
||||
3. Discovered MCP tools, which are additive and cannot shadow a built-in or Termind tool name.
|
||||
|
||||
### Catalog, run mode, and surface availability
|
||||
|
||||
`TermindAgentTools` is the shared static registration point. Its injected environment supplies host resolution, metrics, connection/authentication pools, background commands, and an optional scratch workspace. Dependencies determine which capabilities can be constructed: `scratch_pull` and `scratch_push` need that workspace, while `AssistantToolRegistry` returns an empty registry for a model without `toolCall`. A sending-surface Boolean is not a registration input; equivalent dependencies produce the same definitions for desktop and mobile Assistant surfaces.
|
||||
|
||||
AgentKit selects the executable registry for the run's mode. Planning retains discovery, metrics, SSH investigation, SFTP reads and `scratch_pull`; remote SFTP mutations and `scratch_push` are acting-only, and Termind contributes no tools to reviewing. Planning and acting share the `ssh_exec` descriptor and schema, but planning uses a preflight that denies destructive commands. Acting asks for those commands; commands proven safe can be approved and run in parallel in either mode.
|
||||
|
||||
`terminalSuggestionsAvailable` is the application argument that captures the separate execution gate in `AgentTurnContextSnapshot.toolAvailability["terminal_suggest"]`. It does not remove or change the advertised tool schema:
|
||||
|
||||
| Surface | Terminal suggestion execution | Tool definitions |
|
||||
| --- | --- | --- |
|
||||
| TFM standalone Assistant | `false` | Shared Assistant catalog. |
|
||||
| TFM Workspace Assistant sidebar | `true` | Shared Assistant catalog. |
|
||||
| TFI standalone Assistant | `false` | Shared Assistant catalog. |
|
||||
| macOS external MCP server | Not exported | Acting host subset, `request_user_secret`, and four HTTP transfer tools. |
|
||||
|
||||
This snapshot dictionary is a partial override: disabling terminal suggestions does not disable independent SSH/SFTP work. The MCP server explicitly selects acting definitions, then filters by its exported-name allowlist and disabled-tool settings. It excludes terminal suggestions, scratch, web, skill, plan and task tools; its four extra tools are `sftp_upload`, `sftp_upload_status`, `sftp_download` and `sftp_download_status`. The stdio bridge forwards requests to this server and registers no second tool set; TFI has no local MCP server. See [MCP Server and Bridge](../integrations/mcp-server-and-bridge.md) for the external authorization and byte-transfer boundaries.
|
||||
|
||||
## Turn lifecycle
|
||||
|
||||
A submitted prompt is persisted as part of the run snapshot before model work begins. AgentKit streams a provider turn, emits ordered UI and durable events through a shared `AgentEventChannel`, validates any complete tool call, then schedules execution. Tool results are appended to the model transcript and persisted before the following model round. This preserves a grammatically answerable transcript even for refusal, cancellation, or failure paths.
|
||||
@@ -103,6 +148,8 @@ This sequence shows one assistant turn, including the persistence points around
|
||||
|
||||
While a run is live, a further user message is queued as steering rather than starting another run. It becomes visible and durable only at the next model boundary, when AgentKit delivers it to the model; if the run has already ended, the UI returns queued text and attachments to the composer. This prevents history from claiming that a message was delivered when it was not.
|
||||
|
||||
Steering captures the sending session context and updates only the `terminal_suggest` availability entry. It preserves other tool overrides, the fixed skill catalog and plan contract, and the memory-session identity. Queuing does not change `ConversationModel.activeContextSnapshot`; delivery does. If the conversation has no legacy snapshot, steering keeps that context unknown instead of filling it from current UI state. The persisted availability key remains `terminal_suggest`.
|
||||
|
||||
Stopping a conversation cancels the runtime and its tool work, discards run-scoped secrets, marks running cards interrupted in the presentation, and returns undelivered steering text. `stopAndWait()` waits for the runtime's cancellation/persistence path before clearing live ownership. Termind also invalidates pending preparation when its controller is cancelled, recording an interrupted snapshot rather than launching a stale run.
|
||||
|
||||
## Approval, secrets, and trust boundaries
|
||||
@@ -121,7 +168,7 @@ SSH authentication and host-key prompts are Termind interactions, not model-visi
|
||||
|
||||
## Host tools and plan mode
|
||||
|
||||
Termind tools operate through noninteractive per-command SSH channels and exclusive SFTP leases; they never type into the user's interactive terminal. `terminal_suggest` creates a user-operated command card and never executes it. The standalone Assistant can discover and target configured hosts even without a sidebar session; session context is only an optional default target.
|
||||
Termind tools operate through noninteractive per-command SSH channels and exclusive SFTP leases; they never type into the user's interactive terminal. `terminal_suggest` creates a user-operated command card and never executes it. The standalone Assistant can discover and target configured hosts even without a sidebar session or open PTY; session context is only an optional default target. `list_hosts` lists enabled protocols without credentials, including Telnet-only hosts. SSH/SFTP execution requires SSH to be enabled; discovering a Telnet-only host does not provide an Agent Telnet execution capability.
|
||||
|
||||
Plan mode freezes at submission. It permits investigation, reads, and policy-allowed commands, but host-specific planning registrations refuse direct remote writes, deletes, and scratch pushes. A plan is drafted in scratch space and presented as the final action; presenting it does not itself suspend a run awaiting a decision.
|
||||
|
||||
@@ -139,6 +186,8 @@ A fork copies its scratch scope before creating the forked conversation and remo
|
||||
|
||||
A saved context snapshot preserves the original session and policy baseline for replay, retry, edit, and fork behavior; legacy absent context remains unknown rather than being replaced by current UI state. Persisted text, tool arguments, titles, reasoning, and attachments go through redaction. In particular, secret handles are replaced with expired lifecycle content on restore, and sensitive header values are redacted.
|
||||
|
||||
Tool cards resolve their persisted presenter ID through the immutable presenter registry. Cards predating those IDs use the closed legacy tool-name list and its `builtin.` IDs. Registration and surface-availability changes preserve those identities and the persisted context key; they do not require a SwiftData schema change.
|
||||
|
||||
Compaction changes the **model-facing** transcript, not the scrollable display history. Its summary record is persisted before the live conversation applies it; after recovery the model receives a synthetic compaction summary plus recent messages while the user can still read the full original conversation. Editing a user message truncates the target run and later runs atomically, creates the replacement turn, and removes compactions whose boundary was removed.
|
||||
|
||||
At repository initialization, every nonterminal persisted run becomes `interrupted`; Termind never replays unfinished execution automatically. Restore reconstructs completed tool cards and can recover a durable tool result that was recorded before its next transcript snapshot. If an outcome remains unknown, repair records an explicit unknown/refusal result rather than assuming a call was never dispatched.
|
||||
@@ -188,6 +237,9 @@ The focused tests establish behavior that is important when changing this area:
|
||||
- `TFMTests/AgentPersistenceTests.swift` covers redaction, interrupted-run recovery, replay deduplication, tool-result repair, deletion of the persistent graph, edit truncation, fork persistence, and compaction restoration.
|
||||
- `FrameworkTests/AssistantConversationOperationsTests.swift` verifies persistence-first archive/rename/order mutations, activity guards, and immediate stop before a queued runtime can begin.
|
||||
- `TFMTests/AgentScratchTests.swift` verifies workspace containment, symlink refusal, inter-conversation isolation, quotas, and bounded reads.
|
||||
- `TFMTests/AgentBuiltInToolAvailabilityTests.swift` checks exact Termind planning/acting/reviewing sets, the shared SSH schema with mode-specific preflight, and execution spies proving the surface gate blocks only terminal suggestions.
|
||||
- `FrameworkTests/AgentSteeringTests.swift` and `TFITests/MobileAssistantTests.swift` check snapshot preservation, delivery timing, legacy unknown context, mobile send/steer availability, and tool-incapable models.
|
||||
- `TFMTests/MCPServerToolsTests.swift` checks the exported acting subset against shared descriptors, transfer tools and disabled calls; `AgentHostProtocolListingTests.swift` checks protocol-neutral discovery, and `AgentToolPresentationTests.swift` retains legacy presentation coverage alongside the persistence suite.
|
||||
|
||||
## Change guidance
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ sources:
|
||||
generated: { by: "omp", at: "2026-09-22T02:43:23.140Z" }
|
||||
verified:
|
||||
- by: openwiki/0.5.2
|
||||
at: 2026-09-22T11:34:21.807Z
|
||||
at: 2026-09-23T01:34:03.251Z
|
||||
---
|
||||
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@ tags: [mcp, macos, loopback, authentication, sftp, bridge]
|
||||
sources:
|
||||
- id: openwiki-source-1fc00d0407016efa5a0378eb
|
||||
resource: repo://Frameworks/TermindRemoteInfrastructure/Agent/AgentBuiltInSSHTools.swift
|
||||
- id: openwiki-source-d2d4c06f734241db3badc1f5
|
||||
resource: repo://Frameworks/TermindRemoteInfrastructure/Agent/TermindAgentTools.swift
|
||||
- id: openwiki-source-a62bfbbc7de13a894444718b
|
||||
resource: repo://TermindMCPBridge/main.swift
|
||||
- id: openwiki-source-906678adb91c2fce2d3fcaed
|
||||
@@ -40,10 +42,10 @@ sources:
|
||||
resource: repo://TFMTests/MCPTransferTicketTests.swift
|
||||
- id: openwiki-source-47dc468698b2904f0004ee04
|
||||
resource: repo://TFMTests/MCPUploadTests.swift
|
||||
generated: { by: "openwiki/0.5.2", at: "2026-09-22T00:31:10.149Z" }
|
||||
generated: { by: "codex", at: "2026-09-23T01:34:03.251Z" }
|
||||
verified:
|
||||
- by: openwiki/0.5.2
|
||||
at: 2026-09-23T00:14:42.075Z
|
||||
at: 2026-09-23T01:34:03.251Z
|
||||
---
|
||||
|
||||
# MCP Server, Transfer APIs, and Stdio Bridge
|
||||
@@ -119,7 +121,9 @@ A session owns a UUID run ID and a `SecretBroker`. The protocol supports at most
|
||||
|
||||
## Tools, policy, and external authentication
|
||||
|
||||
The exposed registry is an allowlist—not the complete AgentKit catalog. It includes host discovery and cached metrics; `request_user_secret`; `ssh_exec` and `ssh_wait`; ordinary SFTP inspection/mutation/copy operations; and upload/download ticket/status tools. Scratch workspaces and generic fetch tools are intentionally excluded because an external MCP client has no Termind conversation backing them.
|
||||
The exposed registry is an allowlist—not the complete AgentKit catalog. It includes host discovery and cached metrics; `request_user_secret`; `ssh_exec` and `ssh_wait`; ordinary SFTP inspection/mutation/copy operations; and four upload/download ticket/status tools, for 18 exported names. `terminal_suggest` is not exported. Scratch workspaces and generic fetch tools are intentionally excluded because an external MCP client has no Termind conversation backing them.
|
||||
|
||||
`MCPServerTools.makeRegistry` composes AgentKit's user-interaction group, the same `TermindAgentTools` definitions used by Assistant, and the four MCP transfer tools. It supplies no scratch workspace, so the dependency-based factories cannot construct `scratch_pull` or `scratch_push`. It then explicitly selects `.available(in: .acting)` **before** applying the exported-name allowlist and disabled-tool filter. Thus MCP uses the acting `ssh_exec` implementation, not Assistant's planning wrapper; mode selection, dependency injection, and export policy are distinct boundaries. The stdio bridge forwards requests to this registry rather than building another catalog.
|
||||
|
||||
Disabled tools are removed from discovery **and** invocation, not merely hidden. Changing a tool switch rebuilds the registry immediately; `sftp_upload` and `sftp_download` also enable or revoke their directional transfer coordinators. This makes disabling a transfer direction revoke existing tickets rather than allowing old URLs to revive after re-enablement.
|
||||
|
||||
@@ -184,7 +188,7 @@ For direct HTTP clients, settings generates quoted setup commands for Claude Cod
|
||||
* Enable the server in macOS settings only after Pro access is available, generate or rotate a token, then copy a client registration command. Treat that token like a local credential and update every client after rotation, port change, or moving the app when using the bridge.
|
||||
* Use the server status and connected-client count to distinguish stopped, starting, ready, and failed listener state. Listener failures stop transfers; invalid port/token storage disables activation rather than exposing a partially configured server.
|
||||
* To immediately cut off an external client, disable the server or rotate its token. To reduce surface area, disable individual tools; disabling either transfer tool revokes its tickets.
|
||||
* Test changes at the correct seam: `MCPServerSessionTests` exercises initialization, version/session requirements, tool discovery, legacy SSE, and deletion cancellation; `MCPServerToolsTests` verifies allowlisting, disabled tools, session-bound secrets, and ticket creation; `MCPUploadTests` and `MCPDownloadTests` cover resume, claim, digest, cancellation, status, and wire behavior; `MCPClientSetupCommandTests` checks exact, shell-safe client registration arguments.
|
||||
* Test changes at the correct seam: `MCPServerSessionTests` exercises initialization, version/session requirements, tool discovery, legacy SSE, and deletion cancellation; `MCPServerToolsTests` verifies all 18 exports, shared descriptor parity with the acting host subset, excluded tools, disabled invocation, session-bound secrets, and ticket creation; `MCPUploadTests` and `MCPDownloadTests` cover resume, claim, digest, cancellation, status, and wire behavior; `MCPClientSetupCommandTests` checks exact, shell-safe client registration arguments.
|
||||
|
||||
## Related pages
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ sources:
|
||||
generated: { by: "omp", at: "2026-09-22T03:23:14.035Z" }
|
||||
verified:
|
||||
- by: openwiki/0.5.2
|
||||
at: 2026-09-23T00:14:42.075Z
|
||||
at: 2026-09-23T01:34:03.251Z
|
||||
---
|
||||
|
||||
# Termind Engineering Quickstart
|
||||
|
||||
@@ -43,7 +43,7 @@ sources:
|
||||
generated: { by: "codex", at: "2026-09-23T00:14:42.075Z" }
|
||||
verified:
|
||||
- by: openwiki/0.5.2
|
||||
at: 2026-09-23T00:14:42.075Z
|
||||
at: 2026-09-23T01:34:03.251Z
|
||||
---
|
||||
|
||||
# SSH, Telnet, Trust, and Workspace Session Lifecycle
|
||||
|
||||
Reference in new issue
Block a user