@@ -2239,6 +2239,7 @@ export class AgentSession {
|
||||
{
|
||||
getModel: () => this.model,
|
||||
isIdle: () => !this.isStreaming,
|
||||
isProjectTrusted: () => this.settingsManager.isProjectTrusted(),
|
||||
getSignal: () => this.agent.signal,
|
||||
abort: () => {
|
||||
if (this._extensionAbortHandler) {
|
||||
|
||||
@@ -270,6 +270,7 @@ export class ExtensionRunner {
|
||||
private errorListeners: Set<ExtensionErrorListener> = new Set();
|
||||
private getModel: () => Model<any> | undefined = () => undefined;
|
||||
private isIdleFn: () => boolean = () => true;
|
||||
private isProjectTrustedFn: () => boolean = () => true;
|
||||
private getSignalFn: () => AbortSignal | undefined = () => undefined;
|
||||
private waitForIdleFn: () => Promise<void> = async () => {};
|
||||
private abortFn: () => void = () => {};
|
||||
@@ -330,6 +331,7 @@ export class ExtensionRunner {
|
||||
// Context actions (required)
|
||||
this.getModel = contextActions.getModel;
|
||||
this.isIdleFn = contextActions.isIdle;
|
||||
this.isProjectTrustedFn = contextActions.isProjectTrusted;
|
||||
this.getSignalFn = contextActions.getSignal;
|
||||
this.abortFn = contextActions.abort;
|
||||
this.hasPendingMessagesFn = contextActions.hasPendingMessages;
|
||||
@@ -648,6 +650,10 @@ export class ExtensionRunner {
|
||||
runner.assertActive();
|
||||
return runner.isIdleFn();
|
||||
},
|
||||
isProjectTrusted: () => {
|
||||
runner.assertActive();
|
||||
return runner.isProjectTrustedFn();
|
||||
},
|
||||
get signal() {
|
||||
runner.assertActive();
|
||||
return runner.getSignalFn();
|
||||
|
||||
@@ -314,6 +314,8 @@ export interface ExtensionContext {
|
||||
model: Model<any> | undefined;
|
||||
/** Whether the agent is idle (not streaming) */
|
||||
isIdle(): boolean;
|
||||
/** Whether project-local trust is active for this context. */
|
||||
isProjectTrusted(): boolean;
|
||||
/** The current abort signal, or undefined when the agent is not streaming. */
|
||||
signal: AbortSignal | undefined;
|
||||
/** Abort the current agent operation */
|
||||
@@ -1528,6 +1530,7 @@ export interface ExtensionActions {
|
||||
export interface ExtensionContextActions {
|
||||
getModel: () => Model<any> | undefined;
|
||||
isIdle: () => boolean;
|
||||
isProjectTrusted: () => boolean;
|
||||
getSignal: () => AbortSignal | undefined;
|
||||
abort: () => void;
|
||||
hasPendingMessages: () => boolean;
|
||||
|
||||
@@ -1669,6 +1669,7 @@ export class InteractiveMode {
|
||||
modelRegistry: this.session.modelRegistry,
|
||||
model: this.session.model,
|
||||
isIdle: () => !this.session.isStreaming,
|
||||
isProjectTrusted: () => this.settingsManager.isProjectTrusted(),
|
||||
signal: this.session.agent.signal,
|
||||
abort: () => {
|
||||
this.restoreQueuedMessagesToEditor({ abort: true });
|
||||
|
||||
Reference in New Issue
Block a user