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:
@ -767,6 +767,21 @@ export interface EffectivePermissions {
|
||||
fallback: PermissionPosture;
|
||||
}
|
||||
|
||||
/** Agent override choices shadowed by stricter project defaults. */
|
||||
export interface PermissionShadowReport {
|
||||
read: boolean;
|
||||
write: boolean;
|
||||
delete: boolean;
|
||||
executeBash: boolean;
|
||||
fallback: boolean;
|
||||
}
|
||||
|
||||
/** Resolved file/bash permissions plus non-authoritative diagnostics. */
|
||||
export interface ResolvedAgentPermissions {
|
||||
effective: EffectivePermissions | null;
|
||||
shadowed: PermissionShadowReport;
|
||||
}
|
||||
|
||||
/** Wanted/effective network policy for system permissions. */
|
||||
export type NetworkPolicy = "allow" | "deny" | "ask";
|
||||
|
||||
@ -1151,6 +1166,21 @@ export interface ProfileModelCatalog {
|
||||
warnings: string[];
|
||||
}
|
||||
|
||||
/** One native effort/reasoning preset declared by an AI profile. */
|
||||
export interface EffortOption {
|
||||
/** Raw value persisted/forwarded to the provider. */
|
||||
value: string;
|
||||
/** Human-readable label shown in selectors. */
|
||||
label: string;
|
||||
/** Optional short description from the profile declaration. */
|
||||
hint?: string;
|
||||
}
|
||||
|
||||
/** Per-agent effort override. `undefined`/`null` means profile default. */
|
||||
export type EffortSelection =
|
||||
| { kind: "preset"; value: string }
|
||||
| { kind: "custom"; value: string };
|
||||
|
||||
/**
|
||||
* A declarative AI-CLI profile (mirror of the backend `AgentProfile`). `id` is a
|
||||
* UUID string; `detect` is the optional detection command line.
|
||||
@ -1192,6 +1222,16 @@ export interface AgentProfile {
|
||||
* CLI's own default. OpenCode keeps its dedicated provider/local model fields.
|
||||
*/
|
||||
model?: string;
|
||||
/**
|
||||
* Optional direct CLI reasoning effort configured on the profile. `undefined`
|
||||
* keeps the CLI/provider default.
|
||||
*/
|
||||
modelReasoningEffort?: string;
|
||||
/**
|
||||
* Native effort presets exposed by this profile, in declaration order from
|
||||
* light to deep. Empty/omitted means the provider declares no native options.
|
||||
*/
|
||||
effortOptions?: EffortOption[];
|
||||
}
|
||||
|
||||
/** Availability of a candidate profile after detection (mirror of the DTO). */
|
||||
@ -1233,6 +1273,8 @@ export interface Agent {
|
||||
synchronized: boolean;
|
||||
/** Skills assigned to this agent (injected into its convention file). */
|
||||
skills: SkillRef[];
|
||||
/** Per-agent effort override. Omitted for older manifests/profile default. */
|
||||
effort?: EffortSelection;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1284,6 +1326,7 @@ export interface ResumableAgent {
|
||||
* across projects; `project` skills are specific to one project's `.ideai/`.
|
||||
*/
|
||||
export type SkillScope = "global" | "project";
|
||||
export type SkillKind = "workflow" | "reference";
|
||||
|
||||
/**
|
||||
* A reusable, model-agnostic workflow assignable to agents (mirror of the
|
||||
@ -1292,6 +1335,8 @@ export type SkillScope = "global" | "project";
|
||||
export interface Skill {
|
||||
id: string;
|
||||
name: string;
|
||||
description?: string | null;
|
||||
kind: SkillKind;
|
||||
contentMd: string;
|
||||
scope: SkillScope;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user