feat(cli): Add reset CLI command to stop all processes and clear saved configurations; integrate interactive confirmation and client plugin updates
This commit is contained in:
@@ -1,5 +1,14 @@
|
||||
# Changelog
|
||||
|
||||
## 2025-08-29 - 4.2.0 - feat(cli)
|
||||
Add 'reset' CLI command to stop all processes and clear saved configurations; integrate interactive confirmation and client plugin updates
|
||||
|
||||
- Add new CLI command 'reset' (ts/cli/commands/reset.ts) which stops all processes and removes saved process configurations after an interactive confirmation.
|
||||
- Use @push.rocks/smartinteract for a confirmation prompt before destructive action.
|
||||
- Register the new reset command in the CLI bootstrap (ts/cli/index.ts).
|
||||
- Expose smartinteract from ts/plugins.ts and add @push.rocks/smartinteract to package.json dependencies.
|
||||
- Introduce a lightweight client plugin shim (ts/client/plugins.ts) and switch tspm.ipcclient to import client plugins from ./plugins.js.
|
||||
|
||||
## 2025-08-29 - 4.1.1 - fix(daemon)
|
||||
Bump @push.rocks/smartdaemon to ^2.0.9
|
||||
|
||||
|
@@ -35,6 +35,7 @@
|
||||
"@push.rocks/npmextra": "^5.3.3",
|
||||
"@push.rocks/projectinfo": "^5.0.2",
|
||||
"@push.rocks/smartcli": "^4.0.11",
|
||||
"@push.rocks/smartinteract": "^2.0.16",
|
||||
"@push.rocks/smartdaemon": "^2.0.9",
|
||||
"@push.rocks/smartipc": "^2.2.1",
|
||||
"@push.rocks/smartpath": "^6.0.0",
|
||||
|
245
pnpm-lock.yaml
generated
245
pnpm-lock.yaml
generated
@@ -20,6 +20,9 @@ importers:
|
||||
'@push.rocks/smartdaemon':
|
||||
specifier: ^2.0.9
|
||||
version: 2.0.9
|
||||
'@push.rocks/smartinteract':
|
||||
specifier: ^2.0.16
|
||||
version: 2.0.16
|
||||
'@push.rocks/smartipc':
|
||||
specifier: ^2.2.1
|
||||
version: 2.2.1
|
||||
@@ -551,6 +554,62 @@ packages:
|
||||
resolution: {integrity: sha512-mfOoUlIw8VBiJYPrl5RZfMzkXC/z7gbSpi2ecycrj/gRWLq2CMV+Q+0G+JPjeOmuNFgg0skEIzkVFzVYFP6URw==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@inquirer/checkbox@3.0.1':
|
||||
resolution: {integrity: sha512-0hm2nrToWUdD6/UHnel/UKGdk1//ke5zGUpHIvk5ZWmaKezlGxZkOJXNSWsdxO/rEqTkbB3lNC2J6nBElV2aAQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@inquirer/confirm@4.0.1':
|
||||
resolution: {integrity: sha512-46yL28o2NJ9doViqOy0VDcoTzng7rAb6yPQKU7VDLqkmbCaH4JqK4yk4XqlzNWy9PVC5pG1ZUXPBQv+VqnYs2w==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@inquirer/core@9.2.1':
|
||||
resolution: {integrity: sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@inquirer/editor@3.0.1':
|
||||
resolution: {integrity: sha512-VA96GPFaSOVudjKFraokEEmUQg/Lub6OXvbIEZU1SDCmBzRkHGhxoFAVaF30nyiB4m5cEbDgiI2QRacXZ2hw9Q==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@inquirer/expand@3.0.1':
|
||||
resolution: {integrity: sha512-ToG8d6RIbnVpbdPdiN7BCxZGiHOTomOX94C2FaT5KOHupV40tKEDozp12res6cMIfRKrXLJyexAZhWVHgbALSQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@inquirer/figures@1.0.13':
|
||||
resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@inquirer/input@3.0.1':
|
||||
resolution: {integrity: sha512-BDuPBmpvi8eMCxqC5iacloWqv+5tQSJlUafYWUe31ow1BVXjW2a5qe3dh4X/Z25Wp22RwvcaLCc2siHobEOfzg==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@inquirer/number@2.0.1':
|
||||
resolution: {integrity: sha512-QpR8jPhRjSmlr/mD2cw3IR8HRO7lSVOnqUvQa8scv1Lsr3xoAMMworcYW3J13z3ppjBFBD2ef1Ci6AE5Qn8goQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@inquirer/password@3.0.1':
|
||||
resolution: {integrity: sha512-haoeEPUisD1NeE2IanLOiFr4wcTXGWrBOyAyPZi1FfLJuXOzNmxCJPgUrGYKVh+Y8hfGJenIfz5Wb/DkE9KkMQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@inquirer/prompts@6.0.1':
|
||||
resolution: {integrity: sha512-yl43JD/86CIj3Mz5mvvLJqAOfIup7ncxfJ0Btnl0/v5TouVUyeEdcpknfgc+yMevS/48oH9WAkkw93m7otLb/A==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@inquirer/rawlist@3.0.1':
|
||||
resolution: {integrity: sha512-VgRtFIwZInUzTiPLSfDXK5jLrnpkuSOh1ctfaoygKAdPqjcjKYmGh6sCY1pb0aGnCGsmhUxoqLDUAU0ud+lGXQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@inquirer/search@2.0.1':
|
||||
resolution: {integrity: sha512-r5hBKZk3g5MkIzLVoSgE4evypGqtOannnB3PKTG9NRZxyFRKcfzrdxXXPcoJQsxJPzvdSU2Rn7pB7lw0GCmGAg==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@inquirer/select@3.0.1':
|
||||
resolution: {integrity: sha512-lUDGUxPhdWMkN/fHy1Lk7pF3nK1fh/gqeyWXmctefhxLYxlDsc7vsPBEpxrfVGDsVdyYJsiJoD4bJ1b623cV1Q==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@inquirer/type@2.0.0':
|
||||
resolution: {integrity: sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@isaacs/balanced-match@4.0.1':
|
||||
resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==}
|
||||
engines: {node: 20 || >=22}
|
||||
@@ -803,6 +862,9 @@ packages:
|
||||
'@push.rocks/smarthash@3.2.3':
|
||||
resolution: {integrity: sha512-fBPQCGYtOlfLORm9tI3MyoJVT8bixs3MNTAfDDGBw91UKfOVOrPk5jBU+PwVnqZl7IE5mc9b+4wqAJn3giqEpw==}
|
||||
|
||||
'@push.rocks/smartinteract@2.0.16':
|
||||
resolution: {integrity: sha512-eltvVRRUKBKd77DSFA4DPY2g4V4teZLNe8A93CDy/WglglYcUjxMoLY/b0DFTWCWKYT+yjk6Fe6p0FRrvX9Yvg==}
|
||||
|
||||
'@push.rocks/smartipc@2.2.1':
|
||||
resolution: {integrity: sha512-yBFZwJsWRyVdN1YRSiHafRMfn0PYIi2IStcQqPkiU4Srr6XPDMZD3mmIeV2V1WL6bWvRWf+4WF9Y+rLhj4jGdA==}
|
||||
|
||||
@@ -1573,6 +1635,9 @@ packages:
|
||||
'@types/ms@2.1.0':
|
||||
resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
|
||||
|
||||
'@types/mute-stream@0.0.4':
|
||||
resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==}
|
||||
|
||||
'@types/node-forge@1.3.14':
|
||||
resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==}
|
||||
|
||||
@@ -1660,6 +1725,9 @@ packages:
|
||||
'@types/which@3.0.4':
|
||||
resolution: {integrity: sha512-liyfuo/106JdlgSchJzXEQCVArk0CvevqPote8F8HgWgJ3dRCcTHgJIsLDuee0kxk/mhbInzIZk3QWSZJ8R+2w==}
|
||||
|
||||
'@types/wrap-ansi@3.0.0':
|
||||
resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==}
|
||||
|
||||
'@types/ws@7.4.7':
|
||||
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
|
||||
|
||||
@@ -1938,6 +2006,9 @@ packages:
|
||||
character-entities@2.0.2:
|
||||
resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
|
||||
|
||||
chardet@0.7.0:
|
||||
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
|
||||
|
||||
chokidar@4.0.3:
|
||||
resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
|
||||
engines: {node: '>= 14.16.0'}
|
||||
@@ -1967,6 +2038,10 @@ packages:
|
||||
resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
cli-width@4.1.0:
|
||||
resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==}
|
||||
engines: {node: '>= 12'}
|
||||
|
||||
cliui@7.0.4:
|
||||
resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
|
||||
|
||||
@@ -2399,6 +2474,10 @@ packages:
|
||||
extend@3.0.2:
|
||||
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
|
||||
|
||||
external-editor@3.1.0:
|
||||
resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
|
||||
engines: {node: '>=4'}
|
||||
|
||||
extract-zip@2.0.1:
|
||||
resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==}
|
||||
engines: {node: '>= 10.17.0'}
|
||||
@@ -2778,6 +2857,10 @@ packages:
|
||||
ini@1.3.8:
|
||||
resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
|
||||
|
||||
inquirer@11.1.0:
|
||||
resolution: {integrity: sha512-CmLAZT65GG/v30c+D2Fk8+ceP6pxD6RL+hIUOWAltCmeyEqWYwqu9v76q03OvjyZ3AB0C1Ala2stn1z/rMqGEw==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
internal-ip@6.2.0:
|
||||
resolution: {integrity: sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -3429,6 +3512,10 @@ packages:
|
||||
ms@2.1.3:
|
||||
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
||||
|
||||
mute-stream@1.0.0:
|
||||
resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==}
|
||||
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
|
||||
|
||||
nanocolors@0.2.13:
|
||||
resolution: {integrity: sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==}
|
||||
|
||||
@@ -3524,6 +3611,10 @@ packages:
|
||||
resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
os-tmpdir@1.0.2:
|
||||
resolution: {integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
p-cancelable@3.0.0:
|
||||
resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
|
||||
engines: {node: '>=12.20'}
|
||||
@@ -3871,6 +3962,10 @@ packages:
|
||||
rss-parser@3.13.0:
|
||||
resolution: {integrity: sha512-7jWUBV5yGN3rqMMj7CZufl/291QAhvrrGpDNE4k/02ZchL0npisiYYqULF71jCEKoIiHvK/Q2e6IkDwPziT7+w==}
|
||||
|
||||
run-async@3.0.0:
|
||||
resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==}
|
||||
engines: {node: '>=0.12.0'}
|
||||
|
||||
run-parallel@1.2.0:
|
||||
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
|
||||
|
||||
@@ -4182,6 +4277,10 @@ packages:
|
||||
tiny-worker@2.3.0:
|
||||
resolution: {integrity: sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g==}
|
||||
|
||||
tmp@0.0.33:
|
||||
resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
|
||||
engines: {node: '>=0.6.0'}
|
||||
|
||||
to-regex-range@5.0.1:
|
||||
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
|
||||
engines: {node: '>=8.0'}
|
||||
@@ -4487,6 +4586,10 @@ packages:
|
||||
resolution: {integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==}
|
||||
engines: {node: '>= 4.0.0'}
|
||||
|
||||
yoctocolors-cjs@2.1.3:
|
||||
resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
zod@3.25.76:
|
||||
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
|
||||
|
||||
@@ -5686,6 +5789,102 @@ snapshots:
|
||||
dependencies:
|
||||
happy-dom: 15.11.7
|
||||
|
||||
'@inquirer/checkbox@3.0.1':
|
||||
dependencies:
|
||||
'@inquirer/core': 9.2.1
|
||||
'@inquirer/figures': 1.0.13
|
||||
'@inquirer/type': 2.0.0
|
||||
ansi-escapes: 4.3.2
|
||||
yoctocolors-cjs: 2.1.3
|
||||
|
||||
'@inquirer/confirm@4.0.1':
|
||||
dependencies:
|
||||
'@inquirer/core': 9.2.1
|
||||
'@inquirer/type': 2.0.0
|
||||
|
||||
'@inquirer/core@9.2.1':
|
||||
dependencies:
|
||||
'@inquirer/figures': 1.0.13
|
||||
'@inquirer/type': 2.0.0
|
||||
'@types/mute-stream': 0.0.4
|
||||
'@types/node': 22.13.10
|
||||
'@types/wrap-ansi': 3.0.0
|
||||
ansi-escapes: 4.3.2
|
||||
cli-width: 4.1.0
|
||||
mute-stream: 1.0.0
|
||||
signal-exit: 4.1.0
|
||||
strip-ansi: 6.0.1
|
||||
wrap-ansi: 6.2.0
|
||||
yoctocolors-cjs: 2.1.3
|
||||
|
||||
'@inquirer/editor@3.0.1':
|
||||
dependencies:
|
||||
'@inquirer/core': 9.2.1
|
||||
'@inquirer/type': 2.0.0
|
||||
external-editor: 3.1.0
|
||||
|
||||
'@inquirer/expand@3.0.1':
|
||||
dependencies:
|
||||
'@inquirer/core': 9.2.1
|
||||
'@inquirer/type': 2.0.0
|
||||
yoctocolors-cjs: 2.1.3
|
||||
|
||||
'@inquirer/figures@1.0.13': {}
|
||||
|
||||
'@inquirer/input@3.0.1':
|
||||
dependencies:
|
||||
'@inquirer/core': 9.2.1
|
||||
'@inquirer/type': 2.0.0
|
||||
|
||||
'@inquirer/number@2.0.1':
|
||||
dependencies:
|
||||
'@inquirer/core': 9.2.1
|
||||
'@inquirer/type': 2.0.0
|
||||
|
||||
'@inquirer/password@3.0.1':
|
||||
dependencies:
|
||||
'@inquirer/core': 9.2.1
|
||||
'@inquirer/type': 2.0.0
|
||||
ansi-escapes: 4.3.2
|
||||
|
||||
'@inquirer/prompts@6.0.1':
|
||||
dependencies:
|
||||
'@inquirer/checkbox': 3.0.1
|
||||
'@inquirer/confirm': 4.0.1
|
||||
'@inquirer/editor': 3.0.1
|
||||
'@inquirer/expand': 3.0.1
|
||||
'@inquirer/input': 3.0.1
|
||||
'@inquirer/number': 2.0.1
|
||||
'@inquirer/password': 3.0.1
|
||||
'@inquirer/rawlist': 3.0.1
|
||||
'@inquirer/search': 2.0.1
|
||||
'@inquirer/select': 3.0.1
|
||||
|
||||
'@inquirer/rawlist@3.0.1':
|
||||
dependencies:
|
||||
'@inquirer/core': 9.2.1
|
||||
'@inquirer/type': 2.0.0
|
||||
yoctocolors-cjs: 2.1.3
|
||||
|
||||
'@inquirer/search@2.0.1':
|
||||
dependencies:
|
||||
'@inquirer/core': 9.2.1
|
||||
'@inquirer/figures': 1.0.13
|
||||
'@inquirer/type': 2.0.0
|
||||
yoctocolors-cjs: 2.1.3
|
||||
|
||||
'@inquirer/select@3.0.1':
|
||||
dependencies:
|
||||
'@inquirer/core': 9.2.1
|
||||
'@inquirer/figures': 1.0.13
|
||||
'@inquirer/type': 2.0.0
|
||||
ansi-escapes: 4.3.2
|
||||
yoctocolors-cjs: 2.1.3
|
||||
|
||||
'@inquirer/type@2.0.0':
|
||||
dependencies:
|
||||
mute-stream: 1.0.0
|
||||
|
||||
'@isaacs/balanced-match@4.0.1': {}
|
||||
|
||||
'@isaacs/brace-expansion@5.0.0':
|
||||
@@ -6221,6 +6420,13 @@ snapshots:
|
||||
'@types/through2': 2.0.41
|
||||
through2: 4.0.2
|
||||
|
||||
'@push.rocks/smartinteract@2.0.16':
|
||||
dependencies:
|
||||
'@push.rocks/lik': 6.2.2
|
||||
'@push.rocks/smartobject': 1.0.12
|
||||
'@push.rocks/smartpromise': 4.2.3
|
||||
inquirer: 11.1.0
|
||||
|
||||
'@push.rocks/smartipc@2.2.1':
|
||||
dependencies:
|
||||
'@push.rocks/smartdelay': 3.0.5
|
||||
@@ -7475,6 +7681,10 @@ snapshots:
|
||||
|
||||
'@types/ms@2.1.0': {}
|
||||
|
||||
'@types/mute-stream@0.0.4':
|
||||
dependencies:
|
||||
'@types/node': 22.13.10
|
||||
|
||||
'@types/node-forge@1.3.14':
|
||||
dependencies:
|
||||
'@types/node': 22.13.10
|
||||
@@ -7561,6 +7771,8 @@ snapshots:
|
||||
|
||||
'@types/which@3.0.4': {}
|
||||
|
||||
'@types/wrap-ansi@3.0.0': {}
|
||||
|
||||
'@types/ws@7.4.7':
|
||||
dependencies:
|
||||
'@types/node': 22.13.10
|
||||
@@ -7888,6 +8100,8 @@ snapshots:
|
||||
|
||||
character-entities@2.0.2: {}
|
||||
|
||||
chardet@0.7.0: {}
|
||||
|
||||
chokidar@4.0.3:
|
||||
dependencies:
|
||||
readdirp: 4.1.2
|
||||
@@ -7914,6 +8128,8 @@ snapshots:
|
||||
dependencies:
|
||||
restore-cursor: 3.1.0
|
||||
|
||||
cli-width@4.1.0: {}
|
||||
|
||||
cliui@7.0.4:
|
||||
dependencies:
|
||||
string-width: 4.2.3
|
||||
@@ -8370,6 +8586,12 @@ snapshots:
|
||||
|
||||
extend@3.0.2: {}
|
||||
|
||||
external-editor@3.1.0:
|
||||
dependencies:
|
||||
chardet: 0.7.0
|
||||
iconv-lite: 0.4.24
|
||||
tmp: 0.0.33
|
||||
|
||||
extract-zip@2.0.1:
|
||||
dependencies:
|
||||
debug: 4.4.1
|
||||
@@ -8842,6 +9064,17 @@ snapshots:
|
||||
|
||||
ini@1.3.8: {}
|
||||
|
||||
inquirer@11.1.0:
|
||||
dependencies:
|
||||
'@inquirer/core': 9.2.1
|
||||
'@inquirer/prompts': 6.0.1
|
||||
'@inquirer/type': 2.0.0
|
||||
'@types/mute-stream': 0.0.4
|
||||
ansi-escapes: 4.3.2
|
||||
mute-stream: 1.0.0
|
||||
run-async: 3.0.0
|
||||
rxjs: 7.8.2
|
||||
|
||||
internal-ip@6.2.0:
|
||||
dependencies:
|
||||
default-gateway: 6.0.3
|
||||
@@ -9680,6 +9913,8 @@ snapshots:
|
||||
|
||||
ms@2.1.3: {}
|
||||
|
||||
mute-stream@1.0.0: {}
|
||||
|
||||
nanocolors@0.2.13: {}
|
||||
|
||||
nanoid@3.3.11: {}
|
||||
@@ -9760,6 +9995,8 @@ snapshots:
|
||||
is-docker: 2.2.1
|
||||
is-wsl: 2.2.0
|
||||
|
||||
os-tmpdir@1.0.2: {}
|
||||
|
||||
p-cancelable@3.0.0: {}
|
||||
|
||||
p-event@4.2.0:
|
||||
@@ -10179,6 +10416,8 @@ snapshots:
|
||||
entities: 2.2.0
|
||||
xml2js: 0.5.0
|
||||
|
||||
run-async@3.0.0: {}
|
||||
|
||||
run-parallel@1.2.0:
|
||||
dependencies:
|
||||
queue-microtask: 1.2.3
|
||||
@@ -10558,6 +10797,10 @@ snapshots:
|
||||
dependencies:
|
||||
esm: 3.2.25
|
||||
|
||||
tmp@0.0.33:
|
||||
dependencies:
|
||||
os-tmpdir: 1.0.2
|
||||
|
||||
to-regex-range@5.0.1:
|
||||
dependencies:
|
||||
is-number: 7.0.0
|
||||
@@ -10828,6 +11071,8 @@ snapshots:
|
||||
|
||||
ylru@1.4.0: {}
|
||||
|
||||
yoctocolors-cjs@2.1.3: {}
|
||||
|
||||
zod@3.25.76: {}
|
||||
|
||||
zwitch@2.0.4: {}
|
||||
|
@@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@git.zone/tspm',
|
||||
version: '4.1.1',
|
||||
version: '4.2.0',
|
||||
description: 'a no fuzz process manager'
|
||||
}
|
||||
|
50
ts/cli/commands/reset.ts
Normal file
50
ts/cli/commands/reset.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
import * as plugins from '../../plugins.js';
|
||||
import { registerIpcCommand } from '../registration/index.js';
|
||||
import { tspmIpcClient } from '../../client/tspm.ipcclient.js';
|
||||
|
||||
export function registerResetCommand(smartcli: plugins.smartcli.Smartcli) {
|
||||
registerIpcCommand(
|
||||
smartcli,
|
||||
'reset',
|
||||
async () => {
|
||||
console.log('This will stop all processes and clear saved configurations.');
|
||||
const confirmed = await plugins.smartinteract.SmartInteract.getCliConfirmation(
|
||||
'Are you sure you want to reset TSPM? (stops all and removes configs)',
|
||||
false,
|
||||
);
|
||||
|
||||
if (!confirmed) {
|
||||
console.log('Reset cancelled. No changes made.');
|
||||
return;
|
||||
}
|
||||
|
||||
// Stop all processes first
|
||||
const stopAllRes = await tspmIpcClient.request('stopAll', {});
|
||||
if (stopAllRes.failed.length) {
|
||||
console.log(
|
||||
`Stopped ${stopAllRes.stopped.length}, ${stopAllRes.failed.length} failed to stop. Proceeding with config reset...`,
|
||||
);
|
||||
} else {
|
||||
console.log(`Stopped ${stopAllRes.stopped.length} processes.`);
|
||||
}
|
||||
|
||||
// List all processes/configs currently known
|
||||
const listRes = await tspmIpcClient.request('list', {});
|
||||
|
||||
// Remove each config
|
||||
for (const proc of listRes.processes) {
|
||||
try {
|
||||
// Prefer 'remove' which handles stop-if-running semantics as well
|
||||
await tspmIpcClient.request('remove', { id: proc.id });
|
||||
console.log(`Removed config for process ${proc.id}.`);
|
||||
} catch (err) {
|
||||
console.error(`Failed to remove config for ${proc.id}:`, (err as Error)?.message || String(err));
|
||||
}
|
||||
}
|
||||
|
||||
console.log('TSPM has been reset: processes stopped and configs cleared.');
|
||||
},
|
||||
{ actionLabel: 'reset TSPM' },
|
||||
);
|
||||
}
|
||||
|
@@ -18,6 +18,7 @@ import { registerRestartAllCommand } from './commands/batch/restart-all.js';
|
||||
import { registerDaemonCommand } from './commands/daemon/index.js';
|
||||
import { registerEnableCommand } from './commands/service/enable.js';
|
||||
import { registerDisableCommand } from './commands/service/disable.js';
|
||||
import { registerResetCommand } from './commands/reset.js';
|
||||
|
||||
// Export types for external use
|
||||
export type { CliArguments } from './types.js';
|
||||
@@ -65,6 +66,9 @@ export const run = async (): Promise<void> => {
|
||||
registerEnableCommand(smartcliInstance);
|
||||
registerDisableCommand(smartcliInstance);
|
||||
|
||||
// Maintenance commands
|
||||
registerResetCommand(smartcliInstance);
|
||||
|
||||
// Start parsing commands
|
||||
smartcliInstance.startParse();
|
||||
};
|
||||
|
6
ts/client/plugins.ts
Normal file
6
ts/client/plugins.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
// Minimal plugin set for lightweight client startup
|
||||
import * as path from 'node:path';
|
||||
import * as smartipc from '@push.rocks/smartipc';
|
||||
|
||||
export { path, smartipc };
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import * as plugins from '../plugins.js';
|
||||
import * as plugins from './plugins.js';
|
||||
import * as paths from '../paths.js';
|
||||
|
||||
import type {
|
||||
|
@@ -12,9 +12,10 @@ import * as smartcli from '@push.rocks/smartcli';
|
||||
import * as smartdaemon from '@push.rocks/smartdaemon';
|
||||
import * as smartipc from '@push.rocks/smartipc';
|
||||
import * as smartpath from '@push.rocks/smartpath';
|
||||
import * as smartinteract from '@push.rocks/smartinteract';
|
||||
|
||||
// Export with explicit module types
|
||||
export { npmextra, projectinfo, smartcli, smartdaemon, smartipc, smartpath };
|
||||
export { npmextra, projectinfo, smartcli, smartdaemon, smartipc, smartpath, smartinteract };
|
||||
|
||||
// third-party scope
|
||||
import psTree from 'ps-tree';
|
||||
|
Reference in New Issue
Block a user