Initial commit from agent-native create
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
/**
|
||||
* Navigate the UI to a view.
|
||||
*
|
||||
* Writes a navigate command to application state which the UI reads and auto-deletes.
|
||||
*
|
||||
* Usage:
|
||||
* pnpm action navigate --view=chat
|
||||
* pnpm action navigate --path=/some/route
|
||||
*
|
||||
* Options:
|
||||
* --view View name to navigate to
|
||||
* --path URL path to navigate to
|
||||
* --threadId Chat thread ID to open on the chat route
|
||||
*/
|
||||
|
||||
import { defineAction } from "@agent-native/core/action";
|
||||
import { writeAppState } from "@agent-native/core/application-state";
|
||||
import { z } from "zod";
|
||||
|
||||
export default defineAction({
|
||||
description:
|
||||
"Navigate the UI to a specific view or path. Writes a navigate command to application state which the UI reads and auto-deletes.",
|
||||
schema: z.object({
|
||||
view: z.string().optional().describe("View name to navigate to"),
|
||||
path: z.string().optional().describe("URL path to navigate to"),
|
||||
threadId: z.string().optional().describe("Chat thread ID to open"),
|
||||
}),
|
||||
http: false,
|
||||
run: async (args) => {
|
||||
if (!args.view && !args.path) {
|
||||
throw new Error("At least --view or --path is required.");
|
||||
}
|
||||
const nav: Record<string, string> = {};
|
||||
if (args.view) nav.view = args.view;
|
||||
if (args.path) nav.path = args.path;
|
||||
if (args.threadId) nav.threadId = args.threadId;
|
||||
nav._writeId = `${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
||||
await writeAppState("navigate", nav);
|
||||
return `Navigating to ${args.view || args.path}`;
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user