forked from farhoodlabs/paperclip
feat(plugin-sdk): also thread agentId into environmentResumeLease params
Symmetric with the acquireLease change. Lets plugin-backed sandbox providers reject a reusable lease whose stored agentId doesn't match the current run's agent, forcing the host to acquire a fresh lease instead of stomping the previous agent's workspace state. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -393,6 +393,14 @@ export interface PluginEnvironmentAcquireLeaseParams extends PluginEnvironmentDr
|
||||
export interface PluginEnvironmentResumeLeaseParams extends PluginEnvironmentDriverBaseParams {
|
||||
providerLeaseId: string;
|
||||
leaseMetadata?: Record<string, unknown>;
|
||||
/**
|
||||
* UUID of the agent the run is being resumed for. Symmetric with
|
||||
* `PluginEnvironmentAcquireLeaseParams.agentId`. Plugins can compare this
|
||||
* to the agentId they stored in `leaseMetadata` at acquire time; if it
|
||||
* doesn't match, return `{ providerLeaseId: null, metadata: { expired: true } }`
|
||||
* to force the host to create a fresh lease for the current agent.
|
||||
*/
|
||||
agentId?: string;
|
||||
}
|
||||
|
||||
export interface PluginEnvironmentReleaseLeaseParams extends PluginEnvironmentDriverBaseParams {
|
||||
|
||||
@@ -476,6 +476,7 @@ function createSandboxEnvironmentDriver(
|
||||
config: workerConfig,
|
||||
providerLeaseId: reusableLease.providerLeaseId,
|
||||
leaseMetadata: reusableLease.metadata ?? undefined,
|
||||
...(input.agentId ? { agentId: input.agentId } : {}),
|
||||
},
|
||||
resolvePluginSandboxRpcTimeoutMs(workerConfig),
|
||||
).then((resumed) =>
|
||||
|
||||
Reference in New Issue
Block a user