@exagone313/dsh-podman 0.2.0-rc.2

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 (165) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +41 -0
  3. package/README.zh.md +41 -0
  4. package/cordis.patch.yml +17 -0
  5. package/dist/approval-reasons.d.ts +129 -0
  6. package/dist/approval-reasons.js +253 -0
  7. package/dist/approval-reasons.test.d.ts +1 -0
  8. package/dist/approval-reasons.test.js +115 -0
  9. package/dist/approval.d.ts +29 -0
  10. package/dist/approval.js +412 -0
  11. package/dist/approval.test.d.ts +1 -0
  12. package/dist/approval.test.js +462 -0
  13. package/dist/card-route.d.ts +15 -0
  14. package/dist/card-route.js +478 -0
  15. package/dist/card-route.test.d.ts +1 -0
  16. package/dist/card-route.test.js +181 -0
  17. package/dist/card-test-support.d.ts +15 -0
  18. package/dist/card-test-support.js +160 -0
  19. package/dist/client/ContainerCard.d.ts +6 -0
  20. package/dist/client/ContainerCard.js +79 -0
  21. package/dist/client/card-client.d.ts +6 -0
  22. package/dist/client/card-client.js +47 -0
  23. package/dist/client/card-protocol.d.ts +101 -0
  24. package/dist/client/card-protocol.js +10 -0
  25. package/dist/client/container-card-caches.d.ts +10 -0
  26. package/dist/client/container-card-caches.js +31 -0
  27. package/dist/client/container-card-controller.d.ts +107 -0
  28. package/dist/client/container-card-controller.js +207 -0
  29. package/dist/client/container-card-create-modal.d.ts +24 -0
  30. package/dist/client/container-card-create-modal.js +109 -0
  31. package/dist/client/container-card-directory-styles.d.ts +5 -0
  32. package/dist/client/container-card-directory-styles.js +246 -0
  33. package/dist/client/container-card-directory.d.ts +12 -0
  34. package/dist/client/container-card-directory.js +144 -0
  35. package/dist/client/container-card-editors.d.ts +30 -0
  36. package/dist/client/container-card-editors.js +116 -0
  37. package/dist/client/container-card-images.d.ts +37 -0
  38. package/dist/client/container-card-images.js +35 -0
  39. package/dist/client/container-card-paths.d.ts +20 -0
  40. package/dist/client/container-card-paths.js +88 -0
  41. package/dist/client/container-card-row.d.ts +30 -0
  42. package/dist/client/container-card-row.js +54 -0
  43. package/dist/client/container-card-secrets.d.ts +21 -0
  44. package/dist/client/container-card-secrets.js +71 -0
  45. package/dist/client/container-card-shared.d.ts +55 -0
  46. package/dist/client/container-card-shared.js +152 -0
  47. package/dist/client/container-card-styles.d.ts +21 -0
  48. package/dist/client/container-card-styles.js +143 -0
  49. package/dist/client/container-card-volumes.d.ts +12 -0
  50. package/dist/client/container-card-volumes.js +37 -0
  51. package/dist/client/container-card-workspace.d.ts +31 -0
  52. package/dist/client/container-card-workspace.js +24 -0
  53. package/dist/client/directory-picker.d.ts +12 -0
  54. package/dist/client/directory-picker.js +30 -0
  55. package/dist/client/index.d.ts +5 -0
  56. package/dist/client/index.js +4419 -0
  57. package/dist/client/locales.d.ts +9 -0
  58. package/dist/client/locales.js +370 -0
  59. package/dist/client/read-only-approval.d.ts +8 -0
  60. package/dist/client/read-only-approval.js +63 -0
  61. package/dist/client/slot-contract.d.ts +12 -0
  62. package/dist/client/slot-contract.js +4 -0
  63. package/dist/client/terminal-styles.d.ts +5 -0
  64. package/dist/client/terminal-styles.js +31 -0
  65. package/dist/client/tool-views.d.ts +8 -0
  66. package/dist/client/tool-views.js +241 -0
  67. package/dist/containers.test.d.ts +1 -0
  68. package/dist/containers.test.js +443 -0
  69. package/dist/daemons.test.d.ts +1 -0
  70. package/dist/daemons.test.js +153 -0
  71. package/dist/fs-provider.d.ts +23 -0
  72. package/dist/fs-provider.js +184 -0
  73. package/dist/fs-provider.test.d.ts +1 -0
  74. package/dist/fs-provider.test.js +260 -0
  75. package/dist/generated/version.d.ts +2 -0
  76. package/dist/generated/version.js +6 -0
  77. package/dist/grpc/proto/dshctl/v1/control.proto +133 -0
  78. package/dist/grpc/proto/dshguest/v1/guest.proto +79 -0
  79. package/dist/grpc/runtime-client.d.ts +5 -0
  80. package/dist/grpc/runtime-client.js +43 -0
  81. package/dist/guest-rpc.d.ts +62 -0
  82. package/dist/guest-rpc.js +391 -0
  83. package/dist/images.test.d.ts +1 -0
  84. package/dist/images.test.js +79 -0
  85. package/dist/index.d.ts +22 -0
  86. package/dist/index.js +140 -0
  87. package/dist/misc.test.d.ts +1 -0
  88. package/dist/misc.test.js +141 -0
  89. package/dist/mount-enums.d.ts +22 -0
  90. package/dist/mount-enums.js +81 -0
  91. package/dist/mount-input.d.ts +14 -0
  92. package/dist/mount-input.js +64 -0
  93. package/dist/mounts.test.d.ts +1 -0
  94. package/dist/mounts.test.js +408 -0
  95. package/dist/output-reader.d.ts +34 -0
  96. package/dist/output-reader.js +87 -0
  97. package/dist/paths.test.d.ts +1 -0
  98. package/dist/paths.test.js +74 -0
  99. package/dist/preferences.d.ts +6 -0
  100. package/dist/preferences.js +27 -0
  101. package/dist/project-path.d.ts +6 -0
  102. package/dist/project-path.js +73 -0
  103. package/dist/project-path.test.d.ts +1 -0
  104. package/dist/project-path.test.js +52 -0
  105. package/dist/prompts.d.ts +13 -0
  106. package/dist/prompts.js +149 -0
  107. package/dist/public.d.ts +4 -0
  108. package/dist/public.js +63 -0
  109. package/dist/read-only-shell.d.ts +14 -0
  110. package/dist/read-only-shell.js +150 -0
  111. package/dist/read-only-shell.test.d.ts +1 -0
  112. package/dist/read-only-shell.test.js +127 -0
  113. package/dist/secrets.test.d.ts +1 -0
  114. package/dist/secrets.test.js +181 -0
  115. package/dist/settings-commands.test.d.ts +1 -0
  116. package/dist/settings-commands.test.js +549 -0
  117. package/dist/settings-create.test.d.ts +1 -0
  118. package/dist/settings-create.test.js +394 -0
  119. package/dist/settings-mounts.test.d.ts +1 -0
  120. package/dist/settings-mounts.test.js +467 -0
  121. package/dist/settings-paths.test.d.ts +1 -0
  122. package/dist/settings-paths.test.js +65 -0
  123. package/dist/settings-schema.d.ts +14 -0
  124. package/dist/settings-schema.js +14 -0
  125. package/dist/settings-workspaces.test.d.ts +1 -0
  126. package/dist/settings-workspaces.test.js +265 -0
  127. package/dist/spill-store.d.ts +17 -0
  128. package/dist/spill-store.js +54 -0
  129. package/dist/spill-store.test.d.ts +1 -0
  130. package/dist/spill-store.test.js +59 -0
  131. package/dist/subprocess.d.ts +9 -0
  132. package/dist/subprocess.js +369 -0
  133. package/dist/subprocess.test.d.ts +1 -0
  134. package/dist/subprocess.test.js +234 -0
  135. package/dist/test-support.d.ts +328 -0
  136. package/dist/test-support.js +437 -0
  137. package/dist/tool-defs.d.ts +26 -0
  138. package/dist/tool-defs.js +188 -0
  139. package/dist/tool-handlers.d.ts +2 -0
  140. package/dist/tool-handlers.js +546 -0
  141. package/dist/tool-params.d.ts +803 -0
  142. package/dist/tool-params.js +494 -0
  143. package/dist/tool-schemas.d.ts +2 -0
  144. package/dist/tool-schemas.js +5 -0
  145. package/dist/tool-views.d.ts +2 -0
  146. package/dist/tool-views.js +56 -0
  147. package/dist/views.test.d.ts +1 -0
  148. package/dist/views.test.js +23 -0
  149. package/dist/volumes.test.d.ts +1 -0
  150. package/dist/volumes.test.js +40 -0
  151. package/dist/workspace-binding.d.ts +40 -0
  152. package/dist/workspace-binding.js +275 -0
  153. package/dist/workspace-binding.test.d.ts +1 -0
  154. package/dist/workspace-binding.test.js +337 -0
  155. package/docs/architecture.md +173 -0
  156. package/docs/architecture.zh.md +129 -0
  157. package/docs/configuration.md +160 -0
  158. package/docs/configuration.zh.md +147 -0
  159. package/docs/development.md +142 -0
  160. package/docs/development.zh.md +135 -0
  161. package/docs/install-dsh-and-dsh-podman.md +165 -0
  162. package/docs/install-dsh-and-dsh-podman.zh.md +145 -0
  163. package/docs/usage.md +393 -0
  164. package/docs/usage.zh.md +315 -0
  165. package/package.json +119 -0
@@ -0,0 +1,328 @@
1
+ import { EventEmitter } from "node:events";
2
+ export declare const WORKSPACE_ID = "2c573001-4171-4900-904b-12a5cc02737a";
3
+ export declare class FakeTerminalCall extends EventEmitter {
4
+ readonly stdinChunks: Buffer[];
5
+ write(message: any): void;
6
+ end(): void;
7
+ cancel(): void;
8
+ emitStdout(data: Buffer): void;
9
+ emitExit(exitCode?: number, signaled?: boolean): void;
10
+ }
11
+ export declare const fakeTerminalResolver: (fake: FakeTerminalCall) => any;
12
+ export declare const stubResolver: any;
13
+ export declare const EXPECTED_TOOLS: string[];
14
+ export interface TestSessionFacts {
15
+ mode?: string;
16
+ policy?: string;
17
+ preset?: string;
18
+ }
19
+ export declare const testReadSession: (session: any) => TestSessionFacts;
20
+ export declare const sessionExec: (name: string, facts?: TestSessionFacts) => any;
21
+ export declare const presetExec: (name: string, preset: string, args?: unknown, facts?: TestSessionFacts) => any;
22
+ export declare const MOUNT_TOOLS: string[];
23
+ export declare const VOLUME_TOOLS: string[];
24
+ export declare const SECRET_TOOLS: string[];
25
+ export declare function mountRequestRecorder(): {
26
+ requests: [string, Record<string, unknown>][];
27
+ resolver: {
28
+ registry: {
29
+ resolveByPath: () => Promise<{
30
+ id: string;
31
+ }>;
32
+ };
33
+ getConfig: () => {
34
+ projectsRoot: string;
35
+ };
36
+ control(method: string, request: unknown): Promise<{}>;
37
+ };
38
+ };
39
+ export declare const MOUNT_EXEC: {
40
+ agent: {
41
+ session: {
42
+ header: {
43
+ cwd: string;
44
+ };
45
+ };
46
+ };
47
+ };
48
+ export declare const DAEMON_TOOLS: string[];
49
+ export declare const SECRET_BEARING_CONTAINER: {
50
+ workspaceSlug: string;
51
+ containerName: string;
52
+ imageId: string;
53
+ status: string;
54
+ createdAt: string;
55
+ podmanName: string;
56
+ agentSocketPath: string;
57
+ agentToken: string;
58
+ mounts: {
59
+ projectName: string;
60
+ mode: string;
61
+ kind: string;
62
+ }[];
63
+ env: {
64
+ PATH: string;
65
+ DB_PASSWORD: string;
66
+ };
67
+ secretEnv: {
68
+ DB_PASS: string;
69
+ };
70
+ };
71
+ export declare function secretBearingResolver(): {
72
+ registry: {
73
+ resolveByPath: () => Promise<{
74
+ id: string;
75
+ }>;
76
+ };
77
+ getConfig: () => {
78
+ projectsRoot: string;
79
+ };
80
+ control: () => Promise<{
81
+ workspaceSlug: string;
82
+ containerName: string;
83
+ imageId: string;
84
+ status: string;
85
+ createdAt: string;
86
+ podmanName: string;
87
+ agentSocketPath: string;
88
+ agentToken: string;
89
+ mounts: {
90
+ projectName: string;
91
+ mode: string;
92
+ kind: string;
93
+ }[];
94
+ env: {
95
+ PATH: string;
96
+ DB_PASSWORD: string;
97
+ };
98
+ secretEnv: {
99
+ DB_PASS: string;
100
+ };
101
+ }>;
102
+ };
103
+ export declare function guestFileRecorder(content?: string, exists?: boolean): {
104
+ reads: string[];
105
+ writes: {
106
+ path: string;
107
+ content: string;
108
+ }[];
109
+ mkdirs: string[];
110
+ resolver: {
111
+ resolve: () => Promise<{
112
+ guest: {
113
+ readFile: (request: any) => {
114
+ [Symbol.asyncIterator](): AsyncGenerator<{
115
+ data: Buffer<ArrayBuffer>;
116
+ }, void, unknown>;
117
+ cancel(): void;
118
+ };
119
+ mkdir: (request: any, _metadata: unknown, callback: any) => {
120
+ cancel(): void;
121
+ };
122
+ stat: (_request: any, _metadata: unknown, callback: any) => {
123
+ cancel(): void;
124
+ };
125
+ writeFile: (_metadata: unknown, _options: unknown, callback: (error: Error | null, result: unknown) => void) => {
126
+ write(message: any): void;
127
+ end(): void;
128
+ };
129
+ };
130
+ token: string;
131
+ socket: string;
132
+ }>;
133
+ containerBinding: () => Promise<{
134
+ guest: {
135
+ readFile: (request: any) => {
136
+ [Symbol.asyncIterator](): AsyncGenerator<{
137
+ data: Buffer<ArrayBuffer>;
138
+ }, void, unknown>;
139
+ cancel(): void;
140
+ };
141
+ mkdir: (request: any, _metadata: unknown, callback: any) => {
142
+ cancel(): void;
143
+ };
144
+ stat: (_request: any, _metadata: unknown, callback: any) => {
145
+ cancel(): void;
146
+ };
147
+ writeFile: (_metadata: unknown, _options: unknown, callback: (error: Error | null, result: unknown) => void) => {
148
+ write(message: any): void;
149
+ end(): void;
150
+ };
151
+ };
152
+ token: string;
153
+ socket: string;
154
+ }>;
155
+ resolveForPath: () => Promise<{
156
+ guest: {
157
+ readFile: (request: any) => {
158
+ [Symbol.asyncIterator](): AsyncGenerator<{
159
+ data: Buffer<ArrayBuffer>;
160
+ }, void, unknown>;
161
+ cancel(): void;
162
+ };
163
+ mkdir: (request: any, _metadata: unknown, callback: any) => {
164
+ cancel(): void;
165
+ };
166
+ stat: (_request: any, _metadata: unknown, callback: any) => {
167
+ cancel(): void;
168
+ };
169
+ writeFile: (_metadata: unknown, _options: unknown, callback: (error: Error | null, result: unknown) => void) => {
170
+ write(message: any): void;
171
+ end(): void;
172
+ };
173
+ };
174
+ token: string;
175
+ socket: string;
176
+ }>;
177
+ };
178
+ };
179
+ export declare function fakeToolContext(resolver: any): any;
180
+ export declare function guestExecRecorder(defaultCwd?: string, stdout?: string): {
181
+ starts: {
182
+ argv: string[];
183
+ cwd?: string;
184
+ env?: Record<string, string>;
185
+ uid?: number;
186
+ gid?: number;
187
+ groups?: number[];
188
+ }[];
189
+ resolver: {
190
+ resolve: () => Promise<{
191
+ guest: {
192
+ exec: () => {
193
+ on(event: string, handler: (value?: unknown) => void): void;
194
+ write(message: any): void;
195
+ end(): void;
196
+ };
197
+ };
198
+ token: string;
199
+ socket: string;
200
+ defaultCwd?: string | undefined;
201
+ }>;
202
+ containerBinding: () => Promise<{
203
+ guest: {
204
+ exec: () => {
205
+ on(event: string, handler: (value?: unknown) => void): void;
206
+ write(message: any): void;
207
+ end(): void;
208
+ };
209
+ };
210
+ token: string;
211
+ socket: string;
212
+ defaultCwd?: string | undefined;
213
+ }>;
214
+ };
215
+ };
216
+ export declare function pathRequestRecorder(options?: {
217
+ paths?: string[];
218
+ defaultPath?: string;
219
+ }): {
220
+ controlCalls: [string, Record<string, unknown>][];
221
+ setCalls: string[][];
222
+ resolver: {
223
+ registry: {
224
+ resolveByPath: () => Promise<{
225
+ id: string;
226
+ }>;
227
+ };
228
+ getConfig: () => {
229
+ projectsRoot: string;
230
+ };
231
+ resolve: () => Promise<{
232
+ guest: {
233
+ getPaths: (_request: unknown, _metadata: unknown, callback: (error: Error | null, result: unknown) => void) => void;
234
+ setPaths: (request: {
235
+ paths: string[];
236
+ }, _metadata: unknown, callback: (error: Error | null, result: unknown) => void) => void;
237
+ };
238
+ token: string;
239
+ socket: string;
240
+ }>;
241
+ containerBinding: () => Promise<{
242
+ guest: {
243
+ getPaths: (_request: unknown, _metadata: unknown, callback: (error: Error | null, result: unknown) => void) => void;
244
+ setPaths: (request: {
245
+ paths: string[];
246
+ }, _metadata: unknown, callback: (error: Error | null, result: unknown) => void) => void;
247
+ };
248
+ token: string;
249
+ socket: string;
250
+ }>;
251
+ control(method: string, request: unknown): Promise<{
252
+ paths: string[];
253
+ }>;
254
+ };
255
+ };
256
+ export declare function fakeGuest(source: Buffer): {
257
+ requests: Record<string, unknown>[];
258
+ guest: {
259
+ readFile: (request: Record<string, unknown>) => {
260
+ [Symbol.asyncIterator](): AsyncGenerator<{
261
+ data: Buffer<ArrayBufferLike>;
262
+ }, void, unknown>;
263
+ };
264
+ };
265
+ };
266
+ export declare function providerFor(guest: unknown): import("./fs-provider.js").FilesystemProvider;
267
+ export declare function editGuest(stat: Record<string, unknown>, content?: Buffer<ArrayBuffer>): {
268
+ writes: Buffer<ArrayBufferLike>[];
269
+ guest: {
270
+ stat: (_request: unknown, _metadata: unknown, callback: Function) => any;
271
+ readFile: () => {
272
+ [Symbol.asyncIterator](): AsyncGenerator<{
273
+ data: Buffer<ArrayBuffer>;
274
+ }, void, unknown>;
275
+ };
276
+ writeFile: (_metadata: unknown, _options: unknown, callback: Function) => {
277
+ write(message: {
278
+ dataChunk?: Uint8Array;
279
+ }): void;
280
+ end(): void;
281
+ };
282
+ };
283
+ token: string;
284
+ };
285
+ export declare function editProvider(binding: unknown): import("./fs-provider.js").FilesystemProvider;
286
+ export declare function spawnGuest(options?: {
287
+ emitExit?: boolean;
288
+ exit?: Record<string, unknown>;
289
+ stdout?: string;
290
+ }): {
291
+ signals: {
292
+ processId: string;
293
+ signal: string;
294
+ }[];
295
+ starts: Record<string, any>[];
296
+ deletes: Record<string, unknown>[];
297
+ resolver: {
298
+ resolve: () => Promise<{
299
+ guest: {
300
+ exec: () => {
301
+ on(event: string, handler: Function): void;
302
+ write(message: any): void;
303
+ end(): void;
304
+ };
305
+ signal: (request: {
306
+ processId: string;
307
+ signal: string;
308
+ }, _metadata: unknown, callback: Function) => void;
309
+ delete: (request: Record<string, unknown>, _metadata: unknown, callback: Function) => void;
310
+ };
311
+ token: string;
312
+ }>;
313
+ };
314
+ };
315
+ export declare const spawnSpec: (overrides?: Record<string, unknown>) => {
316
+ argv: string[];
317
+ cwd: string;
318
+ stdio: {
319
+ stdin: string;
320
+ stdout: {
321
+ maxBytes: number;
322
+ };
323
+ stderr: {
324
+ maxBytes: number;
325
+ };
326
+ };
327
+ graceMs: number;
328
+ };