fix: fix some displays and features
This commit is contained in:
70
frontend/src/adapters/skill.ts
Normal file
70
frontend/src/adapters/skill.ts
Normal file
@ -0,0 +1,70 @@
|
||||
/**
|
||||
* Tauri adapter for {@link SkillGateway} (L12).
|
||||
*
|
||||
* Commands use snake_case (Tauri convention); payload keys are camelCase
|
||||
* (matching the backend DTO `#[serde(rename_all = "camelCase")]`), consistent
|
||||
* with the other adapters in this directory. The `scope` value (`"global"` /
|
||||
* `"project"`) maps directly onto the backend `SkillScope` serde enum.
|
||||
*/
|
||||
|
||||
import { invoke } from "@tauri-apps/api/core";
|
||||
|
||||
import type { Skill, SkillScope } from "@/domain";
|
||||
import type { CreateSkillInput, SkillGateway } from "@/ports";
|
||||
|
||||
export class TauriSkillGateway implements SkillGateway {
|
||||
listSkills(projectId: string, scope: SkillScope): Promise<Skill[]> {
|
||||
return invoke<Skill[]>("list_skills", { projectId, scope });
|
||||
}
|
||||
|
||||
createSkill(input: CreateSkillInput): Promise<Skill> {
|
||||
return invoke<Skill>("create_skill", {
|
||||
request: {
|
||||
projectId: input.projectId,
|
||||
name: input.name,
|
||||
content: input.content,
|
||||
scope: input.scope,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
updateSkill(
|
||||
projectId: string,
|
||||
scope: SkillScope,
|
||||
skillId: string,
|
||||
content: string,
|
||||
): Promise<Skill> {
|
||||
return invoke<Skill>("update_skill", {
|
||||
request: { projectId, scope, skillId, content },
|
||||
});
|
||||
}
|
||||
|
||||
async deleteSkill(
|
||||
projectId: string,
|
||||
scope: SkillScope,
|
||||
skillId: string,
|
||||
): Promise<void> {
|
||||
await invoke("delete_skill", { projectId, scope, skillId });
|
||||
}
|
||||
|
||||
async assignSkill(
|
||||
projectId: string,
|
||||
agentId: string,
|
||||
skillId: string,
|
||||
scope: SkillScope,
|
||||
): Promise<void> {
|
||||
await invoke("assign_skill_to_agent", {
|
||||
request: { projectId, agentId, skillId, scope },
|
||||
});
|
||||
}
|
||||
|
||||
async unassignSkill(
|
||||
projectId: string,
|
||||
agentId: string,
|
||||
skillId: string,
|
||||
): Promise<void> {
|
||||
await invoke("unassign_skill_from_agent", {
|
||||
request: { projectId, agentId, skillId },
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user