@theia/dev-container 1.72.0-next.59 → 1.73.0-next.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 (90) hide show
  1. package/lib/electron-browser/container-connection-contribution.d.ts +5 -2
  2. package/lib/electron-browser/container-connection-contribution.d.ts.map +1 -1
  3. package/lib/electron-browser/container-connection-contribution.js +130 -30
  4. package/lib/electron-browser/container-connection-contribution.js.map +1 -1
  5. package/lib/electron-browser/container-output-provider.d.ts.map +1 -1
  6. package/lib/electron-browser/container-output-provider.js +3 -1
  7. package/lib/electron-browser/container-output-provider.js.map +1 -1
  8. package/lib/electron-browser/dev-container-frontend-module.d.ts.map +1 -1
  9. package/lib/electron-browser/dev-container-frontend-module.js +5 -0
  10. package/lib/electron-browser/dev-container-frontend-module.js.map +1 -1
  11. package/lib/electron-browser/dev-container-startup-contribution.d.ts +15 -0
  12. package/lib/electron-browser/dev-container-startup-contribution.d.ts.map +1 -0
  13. package/lib/electron-browser/dev-container-startup-contribution.js +94 -0
  14. package/lib/electron-browser/dev-container-startup-contribution.js.map +1 -0
  15. package/lib/electron-common/dev-container-preferences.d.ts +12 -0
  16. package/lib/electron-common/dev-container-preferences.d.ts.map +1 -0
  17. package/lib/electron-common/dev-container-preferences.js +44 -0
  18. package/lib/electron-common/dev-container-preferences.js.map +1 -0
  19. package/lib/electron-common/remote-container-connection-provider.d.ts +20 -1
  20. package/lib/electron-common/remote-container-connection-provider.d.ts.map +1 -1
  21. package/lib/electron-node/dev-container-backend-module.d.ts.map +1 -1
  22. package/lib/electron-node/dev-container-backend-module.js +4 -0
  23. package/lib/electron-node/dev-container-backend-module.js.map +1 -1
  24. package/lib/electron-node/dev-container-cli-contribution.d.ts +19 -0
  25. package/lib/electron-node/dev-container-cli-contribution.d.ts.map +1 -0
  26. package/lib/electron-node/dev-container-cli-contribution.js +66 -0
  27. package/lib/electron-node/dev-container-cli-contribution.js.map +1 -0
  28. package/lib/electron-node/dev-container-cli-contribution.spec.d.ts +2 -0
  29. package/lib/electron-node/dev-container-cli-contribution.spec.d.ts.map +1 -0
  30. package/lib/electron-node/dev-container-cli-contribution.spec.js +91 -0
  31. package/lib/electron-node/dev-container-cli-contribution.spec.js.map +1 -0
  32. package/lib/electron-node/dev-container-file-service.d.ts +4 -4
  33. package/lib/electron-node/dev-container-file-service.d.ts.map +1 -1
  34. package/lib/electron-node/dev-container-file-service.js +9 -9
  35. package/lib/electron-node/dev-container-file-service.js.map +1 -1
  36. package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.d.ts +6 -2
  37. package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.d.ts.map +1 -1
  38. package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.js +24 -4
  39. package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.js.map +1 -1
  40. package/lib/electron-node/devcontainer-contributions/variable-resolver-contribution.d.ts +7 -6
  41. package/lib/electron-node/devcontainer-contributions/variable-resolver-contribution.d.ts.map +1 -1
  42. package/lib/electron-node/devcontainer-contributions/variable-resolver-contribution.js +4 -9
  43. package/lib/electron-node/devcontainer-contributions/variable-resolver-contribution.js.map +1 -1
  44. package/lib/electron-node/devcontainer-util.d.ts +19 -0
  45. package/lib/electron-node/devcontainer-util.d.ts.map +1 -0
  46. package/lib/electron-node/devcontainer-util.js +48 -0
  47. package/lib/electron-node/devcontainer-util.js.map +1 -0
  48. package/lib/electron-node/devcontainer-util.spec.d.ts +2 -0
  49. package/lib/electron-node/devcontainer-util.spec.d.ts.map +1 -0
  50. package/lib/electron-node/devcontainer-util.spec.js +128 -0
  51. package/lib/electron-node/devcontainer-util.spec.js.map +1 -0
  52. package/lib/electron-node/docker-container-service.d.ts +3 -3
  53. package/lib/electron-node/docker-container-service.d.ts.map +1 -1
  54. package/lib/electron-node/docker-container-service.js +3 -4
  55. package/lib/electron-node/docker-container-service.js.map +1 -1
  56. package/lib/electron-node/remote-container-connection-provider.d.ts +27 -66
  57. package/lib/electron-node/remote-container-connection-provider.d.ts.map +1 -1
  58. package/lib/electron-node/remote-container-connection-provider.js +269 -311
  59. package/lib/electron-node/remote-container-connection-provider.js.map +1 -1
  60. package/lib/electron-node/remote-docker-container-connection.d.ts +50 -0
  61. package/lib/electron-node/remote-docker-container-connection.d.ts.map +1 -0
  62. package/lib/electron-node/remote-docker-container-connection.js +239 -0
  63. package/lib/electron-node/remote-docker-container-connection.js.map +1 -0
  64. package/lib/electron-node/remote-docker-container-connection.spec.d.ts +2 -0
  65. package/lib/electron-node/remote-docker-container-connection.spec.d.ts.map +1 -0
  66. package/lib/electron-node/remote-docker-container-connection.spec.js +217 -0
  67. package/lib/electron-node/remote-docker-container-connection.spec.js.map +1 -0
  68. package/package.json +7 -7
  69. package/src/electron-browser/container-connection-contribution.ts +155 -38
  70. package/src/electron-browser/container-output-provider.ts +3 -1
  71. package/src/electron-browser/dev-container-frontend-module.ts +6 -0
  72. package/src/electron-browser/dev-container-startup-contribution.ts +99 -0
  73. package/src/electron-common/dev-container-preferences.ts +53 -0
  74. package/src/electron-common/remote-container-connection-provider.ts +23 -1
  75. package/src/electron-node/dev-container-backend-module.ts +5 -0
  76. package/src/electron-node/dev-container-cli-contribution.spec.ts +106 -0
  77. package/src/electron-node/dev-container-cli-contribution.ts +68 -0
  78. package/src/electron-node/dev-container-file-service.ts +10 -10
  79. package/src/electron-node/devcontainer-contributions/main-container-creation-contributions.ts +29 -5
  80. package/src/electron-node/devcontainer-contributions/variable-resolver-contribution.ts +11 -11
  81. package/src/electron-node/devcontainer-util.spec.ts +154 -0
  82. package/src/electron-node/devcontainer-util.ts +49 -0
  83. package/src/electron-node/docker-container-service.ts +6 -7
  84. package/src/electron-node/remote-container-connection-provider.ts +274 -366
  85. package/src/electron-node/{remote-container-connection-provider.spec.ts → remote-docker-container-connection.spec.ts} +105 -4
  86. package/src/electron-node/remote-docker-container-connection.ts +290 -0
  87. package/lib/electron-node/remote-container-connection-provider.spec.d.ts +0 -2
  88. package/lib/electron-node/remote-container-connection-provider.spec.d.ts.map +0 -1
  89. package/lib/electron-node/remote-container-connection-provider.spec.js +0 -131
  90. package/lib/electron-node/remote-container-connection-provider.spec.js.map +0 -1
@@ -1,12 +1,13 @@
1
1
  import { AbstractRemoteRegistryContribution, RemoteRegistry } from '@theia/remote/lib/electron-browser/remote-registry-contribution';
2
2
  import { DevContainerFile, RemoteContainerConnectionProvider } from '../electron-common/remote-container-connection-provider';
3
3
  import { WorkspaceStorageService } from '@theia/workspace/lib/browser/workspace-storage-service';
4
- import { Command, MaybePromise, MessageService, QuickInputService, URI } from '@theia/core';
4
+ import { Command, ILogger, MaybePromise, MessageService, QuickInputService, URI } from '@theia/core';
5
5
  import { WorkspaceInput, WorkspaceOpenHandlerContribution, WorkspaceService } from '@theia/workspace/lib/browser/workspace-service';
6
6
  import { ContainerOutputProvider } from './container-output-provider';
7
7
  import { WorkspaceServer } from '@theia/workspace/lib/common';
8
8
  import { RemotePreferences } from '@theia/remote/lib/electron-common/remote-preferences';
9
9
  import { LocalStorageService } from '@theia/core/lib/browser';
10
+ import { DevContainerPreferences } from '../electron-common/dev-container-preferences';
10
11
  export declare namespace RemoteContainerCommands {
11
12
  const REOPEN_IN_CONTAINER: Command;
12
13
  const ATTACH_TO_CONTAINER: Command;
@@ -22,6 +23,8 @@ export declare class ContainerConnectionContribution extends AbstractRemoteRegis
22
23
  protected readonly workspaceServer: WorkspaceServer;
23
24
  protected readonly quickInputService: QuickInputService;
24
25
  protected readonly containerOutputProvider: ContainerOutputProvider;
26
+ protected readonly devContainerPreferences: DevContainerPreferences;
27
+ protected readonly logger: ILogger;
25
28
  protected hasDevContainerFiles: boolean;
26
29
  protected init(): void;
27
30
  protected checkForDevContainerFiles(): Promise<void>;
@@ -31,9 +34,9 @@ export declare class ContainerConnectionContribution extends AbstractRemoteRegis
31
34
  openWorkspace(uri: URI, options?: WorkspaceInput | undefined): Promise<void>;
32
35
  getWorkspaceLabel(uri: URI): Promise<string | undefined>;
33
36
  openInContainer(): Promise<void>;
34
- attachToContainer(): Promise<void>;
35
37
  rebuildContainer(): Promise<void>;
36
38
  doOpenInContainer(devcontainerFile: DevContainerFile, workspacePath?: string): Promise<void>;
39
+ attachToRunningContainer(): Promise<void>;
37
40
  getOrSelectDevcontainerFile(): Promise<DevContainerFile | undefined>;
38
41
  }
39
42
  //# sourceMappingURL=container-connection-contribution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"container-connection-contribution.d.ts","sourceRoot":"","sources":["../../src/electron-browser/container-connection-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,kCAAkC,EAAE,cAAc,EAAE,MAAM,iEAAiE,CAAC;AACrI,OAAO,EAAE,gBAAgB,EAAqB,iCAAiC,EAAE,MAAM,yDAAyD,CAAC;AACjJ,OAAO,EAAE,uBAAuB,EAAE,MAAM,wDAAwD,CAAC;AACjG,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAO,iBAAiB,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,gCAAgC,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AACpI,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sDAAsD,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,yBAAiB,uBAAuB,CAAC;IAC9B,MAAM,mBAAmB,SAIQ,CAAC;IAElC,MAAM,mBAAmB,SAIO,CAAC;IAEjC,MAAM,iBAAiB,SAIU,CAAC;CAC5C;AAWD,qBACa,+BAAgC,SAAQ,kCAAmC,YAAW,gCAAgC;IAG/H,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,iCAAiC,CAAC;IAGzE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAGpE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,mBAAmB,CAAC;IAGvD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAGpD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAEpE,SAAS,CAAC,oBAAoB,UAAS;IAGvC,SAAS,CAAC,IAAI,IAAI,IAAI;cAWN,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB1D,sBAAsB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IActD,SAAS,CAAC,eAAe,IAAI,OAAO;IAIpC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC;IAgBpC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB5E,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAUxD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAQhC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BlC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoDjC,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC5F,2BAA2B,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;CAyB7E"}
1
+ {"version":3,"file":"container-connection-contribution.d.ts","sourceRoot":"","sources":["../../src/electron-browser/container-connection-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,kCAAkC,EAAE,cAAc,EAAE,MAAM,iEAAiE,CAAC;AACrI,OAAO,EACH,gBAAgB,EAAqB,iCAAiC,EAEzE,MAAM,yDAAyD,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wDAAwD,CAAC;AACjG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAO,iBAAiB,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAE,gCAAgC,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AACpI,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sDAAsD,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAEvF,yBAAiB,uBAAuB,CAAC;IAC9B,MAAM,mBAAmB,SAIQ,CAAC;IAClC,MAAM,mBAAmB,SAIO,CAAC;IAEjC,MAAM,iBAAiB,SAIU,CAAC;CAC5C;AAWD,qBACa,+BAAgC,SAAQ,kCAAmC,YAAW,gCAAgC;IAG/H,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,iCAAiC,CAAC;IAGzE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAGpE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,mBAAmB,CAAC;IAGvD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAGpD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAGpE,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAGpE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,SAAS,CAAC,oBAAoB,UAAS;IAGvC,SAAS,CAAC,IAAI,IAAI,IAAI;cAWN,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB1D,sBAAsB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IActD,SAAS,CAAC,eAAe,IAAI,OAAO;IAIpC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC;IAgBpC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB5E,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAUxD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAQhC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoDjC,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC5F,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsIzC,2BAA2B,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;CAyB7E"}
@@ -28,6 +28,8 @@ const common_1 = require("@theia/workspace/lib/common");
28
28
  const dev_container_workspaces_1 = require("../electron-common/dev-container-workspaces");
29
29
  const remote_preferences_1 = require("@theia/remote/lib/electron-common/remote-preferences");
30
30
  const browser_1 = require("@theia/core/lib/browser");
31
+ const dialogs_1 = require("@theia/core/lib/browser/dialogs");
32
+ const dev_container_preferences_1 = require("../electron-common/dev-container-preferences");
31
33
  var RemoteContainerCommands;
32
34
  (function (RemoteContainerCommands) {
33
35
  RemoteContainerCommands.REOPEN_IN_CONTAINER = core_1.Command.toLocalizedCommand({
@@ -87,13 +89,13 @@ let ContainerConnectionContribution = class ContainerConnectionContribution exte
87
89
  execute: () => this.openInContainer(),
88
90
  isVisible: () => !this.isRemoteSession() && this.hasDevContainerFiles
89
91
  });
90
- registry.registerCommand(RemoteContainerCommands.ATTACH_TO_CONTAINER, {
91
- execute: () => this.attachToContainer()
92
- });
93
92
  registry.registerCommand(RemoteContainerCommands.REBUILD_CONTAINER, {
94
93
  execute: () => this.rebuildContainer(),
95
94
  isVisible: () => this.isRemoteSession()
96
95
  });
96
+ registry.registerCommand(RemoteContainerCommands.ATTACH_TO_CONTAINER, {
97
+ execute: () => this.attachToRunningContainer()
98
+ });
97
99
  }
98
100
  isRemoteSession() {
99
101
  return new URLSearchParams(window.location.search).has('localPort');
@@ -142,28 +144,6 @@ let ContainerConnectionContribution = class ContainerConnectionContribution exte
142
144
  }
143
145
  this.doOpenInContainer(devcontainerFile);
144
146
  }
145
- async attachToContainer() {
146
- const containers = await this.connectionProvider.listRunningContainers();
147
- if (containers.length === 0) {
148
- this.messageService.info(core_1.nls.localize('theia/remote/dev-container/noRunningContainers', 'No running containers found.'));
149
- return;
150
- }
151
- const selected = await this.quickInputService.pick(containers.map(container => ({
152
- type: 'item',
153
- label: container.name || container.id.substring(0, 12),
154
- description: container.image,
155
- detail: container.status,
156
- container
157
- })), {
158
- title: core_1.nls.localize('theia/remote/dev-container/selectContainer', 'Select a running container to attach to')
159
- });
160
- if (!selected) {
161
- return;
162
- }
163
- this.containerOutputProvider.openChannel();
164
- const connectionResult = await this.connectionProvider.attachToContainer(selected.container.id);
165
- this.openRemote(connectionResult.port, false, connectionResult.workspacePath);
166
- }
167
147
  async rebuildContainer() {
168
148
  this.containerOutputProvider.openChannel();
169
149
  const progress = await this.messageService.showProgress({
@@ -180,7 +160,7 @@ let ContainerConnectionContribution = class ContainerConnectionContribution exte
180
160
  await this.connectionProvider.removeContainer(ctx.containerId);
181
161
  }
182
162
  catch (error) {
183
- // Container may already be gone, ignore error
163
+ this.logger.debug('Container removal failed (may already be gone):', error);
184
164
  }
185
165
  const lastContainerKey = `${LAST_USED_CONTAINER}:${ctx.devcontainerFilePath}`;
186
166
  await this.storageService.setData(lastContainerKey, undefined);
@@ -201,7 +181,7 @@ let ContainerConnectionContribution = class ContainerConnectionContribution exte
201
181
  await this.connectionProvider.removeContainer(lastContainerInfo.id);
202
182
  }
203
183
  catch (error) {
204
- // Container may already be gone, ignore error
184
+ this.logger.debug('Container removal failed (may already be gone):', error);
205
185
  }
206
186
  await this.storageService.setData(lastContainerInfoKey, undefined);
207
187
  }
@@ -224,20 +204,132 @@ let ContainerConnectionContribution = class ContainerConnectionContribution exte
224
204
  devcontainerFile: devcontainerFile.path,
225
205
  workspacePath: hostWorkspacePath
226
206
  });
227
- this.storageService.setData(lastContainerInfoKey, {
207
+ await this.storageService.setData(lastContainerInfoKey, {
228
208
  id: connectionResult.containerId,
229
209
  lastUsed: Date.now()
230
210
  });
231
211
  // Store full context so rebuild works from inside the container
232
- this.storageService.setData(ACTIVE_DEV_CONTAINER_CONTEXT, {
212
+ await this.storageService.setData(ACTIVE_DEV_CONTAINER_CONTEXT, {
233
213
  devcontainerFilePath: devcontainerFile.path,
234
214
  devcontainerFileName: devcontainerFile.name,
235
215
  hostWorkspacePath: hostWorkspacePath ?? '',
236
216
  containerId: connectionResult.containerId,
237
217
  });
238
- this.workspaceServer.setMostRecentlyUsedWorkspace(`${dev_container_workspaces_1.DEV_CONTAINER_WORKSPACE_SCHEME}:${hostWorkspacePath}?${dev_container_workspaces_1.DEV_CONTAINER_PATH_QUERY}=${devcontainerFile.path}`);
218
+ await this.workspaceServer.setMostRecentlyUsedWorkspace(`${dev_container_workspaces_1.DEV_CONTAINER_WORKSPACE_SCHEME}:${hostWorkspacePath}?${dev_container_workspaces_1.DEV_CONTAINER_PATH_QUERY}=${devcontainerFile.path}`);
239
219
  this.openRemote(connectionResult.port, false, connectionResult.workspacePath);
240
220
  }
221
+ async attachToRunningContainer() {
222
+ try {
223
+ const confirmed = await new dialogs_1.ConfirmDialog({
224
+ title: core_1.nls.localize('theia/remote/dev-container/attachWarningTitle', 'Attach to Container'),
225
+ msg: core_1.nls.localize('theia/remote/dev-container/attachWarning', 'Attaching to a container will execute code inside it. Only attach to containers whose origin you trust.'),
226
+ ok: core_1.nls.localizeByDefault('Continue'),
227
+ cancel: dialogs_1.Dialog.CANCEL,
228
+ }).open();
229
+ if (!confirmed) {
230
+ return;
231
+ }
232
+ const containers = await this.connectionProvider.listRunningContainers();
233
+ if (containers.length === 0) {
234
+ this.messageService.info(core_1.nls.localize('theia/remote/dev-container/noRunningContainers', 'No running containers found.'));
235
+ return;
236
+ }
237
+ const selectedItem = await this.quickInputService.pick(containers.map(container => ({
238
+ type: 'item',
239
+ label: container.name,
240
+ description: container.image,
241
+ detail: container.status,
242
+ container
243
+ })), {
244
+ title: core_1.nls.localize('theia/remote/dev-container/selectContainer', 'Select a running container to attach to')
245
+ });
246
+ if (!selectedItem) {
247
+ return;
248
+ }
249
+ const selectedContainer = selectedItem.container;
250
+ const candidates = await this.connectionProvider.getWorkspaceCandidates(selectedContainer.id);
251
+ const customPathId = '__custom_path__';
252
+ const pathItem = await this.quickInputService.pick([
253
+ ...candidates.map(candidate => ({
254
+ type: 'item',
255
+ label: candidate.path,
256
+ description: candidate.source
257
+ })),
258
+ {
259
+ type: 'item',
260
+ id: customPathId,
261
+ label: core_1.nls.localize('theia/remote/dev-container/enterCustomPath', 'Enter custom path...'),
262
+ description: ''
263
+ }
264
+ ], {
265
+ title: core_1.nls.localize('theia/remote/dev-container/selectWorkspacePath', 'Select a workspace path inside the container')
266
+ });
267
+ if (!pathItem) {
268
+ return;
269
+ }
270
+ let selectedPath;
271
+ if ('id' in pathItem && pathItem.id === customPathId) {
272
+ selectedPath = await this.quickInputService.input({
273
+ prompt: core_1.nls.localize('theia/remote/dev-container/enterWorkspacePath', 'Enter the workspace path inside the container'),
274
+ value: '/'
275
+ });
276
+ }
277
+ else {
278
+ selectedPath = pathItem.label;
279
+ }
280
+ if (!selectedPath) {
281
+ return;
282
+ }
283
+ let devcontainerFile;
284
+ const applyConfigPref = this.devContainerPreferences['devcontainer.attach.applyFoundConfig'];
285
+ if (applyConfigPref !== 'never') {
286
+ const foundConfig = await this.connectionProvider.scanForDevContainerConfig(selectedContainer.id, selectedPath);
287
+ if (foundConfig) {
288
+ if (applyConfigPref === 'always') {
289
+ devcontainerFile = foundConfig;
290
+ }
291
+ else {
292
+ // 'ask'
293
+ const applyConfig = await new dialogs_1.ConfirmDialog({
294
+ title: core_1.nls.localize('theia/remote/dev-container/foundConfigTitle', 'Dev Container Configuration Found'),
295
+ msg: core_1.nls.localize('theia/remote/dev-container/foundConfigMsg', 'A devcontainer.json was found at {0}. Would you like to apply its post-attach settings (extensions, port forwarding, etc.)?', foundConfig),
296
+ ok: core_1.nls.localizeByDefault('Apply'),
297
+ cancel: dialogs_1.Dialog.CANCEL,
298
+ }).open();
299
+ if (applyConfig) {
300
+ devcontainerFile = foundConfig;
301
+ }
302
+ }
303
+ }
304
+ }
305
+ this.containerOutputProvider.openChannel();
306
+ const progress = await this.messageService.showProgress({
307
+ text: core_1.nls.localize('theia/remote/dev-container/attaching', 'Attaching to container')
308
+ });
309
+ try {
310
+ const connectionResult = await this.connectionProvider.attachToContainer({
311
+ containerId: selectedContainer.id,
312
+ workspacePath: selectedPath,
313
+ nodeDownloadTemplate: this.remotePreferences['remote.nodeDownloadTemplate'],
314
+ devcontainerFile,
315
+ });
316
+ // Store context so rebuild works from inside the container
317
+ await this.storageService.setData(ACTIVE_DEV_CONTAINER_CONTEXT, {
318
+ devcontainerFilePath: devcontainerFile ?? '',
319
+ devcontainerFileName: devcontainerFile ? core_1.URI.fromFilePath(devcontainerFile).path.base : '',
320
+ hostWorkspacePath: '',
321
+ containerId: connectionResult.containerId,
322
+ });
323
+ this.openRemote(connectionResult.port, false, connectionResult.workspacePath);
324
+ }
325
+ finally {
326
+ progress.cancel();
327
+ }
328
+ }
329
+ catch (e) {
330
+ this.messageService.error(core_1.nls.localize('theia/remote/dev-container/attachError', 'Failed to attach to container: {0}', e instanceof Error ? e.message : String(e)));
331
+ }
332
+ }
241
333
  async getOrSelectDevcontainerFile() {
242
334
  const workspace = this.workspaceService.workspace;
243
335
  if (!workspace) {
@@ -299,6 +391,14 @@ tslib_1.__decorate([
299
391
  (0, inversify_1.inject)(container_output_provider_1.ContainerOutputProvider),
300
392
  tslib_1.__metadata("design:type", container_output_provider_1.ContainerOutputProvider)
301
393
  ], ContainerConnectionContribution.prototype, "containerOutputProvider", void 0);
394
+ tslib_1.__decorate([
395
+ (0, inversify_1.inject)(dev_container_preferences_1.DevContainerPreferences),
396
+ tslib_1.__metadata("design:type", Object)
397
+ ], ContainerConnectionContribution.prototype, "devContainerPreferences", void 0);
398
+ tslib_1.__decorate([
399
+ (0, inversify_1.inject)(core_1.ILogger),
400
+ tslib_1.__metadata("design:type", Object)
401
+ ], ContainerConnectionContribution.prototype, "logger", void 0);
302
402
  tslib_1.__decorate([
303
403
  (0, inversify_1.postConstruct)(),
304
404
  tslib_1.__metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"container-connection-contribution.js","sourceRoot":"","sources":["../../src/electron-browser/container-connection-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container-connection-contribution.js","sourceRoot":"","sources":["../../src/electron-browser/container-connection-contribution.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"container-output-provider.d.ts","sourceRoot":"","sources":["../../src/electron-browser/container-output-provider.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAE/F,qBACa,uBAAwB,YAAW,uBAAuB;IAGnE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAE9D,SAAS,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;IAEzC,WAAW,IAAI,IAAI;IAKnB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGvC"}
1
+ {"version":3,"file":"container-output-provider.d.ts","sourceRoot":"","sources":["../../src/electron-browser/container-output-provider.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAE/F,qBACa,uBAAwB,YAAW,uBAAuB;IAGnE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAE9D,SAAS,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;IAEzC,WAAW,IAAI,IAAI;IAKnB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAKvC"}
@@ -26,7 +26,9 @@ let ContainerOutputProvider = class ContainerOutputProvider {
26
26
  }
27
27
  ;
28
28
  onRemoteOutput(output) {
29
- this.currentChannel?.appendLine(output);
29
+ if (output) {
30
+ this.currentChannel?.appendLine(output);
31
+ }
30
32
  }
31
33
  };
32
34
  exports.ContainerOutputProvider = ContainerOutputProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"container-output-provider.js","sourceRoot":"","sources":["../../src/electron-browser/container-output-provider.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,4DAAkE;AAClE,6EAA+F;AAGxF,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAOhC,WAAW;QACP,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAA,CAAC;IAEF,cAAc,CAAC,MAAc;QACzB,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;CACJ,CAAA;AAfY,0DAAuB;AAGb;IADlB,IAAA,kBAAM,EAAC,qCAAoB,CAAC;sCACY,qCAAoB;qEAAC;kCAHrD,uBAAuB;IADnC,IAAA,sBAAU,GAAE;GACA,uBAAuB,CAenC"}
1
+ {"version":3,"file":"container-output-provider.js","sourceRoot":"","sources":["../../src/electron-browser/container-output-provider.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,4DAAkE;AAClE,6EAA+F;AAGxF,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAOhC,WAAW;QACP,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAA,CAAC;IAEF,cAAc,CAAC,MAAc;QACzB,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;CACJ,CAAA;AAjBY,0DAAuB;AAGb;IADlB,IAAA,kBAAM,EAAC,qCAAoB,CAAC;sCACY,qCAAoB;qEAAC;kCAHrD,uBAAuB;IADnC,IAAA,sBAAU,GAAE;GACA,uBAAuB,CAiBnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dev-container-frontend-module.d.ts","sourceRoot":"","sources":["../../src/electron-browser/dev-container-frontend-module.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAY/D,wBAmBG"}
1
+ {"version":3,"file":"dev-container-frontend-module.d.ts","sourceRoot":"","sources":["../../src/electron-browser/dev-container-frontend-module.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAc/D,wBAuBG"}
@@ -26,11 +26,14 @@ const browser_1 = require("@theia/core/lib/browser");
26
26
  const workspace_service_1 = require("@theia/workspace/lib/browser/workspace-service");
27
27
  const window_title_service_1 = require("@theia/core/lib/browser/window/window-title-service");
28
28
  const dev_container_suggestion_contribution_1 = require("./dev-container-suggestion-contribution");
29
+ const dev_container_preferences_1 = require("../electron-common/dev-container-preferences");
30
+ const dev_container_startup_contribution_1 = require("./dev-container-startup-contribution");
29
31
  exports.default = new inversify_1.ContainerModule(bind => {
30
32
  bind(container_connection_contribution_1.ContainerConnectionContribution).toSelf().inSingletonScope();
31
33
  bind(remote_registry_contribution_1.RemoteRegistryContribution).toService(container_connection_contribution_1.ContainerConnectionContribution);
32
34
  bind(workspace_service_1.WorkspaceOpenHandlerContribution).toService(container_connection_contribution_1.ContainerConnectionContribution);
33
35
  bind(container_output_provider_1.ContainerOutputProvider).toSelf().inSingletonScope();
36
+ (0, dev_container_preferences_1.bindDevContainerPreferences)(bind);
34
37
  bind(remote_container_connection_provider_1.RemoteContainerConnectionProvider).toDynamicValue(ctx => {
35
38
  const outputProvider = ctx.container.get(container_output_provider_1.ContainerOutputProvider);
36
39
  return service_connection_provider_1.ServiceConnectionProvider.createLocalProxy(ctx.container, remote_container_connection_provider_1.RemoteContainerConnectionProviderPath, outputProvider);
@@ -41,5 +44,7 @@ exports.default = new inversify_1.ContainerModule(bind => {
41
44
  bind(browser_1.LabelProviderContribution).toService(container_info_contribution_1.ContainerInfoContribution);
42
45
  bind(dev_container_suggestion_contribution_1.DevContainerSuggestionContribution).toSelf().inSingletonScope();
43
46
  bind(browser_1.FrontendApplicationContribution).toService(dev_container_suggestion_contribution_1.DevContainerSuggestionContribution);
47
+ bind(dev_container_startup_contribution_1.DevContainerStartupContribution).toSelf().inSingletonScope();
48
+ bind(browser_1.FrontendApplicationContribution).toService(dev_container_startup_contribution_1.DevContainerStartupContribution);
44
49
  });
45
50
  //# sourceMappingURL=dev-container-frontend-module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev-container-frontend-module.js","sourceRoot":"","sources":["../../src/electron-browser/dev-container-frontend-module.ts"],"names":[],"mappings":";;AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,4DAA+D;AAC/D,kHAA6G;AAC7G,kHAAmJ;AACnJ,2FAAsF;AACtF,+GAA0G;AAC1G,2EAAsE;AACtE,+EAA0E;AAC1E,qDAAqG;AACrG,sFAAkG;AAClG,8FAA8F;AAC9F,mGAA6F;AAE7F,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,mEAA+B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAClE,IAAI,CAAC,yDAA0B,CAAC,CAAC,SAAS,CAAC,mEAA+B,CAAC,CAAC;IAC5E,IAAI,CAAC,oDAAgC,CAAC,CAAC,SAAS,CAAC,mEAA+B,CAAC,CAAC;IAElF,IAAI,CAAC,mDAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAE1D,IAAI,CAAC,wEAAiC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;QACzD,MAAM,cAAc,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mDAAuB,CAAC,CAAC;QAClE,OAAO,uDAAyB,CAAC,gBAAgB,CAAoC,GAAG,CAAC,SAAS,EAAE,4EAAqC,EAAE,cAAc,CAAC,CAAC;IAC/J,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEtB,IAAI,CAAC,uDAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,yCAA+B,CAAC,CAAC,SAAS,CAAC,uDAAyB,CAAC,CAAC;IAC3E,IAAI,CAAC,8CAAuB,CAAC,CAAC,SAAS,CAAC,uDAAyB,CAAC,CAAC;IACnE,IAAI,CAAC,mCAAyB,CAAC,CAAC,SAAS,CAAC,uDAAyB,CAAC,CAAC;IAErE,IAAI,CAAC,0EAAkC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACrE,IAAI,CAAC,yCAA+B,CAAC,CAAC,SAAS,CAAC,0EAAkC,CAAC,CAAC;AACxF,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"dev-container-frontend-module.js","sourceRoot":"","sources":["../../src/electron-browser/dev-container-frontend-module.ts"],"names":[],"mappings":";;AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,4DAA+D;AAC/D,kHAA6G;AAC7G,kHAAmJ;AACnJ,2FAAsF;AACtF,+GAA0G;AAC1G,2EAAsE;AACtE,+EAA0E;AAC1E,qDAAqG;AACrG,sFAAkG;AAClG,8FAA8F;AAC9F,mGAA6F;AAC7F,4FAA2F;AAC3F,6FAAuF;AAEvF,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,mEAA+B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAClE,IAAI,CAAC,yDAA0B,CAAC,CAAC,SAAS,CAAC,mEAA+B,CAAC,CAAC;IAC5E,IAAI,CAAC,oDAAgC,CAAC,CAAC,SAAS,CAAC,mEAA+B,CAAC,CAAC;IAElF,IAAI,CAAC,mDAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAA,uDAA2B,EAAC,IAAI,CAAC,CAAC;IAElC,IAAI,CAAC,wEAAiC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;QACzD,MAAM,cAAc,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mDAAuB,CAAC,CAAC;QAClE,OAAO,uDAAyB,CAAC,gBAAgB,CAAoC,GAAG,CAAC,SAAS,EAAE,4EAAqC,EAAE,cAAc,CAAC,CAAC;IAC/J,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEtB,IAAI,CAAC,uDAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,yCAA+B,CAAC,CAAC,SAAS,CAAC,uDAAyB,CAAC,CAAC;IAC3E,IAAI,CAAC,8CAAuB,CAAC,CAAC,SAAS,CAAC,uDAAyB,CAAC,CAAC;IACnE,IAAI,CAAC,mCAAyB,CAAC,CAAC,SAAS,CAAC,uDAAyB,CAAC,CAAC;IAErE,IAAI,CAAC,0EAAkC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACrE,IAAI,CAAC,yCAA+B,CAAC,CAAC,SAAS,CAAC,0EAAkC,CAAC,CAAC;IAEpF,IAAI,CAAC,oEAA+B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAClE,IAAI,CAAC,yCAA+B,CAAC,CAAC,SAAS,CAAC,oEAA+B,CAAC,CAAC;AACrF,CAAC,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { FrontendApplicationContribution } from '@theia/core/lib/browser';
2
+ import { RemoteContainerConnectionProvider } from '../electron-common/remote-container-connection-provider';
3
+ import { AbstractRemoteRegistryContribution } from '@theia/remote/lib/electron-browser/remote-registry-contribution';
4
+ import { ILogger, MessageService } from '@theia/core';
5
+ import { RemotePreferences } from '@theia/remote/lib/electron-common/remote-preferences';
6
+ export declare class DevContainerStartupContribution extends AbstractRemoteRegistryContribution implements FrontendApplicationContribution {
7
+ protected readonly connectionProvider: RemoteContainerConnectionProvider;
8
+ protected readonly logger: ILogger;
9
+ protected readonly messageService: MessageService;
10
+ protected readonly remotePreferences: RemotePreferences;
11
+ registerRemoteCommands(): void;
12
+ onStart(): void;
13
+ protected handleStartupAttach(): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=dev-container-startup-contribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-container-startup-contribution.d.ts","sourceRoot":"","sources":["../../src/electron-browser/dev-container-startup-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,iCAAiC,EAAE,MAAM,yDAAyD,CAAC;AAC5G,OAAO,EAAE,kCAAkC,EAAE,MAAM,iEAAiE,CAAC;AACrH,OAAO,EAAE,OAAO,EAAE,cAAc,EAAO,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sDAAsD,CAAC;AAEzF,qBACa,+BAAgC,SAAQ,kCAAmC,YAAW,+BAA+B;IAG9H,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,iCAAiC,CAAC;IAGzE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAGnC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,sBAAsB,IAAI,IAAI;IAI9B,OAAO,IAAI,IAAI;cAIC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;CAoDvD"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 EclipseSource GmbH and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.DevContainerStartupContribution = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const remote_container_connection_provider_1 = require("../electron-common/remote-container-connection-provider");
22
+ const remote_registry_contribution_1 = require("@theia/remote/lib/electron-browser/remote-registry-contribution");
23
+ const core_1 = require("@theia/core");
24
+ const remote_preferences_1 = require("@theia/remote/lib/electron-common/remote-preferences");
25
+ let DevContainerStartupContribution = class DevContainerStartupContribution extends remote_registry_contribution_1.AbstractRemoteRegistryContribution {
26
+ registerRemoteCommands() {
27
+ // no commands to register — this contribution only handles startup
28
+ }
29
+ onStart() {
30
+ this.handleStartupAttach();
31
+ }
32
+ async handleStartupAttach() {
33
+ try {
34
+ const args = await this.connectionProvider.getAttachContainerArgs();
35
+ if (!args) {
36
+ return;
37
+ }
38
+ const { containerId, scanForDevJson } = args;
39
+ this.logger.info(`CLI: --attach-container ${containerId}, initiating attach from frontend...`);
40
+ const containers = await this.connectionProvider.listRunningContainers();
41
+ // Match by ID prefix (either direction — user may pass a short prefix or a full 64-char ID
42
+ // while listRunningContainers returns 12-char truncated IDs) or exact name.
43
+ const matches = containers.filter(c => c.id.startsWith(containerId) || containerId.startsWith(c.id) || c.name === containerId);
44
+ if (matches.length > 1) {
45
+ this.logger.warn(`CLI: container identifier "${containerId}" matches ${matches.length} containers, using first match: ${matches[0].name || matches[0].id}`);
46
+ }
47
+ const target = matches[0];
48
+ if (!target) {
49
+ const msg = core_1.nls.localize('theia/remote/dev-container/cliContainerNotFound', 'Container "{0}" not found or not running.', containerId);
50
+ this.logger.error(`CLI: ${msg}`);
51
+ this.messageService.error(msg);
52
+ return;
53
+ }
54
+ const candidates = await this.connectionProvider.getWorkspaceCandidates(target.id);
55
+ const workspacePath = candidates.length > 0 ? candidates[0].path : '/';
56
+ const devcontainerFile = scanForDevJson
57
+ ? await this.connectionProvider.scanForDevContainerConfig(target.id, workspacePath)
58
+ : undefined;
59
+ const result = await this.connectionProvider.attachToContainer({
60
+ containerId: target.id,
61
+ workspacePath,
62
+ devcontainerFile,
63
+ nodeDownloadTemplate: this.remotePreferences['remote.nodeDownloadTemplate'],
64
+ });
65
+ this.logger.info(`CLI: startup attach ready, proxy on port ${result.port}, workspace: ${result.workspacePath}`);
66
+ this.openRemote(result.port, false, result.workspacePath);
67
+ }
68
+ catch (e) {
69
+ this.logger.error('CLI: Failed to attach to container during startup:', e);
70
+ this.messageService.error(core_1.nls.localize('theia/remote/dev-container/cliAttachError', 'Failed to attach to container: {0}', e instanceof Error ? e.message : String(e)));
71
+ }
72
+ }
73
+ };
74
+ exports.DevContainerStartupContribution = DevContainerStartupContribution;
75
+ tslib_1.__decorate([
76
+ (0, inversify_1.inject)(remote_container_connection_provider_1.RemoteContainerConnectionProvider),
77
+ tslib_1.__metadata("design:type", Object)
78
+ ], DevContainerStartupContribution.prototype, "connectionProvider", void 0);
79
+ tslib_1.__decorate([
80
+ (0, inversify_1.inject)(core_1.ILogger),
81
+ tslib_1.__metadata("design:type", Object)
82
+ ], DevContainerStartupContribution.prototype, "logger", void 0);
83
+ tslib_1.__decorate([
84
+ (0, inversify_1.inject)(core_1.MessageService),
85
+ tslib_1.__metadata("design:type", core_1.MessageService)
86
+ ], DevContainerStartupContribution.prototype, "messageService", void 0);
87
+ tslib_1.__decorate([
88
+ (0, inversify_1.inject)(remote_preferences_1.RemotePreferences),
89
+ tslib_1.__metadata("design:type", Object)
90
+ ], DevContainerStartupContribution.prototype, "remotePreferences", void 0);
91
+ exports.DevContainerStartupContribution = DevContainerStartupContribution = tslib_1.__decorate([
92
+ (0, inversify_1.injectable)()
93
+ ], DevContainerStartupContribution);
94
+ //# sourceMappingURL=dev-container-startup-contribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-container-startup-contribution.js","sourceRoot":"","sources":["../../src/electron-browser/dev-container-startup-contribution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { interfaces } from '@theia/core/shared/inversify';
2
+ import { PreferenceProxy } from '@theia/core/lib/common/preferences/preference-proxy';
3
+ import { PreferenceSchema } from '@theia/core/lib/common/preferences/preference-schema';
4
+ export declare const DevContainerPreferenceSchema: PreferenceSchema;
5
+ export interface DevContainerPreferenceConfiguration {
6
+ 'devcontainer.attach.applyFoundConfig': 'always' | 'ask' | 'never';
7
+ }
8
+ export declare const DevContainerPreferenceContribution: unique symbol;
9
+ export declare const DevContainerPreferences: unique symbol;
10
+ export type DevContainerPreferences = PreferenceProxy<DevContainerPreferenceConfiguration>;
11
+ export declare function bindDevContainerPreferences(bind: interfaces.Bind): void;
12
+ //# sourceMappingURL=dev-container-preferences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-container-preferences.d.ts","sourceRoot":"","sources":["../../src/electron-common/dev-container-preferences.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AAGtF,OAAO,EAA0B,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AAEhH,eAAO,MAAM,4BAA4B,EAAE,gBAa1C,CAAC;AAEF,MAAM,WAAW,mCAAmC;IAChD,sCAAsC,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;CACtE;AAED,eAAO,MAAM,kCAAkC,eAA+C,CAAC;AAC/F,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AACzE,MAAM,MAAM,uBAAuB,GAAG,eAAe,CAAC,mCAAmC,CAAC,CAAC;AAE3F,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAOvE"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 EclipseSource GmbH and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.DevContainerPreferences = exports.DevContainerPreferenceContribution = exports.DevContainerPreferenceSchema = void 0;
19
+ exports.bindDevContainerPreferences = bindDevContainerPreferences;
20
+ const nls_1 = require("@theia/core/lib/common/nls");
21
+ const injectable_preference_proxy_1 = require("@theia/core/lib/common/preferences/injectable-preference-proxy");
22
+ const preference_schema_1 = require("@theia/core/lib/common/preferences/preference-schema");
23
+ exports.DevContainerPreferenceSchema = {
24
+ properties: {
25
+ 'devcontainer.attach.applyFoundConfig': {
26
+ type: 'string',
27
+ enum: ['always', 'ask', 'never'],
28
+ default: 'ask',
29
+ markdownDescription: nls_1.nls.localize('theia/devContainer/attach/applyFoundConfig', 'Controls whether to apply a devcontainer.json found inside a container when attaching. '
30
+ + 'Extensions, settings, port forwarding, and post-attach commands from the configuration will be applied.')
31
+ }
32
+ }
33
+ };
34
+ exports.DevContainerPreferenceContribution = Symbol('DevContainerPreferenceContribution');
35
+ exports.DevContainerPreferences = Symbol('DevContainerPreferences');
36
+ function bindDevContainerPreferences(bind) {
37
+ bind(exports.DevContainerPreferences).toDynamicValue(ctx => {
38
+ const factory = ctx.container.get(injectable_preference_proxy_1.PreferenceProxyFactory);
39
+ return factory(exports.DevContainerPreferenceSchema);
40
+ }).inSingletonScope();
41
+ bind(exports.DevContainerPreferenceContribution).toConstantValue({ schema: exports.DevContainerPreferenceSchema });
42
+ bind(preference_schema_1.PreferenceContribution).toService(exports.DevContainerPreferenceContribution);
43
+ }
44
+ //# sourceMappingURL=dev-container-preferences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-container-preferences.js","sourceRoot":"","sources":["../../src/electron-common/dev-container-preferences.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AA+BhF,kEAOC;AAlCD,oDAAiD;AACjD,gHAAwG;AACxG,4FAAgH;AAEnG,QAAA,4BAA4B,GAAqB;IAC1D,UAAU,EAAE;QACR,sCAAsC,EAAE;YACpC,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC;YAChC,OAAO,EAAE,KAAK;YACd,mBAAmB,EAAE,SAAG,CAAC,QAAQ,CAC7B,4CAA4C,EAC5C,yFAAyF;kBACvF,yGAAyG,CAC9G;SACJ;KACJ;CACJ,CAAC;AAMW,QAAA,kCAAkC,GAAG,MAAM,CAAC,oCAAoC,CAAC,CAAC;AAClF,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAGzE,SAAgB,2BAA2B,CAAC,IAAqB;IAC7D,IAAI,CAAC,+BAAuB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;QAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAyB,oDAAsB,CAAC,CAAC;QAClF,OAAO,OAAO,CAAC,oCAA4B,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtB,IAAI,CAAC,0CAAkC,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,oCAA4B,EAAE,CAAC,CAAC;IACnG,IAAI,CAAC,0CAAsB,CAAC,CAAC,SAAS,CAAC,0CAAkC,CAAC,CAAC;AAC/E,CAAC"}
@@ -27,13 +27,32 @@ export interface RunningContainerInfo {
27
27
  name: string;
28
28
  image: string;
29
29
  status: string;
30
+ created: number;
31
+ }
32
+ export interface WorkspaceCandidate {
33
+ path: string;
34
+ /** Describes where this candidate came from */
35
+ source: 'working-dir' | 'bind-mount' | 'devcontainer-label' | 'fallback';
36
+ }
37
+ export interface AttachContainerOptions {
38
+ containerId: string;
39
+ workspacePath: string;
40
+ nodeDownloadTemplate?: string;
41
+ devcontainerFile?: string;
42
+ }
43
+ export interface AttachContainerArgs {
44
+ containerId: string;
45
+ scanForDevJson: boolean;
30
46
  }
31
47
  export interface RemoteContainerConnectionProvider extends RpcServer<ContainerOutputProvider> {
32
48
  connectToContainer(options: ContainerConnectionOptions): Promise<ContainerConnectionResult>;
33
49
  getDevContainerFiles(workspacePath: string): Promise<DevContainerFile[]>;
34
50
  getCurrentContainerInfo(port: number): Promise<ContainerInspectInfo | undefined>;
35
51
  listRunningContainers(): Promise<RunningContainerInfo[]>;
36
- attachToContainer(containerId: string): Promise<ContainerConnectionResult>;
52
+ getWorkspaceCandidates(containerId: string): Promise<WorkspaceCandidate[]>;
53
+ scanForDevContainerConfig(containerId: string, workspacePath: string): Promise<string | undefined>;
54
+ getAttachContainerArgs(): Promise<AttachContainerArgs | undefined>;
55
+ attachToContainer(options: AttachContainerOptions): Promise<ContainerConnectionResult>;
37
56
  removeContainer(containerId: string): Promise<void>;
38
57
  }
39
58
  //# sourceMappingURL=remote-container-connection-provider.d.ts.map