@getpaseo/server 0.1.17 → 0.1.20

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 (80) hide show
  1. package/dist/server/client/daemon-client.d.ts +5 -1
  2. package/dist/server/client/daemon-client.d.ts.map +1 -1
  3. package/dist/server/client/daemon-client.js +22 -0
  4. package/dist/server/client/daemon-client.js.map +1 -1
  5. package/dist/server/server/agent/agent-management-mcp.d.ts.map +1 -1
  6. package/dist/server/server/agent/agent-management-mcp.js +11 -28
  7. package/dist/server/server/agent/agent-management-mcp.js.map +1 -1
  8. package/dist/server/server/agent/agent-manager.d.ts +2 -0
  9. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  10. package/dist/server/server/agent/agent-manager.js +50 -6
  11. package/dist/server/server/agent/agent-manager.js.map +1 -1
  12. package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
  13. package/dist/server/server/agent/mcp-server.js +11 -34
  14. package/dist/server/server/agent/mcp-server.js.map +1 -1
  15. package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
  16. package/dist/server/server/agent/providers/claude-agent.js +169 -40
  17. package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
  18. package/dist/server/server/bootstrap.d.ts +13 -0
  19. package/dist/server/server/bootstrap.d.ts.map +1 -1
  20. package/dist/server/server/bootstrap.js +46 -32
  21. package/dist/server/server/bootstrap.js.map +1 -1
  22. package/dist/server/server/persisted-config.d.ts +22 -22
  23. package/dist/server/server/session.d.ts +10 -6
  24. package/dist/server/server/session.d.ts.map +1 -1
  25. package/dist/server/server/session.js +191 -223
  26. package/dist/server/server/session.js.map +1 -1
  27. package/dist/server/server/speech/speech-types.d.ts +2 -2
  28. package/dist/server/server/websocket-server.d.ts +4 -1
  29. package/dist/server/server/websocket-server.d.ts.map +1 -1
  30. package/dist/server/server/websocket-server.js +27 -1
  31. package/dist/server/server/websocket-server.js.map +1 -1
  32. package/dist/server/server/workspace-registry-bootstrap.d.ts +11 -0
  33. package/dist/server/server/workspace-registry-bootstrap.d.ts.map +1 -0
  34. package/dist/server/server/workspace-registry-bootstrap.js +98 -0
  35. package/dist/server/server/workspace-registry-bootstrap.js.map +1 -0
  36. package/dist/server/server/workspace-registry-model.d.ts +26 -0
  37. package/dist/server/server/workspace-registry-model.d.ts.map +1 -0
  38. package/dist/server/server/workspace-registry-model.js +150 -0
  39. package/dist/server/server/workspace-registry-model.js.map +1 -0
  40. package/dist/server/server/workspace-registry.d.ts +128 -0
  41. package/dist/server/server/workspace-registry.d.ts.map +1 -0
  42. package/dist/server/server/workspace-registry.js +141 -0
  43. package/dist/server/server/workspace-registry.js.map +1 -0
  44. package/dist/server/shared/messages.d.ts +1510 -0
  45. package/dist/server/shared/messages.d.ts.map +1 -1
  46. package/dist/server/shared/messages.js +39 -0
  47. package/dist/server/shared/messages.js.map +1 -1
  48. package/dist/server/utils/checkout-git.d.ts +5 -0
  49. package/dist/server/utils/checkout-git.d.ts.map +1 -1
  50. package/dist/server/utils/checkout-git.js +64 -4
  51. package/dist/server/utils/checkout-git.js.map +1 -1
  52. package/dist/server/utils/project-icon.d.ts +1 -1
  53. package/dist/server/utils/project-icon.d.ts.map +1 -1
  54. package/dist/server/utils/project-icon.js +9 -2
  55. package/dist/server/utils/project-icon.js.map +1 -1
  56. package/dist/src/server/agent/agent-manager.js +50 -6
  57. package/dist/src/server/agent/agent-manager.js.map +1 -1
  58. package/dist/src/server/agent/mcp-server.js +11 -34
  59. package/dist/src/server/agent/mcp-server.js.map +1 -1
  60. package/dist/src/server/agent/providers/claude-agent.js +169 -40
  61. package/dist/src/server/agent/providers/claude-agent.js.map +1 -1
  62. package/dist/src/server/bootstrap.js +46 -32
  63. package/dist/src/server/bootstrap.js.map +1 -1
  64. package/dist/src/server/session.js +191 -223
  65. package/dist/src/server/session.js.map +1 -1
  66. package/dist/src/server/websocket-server.js +27 -1
  67. package/dist/src/server/websocket-server.js.map +1 -1
  68. package/dist/src/server/workspace-registry-bootstrap.js +98 -0
  69. package/dist/src/server/workspace-registry-bootstrap.js.map +1 -0
  70. package/dist/src/server/workspace-registry-model.js +150 -0
  71. package/dist/src/server/workspace-registry-model.js.map +1 -0
  72. package/dist/src/server/workspace-registry.js +141 -0
  73. package/dist/src/server/workspace-registry.js.map +1 -0
  74. package/dist/src/shared/messages.js +39 -0
  75. package/dist/src/shared/messages.js.map +1 -1
  76. package/dist/src/utils/checkout-git.js +64 -4
  77. package/dist/src/utils/checkout-git.js.map +1 -1
  78. package/dist/src/utils/project-icon.js +9 -2
  79. package/dist/src/utils/project-icon.js.map +1 -1
  80. package/package.json +4 -3
@@ -0,0 +1,128 @@
1
+ import type { Logger } from 'pino';
2
+ import { z } from 'zod';
3
+ import type { PersistedProjectKind, PersistedWorkspaceKind } from './workspace-registry-model.js';
4
+ declare const PersistedProjectRecordSchema: z.ZodObject<{
5
+ projectId: z.ZodString;
6
+ rootPath: z.ZodString;
7
+ kind: z.ZodEnum<["git", "non_git"]>;
8
+ displayName: z.ZodString;
9
+ createdAt: z.ZodString;
10
+ updatedAt: z.ZodString;
11
+ archivedAt: z.ZodNullable<z.ZodString>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ createdAt: string;
14
+ updatedAt: string;
15
+ archivedAt: string | null;
16
+ kind: "git" | "non_git";
17
+ projectId: string;
18
+ rootPath: string;
19
+ displayName: string;
20
+ }, {
21
+ createdAt: string;
22
+ updatedAt: string;
23
+ archivedAt: string | null;
24
+ kind: "git" | "non_git";
25
+ projectId: string;
26
+ rootPath: string;
27
+ displayName: string;
28
+ }>;
29
+ declare const PersistedWorkspaceRecordSchema: z.ZodObject<{
30
+ workspaceId: z.ZodString;
31
+ projectId: z.ZodString;
32
+ cwd: z.ZodString;
33
+ kind: z.ZodEnum<["local_checkout", "worktree", "directory"]>;
34
+ displayName: z.ZodString;
35
+ createdAt: z.ZodString;
36
+ updatedAt: z.ZodString;
37
+ archivedAt: z.ZodNullable<z.ZodString>;
38
+ }, "strip", z.ZodTypeAny, {
39
+ cwd: string;
40
+ createdAt: string;
41
+ updatedAt: string;
42
+ archivedAt: string | null;
43
+ kind: "directory" | "local_checkout" | "worktree";
44
+ projectId: string;
45
+ workspaceId: string;
46
+ displayName: string;
47
+ }, {
48
+ cwd: string;
49
+ createdAt: string;
50
+ updatedAt: string;
51
+ archivedAt: string | null;
52
+ kind: "directory" | "local_checkout" | "worktree";
53
+ projectId: string;
54
+ workspaceId: string;
55
+ displayName: string;
56
+ }>;
57
+ export type PersistedProjectRecord = z.infer<typeof PersistedProjectRecordSchema>;
58
+ export type PersistedWorkspaceRecord = z.infer<typeof PersistedWorkspaceRecordSchema>;
59
+ export interface ProjectRegistry {
60
+ initialize(): Promise<void>;
61
+ existsOnDisk(): Promise<boolean>;
62
+ list(): Promise<PersistedProjectRecord[]>;
63
+ get(projectId: string): Promise<PersistedProjectRecord | null>;
64
+ upsert(record: PersistedProjectRecord): Promise<void>;
65
+ archive(projectId: string, archivedAt: string): Promise<void>;
66
+ remove(projectId: string): Promise<void>;
67
+ }
68
+ export interface WorkspaceRegistry {
69
+ initialize(): Promise<void>;
70
+ existsOnDisk(): Promise<boolean>;
71
+ list(): Promise<PersistedWorkspaceRecord[]>;
72
+ get(workspaceId: string): Promise<PersistedWorkspaceRecord | null>;
73
+ upsert(record: PersistedWorkspaceRecord): Promise<void>;
74
+ archive(workspaceId: string, archivedAt: string): Promise<void>;
75
+ remove(workspaceId: string): Promise<void>;
76
+ }
77
+ type RegistryRecord = PersistedProjectRecord | PersistedWorkspaceRecord;
78
+ declare class FileBackedRegistry<TRecord extends RegistryRecord> {
79
+ private readonly filePath;
80
+ private readonly logger;
81
+ private readonly schema;
82
+ private readonly getId;
83
+ private loaded;
84
+ private readonly cache;
85
+ constructor(options: {
86
+ filePath: string;
87
+ logger: Logger;
88
+ schema: z.ZodSchema<TRecord>;
89
+ getId: (record: TRecord) => string;
90
+ component: string;
91
+ });
92
+ initialize(): Promise<void>;
93
+ existsOnDisk(): Promise<boolean>;
94
+ list(): Promise<TRecord[]>;
95
+ get(id: string): Promise<TRecord | null>;
96
+ upsert(record: TRecord): Promise<void>;
97
+ archive(id: string, archivedAt: string): Promise<void>;
98
+ remove(id: string): Promise<void>;
99
+ private load;
100
+ private persist;
101
+ }
102
+ export declare class FileBackedProjectRegistry extends FileBackedRegistry<PersistedProjectRecord> implements ProjectRegistry {
103
+ constructor(filePath: string, logger: Logger);
104
+ }
105
+ export declare class FileBackedWorkspaceRegistry extends FileBackedRegistry<PersistedWorkspaceRecord> implements WorkspaceRegistry {
106
+ constructor(filePath: string, logger: Logger);
107
+ }
108
+ export declare function createPersistedProjectRecord(input: {
109
+ projectId: string;
110
+ rootPath: string;
111
+ kind: PersistedProjectKind;
112
+ displayName: string;
113
+ createdAt: string;
114
+ updatedAt: string;
115
+ archivedAt?: string | null;
116
+ }): PersistedProjectRecord;
117
+ export declare function createPersistedWorkspaceRecord(input: {
118
+ workspaceId: string;
119
+ projectId: string;
120
+ cwd: string;
121
+ kind: PersistedWorkspaceKind;
122
+ displayName: string;
123
+ createdAt: string;
124
+ updatedAt: string;
125
+ archivedAt?: string | null;
126
+ }): PersistedWorkspaceRecord;
127
+ export {};
128
+ //# sourceMappingURL=workspace-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-registry.d.ts","sourceRoot":"","sources":["../../../src/server/workspace-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ import { promises as fs } from 'node:fs';
2
+ import path from 'node:path';
3
+ import { z } from 'zod';
4
+ const PersistedProjectRecordSchema = z.object({
5
+ projectId: z.string(),
6
+ rootPath: z.string(),
7
+ kind: z.enum(['git', 'non_git']),
8
+ displayName: z.string(),
9
+ createdAt: z.string(),
10
+ updatedAt: z.string(),
11
+ archivedAt: z.string().nullable(),
12
+ });
13
+ const PersistedWorkspaceRecordSchema = z.object({
14
+ workspaceId: z.string(),
15
+ projectId: z.string(),
16
+ cwd: z.string(),
17
+ kind: z.enum(['local_checkout', 'worktree', 'directory']),
18
+ displayName: z.string(),
19
+ createdAt: z.string(),
20
+ updatedAt: z.string(),
21
+ archivedAt: z.string().nullable(),
22
+ });
23
+ class FileBackedRegistry {
24
+ constructor(options) {
25
+ this.loaded = false;
26
+ this.cache = new Map();
27
+ this.filePath = options.filePath;
28
+ this.schema = options.schema;
29
+ this.getId = options.getId;
30
+ this.logger = options.logger.child({ module: 'workspace-registry', component: options.component });
31
+ }
32
+ async initialize() {
33
+ await this.load();
34
+ }
35
+ async existsOnDisk() {
36
+ try {
37
+ await fs.access(this.filePath);
38
+ return true;
39
+ }
40
+ catch {
41
+ return false;
42
+ }
43
+ }
44
+ async list() {
45
+ await this.load();
46
+ return Array.from(this.cache.values());
47
+ }
48
+ async get(id) {
49
+ await this.load();
50
+ return this.cache.get(id) ?? null;
51
+ }
52
+ async upsert(record) {
53
+ await this.load();
54
+ const parsed = this.schema.parse(record);
55
+ this.cache.set(this.getId(parsed), parsed);
56
+ await this.persist();
57
+ }
58
+ async archive(id, archivedAt) {
59
+ await this.load();
60
+ const existing = this.cache.get(id);
61
+ if (!existing) {
62
+ return;
63
+ }
64
+ const next = this.schema.parse({
65
+ ...existing,
66
+ updatedAt: archivedAt,
67
+ archivedAt,
68
+ });
69
+ this.cache.set(id, next);
70
+ await this.persist();
71
+ }
72
+ async remove(id) {
73
+ await this.load();
74
+ if (!this.cache.delete(id)) {
75
+ return;
76
+ }
77
+ await this.persist();
78
+ }
79
+ async load() {
80
+ if (this.loaded) {
81
+ return;
82
+ }
83
+ this.cache.clear();
84
+ try {
85
+ const raw = await fs.readFile(this.filePath, 'utf8');
86
+ const parsed = z.array(this.schema).parse(JSON.parse(raw));
87
+ for (const record of parsed) {
88
+ this.cache.set(this.getId(record), record);
89
+ }
90
+ }
91
+ catch (error) {
92
+ const code = error.code;
93
+ if (code !== 'ENOENT') {
94
+ this.logger.error({ err: error, filePath: this.filePath }, 'Failed to load registry file');
95
+ }
96
+ }
97
+ this.loaded = true;
98
+ }
99
+ async persist() {
100
+ const records = Array.from(this.cache.values());
101
+ await fs.mkdir(path.dirname(this.filePath), { recursive: true });
102
+ const tempPath = `${this.filePath}.${process.pid}.${Date.now()}.tmp`;
103
+ await fs.writeFile(tempPath, JSON.stringify(records, null, 2), 'utf8');
104
+ await fs.rename(tempPath, this.filePath);
105
+ }
106
+ }
107
+ export class FileBackedProjectRegistry extends FileBackedRegistry {
108
+ constructor(filePath, logger) {
109
+ super({
110
+ filePath,
111
+ logger,
112
+ schema: PersistedProjectRecordSchema,
113
+ getId: (record) => record.projectId,
114
+ component: 'projects',
115
+ });
116
+ }
117
+ }
118
+ export class FileBackedWorkspaceRegistry extends FileBackedRegistry {
119
+ constructor(filePath, logger) {
120
+ super({
121
+ filePath,
122
+ logger,
123
+ schema: PersistedWorkspaceRecordSchema,
124
+ getId: (record) => record.workspaceId,
125
+ component: 'workspaces',
126
+ });
127
+ }
128
+ }
129
+ export function createPersistedProjectRecord(input) {
130
+ return PersistedProjectRecordSchema.parse({
131
+ ...input,
132
+ archivedAt: input.archivedAt ?? null,
133
+ });
134
+ }
135
+ export function createPersistedWorkspaceRecord(input) {
136
+ return PersistedWorkspaceRecordSchema.parse({
137
+ ...input,
138
+ archivedAt: input.archivedAt ?? null,
139
+ });
140
+ }
141
+ //# sourceMappingURL=workspace-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-registry.js","sourceRoot":"","sources":["../../../src/server/workspace-registry.ts"],"names":[],"mappings":"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"}