fix(agent-browser): restore bounded presentation lifecycle
This commit is contained in:
@@ -18,6 +18,7 @@ import type { CodingPluginToolDefinition } from '../../../shared/coding-plugins'
|
||||
import type { PiSkillEntry } from './resource-loader';
|
||||
import type { EffectivePluginSnapshot } from '../../coding-plugins/effective-resolver';
|
||||
import { DevicePackageError } from '../../coding-packages/device-package-manager';
|
||||
import { AgentBrowserFault } from '../../agent-browser/fault';
|
||||
|
||||
const MAX_REQUEST_BYTES = 64 * 1024;
|
||||
const PRODUCT_TOOL_NAME_PATTERN = /^[A-Za-z][A-Za-z0-9._:-]{0,63}$/u;
|
||||
@@ -516,6 +517,17 @@ export class PiManagedExtensionHost {
|
||||
record.waiters.delete(value.resourceId);
|
||||
}
|
||||
} catch (error) {
|
||||
if (!response.writableEnded && error instanceof AgentBrowserFault) {
|
||||
const message = error.message.slice(0, 512);
|
||||
this.respond(response, 400, {
|
||||
code: error.code,
|
||||
error: `${error.code}: ${message}`,
|
||||
retryable: error.retryable,
|
||||
...(error.generation === undefined ? {} : { generation: error.generation }),
|
||||
...(error.outcome === undefined ? {} : { outcome: error.outcome }),
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!response.writableEnded && error instanceof DevicePackageError) {
|
||||
this.respond(response, 400, {
|
||||
code: error.code,
|
||||
|
||||
Reference in New Issue
Block a user