diff --git a/.xlings/subos/_/.shim-view/976c3311-gh.json b/.xlings/subos/_/.shim-view/976c3311-gh.json new file mode 100644 index 0000000..d04ce33 --- /dev/null +++ b/.xlings/subos/_/.shim-view/976c3311-gh.json @@ -0,0 +1,43 @@ +{ + "fingerprint": { + "/home/speak/.xlings/.xlings.json": "4014023:-4643116326602899284", + "/home/speak/.xlings/data/versions.json": "3859010:-4643116326531898249", + "/home/speak/.xlings/subos/speak-agent-private/.xlings.json": "273600:-4643140060670125089", + "/home/speak/workspace/tmp/eco/cmdline/.xlings.json": "51:-4643109118759633077", + "/home/speak/workspace/tmp/eco/cmdline/.xlings/.xlings.json": "absent" + }, + "format": 1, + "program": "gh", + "vinfo": { + "gh": { + "filename": "gh", + "type": "program", + "versions": { + "2.92.0": { + "bindingGroup": { + "group": "gh", + "provider": "xim:github-gh", + "rootTarget": "gh", + "rootVersion": "2.92.0", + "version": "2.92.0" + }, + "bindingMembers": { + "gh": "2.92.0" + }, + "destinationName": "gh", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-github-gh/2.92.0/bin", + "sourceName": "gh" + } + } + } + }, + "workspace": { + "gh": { + "active": "2.92.0", + "installed": [ + "2.92.0" + ] + } + } +} \ No newline at end of file diff --git a/.xlings/subos/_/.shim-view/976c3311-git.json b/.xlings/subos/_/.shim-view/976c3311-git.json new file mode 100644 index 0000000..0c01470 --- /dev/null +++ b/.xlings/subos/_/.shim-view/976c3311-git.json @@ -0,0 +1,65 @@ +{ + "fingerprint": { + "/home/speak/.xlings/.xlings.json": "4014023:-4643116326602899284", + "/home/speak/.xlings/data/versions.json": "3859010:-4643116326531898249", + "/home/speak/.xlings/subos/speak-agent-private/.xlings.json": "273600:-4643140060670125089", + "/home/speak/workspace/tmp/eco/cmdline/.xlings.json": "51:-4643109118759633077", + "/home/speak/workspace/tmp/eco/cmdline/.xlings/.xlings.json": "absent" + }, + "format": 1, + "program": "git", + "vinfo": { + "git": { + "filename": "git", + "type": "program", + "versions": { + "2.53.0": { + "bindingGroup": { + "group": "git", + "provider": "xim:git", + "rootTarget": "git", + "rootVersion": "2.53.0", + "version": "2.53.0" + }, + "bindingMembers": { + "git": "2.53.0" + }, + "destinationName": "git", + "envs": { + "GIT_SSL_CAINFO": "/etc/ssl/certs/ca-certificates.crt" + }, + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-git/2.53.0/bin", + "sourceName": "git" + }, + "2.53.0-1": { + "bindingGroup": { + "group": "git", + "provider": "xim:git", + "rootTarget": "git", + "rootVersion": "2.53.0-1", + "version": "2.53.0-1" + }, + "bindingMembers": { + "git": "2.53.0-1" + }, + "destinationName": "git", + "envs": { + "GIT_SSL_CAINFO": "/etc/ssl/certs/ca-certificates.crt" + }, + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-git/2.53.0-1/bin", + "sourceName": "git" + } + } + } + }, + "workspace": { + "git": { + "active": "2.53.0", + "installed": [ + "2.53.0" + ] + } + } +} \ No newline at end of file diff --git a/.xlings/subos/_/.shim-view/976c3311-mcpp.json b/.xlings/subos/_/.shim-view/976c3311-mcpp.json new file mode 100644 index 0000000..87cbe35 --- /dev/null +++ b/.xlings/subos/_/.shim-view/976c3311-mcpp.json @@ -0,0 +1,1385 @@ +{ + "fingerprint": { + "/home/speak/.xlings/.xlings.json": "4014023:-4643116326602899284", + "/home/speak/.xlings/data/versions.json": "3859010:-4643116326531898249", + "/home/speak/.xlings/subos/speak-agent-private/.xlings.json": "273600:-4643140060670125089", + "/home/speak/workspace/tmp/eco/cmdline/.xlings.json": "51:-4643109118759633077", + "/home/speak/workspace/tmp/eco/cmdline/.xlings/.xlings.json": "absent" + }, + "format": 1, + "program": "mcpp", + "vinfo": { + "mcpp": { + "filename": "mcpp", + "type": "program", + "versions": { + "0.0.109": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "0.0.109", + "version": "0.0.109" + }, + "bindingMembers": { + "mcpp": "0.0.109" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/0.0.109/bin", + "sourceName": "mcpp" + }, + "2026.10.1.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.1.1", + "version": "2026.10.1.1" + }, + "bindingMembers": { + "mcpp": "2026.10.1.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.1.1/bin", + "sourceName": "mcpp" + }, + "2026.10.1.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.1.2", + "version": "2026.10.1.2" + }, + "bindingMembers": { + "mcpp": "2026.10.1.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.1.2/bin", + "sourceName": "mcpp" + }, + "2026.10.1.3": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.1.3", + "version": "2026.10.1.3" + }, + "bindingMembers": { + "mcpp": "2026.10.1.3" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.1.3/bin", + "sourceName": "mcpp" + }, + "2026.10.10.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.10.2", + "version": "2026.10.10.2" + }, + "bindingMembers": { + "mcpp": "2026.10.10.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.10.2/bin", + "sourceName": "mcpp" + }, + "2026.10.11.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.11.1", + "version": "2026.10.11.1" + }, + "bindingMembers": { + "mcpp": "2026.10.11.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.11.1/bin", + "sourceName": "mcpp" + }, + "2026.10.16.3": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.16.3", + "version": "2026.10.16.3" + }, + "bindingMembers": { + "mcpp": "2026.10.16.3" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.16.3/bin", + "sourceName": "mcpp" + }, + "2026.10.19.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.19.1", + "version": "2026.10.19.1" + }, + "bindingMembers": { + "mcpp": "2026.10.19.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.19.1/bin", + "sourceName": "mcpp" + }, + "2026.10.21.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.21.1", + "version": "2026.10.21.1" + }, + "bindingMembers": { + "mcpp": "2026.10.21.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.21.1/bin", + "sourceName": "mcpp" + }, + "2026.10.24.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.24.1", + "version": "2026.10.24.1" + }, + "bindingMembers": { + "mcpp": "2026.10.24.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.24.1/bin", + "sourceName": "mcpp" + }, + "2026.10.26.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.26.1", + "version": "2026.10.26.1" + }, + "bindingMembers": { + "mcpp": "2026.10.26.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.26.1/bin", + "sourceName": "mcpp" + }, + "2026.10.26.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.26.2", + "version": "2026.10.26.2" + }, + "bindingMembers": { + "mcpp": "2026.10.26.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.26.2/bin", + "sourceName": "mcpp" + }, + "2026.10.27.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.27.1", + "version": "2026.10.27.1" + }, + "bindingMembers": { + "mcpp": "2026.10.27.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.27.1/bin", + "sourceName": "mcpp" + }, + "2026.10.29.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.29.1", + "version": "2026.10.29.1" + }, + "bindingMembers": { + "mcpp": "2026.10.29.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.29.1/bin", + "sourceName": "mcpp" + }, + "2026.10.3.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.3.1", + "version": "2026.10.3.1" + }, + "bindingMembers": { + "mcpp": "2026.10.3.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.3.1/bin", + "sourceName": "mcpp" + }, + "2026.10.31.3": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.31.3", + "version": "2026.10.31.3" + }, + "bindingMembers": { + "mcpp": "2026.10.31.3" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.31.3/bin", + "sourceName": "mcpp" + }, + "2026.10.5.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.5.1", + "version": "2026.10.5.1" + }, + "bindingMembers": { + "mcpp": "2026.10.5.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.5.1/bin", + "sourceName": "mcpp" + }, + "2026.10.5.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.5.2", + "version": "2026.10.5.2" + }, + "bindingMembers": { + "mcpp": "2026.10.5.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.5.2/bin", + "sourceName": "mcpp" + }, + "2026.10.5.3": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.5.3", + "version": "2026.10.5.3" + }, + "bindingMembers": { + "mcpp": "2026.10.5.3" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.5.3/bin", + "sourceName": "mcpp" + }, + "2026.10.8.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.10.8.1", + "version": "2026.10.8.1" + }, + "bindingMembers": { + "mcpp": "2026.10.8.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.10.8.1/bin", + "sourceName": "mcpp" + }, + "2026.11.10.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.11.10.1", + "version": "2026.11.10.1" + }, + "bindingMembers": { + "mcpp": "2026.11.10.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.11.10.1/bin", + "sourceName": "mcpp" + }, + "2026.11.10.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.11.10.2", + "version": "2026.11.10.2" + }, + "bindingMembers": { + "mcpp": "2026.11.10.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.11.10.2/bin", + "sourceName": "mcpp" + }, + "2026.11.12.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.11.12.1", + "version": "2026.11.12.1" + }, + "bindingMembers": { + "mcpp": "2026.11.12.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.11.12.1/bin", + "sourceName": "mcpp" + }, + "2026.11.2.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.11.2.2", + "version": "2026.11.2.2" + }, + "bindingMembers": { + "mcpp": "2026.11.2.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.11.2.2/bin", + "sourceName": "mcpp" + }, + "2026.11.5.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.11.5.1", + "version": "2026.11.5.1" + }, + "bindingMembers": { + "mcpp": "2026.11.5.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.11.5.1/bin", + "sourceName": "mcpp" + }, + "2026.11.7.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.11.7.2", + "version": "2026.11.7.2" + }, + "bindingMembers": { + "mcpp": "2026.11.7.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.11.7.2/bin", + "sourceName": "mcpp" + }, + "2026.11.8.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.11.8.1", + "version": "2026.11.8.1" + }, + "bindingMembers": { + "mcpp": "2026.11.8.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.11.8.1/bin", + "sourceName": "mcpp" + }, + "2026.11.9.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.11.9.1", + "version": "2026.11.9.1" + }, + "bindingMembers": { + "mcpp": "2026.11.9.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.11.9.1/bin", + "sourceName": "mcpp" + }, + "2026.7.27.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.7.27.1", + "version": "2026.7.27.1" + }, + "bindingMembers": { + "mcpp": "2026.7.27.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.7.27.1/bin", + "sourceName": "mcpp" + }, + "2026.8.8.4": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.8.8.4", + "version": "2026.8.8.4" + }, + "bindingMembers": { + "mcpp": "2026.8.8.4" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.8.8.4/bin", + "sourceName": "mcpp" + }, + "2026.9.10.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.10.1", + "version": "2026.9.10.1" + }, + "bindingMembers": { + "mcpp": "2026.9.10.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.10.1/bin", + "sourceName": "mcpp" + }, + "2026.9.10.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.10.2", + "version": "2026.9.10.2" + }, + "bindingMembers": { + "mcpp": "2026.9.10.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.10.2/bin", + "sourceName": "mcpp" + }, + "2026.9.11.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.11.2", + "version": "2026.9.11.2" + }, + "bindingMembers": { + "mcpp": "2026.9.11.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.11.2/bin", + "sourceName": "mcpp" + }, + "2026.9.11.4": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.11.4", + "version": "2026.9.11.4" + }, + "bindingMembers": { + "mcpp": "2026.9.11.4" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.11.4/bin", + "sourceName": "mcpp" + }, + "2026.9.12.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.12.2", + "version": "2026.9.12.2" + }, + "bindingMembers": { + "mcpp": "2026.9.12.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.12.2/bin", + "sourceName": "mcpp" + }, + "2026.9.12.4": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.12.4", + "version": "2026.9.12.4" + }, + "bindingMembers": { + "mcpp": "2026.9.12.4" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.12.4/bin", + "sourceName": "mcpp" + }, + "2026.9.13.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.13.1", + "version": "2026.9.13.1" + }, + "bindingMembers": { + "mcpp": "2026.9.13.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.13.1/bin", + "sourceName": "mcpp" + }, + "2026.9.13.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.13.2", + "version": "2026.9.13.2" + }, + "bindingMembers": { + "mcpp": "2026.9.13.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.13.2/bin", + "sourceName": "mcpp" + }, + "2026.9.14.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.14.1", + "version": "2026.9.14.1" + }, + "bindingMembers": { + "mcpp": "2026.9.14.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.14.1/bin", + "sourceName": "mcpp" + }, + "2026.9.14.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.14.2", + "version": "2026.9.14.2" + }, + "bindingMembers": { + "mcpp": "2026.9.14.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.14.2/bin", + "sourceName": "mcpp" + }, + "2026.9.14.3": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.14.3", + "version": "2026.9.14.3" + }, + "bindingMembers": { + "mcpp": "2026.9.14.3" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.14.3/bin", + "sourceName": "mcpp" + }, + "2026.9.15.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.15.1", + "version": "2026.9.15.1" + }, + "bindingMembers": { + "mcpp": "2026.9.15.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.15.1/bin", + "sourceName": "mcpp" + }, + "2026.9.16.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.16.1", + "version": "2026.9.16.1" + }, + "bindingMembers": { + "mcpp": "2026.9.16.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.16.1/bin", + "sourceName": "mcpp" + }, + "2026.9.16.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.16.2", + "version": "2026.9.16.2" + }, + "bindingMembers": { + "mcpp": "2026.9.16.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.16.2/bin", + "sourceName": "mcpp" + }, + "2026.9.17.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.17.1", + "version": "2026.9.17.1" + }, + "bindingMembers": { + "mcpp": "2026.9.17.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.17.1/bin", + "sourceName": "mcpp" + }, + "2026.9.17.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.17.2", + "version": "2026.9.17.2" + }, + "bindingMembers": { + "mcpp": "2026.9.17.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.17.2/bin", + "sourceName": "mcpp" + }, + "2026.9.17.3": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.17.3", + "version": "2026.9.17.3" + }, + "bindingMembers": { + "mcpp": "2026.9.17.3" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.17.3/bin", + "sourceName": "mcpp" + }, + "2026.9.18.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.18.1", + "version": "2026.9.18.1" + }, + "bindingMembers": { + "mcpp": "2026.9.18.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.18.1/bin", + "sourceName": "mcpp" + }, + "2026.9.18.3": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.18.3", + "version": "2026.9.18.3" + }, + "bindingMembers": { + "mcpp": "2026.9.18.3" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.18.3/bin", + "sourceName": "mcpp" + }, + "2026.9.2.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.2.1", + "version": "2026.9.2.1" + }, + "bindingMembers": { + "mcpp": "2026.9.2.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.2.1/bin", + "sourceName": "mcpp" + }, + "2026.9.20.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.20.1", + "version": "2026.9.20.1" + }, + "bindingMembers": { + "mcpp": "2026.9.20.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.20.1/bin", + "sourceName": "mcpp" + }, + "2026.9.21.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.21.1", + "version": "2026.9.21.1" + }, + "bindingMembers": { + "mcpp": "2026.9.21.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.21.1/bin", + "sourceName": "mcpp" + }, + "2026.9.21.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.21.2", + "version": "2026.9.21.2" + }, + "bindingMembers": { + "mcpp": "2026.9.21.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.21.2/bin", + "sourceName": "mcpp" + }, + "2026.9.21.3": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.21.3", + "version": "2026.9.21.3" + }, + "bindingMembers": { + "mcpp": "2026.9.21.3" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.21.3/bin", + "sourceName": "mcpp" + }, + "2026.9.24.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.24.1", + "version": "2026.9.24.1" + }, + "bindingMembers": { + "mcpp": "2026.9.24.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.24.1/bin", + "sourceName": "mcpp" + }, + "2026.9.25.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.25.1", + "version": "2026.9.25.1" + }, + "bindingMembers": { + "mcpp": "2026.9.25.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.25.1/bin", + "sourceName": "mcpp" + }, + "2026.9.26.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.26.1", + "version": "2026.9.26.1" + }, + "bindingMembers": { + "mcpp": "2026.9.26.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.26.1/bin", + "sourceName": "mcpp" + }, + "2026.9.26.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.26.2", + "version": "2026.9.26.2" + }, + "bindingMembers": { + "mcpp": "2026.9.26.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.26.2/bin", + "sourceName": "mcpp" + }, + "2026.9.27.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.27.1", + "version": "2026.9.27.1" + }, + "bindingMembers": { + "mcpp": "2026.9.27.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.27.1/bin", + "sourceName": "mcpp" + }, + "2026.9.28.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.28.1", + "version": "2026.9.28.1" + }, + "bindingMembers": { + "mcpp": "2026.9.28.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.28.1/bin", + "sourceName": "mcpp" + }, + "2026.9.28.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.28.2", + "version": "2026.9.28.2" + }, + "bindingMembers": { + "mcpp": "2026.9.28.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.28.2/bin", + "sourceName": "mcpp" + }, + "2026.9.28.3": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.28.3", + "version": "2026.9.28.3" + }, + "bindingMembers": { + "mcpp": "2026.9.28.3" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.28.3/bin", + "sourceName": "mcpp" + }, + "2026.9.29.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.29.1", + "version": "2026.9.29.1" + }, + "bindingMembers": { + "mcpp": "2026.9.29.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.29.1/bin", + "sourceName": "mcpp" + }, + "2026.9.29.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.29.2", + "version": "2026.9.29.2" + }, + "bindingMembers": { + "mcpp": "2026.9.29.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.29.2/bin", + "sourceName": "mcpp" + }, + "2026.9.29.3": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.29.3", + "version": "2026.9.29.3" + }, + "bindingMembers": { + "mcpp": "2026.9.29.3" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.29.3/bin", + "sourceName": "mcpp" + }, + "2026.9.29.4": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.29.4", + "version": "2026.9.29.4" + }, + "bindingMembers": { + "mcpp": "2026.9.29.4" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.29.4/bin", + "sourceName": "mcpp" + }, + "2026.9.29.5": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.29.5", + "version": "2026.9.29.5" + }, + "bindingMembers": { + "mcpp": "2026.9.29.5" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.29.5/bin", + "sourceName": "mcpp" + }, + "2026.9.3.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.3.1", + "version": "2026.9.3.1" + }, + "bindingMembers": { + "mcpp": "2026.9.3.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.3.1/bin", + "sourceName": "mcpp" + }, + "2026.9.3.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.3.2", + "version": "2026.9.3.2" + }, + "bindingMembers": { + "mcpp": "2026.9.3.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.3.2/bin", + "sourceName": "mcpp" + }, + "2026.9.30.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.30.1", + "version": "2026.9.30.1" + }, + "bindingMembers": { + "mcpp": "2026.9.30.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.30.1/bin", + "sourceName": "mcpp" + }, + "2026.9.30.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.30.2", + "version": "2026.9.30.2" + }, + "bindingMembers": { + "mcpp": "2026.9.30.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.30.2/bin", + "sourceName": "mcpp" + }, + "2026.9.4.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.4.1", + "version": "2026.9.4.1" + }, + "bindingMembers": { + "mcpp": "2026.9.4.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.4.1/bin", + "sourceName": "mcpp" + }, + "2026.9.4.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.4.2", + "version": "2026.9.4.2" + }, + "bindingMembers": { + "mcpp": "2026.9.4.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.4.2/bin", + "sourceName": "mcpp" + }, + "2026.9.4.3": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.4.3", + "version": "2026.9.4.3" + }, + "bindingMembers": { + "mcpp": "2026.9.4.3" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.4.3/bin", + "sourceName": "mcpp" + }, + "2026.9.5.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.5.1", + "version": "2026.9.5.1" + }, + "bindingMembers": { + "mcpp": "2026.9.5.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.5.1/bin", + "sourceName": "mcpp" + }, + "2026.9.5.2": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.5.2", + "version": "2026.9.5.2" + }, + "bindingMembers": { + "mcpp": "2026.9.5.2" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.5.2/bin", + "sourceName": "mcpp" + }, + "2026.9.5.4": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.5.4", + "version": "2026.9.5.4" + }, + "bindingMembers": { + "mcpp": "2026.9.5.4" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.5.4/bin", + "sourceName": "mcpp" + }, + "2026.9.6.6": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.6.6", + "version": "2026.9.6.6" + }, + "bindingMembers": { + "mcpp": "2026.9.6.6" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.6.6/bin", + "sourceName": "mcpp" + }, + "2026.9.7.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.7.1", + "version": "2026.9.7.1" + }, + "bindingMembers": { + "mcpp": "2026.9.7.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.7.1/bin", + "sourceName": "mcpp" + }, + "2026.9.8.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.8.1", + "version": "2026.9.8.1" + }, + "bindingMembers": { + "mcpp": "2026.9.8.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.8.1/bin", + "sourceName": "mcpp" + }, + "2026.9.9.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "2026.9.9.1", + "version": "2026.9.9.1" + }, + "bindingMembers": { + "mcpp": "2026.9.9.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.9.1/bin", + "sourceName": "mcpp" + }, + "local:0.0.30": { + "path": "/home/speak/.xlings/data/xpkgs/local-x-mcpp/0.0.30/bin" + }, + "local:0.0.33": { + "path": "/home/speak/.xlings/data/xpkgs/local-x-mcpp/0.0.33/bin" + }, + "local:0.0.34": { + "path": "/home/speak/.xlings/data/xpkgs/local-x-mcpp/0.0.34/bin" + }, + "local:0.0.35": { + "path": "/home/speak/.xlings/data/xpkgs/local-x-mcpp/0.0.35/bin" + }, + "local:0.0.36": { + "path": "/home/speak/.xlings/data/xpkgs/local-x-mcpp/0.0.36/bin" + }, + "local:0.0.38": { + "path": "/home/speak/.xlings/data/xpkgs/local-x-mcpp/0.0.38/bin" + }, + "local:0.0.41": { + "path": "/home/speak/.xlings/data/xpkgs/local-x-mcpp/0.0.41/bin" + }, + "local:0.0.43": { + "path": "/home/speak/.xlings/data/xpkgs/local-x-mcpp/0.0.43/bin" + }, + "local:0.0.44": { + "path": "/home/speak/.xlings/data/xpkgs/local-x-mcpp/0.0.44/bin" + }, + "local:0.0.45": { + "path": "/home/speak/.xlings/data/xpkgs/local-x-mcpp/0.0.45/bin" + }, + "local:0.0.56": { + "bindingGroup": { + "group": "mcpp", + "provider": "local:mcpp", + "rootTarget": "mcpp", + "rootVersion": "local:0.0.56", + "version": "0.0.56" + }, + "bindingMembers": { + "mcpp": "local:0.0.56" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/local-x-mcpp/0.0.56/bin", + "sourceName": "mcpp" + }, + "xim:2026.9.1.1": { + "bindingGroup": { + "group": "mcpp", + "provider": "xim:mcpp", + "rootTarget": "mcpp", + "rootVersion": "xim:2026.9.1.1", + "version": "2026.9.1.1" + }, + "bindingMembers": { + "mcpp": "xim:2026.9.1.1" + }, + "destinationName": "mcpp", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-mcpp/2026.9.1.1/bin", + "sourceName": "mcpp" + } + } + } + }, + "workspace": { + "mcpp": { + "active": "2026.11.8.1", + "installed": [ + "2026.11.8.1" + ] + } + } +} \ No newline at end of file diff --git a/.xlings/subos/_/.shim-view/976c3311-python3.json b/.xlings/subos/_/.shim-view/976c3311-python3.json new file mode 100644 index 0000000..544150e --- /dev/null +++ b/.xlings/subos/_/.shim-view/976c3311-python3.json @@ -0,0 +1,43 @@ +{ + "fingerprint": { + "/home/speak/.xlings/.xlings.json": "4014023:-4643116326602899284", + "/home/speak/.xlings/data/versions.json": "3859010:-4643116326531898249", + "/home/speak/.xlings/subos/speak-agent-private/.xlings.json": "273600:-4643140060670125089", + "/home/speak/workspace/tmp/eco/cmdline/.xlings.json": "51:-4643109118759633077", + "/home/speak/workspace/tmp/eco/cmdline/.xlings/.xlings.json": "absent" + }, + "format": 1, + "program": "python3", + "vinfo": { + "python3": { + "filename": "python3", + "type": "program", + "versions": { + "3.13.12": { + "bindingGroup": { + "group": "python3", + "provider": "xim:python", + "rootTarget": "python3", + "rootVersion": "3.13.12", + "version": "3.13.12" + }, + "bindingMembers": { + "python3": "3.13.12" + }, + "destinationName": "python3", + "kind": "program", + "path": "/home/speak/.xlings/data/xpkgs/xim-x-python/3.13.12/bin", + "sourceName": "python3" + } + } + } + }, + "workspace": { + "python3": { + "active": "3.13.12", + "installed": [ + "3.13.12" + ] + } + } +} \ No newline at end of file diff --git a/README.md b/README.md index b617ebb..7599d3d 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,9 @@ - **流式接口** — 链式构建方法,所见即所得的 API -- **子命令** — 支持 `action` 回调或手动分发的嵌套命令 +- **子命令** — 任意层级的嵌套命令,`action` 回调分发或手动分发 + +- **退出码** — `action` 可返回 `int`,`run` 返回该退出码;解析错误写入标准错误并返回 2 - **全局选项** — 标志透明地传播到所有子命令 diff --git a/docs/api.md b/docs/api.md index 3a2d1e1..b2c68d8 100644 --- a/docs/api.md +++ b/docs/api.md @@ -26,10 +26,10 @@ | `.arg(Arg)` `.arg("name")` | 添加位置参数(字符串即链式) | | `.option(Option)` `.option("name")` | 添加选项 | | `.subcommand(App)` `.subcommand("name")` | 添加子命令 | -| `.action(fn)` | 根/子命令执行函数 `void(const ParsedArgs&)` | +| `.action(fn)` | 根/子命令执行函数:`int(const ParsedArgs&)`(返回值即退出码)或 `void(const ParsedArgs&)`(退出码 0) | | `.parse(argc, argv)` `.parse_from(Argv)` `.parse_from(string_view)` | 解析,返回 `ParseResult` | -| `.run(parsed)` | 根据解析结果执行对应 action | -| `.run(argc, argv)` | 一键 parse + dispatch + 返回退出码(推荐主入口) | +| `.run(parsed)` | 执行解析结果所命中的命令的 action,返回其退出码(规则见“分发规则”) | +| `.run(argc, argv)` `.run(Argv)` | parse + dispatch,返回退出码(推荐主入口):help/version 为 0,解析错误写入标准错误并返回 2 | | `.print_help(program_name)` | 打印帮助 | --- @@ -117,12 +117,35 @@ int main(int argc, char* argv[]) { auto result = app.parse(argc, argv); if (!result) { if (!result.error().is_error()) return 0; // help / version - std::println("Error: {}", result.error().message); - return 1; + std::println(std::cerr, "myapp: {}", result.error().message); + return 2; } const cmdline::ParsedArgs& p = *result; ``` +`run(argc, argv)` 与 `run(Argv)` 的错误处理与此相同:错误信息写入标准错误(`: ` 及 `: see ' --help'`),返回 2;标准输出只承载 help、version 与 action 自身的输出。 + +### 分发规则与退出码 + +`run(parsed)` 沿解析结果向下找到最深一层被命中的子命令(任意层级),按以下规则执行: + +1. 该命令有 action 时,以其自身的解析结果执行,返回值即退出码(`void` action 为 0)。 +2. 该命令无 action 时,由路径上最近的、有 action 的祖先命令执行;祖先收到的是它自己这一层的解析结果,可按 `subcommand_name()` 自行分发。 +3. 路径上均无 action 且该命令带有子命令(命令组被单独调用)时,向标准错误写出可选的子命令并返回 2。 +4. 其余情况返回 0。 + +```cpp +cmdline::App remote("remote"); +remote.subcommand("add") + .arg("name").required() + .action([](const cmdline::ParsedArgs& a) -> int { + return add_remote(a.positional(0)) ? 0 : 1; + }); + +auto app = cmdline::App("git").subcommand(std::move(remote)); +return app.run(argc, argv); // git remote add origin → add 的退出码;git remote → 2 +``` + ### 多种输入 ```cpp @@ -158,7 +181,7 @@ return app.run(argc, argv); ```cpp auto result = app.parse(argc, argv); -if (!result) return result.error().is_error() ? 1 : 0; +if (!result) return result.error().is_error() ? 2 : 0; const cmdline::ParsedArgs& parsed = *result; if (parsed.has_subcommand()) { auto sub = parsed.subcommand(); @@ -225,18 +248,19 @@ app.subcommand("completions") .description("Generate shell completions") .option(Option("shell").takes_value().value_name("SHELL") .help("Target shell [possible values: bash, fish, zsh]")) - .action([&app](const ParsedArgs& p) { + .action([&app](const ParsedArgs& p) -> int { auto shell_opt = p.value("shell"); if (!shell_opt) { std::println(std::cerr, "SHELL not provided."); - return; + return 2; } auto shell = shell_from_string(*shell_opt); if (!shell || !shell_supported(*shell)) { std::println(std::cerr, "Unsupported shell: {}", *shell_opt); - return; + return 2; } std::print("{}", app.completions(*shell)); + return 0; }); ``` diff --git a/mcpp.toml b/mcpp.toml index fb6f912..f11673c 100644 --- a/mcpp.toml +++ b/mcpp.toml @@ -1,7 +1,7 @@ [package] namespace = "mcpplibs" name = "cmdline" -version = "0.0.3" +version = "0.0.4" description = "A simple command-line parsing library/framework for modern C++" license = "Apache-2.0" authors = ["mcpplibs"] diff --git a/src/cmdline.cppm b/src/cmdline.cppm index 330ad47..37a5d16 100644 --- a/src/cmdline.cppm +++ b/src/cmdline.cppm @@ -77,9 +77,18 @@ public: return *this; } [[nodiscard]] SubcommandBuilder subcommand(std::string_view name); + /// The command's action: `void(const ParsedArgs&)`, whose status is 0, or + /// `int(const ParsedArgs&)`, whose result is the status `run` returns. template + requires std::invocable [[nodiscard]] App& action(Fn&& fn) { - action_ = std::function(std::forward(fn)); + using result_t = std::invoke_result_t; + static_assert(std::is_void_v || std::is_convertible_v, + "an action returns void or a status convertible to int"); + if constexpr (std::is_void_v) + action_ = [f = std::forward(fn)](const ParsedArgs& p) mutable { f(p); return 0; }; + else + action_ = [f = std::forward(fn)](const ParsedArgs& p) mutable { return static_cast(f(p)); }; return *this; } @@ -87,24 +96,14 @@ public: std::vector tokens; tokens.reserve(argc > 1 ? argc - 1 : 0); for (int i = 1; i < argc; ++i) tokens.emplace_back(argv[i]); - global_keys_t global_keys; - global_opts_t global_opts; - std::vector