Download scripts/browser-smoke-entry.ts from SaylorTwift/pi: direct link, hf CLI and curl.
- Browser
- Download file 2.19 kB
-
https://huggingface.co/SaylorTwift/pi/resolve/main/scripts/browser-smoke-entry.ts
- Command line
-
hf download hf://SaylorTwift/pi/scripts/browser-smoke-entry.ts
-
curl -L -o browser-smoke-entry.ts https://huggingface.co/SaylorTwift/pi/resolve/main/scripts/browser-smoke-entry.ts
2.19 kB
| import { Client } from "@earendil-works/pi-client"; | |
| import { createAssistantMessageEventStream, Type } from "@earendil-works/pi-ai"; | |
| import { complete, getModel, getProviders, streamSimple } from "@earendil-works/pi-ai/compat"; | |
| import { | |
| Agent, | |
| bashExecutionToText, | |
| convertToLlm, | |
| createCustomMessage, | |
| FileError, | |
| formatPromptTemplateInvocation, | |
| formatSkillInvocation, | |
| formatSkillsForSystemPrompt, | |
| getOrThrow, | |
| ok, | |
| parseCommandArgs, | |
| streamProxy, | |
| toError, | |
| truncateHead, | |
| } from "@earendil-works/pi-agent-core"; | |
| import { decodeCbor, encodeCbor, PROTOCOL_VERSION } from "@earendil-works/pi-protocol"; | |
| // Keep this entry browser-safe. It is bundled by scripts/check-browser-smoke.mjs | |
| // to catch accidental Node-only runtime imports in browser-facing package exports. | |
| const model = getModel("google", "gemini-2.5-flash"); | |
| const schema = Type.Object({ prompt: Type.String() }); | |
| const stream = createAssistantMessageEventStream(); | |
| const agent = new Agent({ initialState: { model }, streamFn: streamSimple }); | |
| agent.steer({ role: "user", content: [{ type: "text", text: "queued" }], timestamp: 0 }); | |
| const result = getOrThrow(ok({ value: 1 })); | |
| const customMessage = createCustomMessage("note", "hello", true, undefined, "2026-01-01T00:00:00.000Z"); | |
| const llmMessages = convertToLlm([customMessage]); | |
| const skill = { name: "browser-safe", description: "Smoke test", content: "Use browser APIs.", filePath: "/skills/browser-safe/SKILL.md" }; | |
| console.log( | |
| model.id, | |
| getProviders().length, | |
| typeof complete, | |
| schema.type, | |
| typeof stream.push, | |
| agent.hasQueuedMessages(), | |
| result.value, | |
| llmMessages.length, | |
| bashExecutionToText({ | |
| role: "bashExecution", | |
| command: "echo ok", | |
| output: "ok", | |
| exitCode: 0, | |
| cancelled: false, | |
| truncated: false, | |
| timestamp: 0, | |
| }), | |
| formatSkillsForSystemPrompt([skill]).length, | |
| formatSkillInvocation(skill).length, | |
| formatPromptTemplateInvocation({ name: "example", content: "$1 $@" }, parseCommandArgs('one "two three"')), | |
| truncateHead("a\nb", { maxLines: 1 }).content, | |
| new FileError("not_found", "missing").code, | |
| toError("boom").message, | |
| typeof streamProxy, | |
| typeof Client, | |
| PROTOCOL_VERSION, | |
| decodeCbor(encodeCbor({ browser: true })), | |
| ); | |