@av-pi-studio/server 0.0.1
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.
- package/README.md +411 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/agent/agent-manager.d.ts +107 -0
- package/dist/agent/agent-manager.d.ts.map +1 -0
- package/dist/agent/agent-manager.js +218 -0
- package/dist/agent/agent-manager.js.map +1 -0
- package/dist/agent/agent-service.d.ts +36 -0
- package/dist/agent/agent-service.d.ts.map +1 -0
- package/dist/agent/agent-service.js +195 -0
- package/dist/agent/agent-service.js.map +1 -0
- package/dist/agent/index.d.ts +17 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +18 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/manifest.d.ts +7 -0
- package/dist/agent/manifest.d.ts.map +1 -0
- package/dist/agent/manifest.js +27 -0
- package/dist/agent/manifest.js.map +1 -0
- package/dist/agent/mcp-server.d.ts +100 -0
- package/dist/agent/mcp-server.d.ts.map +1 -0
- package/dist/agent/mcp-server.js +163 -0
- package/dist/agent/mcp-server.js.map +1 -0
- package/dist/agent/permissions.d.ts +71 -0
- package/dist/agent/permissions.d.ts.map +1 -0
- package/dist/agent/permissions.js +132 -0
- package/dist/agent/permissions.js.map +1 -0
- package/dist/agent/provider-contract.d.ts +134 -0
- package/dist/agent/provider-contract.d.ts.map +1 -0
- package/dist/agent/provider-contract.js +2 -0
- package/dist/agent/provider-contract.js.map +1 -0
- package/dist/agent/provider-registry.d.ts +37 -0
- package/dist/agent/provider-registry.d.ts.map +1 -0
- package/dist/agent/provider-registry.js +92 -0
- package/dist/agent/provider-registry.js.map +1 -0
- package/dist/agent/provider-snapshot.d.ts +52 -0
- package/dist/agent/provider-snapshot.d.ts.map +1 -0
- package/dist/agent/provider-snapshot.js +73 -0
- package/dist/agent/provider-snapshot.js.map +1 -0
- package/dist/agent/providers/mock/mock-provider.d.ts +44 -0
- package/dist/agent/providers/mock/mock-provider.d.ts.map +1 -0
- package/dist/agent/providers/mock/mock-provider.js +162 -0
- package/dist/agent/providers/mock/mock-provider.js.map +1 -0
- package/dist/agent/providers/pi/agent.d.ts +80 -0
- package/dist/agent/providers/pi/agent.d.ts.map +1 -0
- package/dist/agent/providers/pi/agent.js +322 -0
- package/dist/agent/providers/pi/agent.js.map +1 -0
- package/dist/agent/providers/pi/event-mapper.d.ts +17 -0
- package/dist/agent/providers/pi/event-mapper.d.ts.map +1 -0
- package/dist/agent/providers/pi/event-mapper.js +150 -0
- package/dist/agent/providers/pi/event-mapper.js.map +1 -0
- package/dist/agent/providers/pi/rpc-transport.d.ts +53 -0
- package/dist/agent/providers/pi/rpc-transport.d.ts.map +1 -0
- package/dist/agent/providers/pi/rpc-transport.js +190 -0
- package/dist/agent/providers/pi/rpc-transport.js.map +1 -0
- package/dist/agent/providers/pi/session-hydration.d.ts +11 -0
- package/dist/agent/providers/pi/session-hydration.d.ts.map +1 -0
- package/dist/agent/providers/pi/session-hydration.js +167 -0
- package/dist/agent/providers/pi/session-hydration.js.map +1 -0
- package/dist/agent/rewind-rpc.d.ts +15 -0
- package/dist/agent/rewind-rpc.d.ts.map +1 -0
- package/dist/agent/rewind-rpc.js +30 -0
- package/dist/agent/rewind-rpc.js.map +1 -0
- package/dist/agent/session-operations.d.ts +32 -0
- package/dist/agent/session-operations.d.ts.map +1 -0
- package/dist/agent/session-operations.js +130 -0
- package/dist/agent/session-operations.js.map +1 -0
- package/dist/agent/structured-generation.d.ts +39 -0
- package/dist/agent/structured-generation.d.ts.map +1 -0
- package/dist/agent/structured-generation.js +78 -0
- package/dist/agent/structured-generation.js.map +1 -0
- package/dist/agent/timeline-rpc.d.ts +21 -0
- package/dist/agent/timeline-rpc.d.ts.map +1 -0
- package/dist/agent/timeline-rpc.js +59 -0
- package/dist/agent/timeline-rpc.js.map +1 -0
- package/dist/agent/timeline-store.d.ts +100 -0
- package/dist/agent/timeline-store.d.ts.map +1 -0
- package/dist/agent/timeline-store.js +255 -0
- package/dist/agent/timeline-store.js.map +1 -0
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +3 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/password-auth.d.ts +44 -0
- package/dist/auth/password-auth.d.ts.map +1 -0
- package/dist/auth/password-auth.js +78 -0
- package/dist/auth/password-auth.js.map +1 -0
- package/dist/config/daemon-config.d.ts +634 -0
- package/dist/config/daemon-config.d.ts.map +1 -0
- package/dist/config/daemon-config.js +258 -0
- package/dist/config/daemon-config.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +4 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/project-config.d.ts +104 -0
- package/dist/config/project-config.d.ts.map +1 -0
- package/dist/config/project-config.js +106 -0
- package/dist/config/project-config.js.map +1 -0
- package/dist/daemon/bootstrap.d.ts +37 -0
- package/dist/daemon/bootstrap.d.ts.map +1 -0
- package/dist/daemon/bootstrap.js +448 -0
- package/dist/daemon/bootstrap.js.map +1 -0
- package/dist/daemon/dev-bootstrap.d.ts +14 -0
- package/dist/daemon/dev-bootstrap.d.ts.map +1 -0
- package/dist/daemon/dev-bootstrap.js +231 -0
- package/dist/daemon/dev-bootstrap.js.map +1 -0
- package/dist/daemon/dev-main.d.ts +3 -0
- package/dist/daemon/dev-main.d.ts.map +1 -0
- package/dist/daemon/dev-main.js +36 -0
- package/dist/daemon/dev-main.js.map +1 -0
- package/dist/daemon/index.d.ts +15 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +21 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/daemon/main.d.ts +3 -0
- package/dist/daemon/main.d.ts.map +1 -0
- package/dist/daemon/main.js +29 -0
- package/dist/daemon/main.js.map +1 -0
- package/dist/daemon/orchestration-rpc.d.ts +19 -0
- package/dist/daemon/orchestration-rpc.d.ts.map +1 -0
- package/dist/daemon/orchestration-rpc.js +136 -0
- package/dist/daemon/orchestration-rpc.js.map +1 -0
- package/dist/files/download-token-store.d.ts +14 -0
- package/dist/files/download-token-store.d.ts.map +1 -0
- package/dist/files/download-token-store.js +33 -0
- package/dist/files/download-token-store.js.map +1 -0
- package/dist/files/file-explorer.d.ts +54 -0
- package/dist/files/file-explorer.d.ts.map +1 -0
- package/dist/files/file-explorer.js +182 -0
- package/dist/files/file-explorer.js.map +1 -0
- package/dist/files/file-transfer.d.ts +30 -0
- package/dist/files/file-transfer.d.ts.map +1 -0
- package/dist/files/file-transfer.js +132 -0
- package/dist/files/file-transfer.js.map +1 -0
- package/dist/files/index.d.ts +4 -0
- package/dist/files/index.d.ts.map +1 -0
- package/dist/files/index.js +5 -0
- package/dist/files/index.js.map +1 -0
- package/dist/http/host-allowlist.d.ts +15 -0
- package/dist/http/host-allowlist.d.ts.map +1 -0
- package/dist/http/host-allowlist.js +52 -0
- package/dist/http/host-allowlist.js.map +1 -0
- package/dist/http/http-server.d.ts +27 -0
- package/dist/http/http-server.d.ts.map +1 -0
- package/dist/http/http-server.js +76 -0
- package/dist/http/http-server.js.map +1 -0
- package/dist/http/index.d.ts +3 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +4 -0
- package/dist/http/index.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/logging/index.d.ts +2 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +2 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/logger.d.ts +48 -0
- package/dist/logging/logger.d.ts.map +1 -0
- package/dist/logging/logger.js +53 -0
- package/dist/logging/logger.js.map +1 -0
- package/dist/orchestration/chat-service.d.ts +61 -0
- package/dist/orchestration/chat-service.d.ts.map +1 -0
- package/dist/orchestration/chat-service.js +156 -0
- package/dist/orchestration/chat-service.js.map +1 -0
- package/dist/orchestration/cron.d.ts +30 -0
- package/dist/orchestration/cron.d.ts.map +1 -0
- package/dist/orchestration/cron.js +136 -0
- package/dist/orchestration/cron.js.map +1 -0
- package/dist/orchestration/index.d.ts +5 -0
- package/dist/orchestration/index.d.ts.map +1 -0
- package/dist/orchestration/index.js +6 -0
- package/dist/orchestration/index.js.map +1 -0
- package/dist/orchestration/loop-service.d.ts +129 -0
- package/dist/orchestration/loop-service.d.ts.map +1 -0
- package/dist/orchestration/loop-service.js +234 -0
- package/dist/orchestration/loop-service.js.map +1 -0
- package/dist/orchestration/schedule-service.d.ts +65 -0
- package/dist/orchestration/schedule-service.d.ts.map +1 -0
- package/dist/orchestration/schedule-service.js +201 -0
- package/dist/orchestration/schedule-service.js.map +1 -0
- package/dist/persistence/atomic-store.d.ts +45 -0
- package/dist/persistence/atomic-store.d.ts.map +1 -0
- package/dist/persistence/atomic-store.js +92 -0
- package/dist/persistence/atomic-store.js.map +1 -0
- package/dist/persistence/entity-schemas.d.ts +1707 -0
- package/dist/persistence/entity-schemas.d.ts.map +1 -0
- package/dist/persistence/entity-schemas.js +250 -0
- package/dist/persistence/entity-schemas.js.map +1 -0
- package/dist/persistence/entity-stores.d.ts +46 -0
- package/dist/persistence/entity-stores.d.ts.map +1 -0
- package/dist/persistence/entity-stores.js +167 -0
- package/dist/persistence/entity-stores.js.map +1 -0
- package/dist/persistence/index.d.ts +4 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +5 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/projects/checkout-diff-manager.d.ts +44 -0
- package/dist/projects/checkout-diff-manager.d.ts.map +1 -0
- package/dist/projects/checkout-diff-manager.js +82 -0
- package/dist/projects/checkout-diff-manager.js.map +1 -0
- package/dist/projects/git-checkout-rpc.d.ts +18 -0
- package/dist/projects/git-checkout-rpc.d.ts.map +1 -0
- package/dist/projects/git-checkout-rpc.js +57 -0
- package/dist/projects/git-checkout-rpc.js.map +1 -0
- package/dist/projects/git-detect.d.ts +21 -0
- package/dist/projects/git-detect.d.ts.map +1 -0
- package/dist/projects/git-detect.js +34 -0
- package/dist/projects/git-detect.js.map +1 -0
- package/dist/projects/git-operations.d.ts +67 -0
- package/dist/projects/git-operations.d.ts.map +1 -0
- package/dist/projects/git-operations.js +200 -0
- package/dist/projects/git-operations.js.map +1 -0
- package/dist/projects/github-service.d.ts +80 -0
- package/dist/projects/github-service.d.ts.map +1 -0
- package/dist/projects/github-service.js +172 -0
- package/dist/projects/github-service.js.map +1 -0
- package/dist/projects/index.d.ts +13 -0
- package/dist/projects/index.d.ts.map +1 -0
- package/dist/projects/index.js +19 -0
- package/dist/projects/index.js.map +1 -0
- package/dist/projects/open-project.d.ts +35 -0
- package/dist/projects/open-project.d.ts.map +1 -0
- package/dist/projects/open-project.js +106 -0
- package/dist/projects/open-project.js.map +1 -0
- package/dist/projects/reconciliation.d.ts +15 -0
- package/dist/projects/reconciliation.d.ts.map +1 -0
- package/dist/projects/reconciliation.js +63 -0
- package/dist/projects/reconciliation.js.map +1 -0
- package/dist/projects/status-projection.d.ts +33 -0
- package/dist/projects/status-projection.d.ts.map +1 -0
- package/dist/projects/status-projection.js +98 -0
- package/dist/projects/status-projection.js.map +1 -0
- package/dist/projects/workspace-activity.d.ts +28 -0
- package/dist/projects/workspace-activity.d.ts.map +1 -0
- package/dist/projects/workspace-activity.js +74 -0
- package/dist/projects/workspace-activity.js.map +1 -0
- package/dist/projects/workspace-git-service.d.ts +27 -0
- package/dist/projects/workspace-git-service.d.ts.map +1 -0
- package/dist/projects/workspace-git-service.js +60 -0
- package/dist/projects/workspace-git-service.js.map +1 -0
- package/dist/projects/workspace-registry.d.ts +59 -0
- package/dist/projects/workspace-registry.d.ts.map +1 -0
- package/dist/projects/workspace-registry.js +149 -0
- package/dist/projects/workspace-registry.js.map +1 -0
- package/dist/projects/worktree-service.d.ts +100 -0
- package/dist/projects/worktree-service.d.ts.map +1 -0
- package/dist/projects/worktree-service.js +216 -0
- package/dist/projects/worktree-service.js.map +1 -0
- package/dist/proxy/index.d.ts +4 -0
- package/dist/proxy/index.d.ts.map +1 -0
- package/dist/proxy/index.js +5 -0
- package/dist/proxy/index.js.map +1 -0
- package/dist/proxy/service-hostname.d.ts +21 -0
- package/dist/proxy/service-hostname.d.ts.map +1 -0
- package/dist/proxy/service-hostname.js +44 -0
- package/dist/proxy/service-hostname.js.map +1 -0
- package/dist/proxy/service-port-registry.d.ts +36 -0
- package/dist/proxy/service-port-registry.d.ts.map +1 -0
- package/dist/proxy/service-port-registry.js +55 -0
- package/dist/proxy/service-port-registry.js.map +1 -0
- package/dist/proxy/service-proxy.d.ts +34 -0
- package/dist/proxy/service-proxy.d.ts.map +1 -0
- package/dist/proxy/service-proxy.js +54 -0
- package/dist/proxy/service-proxy.js.map +1 -0
- package/dist/terminal/index.d.ts +4 -0
- package/dist/terminal/index.d.ts.map +1 -0
- package/dist/terminal/index.js +5 -0
- package/dist/terminal/index.js.map +1 -0
- package/dist/terminal/pty-backend.d.ts +44 -0
- package/dist/terminal/pty-backend.d.ts.map +1 -0
- package/dist/terminal/pty-backend.js +119 -0
- package/dist/terminal/pty-backend.js.map +1 -0
- package/dist/terminal/screen-buffer.d.ts +21 -0
- package/dist/terminal/screen-buffer.d.ts.map +1 -0
- package/dist/terminal/screen-buffer.js +55 -0
- package/dist/terminal/screen-buffer.js.map +1 -0
- package/dist/terminal/terminal-manager.d.ts +79 -0
- package/dist/terminal/terminal-manager.d.ts.map +1 -0
- package/dist/terminal/terminal-manager.js +174 -0
- package/dist/terminal/terminal-manager.js.map +1 -0
- package/dist/terminal/terminal-rpc.d.ts +20 -0
- package/dist/terminal/terminal-rpc.d.ts.map +1 -0
- package/dist/terminal/terminal-rpc.js +122 -0
- package/dist/terminal/terminal-rpc.js.map +1 -0
- package/dist/util/concurrency.d.ts +16 -0
- package/dist/util/concurrency.d.ts.map +1 -0
- package/dist/util/concurrency.js +23 -0
- package/dist/util/concurrency.js.map +1 -0
- package/dist/util/index.d.ts +2 -0
- package/dist/util/index.d.ts.map +1 -0
- package/dist/util/index.js +2 -0
- package/dist/util/index.js.map +1 -0
- package/dist/ws/capability-store.d.ts +11 -0
- package/dist/ws/capability-store.d.ts.map +1 -0
- package/dist/ws/capability-store.js +10 -0
- package/dist/ws/capability-store.js.map +1 -0
- package/dist/ws/index.d.ts +5 -0
- package/dist/ws/index.d.ts.map +1 -0
- package/dist/ws/index.js +6 -0
- package/dist/ws/index.js.map +1 -0
- package/dist/ws/router.d.ts +34 -0
- package/dist/ws/router.d.ts.map +1 -0
- package/dist/ws/router.js +97 -0
- package/dist/ws/router.js.map +1 -0
- package/dist/ws/session.d.ts +28 -0
- package/dist/ws/session.d.ts.map +1 -0
- package/dist/ws/session.js +36 -0
- package/dist/ws/session.js.map +1 -0
- package/dist/ws/ws-server.d.ts +41 -0
- package/dist/ws/ws-server.d.ts.map +1 -0
- package/dist/ws/ws-server.js +104 -0
- package/dist/ws/ws-server.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-schemas.d.ts","sourceRoot":"","sources":["../../src/persistence/entity-schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { agentStatusEnum, isoTimestampSchema, uuidSchema } from "@av-pi-studio/protocol";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
/**
|
|
4
|
+
* Zod schemas for every persisted daemon entity (architecture/persistence.md § Data shapes,
|
|
5
|
+
* MAIN-SCOPE.md §5). All schemas `.passthrough()` and use optional/default fields so unknown or
|
|
6
|
+
* future fields are tolerated on load with no migration framework.
|
|
7
|
+
*/
|
|
8
|
+
// ===========================================================================
|
|
9
|
+
// Agent record → agents/{sanitized-cwd}/{id}.json
|
|
10
|
+
// ===========================================================================
|
|
11
|
+
export const agentSelectOptionSchema = z
|
|
12
|
+
.object({
|
|
13
|
+
value: z.string(),
|
|
14
|
+
label: z.string().optional(),
|
|
15
|
+
description: z.string().optional(),
|
|
16
|
+
})
|
|
17
|
+
.passthrough();
|
|
18
|
+
/** Provider feature toggle/select (discriminated on `type`). */
|
|
19
|
+
export const agentFeatureSchema = z.discriminatedUnion("type", [
|
|
20
|
+
z.object({
|
|
21
|
+
type: z.literal("toggle"),
|
|
22
|
+
id: z.string(),
|
|
23
|
+
label: z.string(),
|
|
24
|
+
description: z.string().optional(),
|
|
25
|
+
tooltip: z.string().optional(),
|
|
26
|
+
icon: z.string().optional(),
|
|
27
|
+
value: z.boolean(),
|
|
28
|
+
}),
|
|
29
|
+
z.object({
|
|
30
|
+
type: z.literal("select"),
|
|
31
|
+
id: z.string(),
|
|
32
|
+
label: z.string(),
|
|
33
|
+
description: z.string().optional(),
|
|
34
|
+
tooltip: z.string().optional(),
|
|
35
|
+
icon: z.string().optional(),
|
|
36
|
+
value: z.string().nullable(),
|
|
37
|
+
options: z.array(agentSelectOptionSchema),
|
|
38
|
+
}),
|
|
39
|
+
]);
|
|
40
|
+
export const serializableConfigSchema = z
|
|
41
|
+
.object({
|
|
42
|
+
title: z.string().nullable().optional(),
|
|
43
|
+
modeId: z.string().optional(),
|
|
44
|
+
model: z.string().optional(),
|
|
45
|
+
thinkingOptionId: z.string().optional(),
|
|
46
|
+
featureValues: z.record(z.string(), z.unknown()).optional(),
|
|
47
|
+
extra: z.record(z.string(), z.unknown()).optional(),
|
|
48
|
+
systemPrompt: z.string().optional(),
|
|
49
|
+
mcpServers: z.record(z.string(), z.unknown()).optional(),
|
|
50
|
+
})
|
|
51
|
+
.passthrough();
|
|
52
|
+
export const runtimeInfoSchema = z
|
|
53
|
+
.object({
|
|
54
|
+
provider: z.string().optional(),
|
|
55
|
+
sessionId: z.string().optional(),
|
|
56
|
+
model: z.string().optional(),
|
|
57
|
+
thinkingOptionId: z.string().optional(),
|
|
58
|
+
modeId: z.string().optional(),
|
|
59
|
+
extra: z.record(z.string(), z.unknown()).optional(),
|
|
60
|
+
})
|
|
61
|
+
.passthrough();
|
|
62
|
+
export const persistenceHandleSchema = z
|
|
63
|
+
.object({
|
|
64
|
+
provider: z.string().optional(),
|
|
65
|
+
sessionId: z.string().optional(),
|
|
66
|
+
nativeHandle: z.unknown().optional(),
|
|
67
|
+
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
68
|
+
})
|
|
69
|
+
.passthrough();
|
|
70
|
+
export const agentRecordSchema = z
|
|
71
|
+
.object({
|
|
72
|
+
id: uuidSchema,
|
|
73
|
+
provider: z.string(),
|
|
74
|
+
cwd: z.string(),
|
|
75
|
+
createdAt: isoTimestampSchema,
|
|
76
|
+
updatedAt: isoTimestampSchema,
|
|
77
|
+
lastActivityAt: isoTimestampSchema.optional(),
|
|
78
|
+
lastUserMessageAt: isoTimestampSchema.optional(),
|
|
79
|
+
title: z.string().optional(),
|
|
80
|
+
labels: z.record(z.string(), z.string()).default({}),
|
|
81
|
+
lastStatus: agentStatusEnum,
|
|
82
|
+
lastModeId: z.string().optional(),
|
|
83
|
+
config: serializableConfigSchema.optional(),
|
|
84
|
+
runtimeInfo: runtimeInfoSchema.optional(),
|
|
85
|
+
features: z.array(agentFeatureSchema).optional(),
|
|
86
|
+
persistence: persistenceHandleSchema.optional(),
|
|
87
|
+
lastError: z.string().nullable().optional(),
|
|
88
|
+
internal: z.boolean().optional(),
|
|
89
|
+
archivedAt: isoTimestampSchema.optional(),
|
|
90
|
+
// One file per agent holds the record AND its timeline rows (row shapes land in sprint-006).
|
|
91
|
+
timeline: z.array(z.unknown()).default([]),
|
|
92
|
+
})
|
|
93
|
+
.passthrough();
|
|
94
|
+
// ===========================================================================
|
|
95
|
+
// Schedule → schedules/{id}.json (id = 8 hex)
|
|
96
|
+
// ===========================================================================
|
|
97
|
+
export const scheduleIdSchema = z
|
|
98
|
+
.string()
|
|
99
|
+
.regex(/^[0-9a-f]{8}$/, "schedule id must be 8 hex chars");
|
|
100
|
+
export const cadenceSchema = z.discriminatedUnion("type", [
|
|
101
|
+
z.object({ type: z.literal("every"), everyMs: z.number() }),
|
|
102
|
+
z.object({ type: z.literal("cron"), expression: z.string(), timezone: z.string().optional() }),
|
|
103
|
+
]);
|
|
104
|
+
export const newAgentConfigSchema = z
|
|
105
|
+
.object({
|
|
106
|
+
provider: z.string(),
|
|
107
|
+
cwd: z.string(),
|
|
108
|
+
modeId: z.string().optional(),
|
|
109
|
+
model: z.string().optional(),
|
|
110
|
+
thinkingOptionId: z.string().optional(),
|
|
111
|
+
title: z.string().optional(),
|
|
112
|
+
approvalPolicy: z.string().optional(),
|
|
113
|
+
sandboxMode: z.string().optional(),
|
|
114
|
+
networkAccess: z.boolean().optional(),
|
|
115
|
+
webSearch: z.boolean().optional(),
|
|
116
|
+
extra: z.record(z.string(), z.unknown()).optional(),
|
|
117
|
+
systemPrompt: z.string().optional(),
|
|
118
|
+
mcpServers: z.record(z.string(), z.unknown()).optional(),
|
|
119
|
+
})
|
|
120
|
+
.passthrough();
|
|
121
|
+
export const scheduleTargetSchema = z.discriminatedUnion("type", [
|
|
122
|
+
z.object({ type: z.literal("agent"), agentId: z.string() }),
|
|
123
|
+
z.object({ type: z.literal("new-agent"), config: newAgentConfigSchema }),
|
|
124
|
+
]);
|
|
125
|
+
export const scheduleRunSchema = z
|
|
126
|
+
.object({
|
|
127
|
+
id: z.string(),
|
|
128
|
+
scheduledFor: isoTimestampSchema,
|
|
129
|
+
startedAt: isoTimestampSchema,
|
|
130
|
+
endedAt: isoTimestampSchema.optional(),
|
|
131
|
+
status: z.enum(["running", "succeeded", "failed"]),
|
|
132
|
+
agentId: z.string().optional(),
|
|
133
|
+
output: z.unknown().optional(),
|
|
134
|
+
error: z.string().optional(),
|
|
135
|
+
})
|
|
136
|
+
.passthrough();
|
|
137
|
+
export const scheduleSchema = z
|
|
138
|
+
.object({
|
|
139
|
+
id: scheduleIdSchema,
|
|
140
|
+
name: z.string().optional(),
|
|
141
|
+
prompt: z.string(),
|
|
142
|
+
cadence: cadenceSchema,
|
|
143
|
+
target: scheduleTargetSchema,
|
|
144
|
+
status: z.enum(["active", "paused", "completed"]),
|
|
145
|
+
createdAt: isoTimestampSchema,
|
|
146
|
+
updatedAt: isoTimestampSchema,
|
|
147
|
+
nextRunAt: isoTimestampSchema.optional(),
|
|
148
|
+
lastRunAt: isoTimestampSchema.optional(),
|
|
149
|
+
pausedAt: isoTimestampSchema.optional(),
|
|
150
|
+
expiresAt: isoTimestampSchema.optional(),
|
|
151
|
+
maxRuns: z.number().optional(),
|
|
152
|
+
runs: z.array(scheduleRunSchema).default([]),
|
|
153
|
+
})
|
|
154
|
+
.passthrough();
|
|
155
|
+
// ===========================================================================
|
|
156
|
+
// Loop → loops/loops.json (array, non-atomic queued)
|
|
157
|
+
// ===========================================================================
|
|
158
|
+
export const loopStatusEnum = z.enum(["running", "succeeded", "failed", "stopped"]);
|
|
159
|
+
export const loopRecordSchema = z
|
|
160
|
+
.object({
|
|
161
|
+
id: z.string(),
|
|
162
|
+
name: z.string().optional(),
|
|
163
|
+
prompt: z.string(),
|
|
164
|
+
cwd: z.string(),
|
|
165
|
+
provider: z.string(),
|
|
166
|
+
model: z.string().optional(),
|
|
167
|
+
modeId: z.string().optional(),
|
|
168
|
+
// worker/verifier overrides (features/loops.md § Data shape).
|
|
169
|
+
workerProvider: z.string().optional(),
|
|
170
|
+
workerModel: z.string().optional(),
|
|
171
|
+
verifierProvider: z.string().optional(),
|
|
172
|
+
verifierModel: z.string().optional(),
|
|
173
|
+
verifierModeId: z.string().optional(),
|
|
174
|
+
verifyPrompt: z.string().optional(),
|
|
175
|
+
verifyChecks: z.array(z.string()).default([]),
|
|
176
|
+
archive: z.boolean().optional(),
|
|
177
|
+
sleepMs: z.number().optional(),
|
|
178
|
+
maxIterations: z.number().optional(),
|
|
179
|
+
maxTimeMs: z.number().optional(),
|
|
180
|
+
status: loopStatusEnum,
|
|
181
|
+
createdAt: isoTimestampSchema,
|
|
182
|
+
updatedAt: isoTimestampSchema.optional(),
|
|
183
|
+
startedAt: isoTimestampSchema.optional(),
|
|
184
|
+
completedAt: isoTimestampSchema.optional(),
|
|
185
|
+
stopRequestedAt: isoTimestampSchema.optional(),
|
|
186
|
+
iterations: z.array(z.unknown()).default([]),
|
|
187
|
+
logs: z.array(z.unknown()).default([]),
|
|
188
|
+
nextLogSeq: z.number().default(0),
|
|
189
|
+
activeIteration: z.unknown().optional(),
|
|
190
|
+
activeWorkerAgentId: z.string().optional(),
|
|
191
|
+
activeVerifierAgentId: z.string().optional(),
|
|
192
|
+
})
|
|
193
|
+
.passthrough();
|
|
194
|
+
export const loopStoreSchema = z.array(loopRecordSchema);
|
|
195
|
+
// ===========================================================================
|
|
196
|
+
// Chat → chat/rooms.json
|
|
197
|
+
// ===========================================================================
|
|
198
|
+
export const chatRoomSchema = z
|
|
199
|
+
.object({
|
|
200
|
+
id: uuidSchema,
|
|
201
|
+
name: z.string(),
|
|
202
|
+
purpose: z.string().optional(),
|
|
203
|
+
createdAt: isoTimestampSchema,
|
|
204
|
+
updatedAt: isoTimestampSchema,
|
|
205
|
+
})
|
|
206
|
+
.passthrough();
|
|
207
|
+
export const chatMessageSchema = z
|
|
208
|
+
.object({
|
|
209
|
+
id: uuidSchema,
|
|
210
|
+
roomId: z.string(),
|
|
211
|
+
authorAgentId: z.string(),
|
|
212
|
+
body: z.string(),
|
|
213
|
+
replyToMessageId: z.string().optional(),
|
|
214
|
+
mentionAgentIds: z.array(z.string()).default([]),
|
|
215
|
+
createdAt: isoTimestampSchema,
|
|
216
|
+
})
|
|
217
|
+
.passthrough();
|
|
218
|
+
export const chatStoreSchema = z.object({
|
|
219
|
+
rooms: z.array(chatRoomSchema).default([]),
|
|
220
|
+
messages: z.array(chatMessageSchema).default([]),
|
|
221
|
+
});
|
|
222
|
+
// ===========================================================================
|
|
223
|
+
// Project + workspace registries → projects/{projects,workspaces}.json
|
|
224
|
+
// ===========================================================================
|
|
225
|
+
export const projectRecordSchema = z
|
|
226
|
+
.object({
|
|
227
|
+
projectId: z.string(),
|
|
228
|
+
rootPath: z.string(),
|
|
229
|
+
kind: z.enum(["git", "non_git"]),
|
|
230
|
+
displayName: z.string(),
|
|
231
|
+
createdAt: isoTimestampSchema,
|
|
232
|
+
updatedAt: isoTimestampSchema,
|
|
233
|
+
archivedAt: isoTimestampSchema.nullable().default(null),
|
|
234
|
+
})
|
|
235
|
+
.passthrough();
|
|
236
|
+
export const projectRegistrySchema = z.array(projectRecordSchema);
|
|
237
|
+
export const workspaceRecordSchema = z
|
|
238
|
+
.object({
|
|
239
|
+
workspaceId: z.string(),
|
|
240
|
+
projectId: z.string(),
|
|
241
|
+
cwd: z.string(),
|
|
242
|
+
kind: z.enum(["local_checkout", "worktree", "directory"]),
|
|
243
|
+
displayName: z.string(),
|
|
244
|
+
createdAt: isoTimestampSchema,
|
|
245
|
+
updatedAt: isoTimestampSchema,
|
|
246
|
+
archivedAt: isoTimestampSchema.nullable().default(null),
|
|
247
|
+
})
|
|
248
|
+
.passthrough();
|
|
249
|
+
export const workspaceRegistrySchema = z.array(workspaceRecordSchema);
|
|
250
|
+
//# sourceMappingURL=entity-schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-schemas.js","sourceRoot":"","sources":["../../src/persistence/entity-schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type AgentRecord, type ChatStore, type LoopStore, type ProjectRegistry, type Schedule, type WorkspaceRegistry } from "./entity-schemas.js";
|
|
2
|
+
/**
|
|
3
|
+
* File-backed accessors for every persisted daemon entity. Single-record stores (agent, schedule)
|
|
4
|
+
* write atomically and load to `null` when absent; the loop store uses the queued non-atomic writer.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Derive an agent's on-disk directory key from its `cwd`: strip the filesystem root and replace path
|
|
8
|
+
* separators with `-`. A Windows drive letter becomes a `C-`-style prefix
|
|
9
|
+
* (architecture/persistence.md). The result is stable and directory-safe.
|
|
10
|
+
*/
|
|
11
|
+
export declare function sanitizeCwd(cwd: string): string;
|
|
12
|
+
export declare function agentDirectory(home: string, cwd: string): string;
|
|
13
|
+
export declare function agentFilePath(home: string, cwd: string, id: string): string;
|
|
14
|
+
export declare function saveAgent(home: string, agent: AgentRecord): Promise<void>;
|
|
15
|
+
export declare function loadAgent(home: string, cwd: string, id: string): Promise<AgentRecord | null>;
|
|
16
|
+
/** Delete an agent's persisted record file. Returns true if it existed. */
|
|
17
|
+
export declare function deleteAgent(home: string, cwd: string, id: string): Promise<boolean>;
|
|
18
|
+
/** Load every persisted agent record across all `agents/{sanitized-cwd}/` directories. */
|
|
19
|
+
export declare function loadAllAgents(home: string): Promise<AgentRecord[]>;
|
|
20
|
+
export declare function scheduleFilePath(home: string, id: string): string;
|
|
21
|
+
export declare function saveSchedule(home: string, schedule: Schedule): Promise<void>;
|
|
22
|
+
export declare function loadSchedule(home: string, id: string): Promise<Schedule | null>;
|
|
23
|
+
/** Load every persisted schedule (enumerates `schedules/*.json`). Skips missing/corrupt files. */
|
|
24
|
+
export declare function loadAllSchedules(home: string): Promise<Schedule[]>;
|
|
25
|
+
/** Delete a schedule file. Returns true if it existed. */
|
|
26
|
+
export declare function deleteSchedule(home: string, id: string): Promise<boolean>;
|
|
27
|
+
export declare function loopStorePath(home: string): string;
|
|
28
|
+
export declare function loadLoops(home: string): Promise<LoopStore>;
|
|
29
|
+
/**
|
|
30
|
+
* Open the loop store. Reads load the array; writes go through a single queued non-atomic writer so
|
|
31
|
+
* concurrent saves serialize in order (architecture/persistence.md — loop store is plain + queued).
|
|
32
|
+
*/
|
|
33
|
+
export declare function createLoopStore(home: string): {
|
|
34
|
+
load: () => Promise<LoopStore>;
|
|
35
|
+
save: (loops: LoopStore) => Promise<void>;
|
|
36
|
+
};
|
|
37
|
+
export declare function chatStorePath(home: string): string;
|
|
38
|
+
export declare function loadChat(home: string): Promise<ChatStore>;
|
|
39
|
+
export declare function saveChat(home: string, chat: ChatStore): Promise<void>;
|
|
40
|
+
export declare function projectsPath(home: string): string;
|
|
41
|
+
export declare function workspacesPath(home: string): string;
|
|
42
|
+
export declare function loadProjects(home: string): Promise<ProjectRegistry>;
|
|
43
|
+
export declare function saveProjects(home: string, projects: ProjectRegistry): Promise<void>;
|
|
44
|
+
export declare function loadWorkspaces(home: string): Promise<WorkspaceRegistry>;
|
|
45
|
+
export declare function saveWorkspaces(home: string, workspaces: WorkspaceRegistry): Promise<void>;
|
|
46
|
+
//# sourceMappingURL=entity-stores.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-stores.d.ts","sourceRoot":"","sources":["../../src/persistence/entity-stores.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,SAAS,EAEd,KAAK,SAAS,EAEd,KAAK,eAAe,EAEpB,KAAK,QAAQ,EAEb,KAAK,iBAAiB,EAEvB,MAAM,qBAAqB,CAAC;AAE7B;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAc/C;AAeD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/E;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAE7B;AAED,2EAA2E;AAC3E,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKzF;AAED,0FAA0F;AAC1F,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAcxE;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAElF;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAErF;AAED,kGAAkG;AAClG,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAWxE;AAED,0DAA0D;AAC1D,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAK/E;AAMD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAEhE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG;IAC7C,IAAI,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C,CAMA;AAMD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAE/D;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3E;AAMD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAEzE;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzF;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAE7E;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/F"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { existsSync, readdirSync, statSync } from "node:fs";
|
|
2
|
+
import { rm } from "node:fs/promises";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { atomicWriteJson, createQueuedJsonWriter, loadStore } from "./atomic-store.js";
|
|
5
|
+
import { agentRecordSchema, chatStoreSchema, loopStoreSchema, projectRegistrySchema, scheduleSchema, workspaceRegistrySchema, } from "./entity-schemas.js";
|
|
6
|
+
/**
|
|
7
|
+
* File-backed accessors for every persisted daemon entity. Single-record stores (agent, schedule)
|
|
8
|
+
* write atomically and load to `null` when absent; the loop store uses the queued non-atomic writer.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Derive an agent's on-disk directory key from its `cwd`: strip the filesystem root and replace path
|
|
12
|
+
* separators with `-`. A Windows drive letter becomes a `C-`-style prefix
|
|
13
|
+
* (architecture/persistence.md). The result is stable and directory-safe.
|
|
14
|
+
*/
|
|
15
|
+
export function sanitizeCwd(cwd) {
|
|
16
|
+
let rest = cwd.trim();
|
|
17
|
+
let prefix = "";
|
|
18
|
+
const drive = rest.match(/^([A-Za-z]):[\\/]/);
|
|
19
|
+
if (drive) {
|
|
20
|
+
prefix = `${drive[1].toUpperCase()}-`;
|
|
21
|
+
rest = rest.slice(drive[0].length);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
rest = rest.replace(/^[\\/]+/, ""); // strip leading POSIX root
|
|
25
|
+
}
|
|
26
|
+
const body = rest.replace(/[\\/]+/g, "-").replace(/^-+|-+$/g, "");
|
|
27
|
+
return `${prefix}${body}`;
|
|
28
|
+
}
|
|
29
|
+
/** Generic loader returning the parsed entity or `null` when the file is missing/corrupt. */
|
|
30
|
+
async function loadEntityOrNull(path, schema) {
|
|
31
|
+
if (!existsSync(path))
|
|
32
|
+
return null;
|
|
33
|
+
return loadStore(path, schema.nullable(), null);
|
|
34
|
+
}
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
// Agent records → agents/{sanitized-cwd}/{id}.json
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
export function agentDirectory(home, cwd) {
|
|
39
|
+
return join(home, "agents", sanitizeCwd(cwd));
|
|
40
|
+
}
|
|
41
|
+
export function agentFilePath(home, cwd, id) {
|
|
42
|
+
return join(agentDirectory(home, cwd), `${id}.json`);
|
|
43
|
+
}
|
|
44
|
+
export async function saveAgent(home, agent) {
|
|
45
|
+
await atomicWriteJson(agentFilePath(home, agent.cwd, agent.id), agent, agentRecordSchema);
|
|
46
|
+
}
|
|
47
|
+
export async function loadAgent(home, cwd, id) {
|
|
48
|
+
return loadEntityOrNull(agentFilePath(home, cwd, id), agentRecordSchema);
|
|
49
|
+
}
|
|
50
|
+
/** Delete an agent's persisted record file. Returns true if it existed. */
|
|
51
|
+
export async function deleteAgent(home, cwd, id) {
|
|
52
|
+
const path = agentFilePath(home, cwd, id);
|
|
53
|
+
if (!existsSync(path))
|
|
54
|
+
return false;
|
|
55
|
+
await rm(path, { force: true });
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
/** Load every persisted agent record across all `agents/{sanitized-cwd}/` directories. */
|
|
59
|
+
export async function loadAllAgents(home) {
|
|
60
|
+
const base = join(home, "agents");
|
|
61
|
+
if (!existsSync(base))
|
|
62
|
+
return [];
|
|
63
|
+
const records = [];
|
|
64
|
+
for (const entry of readdirSync(base)) {
|
|
65
|
+
const dir = join(base, entry);
|
|
66
|
+
if (!statSync(dir).isDirectory())
|
|
67
|
+
continue;
|
|
68
|
+
for (const file of readdirSync(dir)) {
|
|
69
|
+
if (!file.endsWith(".json"))
|
|
70
|
+
continue;
|
|
71
|
+
const record = await loadEntityOrNull(join(dir, file), agentRecordSchema);
|
|
72
|
+
if (record)
|
|
73
|
+
records.push(record);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return records;
|
|
77
|
+
}
|
|
78
|
+
// ---------------------------------------------------------------------------
|
|
79
|
+
// Schedules → schedules/{id}.json
|
|
80
|
+
// ---------------------------------------------------------------------------
|
|
81
|
+
export function scheduleFilePath(home, id) {
|
|
82
|
+
return join(home, "schedules", `${id}.json`);
|
|
83
|
+
}
|
|
84
|
+
export async function saveSchedule(home, schedule) {
|
|
85
|
+
await atomicWriteJson(scheduleFilePath(home, schedule.id), schedule, scheduleSchema);
|
|
86
|
+
}
|
|
87
|
+
export async function loadSchedule(home, id) {
|
|
88
|
+
return loadEntityOrNull(scheduleFilePath(home, id), scheduleSchema);
|
|
89
|
+
}
|
|
90
|
+
/** Load every persisted schedule (enumerates `schedules/*.json`). Skips missing/corrupt files. */
|
|
91
|
+
export async function loadAllSchedules(home) {
|
|
92
|
+
const dir = join(home, "schedules");
|
|
93
|
+
if (!existsSync(dir))
|
|
94
|
+
return [];
|
|
95
|
+
const schedules = [];
|
|
96
|
+
for (const entry of readdirSync(dir)) {
|
|
97
|
+
if (!entry.endsWith(".json"))
|
|
98
|
+
continue;
|
|
99
|
+
const id = entry.slice(0, -".json".length);
|
|
100
|
+
const schedule = await loadSchedule(home, id);
|
|
101
|
+
if (schedule)
|
|
102
|
+
schedules.push(schedule);
|
|
103
|
+
}
|
|
104
|
+
return schedules;
|
|
105
|
+
}
|
|
106
|
+
/** Delete a schedule file. Returns true if it existed. */
|
|
107
|
+
export async function deleteSchedule(home, id) {
|
|
108
|
+
const path = scheduleFilePath(home, id);
|
|
109
|
+
if (!existsSync(path))
|
|
110
|
+
return false;
|
|
111
|
+
await rm(path, { force: true });
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
// ---------------------------------------------------------------------------
|
|
115
|
+
// Loops → loops/loops.json (non-atomic, queued)
|
|
116
|
+
// ---------------------------------------------------------------------------
|
|
117
|
+
export function loopStorePath(home) {
|
|
118
|
+
return join(home, "loops", "loops.json");
|
|
119
|
+
}
|
|
120
|
+
export async function loadLoops(home) {
|
|
121
|
+
return loadStore(loopStorePath(home), loopStoreSchema, []);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Open the loop store. Reads load the array; writes go through a single queued non-atomic writer so
|
|
125
|
+
* concurrent saves serialize in order (architecture/persistence.md — loop store is plain + queued).
|
|
126
|
+
*/
|
|
127
|
+
export function createLoopStore(home) {
|
|
128
|
+
const write = createQueuedJsonWriter();
|
|
129
|
+
return {
|
|
130
|
+
load: () => loadLoops(home),
|
|
131
|
+
save: (loops) => write(loopStorePath(home), loops, loopStoreSchema),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
// ---------------------------------------------------------------------------
|
|
135
|
+
// Chat → chat/rooms.json
|
|
136
|
+
// ---------------------------------------------------------------------------
|
|
137
|
+
export function chatStorePath(home) {
|
|
138
|
+
return join(home, "chat", "rooms.json");
|
|
139
|
+
}
|
|
140
|
+
export async function loadChat(home) {
|
|
141
|
+
return loadStore(chatStorePath(home), chatStoreSchema, { rooms: [], messages: [] });
|
|
142
|
+
}
|
|
143
|
+
export async function saveChat(home, chat) {
|
|
144
|
+
await atomicWriteJson(chatStorePath(home), chat, chatStoreSchema);
|
|
145
|
+
}
|
|
146
|
+
// ---------------------------------------------------------------------------
|
|
147
|
+
// Project + workspace registries → projects/{projects,workspaces}.json
|
|
148
|
+
// ---------------------------------------------------------------------------
|
|
149
|
+
export function projectsPath(home) {
|
|
150
|
+
return join(home, "projects", "projects.json");
|
|
151
|
+
}
|
|
152
|
+
export function workspacesPath(home) {
|
|
153
|
+
return join(home, "projects", "workspaces.json");
|
|
154
|
+
}
|
|
155
|
+
export async function loadProjects(home) {
|
|
156
|
+
return loadStore(projectsPath(home), projectRegistrySchema, []);
|
|
157
|
+
}
|
|
158
|
+
export async function saveProjects(home, projects) {
|
|
159
|
+
await atomicWriteJson(projectsPath(home), projects, projectRegistrySchema);
|
|
160
|
+
}
|
|
161
|
+
export async function loadWorkspaces(home) {
|
|
162
|
+
return loadStore(workspacesPath(home), workspaceRegistrySchema, []);
|
|
163
|
+
}
|
|
164
|
+
export async function saveWorkspaces(home, workspaces) {
|
|
165
|
+
await atomicWriteJson(workspacesPath(home), workspaces, workspaceRegistrySchema);
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=entity-stores.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-stores.js","sourceRoot":"","sources":["../../src/persistence/entity-stores.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/persistence/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/persistence/index.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type GitRunner } from "./git-detect.js";
|
|
2
|
+
/**
|
|
3
|
+
* Checkout diff manager (features/git-checkout.md § Status & diff). Clients subscribe to a diff for
|
|
4
|
+
* a cwd (optionally staged / a specific path); the manager streams `checkout_diff_update` payloads,
|
|
5
|
+
* chunked for large diffs. Unsubscribe stops further updates.
|
|
6
|
+
*/
|
|
7
|
+
export interface DiffRequest {
|
|
8
|
+
cwd: string;
|
|
9
|
+
/** Diff the staged (index) changes instead of the worktree. */
|
|
10
|
+
staged?: boolean;
|
|
11
|
+
/** Limit the diff to a single path. */
|
|
12
|
+
path?: string;
|
|
13
|
+
/** Max bytes per `checkout_diff_update` chunk (default 64KiB). */
|
|
14
|
+
chunkSize?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface DiffUpdate {
|
|
17
|
+
type: "checkout_diff_update";
|
|
18
|
+
subscriptionId: string;
|
|
19
|
+
cwd: string;
|
|
20
|
+
/** 0-based chunk index. */
|
|
21
|
+
chunk: number;
|
|
22
|
+
/** Total chunk count for this diff. */
|
|
23
|
+
totalChunks: number;
|
|
24
|
+
/** Diff text for this chunk. */
|
|
25
|
+
patch: string;
|
|
26
|
+
/** True on the final chunk. */
|
|
27
|
+
done: boolean;
|
|
28
|
+
}
|
|
29
|
+
export type DiffEmitter = (update: DiffUpdate) => void;
|
|
30
|
+
export declare class CheckoutDiffManager {
|
|
31
|
+
private readonly gitRunner;
|
|
32
|
+
private readonly subscriptions;
|
|
33
|
+
private nextId;
|
|
34
|
+
constructor(gitRunner?: GitRunner);
|
|
35
|
+
/** Subscribe to a diff. Streams the current diff immediately. Returns the subscription id. */
|
|
36
|
+
subscribe(request: DiffRequest, emit: DiffEmitter): Promise<string>;
|
|
37
|
+
/** Stop a diff subscription. Returns true when an active subscription was removed. */
|
|
38
|
+
unsubscribe(subscriptionId: string): boolean;
|
|
39
|
+
hasSubscription(subscriptionId: string): boolean;
|
|
40
|
+
/** Recompute + re-stream a live subscription (e.g. on a status change). No-op if unsubscribed. */
|
|
41
|
+
refresh(subscriptionId: string): Promise<boolean>;
|
|
42
|
+
private stream;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=checkout-diff-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-diff-manager.d.ts","sourceRoot":"","sources":["../../src/projects/checkout-diff-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEnE;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,sBAAsB,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;AAIvD,qBAAa,mBAAmB;IAIlB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAHtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkE;IAChG,OAAO,CAAC,MAAM,CAAK;gBAEU,SAAS,GAAE,SAA4B;IAEpE,8FAA8F;IACxF,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAOzE,sFAAsF;IACtF,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAI5C,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAIhD,kGAAkG;IAC5F,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAMzC,MAAM;CA0CrB"}
|