mirror of
https://github.com/getpaseo/paseo.git
synced 2026-11-05 07:54:38 +00:00
- `{ focused: true }` is the agent Command Center hands to agent items, published by its
registration through plugins/focused-agent.ts and empty outside a workspace. The composer source
reads that module instead of the remembered workspace selection, the navigation store and the
layout store, which also removes the require cycles those imports added.
- A composer the app retains in a workspace the user left has no live input. `insertText` and
`setPrompt` now store the text with `replaceDraftText`, which asks the mounted input to show it;
before, the text reached the store but the retained input never displayed it.
- `model` and `thinking` read exactly what the picker resolves before the catalog loads (no
models), then re-resolve when it lands, instead of reading null.
- The daemon validates a thinking option against the model the agent runs: the runtime model when
the provider lists it, else the configured one.
- The composer sources subscribe to query-cache updates only. A query another component creates
during its render is announced as `added`, and a subscriber that updates then made React warn
about updating a component while rendering a different one. A catalog read no longer starts its
load synchronously either.
54 lines
1.8 KiB
TypeScript
54 lines
1.8 KiB
TypeScript
import { test } from "../support/fixtures";
|
|
import {
|
|
CHECKLIST,
|
|
withComposerToolsExample,
|
|
withPluginWritingToAnotherWorkspace,
|
|
} 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 an agent's composer while its workspace is not on screen", async ({
|
|
page,
|
|
}) => {
|
|
test.setTimeout(120_000);
|
|
await withPluginWritingToAnotherWorkspace(page, async (author) => {
|
|
await author.openTargetAgent();
|
|
await author.goToAnotherWorkspace();
|
|
await author.insertFromCommandCenter();
|
|
await author.returnToTargetWorkspace();
|
|
await author.expectComposerText("A note from a plugin");
|
|
});
|
|
});
|