@exagone313/dsh-podman 0.2.0-rc.3 → 0.2.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 (191) hide show
  1. package/README.md +14 -2
  2. package/README.zh.md +14 -2
  3. package/cordis.patch.yml +58 -0
  4. package/dist/approval-reasons.d.ts +3 -4
  5. package/dist/approval-reasons.js +40 -49
  6. package/dist/approval-reasons.test.js +43 -15
  7. package/dist/approval.js +27 -10
  8. package/dist/approval.test.js +165 -34
  9. package/dist/card-route.d.ts +3 -2
  10. package/dist/card-route.js +154 -42
  11. package/dist/card-route.test.js +85 -43
  12. package/dist/card-test-support.js +39 -66
  13. package/dist/client/ContainerCard.d.ts +1 -1
  14. package/dist/client/ContainerCard.js +92 -50
  15. package/dist/client/card-protocol.d.ts +6 -3
  16. package/dist/client/container-card-caches.js +11 -6
  17. package/dist/client/container-card-controller.d.ts +16 -18
  18. package/dist/client/container-card-controller.js +92 -40
  19. package/dist/client/container-card-create-modal.d.ts +2 -2
  20. package/dist/client/container-card-create-modal.js +13 -5
  21. package/dist/client/container-card-default-env.d.ts +10 -0
  22. package/dist/client/container-card-default-env.js +69 -0
  23. package/dist/client/container-card-directory.d.ts +2 -2
  24. package/dist/client/container-card-directory.js +12 -4
  25. package/dist/client/container-card-editors.d.ts +3 -3
  26. package/dist/client/container-card-editors.js +104 -32
  27. package/dist/client/container-card-images.d.ts +4 -4
  28. package/dist/client/container-card-images.js +19 -6
  29. package/dist/client/container-card-paths.d.ts +3 -3
  30. package/dist/client/container-card-paths.js +18 -11
  31. package/dist/client/container-card-row.d.ts +10 -6
  32. package/dist/client/container-card-row.js +82 -13
  33. package/dist/client/container-card-secrets.d.ts +3 -3
  34. package/dist/client/container-card-secrets.js +8 -6
  35. package/dist/client/container-card-shared.d.ts +4 -17
  36. package/dist/client/container-card-shared.js +9 -25
  37. package/dist/client/container-card-styles.d.ts +2 -8
  38. package/dist/client/container-card-styles.js +14 -52
  39. package/dist/client/container-card-volumes.d.ts +2 -2
  40. package/dist/client/container-card-volumes.js +9 -5
  41. package/dist/client/container-card-workspace.d.ts +8 -6
  42. package/dist/client/container-card-workspace.js +9 -3
  43. package/dist/client/directory-picker.js +2 -1
  44. package/dist/client/index.js +13141 -2036
  45. package/dist/client/locales.d.ts +6 -1
  46. package/dist/client/locales.js +106 -38
  47. package/dist/client/podman-terminal-guide.d.ts +11 -0
  48. package/dist/client/podman-terminal-guide.js +208 -0
  49. package/dist/client/podman-terminal-title.d.ts +7 -0
  50. package/dist/client/podman-terminal-title.js +30 -0
  51. package/dist/client/podman-terminal.d.ts +26 -0
  52. package/dist/client/podman-terminal.js +412 -0
  53. package/dist/client/read-only-approval.d.ts +2 -2
  54. package/dist/client/read-only-approval.js +13 -3
  55. package/dist/client/slot-contract.d.ts +0 -11
  56. package/dist/client/terminal-preference.d.ts +26 -0
  57. package/dist/client/terminal-preference.js +67 -0
  58. package/dist/client/terminal-protocol.d.ts +85 -0
  59. package/dist/client/terminal-protocol.js +14 -0
  60. package/dist/client/terminal-tab.d.ts +60 -0
  61. package/dist/client/terminal-tab.js +35 -0
  62. package/dist/client/terminal-targets.d.ts +33 -0
  63. package/dist/client/terminal-targets.js +65 -0
  64. package/dist/client/terminal-titles.d.ts +23 -0
  65. package/dist/client/terminal-titles.js +52 -0
  66. package/dist/client/terminal-transport.d.ts +63 -0
  67. package/dist/client/terminal-transport.js +207 -0
  68. package/dist/client/tool-views.js +215 -49
  69. package/dist/container-env.d.ts +11 -0
  70. package/dist/container-env.js +96 -0
  71. package/dist/container-env.test.d.ts +1 -0
  72. package/dist/container-env.test.js +93 -0
  73. package/dist/containers.test.js +196 -18
  74. package/dist/daemons.test.js +18 -4
  75. package/dist/dsh-version.d.ts +1 -0
  76. package/dist/dsh-version.js +46 -0
  77. package/dist/env-rows.d.ts +14 -0
  78. package/dist/env-rows.js +52 -0
  79. package/dist/env-rows.test.d.ts +1 -0
  80. package/dist/env-rows.test.js +43 -0
  81. package/dist/fs-provider.d.ts +1 -0
  82. package/dist/fs-provider.js +26 -12
  83. package/dist/fs-provider.test.js +51 -10
  84. package/dist/generated/version.d.ts +2 -2
  85. package/dist/generated/version.js +2 -2
  86. package/dist/grpc/proto/dshctl/v1/control.proto +11 -1
  87. package/dist/grpc/proto/dshguest/v1/guest.proto +5 -0
  88. package/dist/grpc/runtime-client.d.ts +3 -1
  89. package/dist/grpc/runtime-client.js +90 -17
  90. package/dist/guest-rpc.d.ts +15 -19
  91. package/dist/guest-rpc.js +289 -70
  92. package/dist/guest-rpc.test.d.ts +1 -0
  93. package/dist/guest-rpc.test.js +241 -0
  94. package/dist/guest-terminal.d.ts +30 -0
  95. package/dist/guest-terminal.js +196 -0
  96. package/dist/images.test.js +10 -3
  97. package/dist/index.d.ts +11 -16
  98. package/dist/index.js +42 -36
  99. package/dist/locales.test.d.ts +1 -0
  100. package/dist/locales.test.js +34 -0
  101. package/dist/misc.test.js +38 -10
  102. package/dist/mount-enums.js +2 -1
  103. package/dist/mount-input.d.ts +2 -0
  104. package/dist/mount-input.js +38 -22
  105. package/dist/mounts.test.js +81 -11
  106. package/dist/naming.test.d.ts +1 -0
  107. package/dist/naming.test.js +28 -0
  108. package/dist/output-reader.js +36 -4
  109. package/dist/package-deps.test.d.ts +1 -0
  110. package/dist/package-deps.test.js +49 -0
  111. package/dist/paths.test.js +4 -2
  112. package/dist/plugin-meta.test.d.ts +1 -0
  113. package/dist/plugin-meta.test.js +29 -0
  114. package/dist/project-path.js +33 -7
  115. package/dist/project-path.test.js +14 -0
  116. package/dist/prompts.d.ts +0 -4
  117. package/dist/prompts.js +15 -84
  118. package/dist/read-only-shell.js +3 -1
  119. package/dist/read-only-shell.test.js +80 -25
  120. package/dist/runtime-client.test.d.ts +1 -0
  121. package/dist/runtime-client.test.js +53 -0
  122. package/dist/secrets.test.js +21 -6
  123. package/dist/settings-commands.test.js +61 -14
  124. package/dist/settings-create.test.js +32 -10
  125. package/dist/settings-default-env.test.d.ts +1 -0
  126. package/dist/settings-default-env.test.js +175 -0
  127. package/dist/settings-mounts.test.js +46 -7
  128. package/dist/settings-schema.d.ts +6 -11
  129. package/dist/settings-schema.js +4 -8
  130. package/dist/settings-schema.test.d.ts +1 -0
  131. package/dist/settings-schema.test.js +35 -0
  132. package/dist/settings-workspaces.test.js +38 -63
  133. package/dist/spill-store.d.ts +1 -0
  134. package/dist/spill-store.js +17 -4
  135. package/dist/spill-store.test.js +31 -8
  136. package/dist/subprocess.d.ts +4 -0
  137. package/dist/subprocess.js +148 -162
  138. package/dist/subprocess.test.js +118 -8
  139. package/dist/terminal-preference.test.d.ts +1 -0
  140. package/dist/terminal-preference.test.js +62 -0
  141. package/dist/terminal-route.d.ts +10 -0
  142. package/dist/terminal-route.js +270 -0
  143. package/dist/terminal-route.test.d.ts +1 -0
  144. package/dist/terminal-route.test.js +265 -0
  145. package/dist/terminal-sessions.d.ts +69 -0
  146. package/dist/terminal-sessions.js +252 -0
  147. package/dist/terminal-shells.d.ts +22 -0
  148. package/dist/terminal-shells.js +99 -0
  149. package/dist/terminal-tab.test.d.ts +1 -0
  150. package/dist/terminal-tab.test.js +58 -0
  151. package/dist/terminal-targets.test.d.ts +1 -0
  152. package/dist/terminal-targets.test.js +43 -0
  153. package/dist/terminal-titles.test.d.ts +1 -0
  154. package/dist/terminal-titles.test.js +36 -0
  155. package/dist/test-support.d.ts +35 -5
  156. package/dist/test-support.js +91 -29
  157. package/dist/tool-defs.js +19 -4
  158. package/dist/tool-handlers.js +80 -28
  159. package/dist/tool-params.js +19 -5
  160. package/dist/version-compat.d.ts +4 -0
  161. package/dist/version-compat.js +29 -0
  162. package/dist/version-compat.test.d.ts +1 -0
  163. package/dist/version-compat.test.js +27 -0
  164. package/dist/volumes.test.js +1 -1
  165. package/dist/workspace-binding.d.ts +19 -10
  166. package/dist/workspace-binding.js +252 -78
  167. package/dist/workspace-binding.test.js +202 -27
  168. package/docs/architecture.md +71 -20
  169. package/docs/architecture.zh.md +62 -12
  170. package/docs/configuration.md +61 -20
  171. package/docs/configuration.zh.md +53 -19
  172. package/docs/development-prompt.md +72 -0
  173. package/docs/development-prompt.zh.md +69 -0
  174. package/docs/development.md +184 -29
  175. package/docs/development.zh.md +165 -26
  176. package/docs/install-dsh-and-dsh-podman.md +24 -21
  177. package/docs/install-dsh-and-dsh-podman.zh.md +20 -21
  178. package/docs/uninstall.md +83 -0
  179. package/docs/uninstall.zh.md +79 -0
  180. package/docs/update.md +120 -0
  181. package/docs/update.zh.md +114 -0
  182. package/docs/usage.md +108 -61
  183. package/docs/usage.zh.md +76 -38
  184. package/locale/en.json +6 -0
  185. package/locale/zh.json +6 -0
  186. package/package.json +58 -25
  187. package/quadlet/dsh-podman-orchestrator.container +46 -0
  188. package/quadlet/dsh.container +35 -0
  189. package/LICENSE.pkg +0 -17103
  190. package/dist/preferences.d.ts +0 -6
  191. package/dist/preferences.js +0 -27
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@exagone313/dsh-podman",
3
- "version": "0.2.0-rc.3",
3
+ "version": "0.2.0",
4
+ "description": "Podman-backed execution for DeepSeek Harness (dsh).",
4
5
  "license": "MIT",
5
6
  "repository": {
6
7
  "type": "git",
@@ -14,6 +15,7 @@
14
15
  "types": "./dist/client/index.d.ts",
15
16
  "default": "./dist/client/index.js"
16
17
  },
18
+ "./locale/*.json": "./locale/*.json",
17
19
  "./package.json": "./package.json"
18
20
  },
19
21
  "dsh": {
@@ -23,8 +25,11 @@
23
25
  "client": {
24
26
  "inject": [
25
27
  "@deepseek-ai/dsh-client-locale",
28
+ "@deepseek-ai/dsh-client-shortcuts",
29
+ "@deepseek-ai/dsh-client-ui-plugin-manager",
26
30
  "@deepseek-ai/dsh-client-ui-renderer",
27
31
  "@deepseek-ai/dsh-client-ui-settings",
32
+ "@deepseek-ai/dsh-client-ui-sidebar-right",
28
33
  "@deepseek-ai/dsh-client-ui-tool"
29
34
  ],
30
35
  "platform": "web"
@@ -33,8 +38,12 @@
33
38
  "files": [
34
39
  "dist",
35
40
  "docs",
41
+ "locale/*.json",
42
+ "quadlet",
36
43
  "cordis.patch.yml",
37
- "README.md"
44
+ "LICENSE",
45
+ "README.md",
46
+ "README.zh.md"
38
47
  ],
39
48
  "scripts": {
40
49
  "build": "node scripts/generate-version.mjs && tsc -p tsconfig.json && tsc -p tsconfig.client.json && node scripts/copy-proto.mjs && node scripts/build-client-bundle.mjs",
@@ -44,22 +53,30 @@
44
53
  },
45
54
  "dependencies": {
46
55
  "@grpc/grpc-js": "^1.14.4",
47
- "@grpc/proto-loader": "^0.8.1"
56
+ "@grpc/proto-loader": "^0.8.1",
57
+ "@xterm/addon-fit": "^0.11.0",
58
+ "@xterm/addon-serialize": "^0.14.0",
59
+ "@xterm/headless": "^6.0.0",
60
+ "@xterm/xterm": "^6.0.0"
48
61
  },
49
62
  "devDependencies": {
50
- "@deepseek-ai/cordis": "^4.0.2",
51
- "@deepseek-ai/dsh-api-remotes": "0.1.5-rc.2",
52
- "@deepseek-ai/dsh-api-workspace-controller": "0.1.5-rc.2",
53
- "@deepseek-ai/dsh-client-locale": "^0.1.5-rc.2",
54
- "@deepseek-ai/dsh-client-store": "^0.1.5-rc.2",
55
- "@deepseek-ai/dsh-client-ui-approval": "0.1.5-rc.2",
56
- "@deepseek-ai/dsh-client-ui-conversation": "0.1.5-rc.2",
57
- "@deepseek-ai/dsh-client-ui-primitives": "^0.1.5-rc.2",
58
- "@deepseek-ai/dsh-client-ui-renderer": "^0.1.5-rc.2",
59
- "@deepseek-ai/dsh-client-ui-settings": "^0.1.5-rc.2",
60
- "@deepseek-ai/dsh-client-ui-slots": "^0.1.5-rc.2",
61
- "@deepseek-ai/dsh-client-ui-tool": "^0.1.5-rc.2",
62
- "@deepseek-ai/schemastery": "^3.18.2",
63
+ "@deepseek-ai/cordis": "4.0.4",
64
+ "@deepseek-ai/dsh-api-remotes": "0.1.7-rc.2",
65
+ "@deepseek-ai/dsh-api-workspace-controller": "0.1.7-rc.2",
66
+ "@deepseek-ai/dsh-client-locale": "0.1.7-rc.2",
67
+ "@deepseek-ai/dsh-client-shortcuts": "0.1.7-rc.2",
68
+ "@deepseek-ai/dsh-client-store": "0.1.7-rc.2",
69
+ "@deepseek-ai/dsh-client-ui-approval": "0.1.7-rc.2",
70
+ "@deepseek-ai/dsh-client-ui-conversation": "0.1.7-rc.2",
71
+ "@deepseek-ai/dsh-client-ui-plugin-manager": "0.1.7-rc.2",
72
+ "@deepseek-ai/dsh-client-ui-primitives": "0.1.7-rc.2",
73
+ "@deepseek-ai/dsh-client-ui-renderer": "0.1.7-rc.2",
74
+ "@deepseek-ai/dsh-client-ui-settings": "0.1.7-rc.2",
75
+ "@deepseek-ai/dsh-client-ui-sidebar-right": "0.1.7-rc.2",
76
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.2",
77
+ "@deepseek-ai/dsh-client-ui-tool": "0.1.7-rc.2",
78
+ "@deepseek-ai/dsh-subprocess": "0.1.7-rc.2",
79
+ "@deepseek-ai/schemastery": "3.18.4",
63
80
  "@types/node": "^22.0.0",
64
81
  "@types/react": "^18.3.31",
65
82
  "esbuild": "^0.28.2",
@@ -74,15 +91,19 @@
74
91
  "provenance": true
75
92
  },
76
93
  "peerDependencies": {
77
- "@deepseek-ai/cordis": "^4.0.2",
78
- "@deepseek-ai/dsh-client-locale": "^0.1.5-rc.2",
79
- "@deepseek-ai/dsh-client-store": "^0.1.5-rc.2",
80
- "@deepseek-ai/dsh-client-ui-primitives": "^0.1.5-rc.2",
81
- "@deepseek-ai/dsh-client-ui-renderer": "^0.1.5-rc.2",
82
- "@deepseek-ai/dsh-client-ui-settings": "^0.1.5-rc.2",
83
- "@deepseek-ai/dsh-client-ui-slots": "^0.1.5-rc.2",
84
- "@deepseek-ai/dsh-client-ui-tool": "^0.1.5-rc.2",
85
- "@deepseek-ai/schemastery": "*",
94
+ "@deepseek-ai/cordis": "4.0.4",
95
+ "@deepseek-ai/dsh-client-locale": "0.1.7-rc.2",
96
+ "@deepseek-ai/dsh-client-shortcuts": "0.1.7-rc.2",
97
+ "@deepseek-ai/dsh-client-store": "0.1.7-rc.2",
98
+ "@deepseek-ai/dsh-client-ui-plugin-manager": "0.1.7-rc.2",
99
+ "@deepseek-ai/dsh-client-ui-primitives": "0.1.7-rc.2",
100
+ "@deepseek-ai/dsh-client-ui-renderer": "0.1.7-rc.2",
101
+ "@deepseek-ai/dsh-client-ui-settings": "0.1.7-rc.2",
102
+ "@deepseek-ai/dsh-client-ui-sidebar-right": "0.1.7-rc.2",
103
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.2",
104
+ "@deepseek-ai/dsh-client-ui-tool": "0.1.7-rc.2",
105
+ "@deepseek-ai/dsh-subprocess": "0.1.7-rc.2",
106
+ "@deepseek-ai/schemastery": "3.18.4",
86
107
  "react": "^18.2.0"
87
108
  },
88
109
  "peerDependenciesMeta": {
@@ -92,24 +113,36 @@
92
113
  "@deepseek-ai/dsh-client-locale": {
93
114
  "optional": true
94
115
  },
116
+ "@deepseek-ai/dsh-client-shortcuts": {
117
+ "optional": true
118
+ },
95
119
  "@deepseek-ai/dsh-client-store": {
96
120
  "optional": true
97
121
  },
98
122
  "@deepseek-ai/dsh-client-ui-primitives": {
99
123
  "optional": true
100
124
  },
125
+ "@deepseek-ai/dsh-client-ui-plugin-manager": {
126
+ "optional": true
127
+ },
101
128
  "@deepseek-ai/dsh-client-ui-renderer": {
102
129
  "optional": true
103
130
  },
104
131
  "@deepseek-ai/dsh-client-ui-settings": {
105
132
  "optional": true
106
133
  },
134
+ "@deepseek-ai/dsh-client-ui-sidebar-right": {
135
+ "optional": true
136
+ },
107
137
  "@deepseek-ai/dsh-client-ui-slots": {
108
138
  "optional": true
109
139
  },
110
140
  "@deepseek-ai/dsh-client-ui-tool": {
111
141
  "optional": true
112
142
  },
143
+ "@deepseek-ai/dsh-subprocess": {
144
+ "optional": true
145
+ },
113
146
  "@deepseek-ai/schemastery": {
114
147
  "optional": true
115
148
  },
@@ -0,0 +1,46 @@
1
+ [Unit]
2
+ Description=dsh-podman orchestrator
3
+ Requires=podman.socket
4
+ After=podman.socket
5
+
6
+ [Container]
7
+ Network=pasta:--mtu,1500,--dns-forward,1.0.0.1
8
+ DNS=1.0.0.1
9
+ DNS=1.1.1.1
10
+ Image=ghcr.io/exagone313/dsh-podman/orchestrator:1
11
+ ContainerName=dsh-podman-orchestrator
12
+ AutoUpdate=registry
13
+ ReadOnly=true
14
+
15
+ Volume=%h/project:%h/project:ro
16
+ Environment=DSH_PODMAN_HOST_PROJECTS_ROOT=%h/project
17
+ Environment=DSH_PODMAN_PROJECTS_ROOT=%h/project
18
+
19
+ Volume=%t/podman/podman.sock:/run/podman/podman.sock
20
+ Environment=DSH_PODMAN_ORCHESTRATOR_PODMAN_SOCKET=unix:///run/podman/podman.sock
21
+
22
+ Volume=%h/.dsh/dsh-podman/state:%h/.dsh/dsh-podman/state
23
+ Environment=DSH_PODMAN_ORCHESTRATOR_STATE=%h/.dsh/dsh-podman/state
24
+
25
+ Volume=%h/.dsh/dsh-podman/apk-cache:%h/.dsh/dsh-podman/apk-cache
26
+ Environment=DSH_PODMAN_HOST_APK_CACHE=%h/.dsh/dsh-podman/apk-cache
27
+ Volume=%h/.dsh/dsh-podman/apt-cache:%h/.dsh/dsh-podman/apt-cache
28
+ Environment=DSH_PODMAN_HOST_APT_CACHE=%h/.dsh/dsh-podman/apt-cache
29
+ Volume=%h/.dsh/dsh-podman/pacman-cache:%h/.dsh/dsh-podman/pacman-cache
30
+ Environment=DSH_PODMAN_HOST_PACMAN_CACHE=%h/.dsh/dsh-podman/pacman-cache
31
+
32
+ Volume=%t/dsh-podman:/run/dsh-podman
33
+ Environment=DSH_PODMAN_HOST_SOCKETS_ROOT=%t/dsh-podman
34
+ Environment=DSH_PODMAN_SOCKETS_ROOT=/run/dsh-podman
35
+
36
+ Environment=DSH_PODMAN_GUEST_AGENT_IMAGE=ghcr.io/exagone313/dsh-podman/guest-agent
37
+ Environment=DSH_PODMAN_GUEST_AGENT_IMAGE_USE_VERSION_TAG=true
38
+
39
+ [Service]
40
+ ExecStartPre=/usr/bin/mkdir -p -m 0700 %h/project ; /usr/bin/mkdir -p -m 0700 %t/dsh-podman ; /usr/bin/chmod 0700 %t/dsh-podman ; /usr/bin/mkdir -p -m 0700 %h/.dsh/dsh-podman/state ; /usr/bin/mkdir -p -m 0755 %h/.dsh/dsh-podman/apk-cache ; /usr/bin/mkdir -p -m 0755 %h/.dsh/dsh-podman/apt-cache ; /usr/bin/mkdir -p -m 0755 %h/.dsh/dsh-podman/pacman-cache
41
+ Restart=on-failure
42
+ RestartSec=3
43
+ SuccessExitStatus=0 143
44
+
45
+ [Install]
46
+ WantedBy=default.target
@@ -0,0 +1,35 @@
1
+ [Unit]
2
+ Description=DeepSeek Harness
3
+ Requires=dsh-podman-orchestrator.service
4
+ After=dsh-podman-orchestrator.service
5
+
6
+ [Container]
7
+ Network=pasta:--mtu,1500,--dns-forward,1.0.0.1
8
+ DNS=1.0.0.1
9
+ DNS=1.1.1.1
10
+ Image=ghcr.io/exagone313/dsh-podman/dsh:1
11
+ ContainerName=dsh
12
+ AutoUpdate=registry
13
+ PublishPort=127.0.0.1:3080:3080
14
+ ReadOnly=true
15
+
16
+ Environment=HOME=%h
17
+ WorkingDir=$HOME
18
+
19
+ Volume=%h/.dsh:%h/.dsh
20
+ Environment=DSH_HOME=%h/.dsh
21
+
22
+ Volume=%h/project:%h/project:ro
23
+ Environment=DSH_PODMAN_PROJECTS_ROOT=%h/project
24
+
25
+ Volume=%t/dsh-podman:/run/dsh-podman
26
+ Environment=DSH_PODMAN_SOCKETS_ROOT=/run/dsh-podman
27
+
28
+ [Service]
29
+ ExecStartPre=/usr/bin/mkdir -p -m 0700 %h/project ; /usr/bin/mkdir -p -m 0700 %t/dsh-podman ; /usr/bin/chmod 0700 %t/dsh-podman ; /usr/bin/mkdir -p -m 0700 %h/.dsh
30
+ Restart=on-failure
31
+ RestartSec=3
32
+ SuccessExitStatus=0 143
33
+
34
+ [Install]
35
+ WantedBy=default.target