mirror of
https://github.com/getpaseo/paseo.git
synced 2026-11-06 00:14:54 +00:00
useComposers(selector) in any plugin component and composers(selector) on every command context return the composer of a running agent, named by id or by focus, whether or not its tab is open. A running agent now has one store-backed composer model apart from any mounted tab. The mounted composer plugs its cursor-aware insert in while mounted; otherwise insertText and setPrompt write the agent's saved prompt. model and thinking resolve through the provider catalog with the picker's own function, so a read equals what the picker shows. The host reads one ComposerModel from context and no longer knows whether it is in an agent, a draft or New workspace. The daemon rejects an unlisted model or thinking option for a running agent, replacing the app-side guard.
51 lines
1.8 KiB
TypeScript
51 lines
1.8 KiB
TypeScript
import { test } from "../support/fixtures";
|
|
import {
|
|
CHECKLIST,
|
|
withComposerToolsExample,
|
|
withPluginWritingToAnotherAgent,
|
|
} from "../support/helpers/plugin-composers-by-reference";
|
|
|
|
test("a panel in the Explorer inserts at the cursor of the focused agent's composer", async ({
|
|
page,
|
|
}) => {
|
|
test.setTimeout(120_000);
|
|
await withComposerToolsExample(page, async (author) => {
|
|
await author.openComposerToolsInExplorer();
|
|
await author.typeInComposer("start end", 5);
|
|
await author.insertChecklistFromPanel();
|
|
await author.expectComposerText(`start${CHECKLIST} end`);
|
|
});
|
|
});
|
|
|
|
test("a Command Center item changes an agent's metadata through its composer", async ({ page }) => {
|
|
test.setTimeout(120_000);
|
|
await withComposerToolsExample(page, async (author) => {
|
|
await author.openComposerToolsInExplorer();
|
|
await author.expectPanelShowsReview(false);
|
|
await author.markForReviewFromCommandCenter();
|
|
await author.expectPanelShowsReview(true);
|
|
});
|
|
});
|
|
|
|
test("the panel follows which agent is focused", async ({ page }) => {
|
|
test.setTimeout(120_000);
|
|
await withComposerToolsExample(page, async (author) => {
|
|
await author.openComposerToolsInExplorer();
|
|
await author.expectPanelFocusedAgent(true);
|
|
await author.focusANewAgentTab();
|
|
await author.expectPanelFocusedAgent(false);
|
|
await author.focusTheAgentTab();
|
|
await author.expectPanelFocusedAgent(true);
|
|
});
|
|
});
|
|
|
|
test("a plugin writes to another agent's composer before its tab is opened", async ({ page }) => {
|
|
test.setTimeout(120_000);
|
|
await withPluginWritingToAnotherAgent(page, async (author) => {
|
|
await author.openTheOtherAgent();
|
|
await author.insertFromCommandCenter();
|
|
await author.openTargetAgent();
|
|
await author.expectComposerText("A note from a plugin");
|
|
});
|
|
});
|