@getpaseo/server 0.1.100 → 0.1.101

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/server/executable-resolution/windows.js +3 -0
  2. package/dist/server/server/agent/agent-manager.d.ts +10 -0
  3. package/dist/server/server/agent/agent-manager.js +65 -27
  4. package/dist/server/server/agent/agent-sdk-types.d.ts +8 -0
  5. package/dist/server/server/agent/mcp-server.d.ts +2 -45
  6. package/dist/server/server/agent/mcp-server.js +45 -1985
  7. package/dist/server/server/agent/prompt-attachments.js +6 -2
  8. package/dist/server/server/agent/provider-snapshot-manager.d.ts +4 -0
  9. package/dist/server/server/agent/provider-snapshot-manager.js +58 -13
  10. package/dist/server/server/agent/providers/acp-agent.d.ts +20 -1
  11. package/dist/server/server/agent/providers/acp-agent.js +170 -26
  12. package/dist/server/server/agent/providers/claude/agent.js +60 -10
  13. package/dist/server/server/agent/providers/codex-app-server-agent.js +6 -57
  14. package/dist/server/server/agent/providers/diagnostic-utils.d.ts +1 -0
  15. package/dist/server/server/agent/providers/diagnostic-utils.js +1 -1
  16. package/dist/server/server/agent/providers/generic-acp-agent.d.ts +3 -0
  17. package/dist/server/server/agent/providers/generic-acp-agent.js +41 -23
  18. package/dist/server/server/agent/providers/mock-load-test-agent.js +4 -2
  19. package/dist/server/server/agent/providers/pi/agent.d.ts +2 -1
  20. package/dist/server/server/agent/providers/pi/agent.js +3 -0
  21. package/dist/server/server/agent/providers/provider-image-output.d.ts +5 -0
  22. package/dist/server/server/agent/providers/provider-image-output.js +55 -0
  23. package/dist/server/server/agent/tools/paseo-tools.d.ts +48 -0
  24. package/dist/server/server/agent/tools/paseo-tools.js +2121 -0
  25. package/dist/server/server/agent/tools/types.d.ts +36 -0
  26. package/dist/server/server/agent/tools/types.js +2 -0
  27. package/dist/server/server/bootstrap.js +71 -62
  28. package/dist/server/server/persisted-config.d.ts +5 -0
  29. package/dist/server/server/persisted-config.js +10 -2
  30. package/dist/server/server/session/agent-updates/agent-updates-service.d.ts +59 -0
  31. package/dist/server/server/session/agent-updates/agent-updates-service.js +220 -0
  32. package/dist/server/server/session/checkout/checkout-session.d.ts +13 -15
  33. package/dist/server/server/session/checkout/checkout-session.js +18 -16
  34. package/dist/server/server/session/checkout/git-metadata-generator.d.ts +53 -0
  35. package/dist/server/server/session/checkout/git-metadata-generator.js +159 -0
  36. package/dist/server/server/session/daemon/daemon-session.d.ts +14 -0
  37. package/dist/server/server/session/daemon/daemon-session.js +38 -0
  38. package/dist/server/server/session/daemon/diagnostics.d.ts +41 -0
  39. package/dist/server/server/session/daemon/diagnostics.js +421 -0
  40. package/dist/server/server/session/git-mutation/git-mutation-service.d.ts +34 -0
  41. package/dist/server/server/session/git-mutation/git-mutation-service.js +71 -0
  42. package/dist/server/server/session/workspace-git-observer/workspace-git-observer-service.d.ts +36 -0
  43. package/dist/server/server/session/workspace-git-observer/workspace-git-observer-service.js +134 -0
  44. package/dist/server/server/session/workspace-provisioning/workspace-provisioning-service.d.ts +34 -0
  45. package/dist/server/server/session/workspace-provisioning/workspace-provisioning-service.js +190 -0
  46. package/dist/server/server/session/workspace-scripts/workspace-scripts-service.d.ts +41 -0
  47. package/dist/server/server/session/workspace-scripts/workspace-scripts-service.js +100 -0
  48. package/dist/server/server/session.d.ts +7 -51
  49. package/dist/server/server/session.js +113 -938
  50. package/dist/server/server/speech/providers/openai/config.d.ts +1 -2
  51. package/dist/server/server/speech/providers/openai/config.js +13 -9
  52. package/dist/server/server/speech/providers/openai/runtime.js +2 -16
  53. package/dist/server/server/speech/providers/openai/stt.d.ts +1 -0
  54. package/dist/server/server/speech/providers/openai/stt.js +4 -2
  55. package/dist/server/server/speech/providers/openai/tts.d.ts +1 -0
  56. package/dist/server/server/speech/providers/openai/tts.js +1 -0
  57. package/dist/server/server/websocket/runtime-metrics.d.ts +20 -0
  58. package/dist/server/server/websocket-server.d.ts +1 -2
  59. package/dist/server/server/websocket-server.js +26 -21
  60. package/dist/server/server/worktree-bootstrap.d.ts +1 -1
  61. package/dist/server/server/worktree-branch-name-generator.js +3 -1
  62. package/dist/server/utils/checkout-git.js +51 -26
  63. package/dist/src/executable-resolution/windows.js +3 -0
  64. package/dist/src/server/persisted-config.js +10 -2
  65. package/package.json +5 -5
  66. package/dist/server/server/speech/providers/openai/realtime-transcription-session.d.ts +0 -42
  67. package/dist/server/server/speech/providers/openai/realtime-transcription-session.js +0 -168
@@ -1,168 +0,0 @@
1
- import { WebSocket } from "ws";
2
- import { EventEmitter } from "node:events";
3
- export class OpenAIRealtimeTranscriptionSession extends EventEmitter {
4
- constructor(params) {
5
- super();
6
- this.requiredSampleRate = 24000;
7
- this.ws = null;
8
- this.ready = null;
9
- this.closing = false;
10
- this.partialByItemId = new Map();
11
- this.apiKey = params.apiKey;
12
- this.logger = params.logger.child({ provider: "openai", component: "realtime-transcription" });
13
- this.transcriptionModel = params.transcriptionModel;
14
- this.language = params.language;
15
- this.prompt = params.prompt;
16
- this.turnDetection = params.turnDetection ?? null;
17
- }
18
- async connect() {
19
- if (this.ready) {
20
- return this.ready;
21
- }
22
- this.closing = false;
23
- this.ready = new Promise((resolve, reject) => {
24
- const url = process.env.OPENAI_REALTIME_URL ?? "wss://api.openai.com/v1/realtime?intent=transcription";
25
- const ws = new WebSocket(url, {
26
- headers: {
27
- Authorization: `Bearer ${this.apiKey}`,
28
- },
29
- });
30
- this.ws = ws;
31
- let resolved = false;
32
- const fail = (error) => {
33
- if (resolved) {
34
- this.emit("error", error);
35
- return;
36
- }
37
- resolved = true;
38
- reject(error);
39
- };
40
- ws.on("open", () => {
41
- this.logger.debug("OpenAI realtime transcription websocket connected");
42
- const update = {
43
- type: "session.update",
44
- session: {
45
- type: "transcription",
46
- audio: {
47
- input: {
48
- format: { type: "audio/pcm", rate: 24000 },
49
- transcription: {
50
- model: this.transcriptionModel,
51
- ...(this.language ? { language: this.language } : {}),
52
- ...(this.prompt ? { prompt: this.prompt } : {}),
53
- },
54
- turn_detection: this.turnDetection,
55
- },
56
- },
57
- },
58
- };
59
- ws.send(JSON.stringify(update));
60
- });
61
- ws.on("message", (data) => {
62
- const text = typeof data === "string" ? data : data.toString("utf-8");
63
- let parsed;
64
- try {
65
- parsed = JSON.parse(text);
66
- }
67
- catch {
68
- return;
69
- }
70
- const event = parsed;
71
- if (event.type === "session.created" || event.type === "session.updated") {
72
- if (!resolved) {
73
- resolved = true;
74
- resolve();
75
- }
76
- return;
77
- }
78
- if (event.type === "input_audio_buffer.committed") {
79
- this.emit("committed", {
80
- segmentId: event.item_id,
81
- previousSegmentId: event.previous_item_id,
82
- });
83
- return;
84
- }
85
- if (event.type === "input_audio_buffer.speech_started") {
86
- this.emit("speech_started");
87
- return;
88
- }
89
- if (event.type === "input_audio_buffer.speech_stopped") {
90
- this.emit("speech_stopped");
91
- return;
92
- }
93
- if (event.type === "conversation.item.input_audio_transcription.delta") {
94
- const replaceDelta = this.transcriptionModel === "whisper-1";
95
- const prev = this.partialByItemId.get(event.item_id) ?? "";
96
- const next = replaceDelta ? event.delta : prev + event.delta;
97
- this.partialByItemId.set(event.item_id, next);
98
- this.emit("transcript", { segmentId: event.item_id, transcript: next, isFinal: false });
99
- return;
100
- }
101
- if (event.type === "conversation.item.input_audio_transcription.completed") {
102
- this.partialByItemId.set(event.item_id, event.transcript);
103
- this.emit("transcript", {
104
- segmentId: event.item_id,
105
- transcript: event.transcript,
106
- isFinal: true,
107
- });
108
- return;
109
- }
110
- if (event.type === "error") {
111
- const message = event.error?.message ?? "OpenAI realtime error";
112
- fail(new Error(message));
113
- }
114
- });
115
- ws.on("error", (err) => {
116
- fail(err instanceof Error ? err : new Error(String(err)));
117
- });
118
- ws.on("close", () => {
119
- this.logger.debug("OpenAI realtime websocket closed");
120
- if (this.closing) {
121
- return;
122
- }
123
- if (!resolved) {
124
- fail(new Error("OpenAI realtime websocket closed before ready"));
125
- return;
126
- }
127
- fail(new Error("OpenAI realtime websocket closed"));
128
- });
129
- });
130
- return this.ready;
131
- }
132
- appendPcm16(pcm16le) {
133
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
134
- throw new Error("OpenAI realtime websocket not connected");
135
- }
136
- const base64Audio = pcm16le.toString("base64");
137
- const event = { type: "input_audio_buffer.append", audio: base64Audio };
138
- this.ws.send(JSON.stringify(event));
139
- }
140
- commit() {
141
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
142
- throw new Error("OpenAI realtime websocket not connected");
143
- }
144
- const event = { type: "input_audio_buffer.commit" };
145
- this.ws.send(JSON.stringify(event));
146
- }
147
- clear() {
148
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
149
- return;
150
- }
151
- const event = { type: "input_audio_buffer.clear" };
152
- this.ws.send(JSON.stringify(event));
153
- }
154
- close() {
155
- try {
156
- this.closing = true;
157
- this.ws?.close();
158
- }
159
- catch {
160
- // no-op
161
- }
162
- finally {
163
- this.ws = null;
164
- this.ready = null;
165
- }
166
- }
167
- }
168
- //# sourceMappingURL=realtime-transcription-session.js.map