@theia/ai-terminal 1.72.0-next.50 → 1.72.0-next.59

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.
@@ -12,7 +12,13 @@ export declare class ShellExecutionTool implements ToolProvider {
12
12
  isExecutionRunning(toolCallId: string): boolean;
13
13
  getTool(): ToolRequest;
14
14
  protected executeCommand(argString: string, ctx?: unknown): Promise<ShellExecutionToolResult | ShellExecutionCanceledResult>;
15
- protected extractToolCallId(ctx: unknown): string | undefined;
15
+ /**
16
+ * Resolves a cwd value to an absolute filesystem path.
17
+ * Handles: undefined (falls back to workspace root), absolute paths (pass-through),
18
+ * root-relative paths (<rootName>/...), and bare root names.
19
+ */
20
+ private resolveCwd;
21
+ protected extractToolCallId(ctx?: unknown): string | undefined;
16
22
  protected extractCancellationToken(ctx: unknown): CancellationToken | undefined;
17
23
  protected combineAndTruncate(stdout: string, stderr: string): string;
18
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shell-execution-tool.d.ts","sourceRoot":"","sources":["../../src/browser/shell-execution-tool.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAEH,oBAAoB,EACpB,wBAAwB,EACxB,4BAA4B,EAE/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAgB,MAAM,aAAa,CAAC;AAE9D,qBACa,kBAAmB,YAAW,YAAY;IAGnD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAGrD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,6BAA6B,EAAE,6BAA6B,CAAC;IAEhF,SAAS,CAAC,QAAQ,CAAC,iBAAiB,sBAA6B;IAE3D,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAY3D,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI/C,OAAO,IAAI,WAAW;cAwGN,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,GAAG,4BAA4B,CAAC;IA+DlI,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAO7D,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS;IAa/E,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;CAGvE"}
1
+ {"version":3,"file":"shell-execution-tool.d.ts","sourceRoot":"","sources":["../../src/browser/shell-execution-tool.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAEH,oBAAoB,EACpB,wBAAwB,EACxB,4BAA4B,EAE/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAsB,MAAM,aAAa,CAAC;AAEpE,qBACa,kBAAmB,YAAW,YAAY;IAGnD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAGrD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,6BAA6B,EAAE,6BAA6B,CAAC;IAEhF,SAAS,CAAC,QAAQ,CAAC,iBAAiB,sBAA6B;IAE3D,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAY3D,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI/C,OAAO,IAAI,WAAW;cA2GN,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,GAAG,4BAA4B,CAAC;IA2DlI;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAyClB,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAO9D,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS;IAa/E,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;CAGvE"}
@@ -112,7 +112,10 @@ TIMEOUT: Default 2 minutes, max 10 minutes. Specify higher timeout for longer co
112
112
  },
113
113
  cwd: {
114
114
  type: 'string',
115
- description: 'Working directory for command execution. Can be absolute or relative to workspace root. Defaults to the workspace root.'
115
+ description: 'Working directory for command execution. ' +
116
+ 'Use a workspace-relative path (e.g., "backend", "frontend/src") ' +
117
+ 'or an absolute filesystem path. ' +
118
+ 'If omitted, defaults to the workspace root (single-root workspaces only).'
116
119
  },
117
120
  timeout: {
118
121
  type: 'number',
@@ -145,9 +148,7 @@ TIMEOUT: Default 2 minutes, max 10 minutes. Specify higher timeout for longer co
145
148
  }
146
149
  async executeCommand(argString, ctx) {
147
150
  const args = JSON.parse(argString);
148
- // Get workspace root to pass to backend for path resolution
149
- const rootUri = this.workspaceService.getWorkspaceRootUri(undefined);
150
- const workspaceRoot = rootUri?.path.fsPath();
151
+ const resolvedCwd = this.resolveCwd(args.cwd);
151
152
  // Generate execution ID and get tool call ID from context
152
153
  const executionId = (0, core_1.generateUuid)();
153
154
  const toolCallId = this.extractToolCallId(ctx);
@@ -160,11 +161,9 @@ TIMEOUT: Default 2 minutes, max 10 minutes. Specify higher timeout for longer co
160
161
  this.shellServer.cancel(executionId);
161
162
  });
162
163
  try {
163
- // Call the backend service (path resolution happens on the backend)
164
164
  const result = await this.shellServer.execute({
165
165
  command: args.command,
166
- cwd: args.cwd,
167
- workspaceRoot,
166
+ cwd: resolvedCwd,
168
167
  timeout: args.timeout,
169
168
  executionId,
170
169
  });
@@ -194,6 +193,41 @@ TIMEOUT: Default 2 minutes, max 10 minutes. Specify higher timeout for longer co
194
193
  }
195
194
  }
196
195
  }
196
+ /**
197
+ * Resolves a cwd value to an absolute filesystem path.
198
+ * Handles: undefined (falls back to workspace root), absolute paths (pass-through),
199
+ * root-relative paths (<rootName>/...), and bare root names.
200
+ */
201
+ resolveCwd(cwd) {
202
+ const roots = this.workspaceService.tryGetRoots();
203
+ const rootNames = roots.map(r => r.resource.path.base);
204
+ if (!cwd) {
205
+ if (roots.length === 1) {
206
+ return roots[0].resource.path.fsPath();
207
+ }
208
+ throw new Error('A working directory (cwd) is required in a multi-root workspace. ' +
209
+ `Available workspace roots: ${rootNames.join(', ')}. ` +
210
+ 'Provide one as cwd (e.g., "backend") or use a sub-path (e.g., "backend/src").');
211
+ }
212
+ const normalized = core_1.Path.normalizePathSeparator(cwd);
213
+ if (new core_1.Path(normalized).isAbsolute) {
214
+ return normalized;
215
+ }
216
+ const segments = normalized.split('/');
217
+ for (const root of roots) {
218
+ if (root.resource.path.base === segments[0]) {
219
+ const rest = segments.slice(1).join('/');
220
+ const resolved = rest ? root.resource.resolve(rest) : root.resource;
221
+ return resolved.path.fsPath();
222
+ }
223
+ }
224
+ if (roots.length === 1) {
225
+ return roots[0].resource.resolve(normalized).path.fsPath();
226
+ }
227
+ throw new Error(`Could not resolve working directory '${cwd}' to a workspace root. ` +
228
+ 'In a multi-root workspace, prefix paths with the workspace root name ' +
229
+ `(e.g., '${rootNames[0]}/path'). Available roots: ${rootNames.join(', ')}.`);
230
+ }
197
231
  extractToolCallId(ctx) {
198
232
  if (ctx && typeof ctx === 'object' && 'toolCallId' in ctx) {
199
233
  return ctx.toolCallId;
@@ -1 +1 @@
1
- {"version":3,"file":"shell-execution-tool.js","sourceRoot":"","sources":["../../src/browser/shell-execution-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell-execution-tool.js","sourceRoot":"","sources":["../../src/browser/shell-execution-tool.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,8 @@ export declare const ShellExecutionServer: unique symbol;
3
3
  export declare const shellExecutionPath = "/services/shell-execution";
4
4
  export interface ShellExecutionRequest {
5
5
  command: string;
6
- /** Working directory. Can be absolute or relative to workspaceRoot. */
6
+ /** Working directory. Resolved to an absolute path on the frontend before sending to the backend. */
7
7
  cwd?: string;
8
- /** Workspace root path for resolving relative cwd paths */
9
- workspaceRoot?: string;
10
8
  timeout?: number;
11
9
  /** Unique ID for this execution, used for cancellation */
12
10
  executionId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"shell-execution-server.d.ts","sourceRoot":"","sources":["../../src/common/shell-execution-server.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,2BAA2B,iBAAiB,CAAC;AAE1D,eAAO,MAAM,oBAAoB,eAAiC,CAAC;AACnE,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAE9D,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACvE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,wBAAwB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,4BAA4B;IACzC,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,yBAAiB,wBAAwB,CAAC;IACtC,SAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,wBAAwB,CAIhE;CACJ;AAED,yBAAiB,4BAA4B,CAAC;IAC1C,SAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,4BAA4B,CAGpE;CACJ;AAED,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOjD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA0BzE"}
1
+ {"version":3,"file":"shell-execution-server.d.ts","sourceRoot":"","sources":["../../src/common/shell-execution-server.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,2BAA2B,iBAAiB,CAAC;AAE1D,eAAO,MAAM,oBAAoB,eAAiC,CAAC;AACnE,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAE9D,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,qGAAqG;IACrG,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACvE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,wBAAwB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,4BAA4B;IACzC,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,yBAAiB,wBAAwB,CAAC;IACtC,SAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,wBAAwB,CAIhE;CACJ;AAED,yBAAiB,4BAA4B,CAAC;IAC1C,SAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,4BAA4B,CAGpE;CACJ;AAED,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOjD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA0BzE"}
@@ -1 +1 @@
1
- {"version":3,"file":"shell-execution-server.js","sourceRoot":"","sources":["../../src/common/shell-execution-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell-execution-server.js","sourceRoot":"","sources":["../../src/common/shell-execution-server.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;;;AAsEhF,oCAOC;AAED,gDA0BC;AAvGY,QAAA,2BAA2B,GAAG,cAAc,CAAC;AAE7C,QAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AACtD,QAAA,kBAAkB,GAAG,2BAA2B,CAAC;AA6C9D,IAAiB,wBAAwB,CAMxC;AAND,WAAiB,wBAAwB;IACrC,SAAgB,EAAE,CAAC,GAAY;QAC3B,OAAO,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YACnC,SAAS,IAAI,GAAG,IAAI,OAAQ,GAAgC,CAAC,OAAO,KAAK,SAAS;YAClF,UAAU,IAAI,GAAG,IAAI,OAAQ,GAAgC,CAAC,QAAQ,KAAK,QAAQ,CAAC;IAC5F,CAAC;IAJe,2BAAE,KAIjB,CAAA;AACL,CAAC,EANgB,wBAAwB,wCAAxB,wBAAwB,QAMxC;AAED,IAAiB,4BAA4B,CAK5C;AALD,WAAiB,4BAA4B;IACzC,SAAgB,EAAE,CAAC,GAAY;QAC3B,OAAO,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YACnC,UAAU,IAAI,GAAG,IAAK,GAAoC,CAAC,QAAQ,KAAK,IAAI,CAAC;IACrF,CAAC;IAHe,+BAAE,KAGjB,CAAA;AACL,CAAC,EALgB,4BAA4B,4CAA5B,4BAA4B,QAK5C;AAEY,QAAA,UAAU,GAAG,EAAE,CAAC;AAChB,QAAA,UAAU,GAAG,EAAE,CAAC;AAChB,QAAA,WAAW,GAAG,EAAE,CAAC;AACjB,QAAA,eAAe,GAAG,IAAI,CAAC;AAEpC,SAAgB,YAAY,CAAC,IAAY;IACrC,IAAI,IAAI,CAAC,MAAM,IAAI,uBAAe,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,uBAAe,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,UAAU,GAAG,CAAC,CAAC;IAClD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,YAAY,uBAAuB,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;AAC7G,CAAC;AAED,SAAgB,kBAAkB,CAAC,MAAc,EAAE,MAAc;IAC7D,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACpC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAEpC,IAAI,MAAM,GAAG,aAAa,CAAC;IAC3B,IAAI,aAAa,EAAE,CAAC;QAChB,MAAM,GAAG,MAAM;YACX,CAAC,CAAC,GAAG,MAAM,qBAAqB,aAAa,EAAE;YAC/C,CAAC,CAAC,aAAa,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEjC,IAAI,KAAK,CAAC,MAAM,IAAI,kBAAU,GAAG,kBAAU,GAAG,mBAAW,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAU,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,kBAAU,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,kBAAU,GAAG,kBAAU,CAAC;IAE5D,OAAO,CAAC,GAAG,SAAS,EAAE,UAAU,YAAY,uBAAuB,EAAE,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClG,CAAC"}
@@ -6,6 +6,5 @@ export declare class ShellExecutionServerImpl implements ShellExecutionServer {
6
6
  execute(request: ShellExecutionRequest): Promise<ShellExecutionResult>;
7
7
  cancel(executionId: string): Promise<boolean>;
8
8
  protected killProcessTree(childProcess: ChildProcess): void;
9
- protected resolveCwd(requestedCwd: string | undefined, workspaceRoot: string | undefined): string | undefined;
10
9
  }
11
10
  //# sourceMappingURL=shell-execution-server-impl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shell-execution-server-impl.d.ts","sourceRoot":"","sources":["../../src/node/shell-execution-server-impl.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAS,YAAY,EAAY,MAAM,eAAe,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAMrH,qBACa,wBAAyB,YAAW,oBAAoB;IAEjE,SAAS,CAAC,QAAQ,CAAC,gBAAgB,4BAAmC;IACtE,SAAS,CAAC,QAAQ,CAAC,kBAAkB,cAAqB;IAEpD,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAuHtE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWnD,SAAS,CAAC,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAoB3D,SAAS,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;CAYhH"}
1
+ {"version":3,"file":"shell-execution-server-impl.d.ts","sourceRoot":"","sources":["../../src/node/shell-execution-server-impl.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAS,YAAY,EAAY,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAMrH,qBACa,wBAAyB,YAAW,oBAAoB;IAEjE,SAAS,CAAC,QAAQ,CAAC,gBAAgB,4BAAmC;IACtE,SAAS,CAAC,QAAQ,CAAC,kBAAkB,cAAqB;IAEpD,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA2HtE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWnD,SAAS,CAAC,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;CAmB9D"}
@@ -17,9 +17,9 @@
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.ShellExecutionServerImpl = void 0;
19
19
  const tslib_1 = require("tslib");
20
+ const path = require("path");
20
21
  const inversify_1 = require("@theia/core/shared/inversify");
21
22
  const child_process_1 = require("child_process");
22
- const path = require("path");
23
23
  const DEFAULT_TIMEOUT = 120000; // 2 minutes
24
24
  const MAX_TIMEOUT = 600000; // 10 minutes
25
25
  const MAX_OUTPUT_SIZE = 1024 * 1024; // 1MB
@@ -29,16 +29,19 @@ let ShellExecutionServerImpl = class ShellExecutionServerImpl {
29
29
  this.canceledExecutions = new Set();
30
30
  }
31
31
  async execute(request) {
32
- const { command, cwd, workspaceRoot, timeout, executionId } = request;
32
+ const { command, cwd, timeout, executionId } = request;
33
+ if (cwd && !path.isAbsolute(cwd)) {
34
+ throw new Error(`Shell execution backend received a non-absolute cwd: '${cwd}'. ` +
35
+ 'The frontend must resolve cwd to an absolute path before sending it to the backend.');
36
+ }
33
37
  const effectiveTimeout = Math.min(timeout ?? DEFAULT_TIMEOUT, MAX_TIMEOUT);
34
38
  const startTime = Date.now();
35
- const resolvedCwd = this.resolveCwd(cwd, workspaceRoot);
36
39
  return new Promise(resolve => {
37
40
  let stdout = '';
38
41
  let stderr = '';
39
42
  let killed = false;
40
43
  const childProcess = (0, child_process_1.spawn)(command, [], {
41
- cwd: resolvedCwd,
44
+ cwd,
42
45
  shell: true,
43
46
  detached: process.platform !== 'win32',
44
47
  windowsHide: true,
@@ -81,7 +84,7 @@ let ShellExecutionServerImpl = class ShellExecutionServerImpl {
81
84
  error: 'Command canceled by user',
82
85
  duration,
83
86
  canceled: true,
84
- resolvedCwd,
87
+ resolvedCwd: cwd,
85
88
  });
86
89
  }
87
90
  else {
@@ -92,7 +95,7 @@ let ShellExecutionServerImpl = class ShellExecutionServerImpl {
92
95
  stderr,
93
96
  error: `Command timed out after ${effectiveTimeout}ms`,
94
97
  duration,
95
- resolvedCwd,
98
+ resolvedCwd: cwd,
96
99
  });
97
100
  }
98
101
  }
@@ -103,7 +106,7 @@ let ShellExecutionServerImpl = class ShellExecutionServerImpl {
103
106
  stdout,
104
107
  stderr,
105
108
  duration,
106
- resolvedCwd,
109
+ resolvedCwd: cwd,
107
110
  });
108
111
  }
109
112
  else {
@@ -113,7 +116,7 @@ let ShellExecutionServerImpl = class ShellExecutionServerImpl {
113
116
  stdout,
114
117
  stderr,
115
118
  duration,
116
- resolvedCwd,
119
+ resolvedCwd: cwd,
117
120
  });
118
121
  }
119
122
  });
@@ -130,7 +133,7 @@ let ShellExecutionServerImpl = class ShellExecutionServerImpl {
130
133
  stderr,
131
134
  error: error.message,
132
135
  duration: Date.now() - startTime,
133
- resolvedCwd,
136
+ resolvedCwd: cwd,
134
137
  });
135
138
  });
136
139
  });
@@ -166,18 +169,6 @@ let ShellExecutionServerImpl = class ShellExecutionServerImpl {
166
169
  }
167
170
  }
168
171
  }
169
- resolveCwd(requestedCwd, workspaceRoot) {
170
- if (!requestedCwd) {
171
- return workspaceRoot;
172
- }
173
- if (path.isAbsolute(requestedCwd)) {
174
- return requestedCwd;
175
- }
176
- if (workspaceRoot) {
177
- return path.resolve(workspaceRoot, requestedCwd);
178
- }
179
- return requestedCwd;
180
- }
181
172
  };
182
173
  exports.ShellExecutionServerImpl = ShellExecutionServerImpl;
183
174
  exports.ShellExecutionServerImpl = ShellExecutionServerImpl = tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"shell-execution-server-impl.js","sourceRoot":"","sources":["../../src/node/shell-execution-server-impl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell-execution-server-impl.js","sourceRoot":"","sources":["../../src/node/shell-execution-server-impl.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@theia/ai-terminal",
3
- "version": "1.72.0-next.50+f26609f54",
3
+ "version": "1.72.0-next.59+044f7bfc5",
4
4
  "description": "Theia - AI Terminal Extension",
5
5
  "dependencies": {
6
- "@theia/ai-chat": "1.72.0-next.50+f26609f54",
7
- "@theia/ai-chat-ui": "1.72.0-next.50+f26609f54",
8
- "@theia/ai-core": "1.72.0-next.50+f26609f54",
9
- "@theia/core": "1.72.0-next.50+f26609f54",
10
- "@theia/terminal": "1.72.0-next.50+f26609f54",
11
- "@theia/workspace": "1.72.0-next.50+f26609f54",
6
+ "@theia/ai-chat": "1.72.0-next.59+044f7bfc5",
7
+ "@theia/ai-chat-ui": "1.72.0-next.59+044f7bfc5",
8
+ "@theia/ai-core": "1.72.0-next.59+044f7bfc5",
9
+ "@theia/core": "1.72.0-next.59+044f7bfc5",
10
+ "@theia/terminal": "1.72.0-next.59+044f7bfc5",
11
+ "@theia/workspace": "1.72.0-next.59+044f7bfc5",
12
12
  "zod": "^4.4.3"
13
13
  },
14
14
  "publishConfig": {
@@ -50,5 +50,5 @@
50
50
  "nyc": {
51
51
  "extends": "../../configs/nyc.json"
52
52
  },
53
- "gitHead": "f26609f5411c7101a4b2f540584b8163a6036131"
53
+ "gitHead": "044f7bfc503932372f324434beabbf5422dc583f"
54
54
  }
@@ -25,7 +25,7 @@ import {
25
25
  ShellExecutionCanceledResult,
26
26
  combineAndTruncate
27
27
  } from '../common/shell-execution-server';
28
- import { CancellationToken, generateUuid } from '@theia/core';
28
+ import { CancellationToken, generateUuid, Path } from '@theia/core';
29
29
 
30
30
  @injectable()
31
31
  export class ShellExecutionTool implements ToolProvider {
@@ -129,7 +129,10 @@ TIMEOUT: Default 2 minutes, max 10 minutes. Specify higher timeout for longer co
129
129
  },
130
130
  cwd: {
131
131
  type: 'string',
132
- description: 'Working directory for command execution. Can be absolute or relative to workspace root. Defaults to the workspace root.'
132
+ description: 'Working directory for command execution. ' +
133
+ 'Use a workspace-relative path (e.g., "backend", "frontend/src") ' +
134
+ 'or an absolute filesystem path. ' +
135
+ 'If omitted, defaults to the workspace root (single-root workspaces only).'
133
136
  },
134
137
  timeout: {
135
138
  type: 'number',
@@ -168,9 +171,7 @@ TIMEOUT: Default 2 minutes, max 10 minutes. Specify higher timeout for longer co
168
171
  timeout?: number;
169
172
  } = JSON.parse(argString);
170
173
 
171
- // Get workspace root to pass to backend for path resolution
172
- const rootUri = this.workspaceService.getWorkspaceRootUri(undefined);
173
- const workspaceRoot = rootUri?.path.fsPath();
174
+ const resolvedCwd = this.resolveCwd(args.cwd);
174
175
 
175
176
  // Generate execution ID and get tool call ID from context
176
177
  const executionId = generateUuid();
@@ -187,11 +188,9 @@ TIMEOUT: Default 2 minutes, max 10 minutes. Specify higher timeout for longer co
187
188
  });
188
189
 
189
190
  try {
190
- // Call the backend service (path resolution happens on the backend)
191
191
  const result = await this.shellServer.execute({
192
192
  command: args.command,
193
- cwd: args.cwd,
194
- workspaceRoot,
193
+ cwd: resolvedCwd,
195
194
  timeout: args.timeout,
196
195
  executionId,
197
196
  });
@@ -224,7 +223,53 @@ TIMEOUT: Default 2 minutes, max 10 minutes. Specify higher timeout for longer co
224
223
  }
225
224
  }
226
225
 
227
- protected extractToolCallId(ctx: unknown): string | undefined {
226
+ /**
227
+ * Resolves a cwd value to an absolute filesystem path.
228
+ * Handles: undefined (falls back to workspace root), absolute paths (pass-through),
229
+ * root-relative paths (<rootName>/...), and bare root names.
230
+ */
231
+ private resolveCwd(cwd: string | undefined): string {
232
+ const roots = this.workspaceService.tryGetRoots();
233
+
234
+ const rootNames = roots.map(r => r.resource.path.base);
235
+ if (!cwd) {
236
+ if (roots.length === 1) {
237
+ return roots[0].resource.path.fsPath();
238
+ }
239
+ throw new Error(
240
+ 'A working directory (cwd) is required in a multi-root workspace. ' +
241
+ `Available workspace roots: ${rootNames.join(', ')}. ` +
242
+ 'Provide one as cwd (e.g., "backend") or use a sub-path (e.g., "backend/src").'
243
+ );
244
+ }
245
+
246
+ const normalized = Path.normalizePathSeparator(cwd);
247
+
248
+ if (new Path(normalized).isAbsolute) {
249
+ return normalized;
250
+ }
251
+
252
+ const segments = normalized.split('/');
253
+ for (const root of roots) {
254
+ if (root.resource.path.base === segments[0]) {
255
+ const rest = segments.slice(1).join('/');
256
+ const resolved = rest ? root.resource.resolve(rest) : root.resource;
257
+ return resolved.path.fsPath();
258
+ }
259
+ }
260
+
261
+ if (roots.length === 1) {
262
+ return roots[0].resource.resolve(normalized).path.fsPath();
263
+ }
264
+
265
+ throw new Error(
266
+ `Could not resolve working directory '${cwd}' to a workspace root. ` +
267
+ 'In a multi-root workspace, prefix paths with the workspace root name ' +
268
+ `(e.g., '${rootNames[0]}/path'). Available roots: ${rootNames.join(', ')}.`
269
+ );
270
+ }
271
+
272
+ protected extractToolCallId(ctx?: unknown): string | undefined {
228
273
  if (ctx && typeof ctx === 'object' && 'toolCallId' in ctx) {
229
274
  return (ctx as { toolCallId?: string }).toolCallId;
230
275
  }
@@ -21,10 +21,8 @@ export const shellExecutionPath = '/services/shell-execution';
21
21
 
22
22
  export interface ShellExecutionRequest {
23
23
  command: string;
24
- /** Working directory. Can be absolute or relative to workspaceRoot. */
24
+ /** Working directory. Resolved to an absolute path on the frontend before sending to the backend. */
25
25
  cwd?: string;
26
- /** Workspace root path for resolving relative cwd paths */
27
- workspaceRoot?: string;
28
26
  timeout?: number; // milliseconds
29
27
  /** Unique ID for this execution, used for cancellation */
30
28
  executionId?: string;
@@ -14,9 +14,9 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
+ import * as path from 'path';
17
18
  import { injectable } from '@theia/core/shared/inversify';
18
19
  import { spawn, ChildProcess, execSync } from 'child_process';
19
- import * as path from 'path';
20
20
  import { ShellExecutionServer, ShellExecutionRequest, ShellExecutionResult } from '../common/shell-execution-server';
21
21
 
22
22
  const DEFAULT_TIMEOUT = 120000; // 2 minutes
@@ -30,19 +30,23 @@ export class ShellExecutionServerImpl implements ShellExecutionServer {
30
30
  protected readonly canceledExecutions = new Set<string>();
31
31
 
32
32
  async execute(request: ShellExecutionRequest): Promise<ShellExecutionResult> {
33
- const { command, cwd, workspaceRoot, timeout, executionId } = request;
33
+ const { command, cwd, timeout, executionId } = request;
34
+ if (cwd && !path.isAbsolute(cwd)) {
35
+ throw new Error(
36
+ `Shell execution backend received a non-absolute cwd: '${cwd}'. ` +
37
+ 'The frontend must resolve cwd to an absolute path before sending it to the backend.'
38
+ );
39
+ }
34
40
  const effectiveTimeout = Math.min(timeout ?? DEFAULT_TIMEOUT, MAX_TIMEOUT);
35
41
  const startTime = Date.now();
36
42
 
37
- const resolvedCwd = this.resolveCwd(cwd, workspaceRoot);
38
-
39
43
  return new Promise<ShellExecutionResult>(resolve => {
40
44
  let stdout = '';
41
45
  let stderr = '';
42
46
  let killed = false;
43
47
 
44
48
  const childProcess = spawn(command, [], {
45
- cwd: resolvedCwd,
49
+ cwd,
46
50
  shell: true,
47
51
  detached: process.platform !== 'win32',
48
52
  windowsHide: true,
@@ -93,7 +97,7 @@ export class ShellExecutionServerImpl implements ShellExecutionServer {
93
97
  error: 'Command canceled by user',
94
98
  duration,
95
99
  canceled: true,
96
- resolvedCwd,
100
+ resolvedCwd: cwd,
97
101
  });
98
102
  } else {
99
103
  resolve({
@@ -103,7 +107,7 @@ export class ShellExecutionServerImpl implements ShellExecutionServer {
103
107
  stderr,
104
108
  error: `Command timed out after ${effectiveTimeout}ms`,
105
109
  duration,
106
- resolvedCwd,
110
+ resolvedCwd: cwd,
107
111
  });
108
112
  }
109
113
  } else if (code === 0) {
@@ -113,7 +117,7 @@ export class ShellExecutionServerImpl implements ShellExecutionServer {
113
117
  stdout,
114
118
  stderr,
115
119
  duration,
116
- resolvedCwd,
120
+ resolvedCwd: cwd,
117
121
  });
118
122
  } else {
119
123
  resolve({
@@ -122,7 +126,7 @@ export class ShellExecutionServerImpl implements ShellExecutionServer {
122
126
  stdout,
123
127
  stderr,
124
128
  duration,
125
- resolvedCwd,
129
+ resolvedCwd: cwd,
126
130
  });
127
131
  }
128
132
  });
@@ -142,7 +146,7 @@ export class ShellExecutionServerImpl implements ShellExecutionServer {
142
146
  stderr,
143
147
  error: error.message,
144
148
  duration: Date.now() - startTime,
145
- resolvedCwd,
149
+ resolvedCwd: cwd,
146
150
  });
147
151
  });
148
152
  });
@@ -178,17 +182,4 @@ export class ShellExecutionServerImpl implements ShellExecutionServer {
178
182
  }
179
183
  }
180
184
  }
181
-
182
- protected resolveCwd(requestedCwd: string | undefined, workspaceRoot: string | undefined): string | undefined {
183
- if (!requestedCwd) {
184
- return workspaceRoot;
185
- }
186
- if (path.isAbsolute(requestedCwd)) {
187
- return requestedCwd;
188
- }
189
- if (workspaceRoot) {
190
- return path.resolve(workspaceRoot, requestedCwd);
191
- }
192
- return requestedCwd;
193
- }
194
185
  }