@getpaseo/server 0.1.85 → 0.1.87

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 (45) hide show
  1. package/dist/scripts/supervisor-entrypoint.js +1 -0
  2. package/dist/server/server/agent/agent-metadata-generator.d.ts +9 -0
  3. package/dist/server/server/agent/agent-metadata-generator.js +11 -2
  4. package/dist/server/server/agent/agent-response-loop.d.ts +1 -1
  5. package/dist/server/server/agent/agent-response-loop.js +3 -13
  6. package/dist/server/server/agent/create-agent/create.d.ts +2 -0
  7. package/dist/server/server/agent/create-agent/create.js +7 -0
  8. package/dist/server/server/agent/import-sessions.d.ts +3 -0
  9. package/dist/server/server/agent/import-sessions.js +11 -0
  10. package/dist/server/server/agent/providers/claude/agent.d.ts +2 -1
  11. package/dist/server/server/agent/providers/claude/agent.js +70 -0
  12. package/dist/server/server/agent/providers/claude/feature-definitions.d.ts +8 -0
  13. package/dist/server/server/agent/providers/claude/feature-definitions.js +36 -0
  14. package/dist/server/server/agent/providers/opencode-agent.js +4 -1
  15. package/dist/server/server/agent/providers/tool-call-detail-primitives.js +6 -3
  16. package/dist/server/server/agent/providers/tool-call-mapper-utils.d.ts +5 -0
  17. package/dist/server/server/agent/providers/tool-call-mapper-utils.js +62 -0
  18. package/dist/server/server/agent/structured-generation-providers.d.ts +29 -0
  19. package/dist/server/server/agent/structured-generation-providers.js +192 -0
  20. package/dist/server/server/bootstrap.d.ts +7 -0
  21. package/dist/server/server/bootstrap.js +3 -0
  22. package/dist/server/server/config.js +1 -0
  23. package/dist/server/server/daemon-config-store.js +46 -6
  24. package/dist/server/server/daemon-worker.js +1 -0
  25. package/dist/server/server/file-explorer/service.js +4 -4
  26. package/dist/server/server/persisted-config.d.ts +77 -22
  27. package/dist/server/server/persisted-config.js +13 -0
  28. package/dist/server/server/session.d.ts +3 -2
  29. package/dist/server/server/session.js +76 -24
  30. package/dist/server/server/speech/providers/local/runtime.js +52 -133
  31. package/dist/server/server/speech/providers/local/sherpa/model-catalog.d.ts +9 -2
  32. package/dist/server/server/speech/providers/local/sherpa/model-catalog.js +7 -0
  33. package/dist/server/server/speech/providers/local/worker-bytes.d.ts +4 -0
  34. package/dist/server/server/speech/providers/local/worker-bytes.js +9 -0
  35. package/dist/server/server/speech/providers/local/worker-client.d.ts +80 -0
  36. package/dist/server/server/speech/providers/local/worker-client.js +438 -0
  37. package/dist/server/server/speech/providers/local/worker-process.d.ts +2 -0
  38. package/dist/server/server/speech/providers/local/worker-process.js +270 -0
  39. package/dist/server/server/speech/providers/local/worker-protocol.d.ts +95 -0
  40. package/dist/server/server/speech/providers/local/worker-protocol.js +2 -0
  41. package/dist/server/server/websocket-server.js +2 -0
  42. package/dist/server/server/worktree-branch-name-generator.d.ts +9 -0
  43. package/dist/server/server/worktree-branch-name-generator.js +11 -2
  44. package/dist/src/server/persisted-config.js +13 -0
  45. package/package.json +5 -5
@@ -0,0 +1,95 @@
1
+ import type { StreamingTranscriptionCommittedEvent, StreamingTranscriptionEvent, TranscriptionResult } from "../../speech-provider.js";
2
+ import type { LocalSpeechWorkerBytes } from "./worker-bytes.js";
3
+ export interface LocalSpeechWorkerConfig {
4
+ modelsDir: string;
5
+ voiceSttModel: string;
6
+ dictationSttModel: string;
7
+ voiceTtsModel: string;
8
+ voiceTtsSpeakerId?: number;
9
+ voiceTtsSpeed?: number;
10
+ }
11
+ export type LocalSpeechSessionKind = "voiceStt" | "dictationStt" | "vad";
12
+ export type LocalSpeechWorkerRequest = {
13
+ type: "tts.synthesize";
14
+ requestId: string;
15
+ config: LocalSpeechWorkerConfig;
16
+ text: string;
17
+ } | {
18
+ type: "stt.transcribe";
19
+ requestId: string;
20
+ config: LocalSpeechWorkerConfig;
21
+ model: "voice" | "dictation";
22
+ audio: LocalSpeechWorkerBytes;
23
+ format: string;
24
+ } | {
25
+ type: "session.create";
26
+ requestId: string;
27
+ config: LocalSpeechWorkerConfig;
28
+ sessionId: string;
29
+ kind: LocalSpeechSessionKind;
30
+ } | {
31
+ type: "session.append";
32
+ requestId: string;
33
+ sessionId: string;
34
+ audio: LocalSpeechWorkerBytes;
35
+ } | {
36
+ type: "session.commit";
37
+ requestId: string;
38
+ sessionId: string;
39
+ } | {
40
+ type: "session.clear";
41
+ requestId: string;
42
+ sessionId: string;
43
+ } | {
44
+ type: "session.flush";
45
+ requestId: string;
46
+ sessionId: string;
47
+ } | {
48
+ type: "session.reset";
49
+ requestId: string;
50
+ sessionId: string;
51
+ } | {
52
+ type: "session.close";
53
+ requestId: string;
54
+ sessionId: string;
55
+ };
56
+ export type LocalSpeechWorkerResponse = {
57
+ type: "response";
58
+ requestId: string;
59
+ ok: true;
60
+ result?: unknown;
61
+ } | {
62
+ type: "response";
63
+ requestId: string;
64
+ ok: false;
65
+ error: string;
66
+ };
67
+ export type LocalSpeechWorkerEvent = {
68
+ type: "session.committed";
69
+ sessionId: string;
70
+ payload: StreamingTranscriptionCommittedEvent;
71
+ } | {
72
+ type: "session.transcript";
73
+ sessionId: string;
74
+ payload: StreamingTranscriptionEvent;
75
+ } | {
76
+ type: "session.speech_started";
77
+ sessionId: string;
78
+ } | {
79
+ type: "session.speech_stopped";
80
+ sessionId: string;
81
+ } | {
82
+ type: "session.error";
83
+ sessionId: string;
84
+ error: string;
85
+ };
86
+ export type LocalSpeechWorkerToParentMessage = LocalSpeechWorkerResponse | LocalSpeechWorkerEvent;
87
+ export interface LocalSpeechCreateSessionResult {
88
+ requiredSampleRate: number;
89
+ }
90
+ export interface LocalSpeechTtsResult {
91
+ audio: LocalSpeechWorkerBytes;
92
+ format: string;
93
+ }
94
+ export type LocalSpeechTranscriptionResult = TranscriptionResult;
95
+ //# sourceMappingURL=worker-protocol.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=worker-protocol.js.map
@@ -719,6 +719,8 @@ export class VoiceAssistantWebSocketServer {
719
719
  "terminal-restore-modes": true,
720
720
  // COMPAT(rewind): added in v0.1.X, drop the gate when floor >= v0.1.X.
721
721
  rewind: true,
722
+ // COMPAT(checkoutRefresh): added in v0.1.86, remove gate after 2026-11-29.
723
+ checkoutRefresh: true,
722
724
  },
723
725
  };
724
726
  }
@@ -1,7 +1,9 @@
1
1
  import type { FirstAgentContext } from "@getpaseo/protocol/messages";
2
2
  import type { AgentManager } from "./agent/agent-manager.js";
3
3
  import { generateStructuredAgentResponseWithFallback } from "./agent/agent-response-loop.js";
4
+ import { type StructuredGenerationDaemonConfig } from "./agent/structured-generation-providers.js";
4
5
  import type { WorkspaceGitService } from "./workspace-git-service.js";
6
+ import type { ProviderSnapshotManager } from "./agent/provider-snapshot-manager.js";
5
7
  interface BranchNameGeneratorLogger {
6
8
  info: (obj: object, msg?: string) => void;
7
9
  warn: (obj: object, msg?: string) => void;
@@ -11,6 +13,13 @@ export interface GenerateBranchNameFromFirstAgentContextOptions {
11
13
  agentManager: AgentManager;
12
14
  cwd: string;
13
15
  workspaceGitService?: Pick<WorkspaceGitService, "resolveRepoRoot">;
16
+ providerSnapshotManager?: Pick<ProviderSnapshotManager, "listProviders">;
17
+ daemonConfig?: StructuredGenerationDaemonConfig | null;
18
+ currentSelection?: {
19
+ provider?: string | null;
20
+ model?: string | null;
21
+ thinkingOptionId?: string | null;
22
+ };
14
23
  firstAgentContext: FirstAgentContext | undefined;
15
24
  logger: BranchNameGeneratorLogger;
16
25
  deps?: {
@@ -1,5 +1,6 @@
1
1
  import { z } from "zod";
2
- import { DEFAULT_STRUCTURED_GENERATION_PROVIDERS, StructuredAgentFallbackError, StructuredAgentResponseError, generateStructuredAgentResponseWithFallback, } from "./agent/agent-response-loop.js";
2
+ import { StructuredAgentFallbackError, StructuredAgentResponseError, generateStructuredAgentResponseWithFallback, } from "./agent/agent-response-loop.js";
3
+ import { resolveStructuredGenerationProviders, } from "./agent/structured-generation-providers.js";
3
4
  import { buildAgentBranchNameSeed } from "./agent/prompt-attachments.js";
4
5
  import { buildMetadataPrompt } from "../utils/build-metadata-prompt.js";
5
6
  const BranchNameSchema = z.object({
@@ -27,6 +28,14 @@ export async function generateBranchNameFromFirstAgentContext(options) {
27
28
  const generator = options.deps?.generateStructuredAgentResponseWithFallback ??
28
29
  generateStructuredAgentResponseWithFallback;
29
30
  try {
31
+ const providers = options.providerSnapshotManager
32
+ ? await resolveStructuredGenerationProviders({
33
+ cwd: options.cwd,
34
+ providerSnapshotManager: options.providerSnapshotManager,
35
+ daemonConfig: options.daemonConfig,
36
+ currentSelection: options.currentSelection,
37
+ })
38
+ : [];
30
39
  const result = await generator({
31
40
  manager: options.agentManager,
32
41
  cwd: options.cwd,
@@ -37,7 +46,7 @@ export async function generateBranchNameFromFirstAgentContext(options) {
37
46
  schema: BranchNameSchema,
38
47
  schemaName: "BranchName",
39
48
  maxRetries: 2,
40
- providers: DEFAULT_STRUCTURED_GENERATION_PROVIDERS,
49
+ providers,
41
50
  persistSession: false,
42
51
  logger: options.logger,
43
52
  agentConfigOverrides: {
@@ -112,6 +112,18 @@ const FeatureVoiceModeSchema = z
112
112
  .optional(),
113
113
  })
114
114
  .strict();
115
+ const StructuredGenerationProviderConfigSchema = z
116
+ .object({
117
+ provider: z.string().min(1),
118
+ model: z.string().min(1).optional(),
119
+ thinkingOptionId: z.string().min(1).optional(),
120
+ })
121
+ .strict();
122
+ const AgentMetadataGenerationSchema = z
123
+ .object({
124
+ providers: z.array(StructuredGenerationProviderConfigSchema).optional(),
125
+ })
126
+ .strict();
115
127
  const BUILTIN_PROVIDER_IDS = ["claude", "codex", "copilot", "opencode", "pi"];
116
128
  function isLegacyProviderEntry(value) {
117
129
  if (!value || typeof value !== "object" || Array.isArray(value)) {
@@ -203,6 +215,7 @@ export const PersistedConfigSchema = z
203
215
  agents: z
204
216
  .object({
205
217
  providers: z.preprocess(normalizeAgentProviders, ProviderOverridesSchema).optional(),
218
+ metadataGeneration: AgentMetadataGenerationSchema.optional(),
206
219
  })
207
220
  .strict()
208
221
  .optional(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getpaseo/server",
3
- "version": "0.1.85",
3
+ "version": "0.1.87",
4
4
  "description": "Paseo backend server",
5
5
  "files": [
6
6
  "dist/server",
@@ -57,10 +57,10 @@
57
57
  "dependencies": {
58
58
  "@agentclientprotocol/sdk": "^0.17.1",
59
59
  "@anthropic-ai/claude-agent-sdk": "^0.2.133",
60
- "@getpaseo/client": "0.1.85",
61
- "@getpaseo/highlight": "0.1.85",
62
- "@getpaseo/protocol": "0.1.85",
63
- "@getpaseo/relay": "0.1.85",
60
+ "@getpaseo/client": "0.1.87",
61
+ "@getpaseo/highlight": "0.1.87",
62
+ "@getpaseo/protocol": "0.1.87",
63
+ "@getpaseo/relay": "0.1.87",
64
64
  "@isaacs/ttlcache": "^2.1.4",
65
65
  "@modelcontextprotocol/sdk": "^1.20.1",
66
66
  "@opencode-ai/sdk": "1.14.46",