@tmhs/docker-mcp 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/README.md +79 -2
  2. package/dist/index.js +85 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/tools/configCreate.d.ts +3 -0
  5. package/dist/tools/configCreate.d.ts.map +1 -0
  6. package/dist/tools/configCreate.js +24 -0
  7. package/dist/tools/configCreate.js.map +1 -0
  8. package/dist/tools/configInspect.d.ts +3 -0
  9. package/dist/tools/configInspect.d.ts.map +1 -0
  10. package/dist/tools/configInspect.js +22 -0
  11. package/dist/tools/configInspect.js.map +1 -0
  12. package/dist/tools/configLs.d.ts +3 -0
  13. package/dist/tools/configLs.d.ts.map +1 -0
  14. package/dist/tools/configLs.js +22 -0
  15. package/dist/tools/configLs.js.map +1 -0
  16. package/dist/tools/configRm.d.ts +3 -0
  17. package/dist/tools/configRm.d.ts.map +1 -0
  18. package/dist/tools/configRm.js +17 -0
  19. package/dist/tools/configRm.js.map +1 -0
  20. package/dist/tools/nodeDemote.d.ts +3 -0
  21. package/dist/tools/nodeDemote.d.ts.map +1 -0
  22. package/dist/tools/nodeDemote.js +17 -0
  23. package/dist/tools/nodeDemote.js.map +1 -0
  24. package/dist/tools/nodeInspect.d.ts +3 -0
  25. package/dist/tools/nodeInspect.d.ts.map +1 -0
  26. package/dist/tools/nodeInspect.js +22 -0
  27. package/dist/tools/nodeInspect.js.map +1 -0
  28. package/dist/tools/nodeLs.d.ts +3 -0
  29. package/dist/tools/nodeLs.d.ts.map +1 -0
  30. package/dist/tools/nodeLs.js +22 -0
  31. package/dist/tools/nodeLs.js.map +1 -0
  32. package/dist/tools/nodePromote.d.ts +3 -0
  33. package/dist/tools/nodePromote.d.ts.map +1 -0
  34. package/dist/tools/nodePromote.js +17 -0
  35. package/dist/tools/nodePromote.js.map +1 -0
  36. package/dist/tools/nodePs.d.ts +3 -0
  37. package/dist/tools/nodePs.d.ts.map +1 -0
  38. package/dist/tools/nodePs.js +25 -0
  39. package/dist/tools/nodePs.js.map +1 -0
  40. package/dist/tools/nodeRm.d.ts +3 -0
  41. package/dist/tools/nodeRm.d.ts.map +1 -0
  42. package/dist/tools/nodeRm.js +22 -0
  43. package/dist/tools/nodeRm.js.map +1 -0
  44. package/dist/tools/nodeUpdate.d.ts +3 -0
  45. package/dist/tools/nodeUpdate.d.ts.map +1 -0
  46. package/dist/tools/nodeUpdate.js +29 -0
  47. package/dist/tools/nodeUpdate.js.map +1 -0
  48. package/dist/tools/secretCreate.d.ts +3 -0
  49. package/dist/tools/secretCreate.d.ts.map +1 -0
  50. package/dist/tools/secretCreate.js +24 -0
  51. package/dist/tools/secretCreate.js.map +1 -0
  52. package/dist/tools/secretInspect.d.ts +3 -0
  53. package/dist/tools/secretInspect.d.ts.map +1 -0
  54. package/dist/tools/secretInspect.js +22 -0
  55. package/dist/tools/secretInspect.js.map +1 -0
  56. package/dist/tools/secretLs.d.ts +3 -0
  57. package/dist/tools/secretLs.d.ts.map +1 -0
  58. package/dist/tools/secretLs.js +22 -0
  59. package/dist/tools/secretLs.js.map +1 -0
  60. package/dist/tools/secretRm.d.ts +3 -0
  61. package/dist/tools/secretRm.d.ts.map +1 -0
  62. package/dist/tools/secretRm.js +17 -0
  63. package/dist/tools/secretRm.js.map +1 -0
  64. package/dist/tools/serviceCreate.d.ts +3 -0
  65. package/dist/tools/serviceCreate.d.ts.map +1 -0
  66. package/dist/tools/serviceCreate.js +62 -0
  67. package/dist/tools/serviceCreate.js.map +1 -0
  68. package/dist/tools/serviceInspect.d.ts +3 -0
  69. package/dist/tools/serviceInspect.d.ts.map +1 -0
  70. package/dist/tools/serviceInspect.js +22 -0
  71. package/dist/tools/serviceInspect.js.map +1 -0
  72. package/dist/tools/serviceLogs.d.ts +3 -0
  73. package/dist/tools/serviceLogs.d.ts.map +1 -0
  74. package/dist/tools/serviceLogs.js +28 -0
  75. package/dist/tools/serviceLogs.js.map +1 -0
  76. package/dist/tools/serviceLs.d.ts +3 -0
  77. package/dist/tools/serviceLs.d.ts.map +1 -0
  78. package/dist/tools/serviceLs.js +22 -0
  79. package/dist/tools/serviceLs.js.map +1 -0
  80. package/dist/tools/servicePs.d.ts +3 -0
  81. package/dist/tools/servicePs.d.ts.map +1 -0
  82. package/dist/tools/servicePs.js +24 -0
  83. package/dist/tools/servicePs.js.map +1 -0
  84. package/dist/tools/serviceRm.d.ts +3 -0
  85. package/dist/tools/serviceRm.d.ts.map +1 -0
  86. package/dist/tools/serviceRm.js +17 -0
  87. package/dist/tools/serviceRm.js.map +1 -0
  88. package/dist/tools/serviceRollback.d.ts +3 -0
  89. package/dist/tools/serviceRollback.d.ts.map +1 -0
  90. package/dist/tools/serviceRollback.js +22 -0
  91. package/dist/tools/serviceRollback.js.map +1 -0
  92. package/dist/tools/serviceScale.d.ts +3 -0
  93. package/dist/tools/serviceScale.d.ts.map +1 -0
  94. package/dist/tools/serviceScale.js +17 -0
  95. package/dist/tools/serviceScale.js.map +1 -0
  96. package/dist/tools/serviceUpdate.d.ts +3 -0
  97. package/dist/tools/serviceUpdate.d.ts.map +1 -0
  98. package/dist/tools/serviceUpdate.js +45 -0
  99. package/dist/tools/serviceUpdate.js.map +1 -0
  100. package/dist/tools/stackConfig.d.ts +3 -0
  101. package/dist/tools/stackConfig.d.ts.map +1 -0
  102. package/dist/tools/stackConfig.js +17 -0
  103. package/dist/tools/stackConfig.js.map +1 -0
  104. package/dist/tools/stackDeploy.d.ts +3 -0
  105. package/dist/tools/stackDeploy.d.ts.map +1 -0
  106. package/dist/tools/stackDeploy.js +29 -0
  107. package/dist/tools/stackDeploy.js.map +1 -0
  108. package/dist/tools/stackLs.d.ts +3 -0
  109. package/dist/tools/stackLs.d.ts.map +1 -0
  110. package/dist/tools/stackLs.js +17 -0
  111. package/dist/tools/stackLs.js.map +1 -0
  112. package/dist/tools/stackPs.d.ts +3 -0
  113. package/dist/tools/stackPs.d.ts.map +1 -0
  114. package/dist/tools/stackPs.js +24 -0
  115. package/dist/tools/stackPs.js.map +1 -0
  116. package/dist/tools/stackRm.d.ts +3 -0
  117. package/dist/tools/stackRm.d.ts.map +1 -0
  118. package/dist/tools/stackRm.js +17 -0
  119. package/dist/tools/stackRm.js.map +1 -0
  120. package/dist/tools/stackServices.d.ts +3 -0
  121. package/dist/tools/stackServices.d.ts.map +1 -0
  122. package/dist/tools/stackServices.js +24 -0
  123. package/dist/tools/stackServices.js.map +1 -0
  124. package/dist/tools/swarmCa.d.ts +3 -0
  125. package/dist/tools/swarmCa.d.ts.map +1 -0
  126. package/dist/tools/swarmCa.js +26 -0
  127. package/dist/tools/swarmCa.js.map +1 -0
  128. package/dist/tools/swarmInit.d.ts +3 -0
  129. package/dist/tools/swarmInit.d.ts.map +1 -0
  130. package/dist/tools/swarmInit.js +29 -0
  131. package/dist/tools/swarmInit.js.map +1 -0
  132. package/dist/tools/swarmJoin.d.ts +3 -0
  133. package/dist/tools/swarmJoin.d.ts.map +1 -0
  134. package/dist/tools/swarmJoin.js +26 -0
  135. package/dist/tools/swarmJoin.js.map +1 -0
  136. package/dist/tools/swarmJoinToken.d.ts +3 -0
  137. package/dist/tools/swarmJoinToken.d.ts.map +1 -0
  138. package/dist/tools/swarmJoinToken.js +22 -0
  139. package/dist/tools/swarmJoinToken.js.map +1 -0
  140. package/dist/tools/swarmLeave.d.ts +3 -0
  141. package/dist/tools/swarmLeave.d.ts.map +1 -0
  142. package/dist/tools/swarmLeave.js +20 -0
  143. package/dist/tools/swarmLeave.js.map +1 -0
  144. package/dist/tools/swarmUnlock.d.ts +3 -0
  145. package/dist/tools/swarmUnlock.d.ts.map +1 -0
  146. package/dist/tools/swarmUnlock.js +33 -0
  147. package/dist/tools/swarmUnlock.js.map +1 -0
  148. package/dist/tools/swarmUnlockKey.d.ts +3 -0
  149. package/dist/tools/swarmUnlockKey.d.ts.map +1 -0
  150. package/dist/tools/swarmUnlockKey.js +21 -0
  151. package/dist/tools/swarmUnlockKey.js.map +1 -0
  152. package/dist/tools/swarmUpdate.d.ts +3 -0
  153. package/dist/tools/swarmUpdate.d.ts.map +1 -0
  154. package/dist/tools/swarmUpdate.js +29 -0
  155. package/dist/tools/swarmUpdate.js.map +1 -0
  156. package/dist/tools/trustInspect.d.ts +3 -0
  157. package/dist/tools/trustInspect.d.ts.map +1 -0
  158. package/dist/tools/trustInspect.js +22 -0
  159. package/dist/tools/trustInspect.js.map +1 -0
  160. package/dist/tools/trustKey.d.ts +3 -0
  161. package/dist/tools/trustKey.d.ts.map +1 -0
  162. package/dist/tools/trustKey.js +30 -0
  163. package/dist/tools/trustKey.js.map +1 -0
  164. package/dist/tools/trustRevoke.d.ts +3 -0
  165. package/dist/tools/trustRevoke.d.ts.map +1 -0
  166. package/dist/tools/trustRevoke.js +22 -0
  167. package/dist/tools/trustRevoke.js.map +1 -0
  168. package/dist/tools/trustSign.d.ts +3 -0
  169. package/dist/tools/trustSign.d.ts.map +1 -0
  170. package/dist/tools/trustSign.js +22 -0
  171. package/dist/tools/trustSign.js.map +1 -0
  172. package/package.json +2 -2
@@ -0,0 +1,30 @@
1
+ import { z } from "zod";
2
+ import { execDocker, errorResponse } from "../utils/docker-api.js";
3
+ const inputSchema = {
4
+ action: z.enum(["generate", "load"]).describe("Key action: generate a new key pair or load an existing key"),
5
+ name: z.string().optional().describe("Key name (required for generate)"),
6
+ keyFile: z.string().optional().describe("Path to the key file (required for load)"),
7
+ };
8
+ export function register(server) {
9
+ server.tool("docker_trustKey", "Manage Docker Content Trust signing keys (generate or load)", inputSchema, async (args) => {
10
+ try {
11
+ const cmdArgs = ["trust", "key", args.action];
12
+ if (args.action === "generate") {
13
+ if (!args.name)
14
+ throw new Error("name is required for generate action");
15
+ cmdArgs.push(args.name);
16
+ }
17
+ else {
18
+ if (!args.keyFile)
19
+ throw new Error("keyFile is required for load action");
20
+ cmdArgs.push(args.keyFile);
21
+ }
22
+ const output = await execDocker(cmdArgs);
23
+ return { content: [{ type: "text", text: output.trim() || `Key ${args.action} completed` }] };
24
+ }
25
+ catch (error) {
26
+ return errorResponse(error);
27
+ }
28
+ });
29
+ }
30
+ //# sourceMappingURL=trustKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trustKey.js","sourceRoot":"","sources":["../../src/tools/trustKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,6DAA6D,CAAC;IAC5G,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACxE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;CACpF,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,6DAA6D,EAC7D,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBACxE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBAC1E,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,OAAO,IAAI,CAAC,MAAM,YAAY,EAAE,CAAC,EAAE,CAAC;QACzG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function register(server: McpServer): void;
3
+ //# sourceMappingURL=trustRevoke.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trustRevoke.d.ts","sourceRoot":"","sources":["../../src/tools/trustRevoke.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiBhD"}
@@ -0,0 +1,22 @@
1
+ import { z } from "zod";
2
+ import { execDocker, errorResponse } from "../utils/docker-api.js";
3
+ const inputSchema = {
4
+ image: z.string().min(1).describe("Image to revoke trust for"),
5
+ yes: z.boolean().optional().default(true).describe("Skip confirmation prompt"),
6
+ };
7
+ export function register(server) {
8
+ server.tool("docker_trustRevoke", "Revoke Docker Content Trust for an image", inputSchema, async (args) => {
9
+ try {
10
+ const cmdArgs = ["trust", "revoke"];
11
+ if (args.yes)
12
+ cmdArgs.push("--yes");
13
+ cmdArgs.push(args.image);
14
+ const output = await execDocker(cmdArgs);
15
+ return { content: [{ type: "text", text: output.trim() || `Trust revoked for '${args.image}'` }] };
16
+ }
17
+ catch (error) {
18
+ return errorResponse(error);
19
+ }
20
+ });
21
+ }
22
+ //# sourceMappingURL=trustRevoke.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trustRevoke.js","sourceRoot":"","sources":["../../src/tools/trustRevoke.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC9D,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CAC/E,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,0CAA0C,EAC1C,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,sBAAsB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC;QAC9G,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function register(server: McpServer): void;
3
+ //# sourceMappingURL=trustSign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trustSign.d.ts","sourceRoot":"","sources":["../../src/tools/trustSign.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiBhD"}
@@ -0,0 +1,22 @@
1
+ import { z } from "zod";
2
+ import { execDocker, errorResponse } from "../utils/docker-api.js";
3
+ const inputSchema = {
4
+ image: z.string().min(1).describe("Image to sign (e.g. 'registry.example.com/myimage:latest')"),
5
+ local: z.boolean().optional().default(false).describe("Sign a locally tagged image"),
6
+ };
7
+ export function register(server) {
8
+ server.tool("docker_trustSign", "Sign an image for Docker Content Trust", inputSchema, async (args) => {
9
+ try {
10
+ const cmdArgs = ["trust", "sign"];
11
+ if (args.local)
12
+ cmdArgs.push("--local");
13
+ cmdArgs.push(args.image);
14
+ const output = await execDocker(cmdArgs, { timeout: 120_000 });
15
+ return { content: [{ type: "text", text: output.trim() || `Image '${args.image}' signed` }] };
16
+ }
17
+ catch (error) {
18
+ return errorResponse(error);
19
+ }
20
+ });
21
+ }
22
+ //# sourceMappingURL=trustSign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trustSign.js","sourceRoot":"","sources":["../../src/tools/trustSign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IAC/F,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CACrF,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,wCAAwC,EACxC,WAAW,EACX,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAC/D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,UAAU,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC,EAAE,CAAC;QACzG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tmhs/docker-mcp",
3
- "version": "0.9.0",
4
- "description": "MCP server for Docker CLI integration - 98 tools for containers, images, compose, volumes, networks, cleanup, observability, buildx, manifests, contexts, registry auth, and system info. Full lifecycle, image pipeline, complete Compose V2, volume/network CRUD, resource pruning, live monitoring, multi-platform builds, manifest management, remote host contexts, and registry login.",
3
+ "version": "0.11.0",
4
+ "description": "MCP server for Docker CLI integration - 140 tools for containers, images, compose, volumes, networks, cleanup, observability, buildx, manifests, contexts, registry auth, Swarm orchestration, stacks, configs, secrets, content trust, and system info.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "bin": {