feat(wave): #119/#122/#131/#132 verts + sprint plugins ESM/persistance #135/#136/#139
État d'intégration confiné à la branche batch. Les tickets #119 (skills → capacités agent découvrables), #122 (override permissions par défaut), #131 (effort par agent/presets) et #132 (outil MCP d'édition du contexte projet) sont verts en périmètre. Le sprint plugins multi-fichiers ESM / persistance plugin-owned (#135/#136/#139) est co-implémenté dans les MÊMES fichiers de câblage (frontend/src/ports/index.ts, backend/src/lib.rs, domain/ports.rs, backend/dto.rs), inséparable sans staging interactif (indisponible ici). Commit unique volontaire : préserve l'état vert QA sans découpe hunk risquée. NON mergé vers develop tant que #137 (QA e2e plugins) n'est pas vert. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -15,6 +15,7 @@ import type {
|
||||
AppExitWorkGuardState,
|
||||
CustomProviderConfig,
|
||||
DomainEvent,
|
||||
EffortSelection,
|
||||
EmbedderEngines,
|
||||
EmbedderProfile,
|
||||
EmbeddedServerStatus,
|
||||
@ -24,6 +25,7 @@ import type {
|
||||
GitFileStatus,
|
||||
GraphCommit,
|
||||
HealthReport,
|
||||
JsonValue,
|
||||
LayoutKind,
|
||||
LayoutList,
|
||||
LayoutOperation,
|
||||
@ -38,7 +40,6 @@ import type {
|
||||
OpenCodeConfig,
|
||||
OpenCodeProviderCatalogEntry,
|
||||
ProfileModelCatalog,
|
||||
EffectivePermissions,
|
||||
PairedDevice,
|
||||
PairingCode,
|
||||
PermissionSet,
|
||||
@ -71,11 +72,13 @@ import type {
|
||||
ProjectSystemPermissions,
|
||||
ProfileAvailability,
|
||||
ResumableAgent,
|
||||
ResolvedAgentPermissions,
|
||||
ResolvedAgentSystemPermissions,
|
||||
ReplyChunk,
|
||||
ServerExposurePreview,
|
||||
ServerExposureSettings,
|
||||
Skill,
|
||||
SkillKind,
|
||||
SkillScope,
|
||||
SystemPermissionSet,
|
||||
Sprint,
|
||||
@ -207,6 +210,15 @@ export interface AgentGateway {
|
||||
rows: number,
|
||||
cols: number,
|
||||
): Promise<{ agent: Agent; relaunchedSession?: TerminalSession }>;
|
||||
/**
|
||||
* Sets or clears one agent's effort override. `null` clears the override and
|
||||
* lets launch fall back to the profile default.
|
||||
*/
|
||||
updateAgentEffort(
|
||||
projectId: string,
|
||||
agentId: string,
|
||||
effort: EffortSelection | null,
|
||||
): Promise<Agent>;
|
||||
/** Reads an agent's `.md` context by agent id. */
|
||||
readContext(projectId: string, agentId: string): Promise<string>;
|
||||
/** Overwrites an agent's `.md` context. */
|
||||
@ -538,6 +550,8 @@ export interface CreateSkillInput {
|
||||
/** Owning project (resolved to a root; ignored on disk for `global`). */
|
||||
projectId: string;
|
||||
name: string;
|
||||
description?: string | null;
|
||||
kind?: SkillKind;
|
||||
content: string;
|
||||
scope: SkillScope;
|
||||
}
|
||||
@ -925,7 +939,7 @@ export interface PermissionGateway {
|
||||
resolveAgentPermissions(
|
||||
projectId: string,
|
||||
agentId: string,
|
||||
): Promise<EffectivePermissions | null>;
|
||||
): Promise<ResolvedAgentPermissions>;
|
||||
/** Reads the full project system-permission document. */
|
||||
getProjectSystemPermissions(projectId: string): Promise<ProjectSystemPermissions>;
|
||||
/** Replaces or removes project-level default system permissions. */
|
||||
@ -1496,6 +1510,21 @@ export interface PluginConfigGateway {
|
||||
updateDocument(input: PluginConfigDocumentUpdateInput): Promise<PluginConfigDocumentWriteResult>;
|
||||
}
|
||||
|
||||
export interface PluginStorageGetInput {
|
||||
pluginId: string;
|
||||
key: string;
|
||||
}
|
||||
|
||||
export interface PluginStorageSetInput extends PluginStorageGetInput {
|
||||
value: JsonValue;
|
||||
}
|
||||
|
||||
export interface PluginStorageGateway {
|
||||
get(input: PluginStorageGetInput): Promise<JsonValue | null>;
|
||||
set(input: PluginStorageSetInput): Promise<void>;
|
||||
delete(input: PluginStorageGetInput): Promise<boolean>;
|
||||
}
|
||||
|
||||
export interface Gateways {
|
||||
system: SystemGateway;
|
||||
agent: AgentGateway;
|
||||
@ -1526,4 +1555,5 @@ export interface Gateways {
|
||||
pluginToolchain: PluginToolchainGateway;
|
||||
pluginEvents: PluginEventGateway;
|
||||
pluginConfig: PluginConfigGateway;
|
||||
pluginStorage: PluginStorageGateway;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user