mirror of
https://github.com/getpaseo/paseo.git
synced 2026-07-29 12:01:31 +00:00
chore: remove local artifacts and sanitize repo
This commit is contained in:
13
.gitignore
vendored
13
.gitignore
vendored
@@ -59,3 +59,16 @@ CLAUDE.local.md
|
||||
.paseo/
|
||||
.wrangler/
|
||||
**/.wrangler/
|
||||
|
||||
# Local agent/tooling artifacts (do not commit)
|
||||
PLAN.md
|
||||
.valknut/
|
||||
valknut-report.html/
|
||||
valknut-report.json/
|
||||
**/.playwright-mcp/
|
||||
**/.paseo-provider-history/
|
||||
.claude/settings.local.json
|
||||
**/.claude/settings.local.json
|
||||
.plans/
|
||||
packages/server/src/server/fixtures/dictation/dictation-debug-largest.wav
|
||||
packages/server/src/server/fixtures/dictation/dictation-debug-largest.transcript.txt
|
||||
|
||||
@@ -68,7 +68,7 @@ describe("parseToolCallDisplay", () => {
|
||||
test("strips shell + cd wrapper from command (Codex exec_command style)", () => {
|
||||
const input = {
|
||||
command:
|
||||
'/bin/zsh -lc "cd /Users/moboudra/dev/paseo && nl -ba packages/app/src/utils/tool-call-parsers.test.ts | sed -n \'150,260p\'"',
|
||||
'/bin/zsh -lc "cd /Users/me/dev/paseo && nl -ba packages/app/src/utils/tool-call-parsers.test.ts | sed -n \'150,260p\'"',
|
||||
};
|
||||
|
||||
const display: ToolCallDisplay = parseToolCallDisplay("shell", input, undefined);
|
||||
@@ -206,7 +206,7 @@ describe("parseToolCallDisplay - apply_patch (Codex)", () => {
|
||||
const input = {
|
||||
files: [
|
||||
{
|
||||
path: "/Users/moboudra/dev/blankpage/editor/.tasks/578561c8.md",
|
||||
path: "/Users/me/dev/blankpage/editor/.tasks/578561c8.md",
|
||||
kind: "update",
|
||||
},
|
||||
],
|
||||
@@ -214,7 +214,7 @@ describe("parseToolCallDisplay - apply_patch (Codex)", () => {
|
||||
const result = {
|
||||
files: [
|
||||
{
|
||||
path: "/Users/moboudra/dev/blankpage/editor/.tasks/578561c8.md",
|
||||
path: "/Users/me/dev/blankpage/editor/.tasks/578561c8.md",
|
||||
patch: "@@ -15,3 +15,2 @@\n-This task defines the **design philosophy**\n+This task defines the **updated philosophy**",
|
||||
kind: "update",
|
||||
},
|
||||
@@ -227,7 +227,7 @@ describe("parseToolCallDisplay - apply_patch (Codex)", () => {
|
||||
expect(display.type).toBe("edit");
|
||||
expect(display.toolName).toBe("Edit");
|
||||
if (display.type === "edit") {
|
||||
expect(display.filePath).toBe("/Users/moboudra/dev/blankpage/editor/.tasks/578561c8.md");
|
||||
expect(display.filePath).toBe("/Users/me/dev/blankpage/editor/.tasks/578561c8.md");
|
||||
expect(display.unifiedDiff).toBe("@@ -15,3 +15,2 @@\n-This task defines the **design philosophy**\n+This task defines the **updated philosophy**");
|
||||
expect(display.oldString).toBe("");
|
||||
expect(display.newString).toBe("");
|
||||
@@ -238,7 +238,7 @@ describe("parseToolCallDisplay - apply_patch (Codex)", () => {
|
||||
const input = {
|
||||
files: [
|
||||
{
|
||||
path: "/Users/moboudra/-paseo/worktrees/paseo/naive-zebra/packages/server/src/server/daemon-keypair.ts",
|
||||
path: "/Users/me/.paseo/worktrees/paseo/naive-zebra/packages/server/src/server/daemon-keypair.ts",
|
||||
kind: { type: "update", move_path: null },
|
||||
},
|
||||
],
|
||||
@@ -246,7 +246,7 @@ describe("parseToolCallDisplay - apply_patch (Codex)", () => {
|
||||
const result = {
|
||||
files: [
|
||||
{
|
||||
path: "/Users/moboudra/-paseo/worktrees/paseo/naive-zebra/packages/server/src/server/daemon-keypair.ts",
|
||||
path: "/Users/me/.paseo/worktrees/paseo/naive-zebra/packages/server/src/server/daemon-keypair.ts",
|
||||
patch: "@@ -1,1 +1,1 @@\n-foo\n+bar",
|
||||
kind: { type: "update", move_path: null },
|
||||
},
|
||||
@@ -259,7 +259,7 @@ describe("parseToolCallDisplay - apply_patch (Codex)", () => {
|
||||
expect(display.toolName).toBe("Edit");
|
||||
if (display.type === "edit") {
|
||||
expect(display.filePath).toBe(
|
||||
"/Users/moboudra/-paseo/worktrees/paseo/naive-zebra/packages/server/src/server/daemon-keypair.ts"
|
||||
"/Users/me/.paseo/worktrees/paseo/naive-zebra/packages/server/src/server/daemon-keypair.ts"
|
||||
);
|
||||
expect(display.unifiedDiff).toBe("@@ -1,1 +1,1 @@\n-foo\n+bar");
|
||||
}
|
||||
@@ -339,11 +339,11 @@ describe("parseToolCallDisplay - apply_patch (Codex)", () => {
|
||||
describe("parseToolCallDisplay - read_file (Codex)", () => {
|
||||
test("parses Codex read_file into read type", () => {
|
||||
const input = {
|
||||
path: "/Users/moboudra/dev/blankpage/editor/.tasks/578561c8.md",
|
||||
path: "/Users/me/dev/blankpage/editor/.tasks/578561c8.md",
|
||||
};
|
||||
const result = {
|
||||
type: "read_file",
|
||||
path: "/Users/moboudra/dev/blankpage/editor/.tasks/578561c8.md",
|
||||
path: "/Users/me/dev/blankpage/editor/.tasks/578561c8.md",
|
||||
content: "260 - Source: `**bold**|`\n261 - Action: `Shift+ArrowLeft`",
|
||||
};
|
||||
|
||||
@@ -351,7 +351,7 @@ describe("parseToolCallDisplay - read_file (Codex)", () => {
|
||||
expect(display.type).toBe("read");
|
||||
expect(display.toolName).toBe("Read");
|
||||
if (display.type === "read") {
|
||||
expect(display.filePath).toBe("/Users/moboudra/dev/blankpage/editor/.tasks/578561c8.md");
|
||||
expect(display.filePath).toBe("/Users/me/dev/blankpage/editor/.tasks/578561c8.md");
|
||||
expect(display.content).toBe("260 - Source: `**bold**|`\n261 - Action: `Shift+ArrowLeft`");
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# OpenAI API Key (for GPT-4, Whisper STT, and TTS)
|
||||
OPENAI_API_KEY=sk-...
|
||||
OPENAI_API_KEY=
|
||||
|
||||
# TTS Configuration (optional - defaults shown)
|
||||
TTS_VOICE=alloy
|
||||
|
||||
@@ -70,8 +70,8 @@ See [IMPLEMENTATION_PLAN.md](./IMPLEMENTATION_PLAN.md) for complete details.
|
||||
## Environment Variables
|
||||
|
||||
```bash
|
||||
OPENAI_API_KEY=sk-... # GPT-4 and TTS
|
||||
DEEPGRAM_API_KEY=... # Streaming STT
|
||||
OPENAI_API_KEY=your-openai-key-here # GPT-4 and TTS
|
||||
DEEPGRAM_API_KEY=your-deepgram-key-here # Streaming STT
|
||||
STT_MODEL=whisper-1 # Optional: override to gpt-4o-transcribe, etc.
|
||||
STT_CONFIDENCE_THRESHOLD=-3.0 # Optional: reject low-confidence clips
|
||||
STT_DEBUG_AUDIO_DIR=.stt-debug # Optional: persist raw dictation audio for debugging
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import "dotenv/config";
|
||||
import { readFile, writeFile, mkdir } from "node:fs/promises";
|
||||
import { writeFile, mkdir } from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
import OpenAI from "openai";
|
||||
@@ -17,22 +17,20 @@ async function main(): Promise<void> {
|
||||
const __dirname = path.dirname(__filename);
|
||||
const repoRoot = path.resolve(__dirname, "..");
|
||||
|
||||
const fixturePath = path.resolve(
|
||||
repoRoot,
|
||||
"src",
|
||||
"server",
|
||||
"fixtures",
|
||||
"dictation",
|
||||
"dictation-debug-largest.wav"
|
||||
);
|
||||
const outPath = path.resolve(
|
||||
repoRoot,
|
||||
"src",
|
||||
"server",
|
||||
"fixtures",
|
||||
"dictation",
|
||||
"dictation-debug-largest.transcript.txt"
|
||||
);
|
||||
const defaultOutPath = path.resolve(repoRoot, "tmp", "dictation-baseline.transcript.txt");
|
||||
const audioPath =
|
||||
process.env.DICTATION_AUDIO_PATH ??
|
||||
(process.argv[2] ? path.resolve(process.argv[2]) : null);
|
||||
const outPath = path.resolve(process.env.DICTATION_OUT_PATH ?? process.argv[3] ?? defaultOutPath);
|
||||
|
||||
if (!audioPath) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(
|
||||
"Usage: npx tsx packages/server/scripts/dictation-generate-baseline.ts <audioPath> [outPath]\n" +
|
||||
" Or set DICTATION_AUDIO_PATH / DICTATION_OUT_PATH.\n"
|
||||
);
|
||||
process.exit(2);
|
||||
}
|
||||
|
||||
const apiKey = requireEnv("OPENAI_API_KEY");
|
||||
const transcriptionModel =
|
||||
@@ -43,10 +41,8 @@ async function main(): Promise<void> {
|
||||
|
||||
const openai = new OpenAI({ apiKey });
|
||||
|
||||
// Use a temp file path for the SDK's file stream param.
|
||||
// We already have a fixture file, so just stream it.
|
||||
const response = await openai.audio.transcriptions.create({
|
||||
file: await import("node:fs").then((fs) => fs.createReadStream(fixturePath)),
|
||||
file: await import("node:fs").then((fs) => fs.createReadStream(audioPath)),
|
||||
language: "en",
|
||||
model: transcriptionModel,
|
||||
prompt,
|
||||
@@ -59,8 +55,7 @@ async function main(): Promise<void> {
|
||||
await writeFile(outPath, `${response.text.trim()}\n`, "utf8");
|
||||
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(`Wrote baseline transcript to ${outPath}`);
|
||||
console.log(`Wrote transcript baseline to ${outPath}`);
|
||||
}
|
||||
|
||||
await main();
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
*/
|
||||
|
||||
import { WebSocket } from "ws";
|
||||
import os from "node:os";
|
||||
import { DaemonClient } from "../../client/daemon-client.js";
|
||||
|
||||
// Patch WebSocket to log all messages
|
||||
@@ -28,7 +29,7 @@ class LoggingWebSocket extends OriginalWebSocket {
|
||||
}
|
||||
}
|
||||
|
||||
const PASEO_HOME = process.env.PASEO_HOME ?? "/Users/moboudra/.paseo";
|
||||
const PASEO_HOME = process.env.PASEO_HOME ?? `${os.homedir()}/.paseo`;
|
||||
const PASEO_PORT = process.env.PASEO_PORT ?? "6767";
|
||||
const DAEMON_URL = `ws://127.0.0.1:${PASEO_PORT}/ws`;
|
||||
|
||||
|
||||
@@ -7,12 +7,12 @@ import {
|
||||
|
||||
describe("stripShellWrapperPrefix", () => {
|
||||
test("strips /bin/zsh -lc cd path && prefix", () => {
|
||||
const command = "/bin/zsh -lc cd /Users/moboudra/dev/blankpage/editor && npm run format";
|
||||
const command = "/bin/zsh -lc cd /Users/me/dev/blankpage/editor && npm run format";
|
||||
expect(stripShellWrapperPrefix(command)).toBe("npm run format");
|
||||
});
|
||||
|
||||
test("strips /bin/zsh -lc \"cd path &&\" wrapper", () => {
|
||||
const command = '/bin/zsh -lc "cd /Users/moboudra/dev/blankpage/editor && npm run format"';
|
||||
const command = '/bin/zsh -lc "cd /Users/me/dev/blankpage/editor && npm run format"';
|
||||
expect(stripShellWrapperPrefix(command)).toBe("npm run format");
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user