@pellux/goodvibes-sdk 0.21.18 → 0.21.21
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/dist/_internal/contracts/generated/runtime-event-domains.d.ts +1 -1
- package/dist/_internal/contracts/generated/runtime-event-domains.d.ts.map +1 -1
- package/dist/_internal/contracts/generated/runtime-event-domains.js +1 -0
- package/dist/_internal/daemon/index.d.ts +1 -1
- package/dist/_internal/daemon/index.d.ts.map +1 -1
- package/dist/_internal/daemon/runtime-session-routes.d.ts +12 -1
- package/dist/_internal/daemon/runtime-session-routes.d.ts.map +1 -1
- package/dist/_internal/daemon/runtime-session-routes.js +23 -5
- package/dist/_internal/daemon/system-route-types.d.ts +19 -0
- package/dist/_internal/daemon/system-route-types.d.ts.map +1 -1
- package/dist/_internal/daemon/system-routes.d.ts.map +1 -1
- package/dist/_internal/daemon/system-routes.js +18 -0
- package/dist/_internal/platform/companion/companion-chat-rate-limiter.d.ts +47 -3
- package/dist/_internal/platform/companion/companion-chat-rate-limiter.d.ts.map +1 -1
- package/dist/_internal/platform/companion/companion-chat-rate-limiter.js +49 -6
- package/dist/_internal/platform/companion/companion-chat-routes.d.ts +13 -0
- package/dist/_internal/platform/companion/companion-chat-routes.d.ts.map +1 -1
- package/dist/_internal/platform/companion/companion-chat-routes.js +38 -2
- package/dist/_internal/platform/config/schema-domain-runtime.d.ts.map +1 -1
- package/dist/_internal/platform/config/schema-domain-runtime.js +8 -0
- package/dist/_internal/platform/config/schema-types.d.ts +2 -2
- package/dist/_internal/platform/config/schema-types.d.ts.map +1 -1
- package/dist/_internal/platform/control-plane/method-catalog-events.d.ts.map +1 -1
- package/dist/_internal/platform/control-plane/method-catalog-events.js +1 -0
- package/dist/_internal/platform/control-plane/session-broker.d.ts +12 -0
- package/dist/_internal/platform/control-plane/session-broker.d.ts.map +1 -1
- package/dist/_internal/platform/control-plane/session-broker.js +22 -0
- package/dist/_internal/platform/daemon/cli.js +51 -4
- package/dist/_internal/platform/daemon/facade-composition.d.ts +5 -0
- package/dist/_internal/platform/daemon/facade-composition.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/facade-composition.js +1 -0
- package/dist/_internal/platform/daemon/facade.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/facade.js +1 -0
- package/dist/_internal/platform/daemon/http/router-route-contexts.d.ts +1 -0
- package/dist/_internal/platform/daemon/http/router-route-contexts.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/http/router-route-contexts.js +5 -0
- package/dist/_internal/platform/daemon/http/router.d.ts +5 -0
- package/dist/_internal/platform/daemon/http/router.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/http/router.js +1 -0
- package/dist/_internal/platform/daemon/http/system-route-types.d.ts +1 -1
- package/dist/_internal/platform/daemon/http/system-route-types.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/types.d.ts +21 -0
- package/dist/_internal/platform/daemon/types.d.ts.map +1 -1
- package/dist/_internal/platform/pairing/companion-token.d.ts +2 -0
- package/dist/_internal/platform/pairing/companion-token.d.ts.map +1 -1
- package/dist/_internal/platform/pairing/companion-token.js +19 -9
- package/dist/_internal/platform/runtime/events/domain-map.d.ts +4 -2
- package/dist/_internal/platform/runtime/events/domain-map.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/events/domain-map.js +1 -0
- package/dist/_internal/platform/runtime/events/index.d.ts +4 -1
- package/dist/_internal/platform/runtime/events/index.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/events/index.js +0 -15
- package/dist/_internal/platform/runtime/events/workspace.d.ts +56 -0
- package/dist/_internal/platform/runtime/events/workspace.d.ts.map +1 -0
- package/dist/_internal/platform/runtime/events/workspace.js +2 -0
- package/dist/_internal/platform/runtime/health/effect-handlers.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/health/effect-handlers.js +12 -1
- package/dist/_internal/platform/runtime/services.d.ts +19 -0
- package/dist/_internal/platform/runtime/services.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/services.js +31 -0
- package/dist/_internal/platform/state/memory-store.d.ts +11 -0
- package/dist/_internal/platform/state/memory-store.d.ts.map +1 -1
- package/dist/_internal/platform/state/memory-store.js +22 -0
- package/dist/_internal/platform/state/project-index.d.ts +13 -3
- package/dist/_internal/platform/state/project-index.d.ts.map +1 -1
- package/dist/_internal/platform/state/project-index.js +31 -0
- package/dist/_internal/platform/tools/state/index.d.ts +23 -0
- package/dist/_internal/platform/tools/state/index.d.ts.map +1 -1
- package/dist/_internal/platform/tools/state/index.js +49 -5
- package/dist/_internal/platform/version.js +1 -1
- package/dist/_internal/platform/workspace/daemon-home.d.ts +70 -0
- package/dist/_internal/platform/workspace/daemon-home.d.ts.map +1 -0
- package/dist/_internal/platform/workspace/daemon-home.js +221 -0
- package/dist/_internal/platform/workspace/workspace-swap-manager.d.ts +60 -0
- package/dist/_internal/platform/workspace/workspace-swap-manager.d.ts.map +1 -0
- package/dist/_internal/platform/workspace/workspace-swap-manager.js +117 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { randomBytes } from 'node:crypto';
|
|
2
2
|
import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs';
|
|
3
|
-
import { join } from 'node:path';
|
|
3
|
+
import { join, dirname } from 'node:path';
|
|
4
4
|
const TOKEN_PREFIX = 'gv_';
|
|
5
5
|
function generateTokenValue() {
|
|
6
6
|
return TOKEN_PREFIX + randomBytes(24).toString('base64url');
|
|
@@ -9,11 +9,21 @@ function generatePeerId() {
|
|
|
9
9
|
return randomBytes(12).toString('hex');
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* Resolve the token store path.
|
|
13
|
+
*
|
|
14
|
+
* Resolution order (first match wins):
|
|
15
|
+
* 1. daemonHomeDir — daemon-identity-scoped path (0.21.19+, recommended)
|
|
16
|
+
* 2. basePath — workspace-scoped path (0.21.17–0.21.18 layout, legacy fallback)
|
|
17
|
+
* 3. process.cwd() — absolute fallback
|
|
18
|
+
*
|
|
19
|
+
* Storing tokens under daemonHomeDir means workspace swaps never invalidate
|
|
20
|
+
* paired companions — a token paired once works regardless of which working
|
|
21
|
+
* directory the daemon is currently serving.
|
|
15
22
|
*/
|
|
16
|
-
function resolveSharedTokenPath(basePath) {
|
|
23
|
+
function resolveSharedTokenPath(basePath, daemonHomeDir) {
|
|
24
|
+
if (daemonHomeDir) {
|
|
25
|
+
return join(daemonHomeDir, 'operator-tokens.json');
|
|
26
|
+
}
|
|
17
27
|
const base = basePath ?? process.cwd();
|
|
18
28
|
return join(base, '.goodvibes', 'operator-tokens.json');
|
|
19
29
|
}
|
|
@@ -25,14 +35,14 @@ function resolveSharedTokenPath(basePath) {
|
|
|
25
35
|
*
|
|
26
36
|
* @deprecated `surface` parameter is ignored; use {@link resolveSharedTokenPath} directly.
|
|
27
37
|
*/
|
|
28
|
-
function resolveTokenPath(_surface, basePath) {
|
|
29
|
-
return resolveSharedTokenPath(basePath);
|
|
38
|
+
function resolveTokenPath(_surface, basePath, daemonHomeDir) {
|
|
39
|
+
return resolveSharedTokenPath(basePath, daemonHomeDir);
|
|
30
40
|
}
|
|
31
41
|
/**
|
|
32
42
|
* Load the stored companion token for a surface, or generate and persist a new one.
|
|
33
43
|
*/
|
|
34
44
|
export function getOrCreateCompanionToken(surface, options) {
|
|
35
|
-
const tokenPath = resolveTokenPath(surface, options?.basePath);
|
|
45
|
+
const tokenPath = resolveTokenPath(surface, options?.basePath, options?.daemonHomeDir);
|
|
36
46
|
if (!options?.regenerate && existsSync(tokenPath)) {
|
|
37
47
|
try {
|
|
38
48
|
const raw = readFileSync(tokenPath, 'utf-8');
|
|
@@ -50,7 +60,7 @@ export function getOrCreateCompanionToken(surface, options) {
|
|
|
50
60
|
peerId: generatePeerId(),
|
|
51
61
|
createdAt: Date.now(),
|
|
52
62
|
};
|
|
53
|
-
mkdirSync(
|
|
63
|
+
mkdirSync(dirname(tokenPath), { recursive: true });
|
|
54
64
|
writeFileSync(tokenPath, JSON.stringify(record, null, 2), 'utf-8');
|
|
55
65
|
return { token: record.token, peerId: record.peerId, createdAt: record.createdAt };
|
|
56
66
|
}
|
|
@@ -30,8 +30,9 @@ import type { DeliveryEvent } from './deliveries.js';
|
|
|
30
30
|
import type { WatcherEvent } from './watchers.js';
|
|
31
31
|
import type { SurfaceEvent } from './surfaces.js';
|
|
32
32
|
import type { KnowledgeEvent } from './knowledge.js';
|
|
33
|
+
import type { WorkspaceEvent } from './workspace.js';
|
|
33
34
|
/** Union of all runtime domain events. */
|
|
34
|
-
export type AnyRuntimeEvent = SessionEvent | TurnEvent | ProviderEvent | ToolEvent | TaskEvent | AgentEvent | WorkflowEvent | OrchestrationEvent | CommunicationEvent | PlannerEvent | PermissionEvent | PluginEvent | McpEvent | TransportEvent | CompactionEvent | UIEvent | OpsEvent | ForensicsEvent | SecurityEvent | AutomationEvent | RouteEvent | ControlPlaneEvent | DeliveryEvent | WatcherEvent | SurfaceEvent | KnowledgeEvent;
|
|
35
|
+
export type AnyRuntimeEvent = SessionEvent | TurnEvent | ProviderEvent | ToolEvent | TaskEvent | AgentEvent | WorkflowEvent | OrchestrationEvent | CommunicationEvent | PlannerEvent | PermissionEvent | PluginEvent | McpEvent | TransportEvent | CompactionEvent | UIEvent | OpsEvent | ForensicsEvent | SecurityEvent | AutomationEvent | RouteEvent | ControlPlaneEvent | DeliveryEvent | WatcherEvent | SurfaceEvent | KnowledgeEvent | WorkspaceEvent;
|
|
35
36
|
/**
|
|
36
37
|
* Utility type that maps an event type discriminant to its full event shape.
|
|
37
38
|
*
|
|
@@ -49,7 +50,7 @@ export type RuntimeEventPayload<T extends AnyRuntimeEvent['type']> = Extract<Any
|
|
|
49
50
|
*
|
|
50
51
|
* This is the source-of-truth vocabulary for runtime transport/event surfaces.
|
|
51
52
|
*/
|
|
52
|
-
export declare const RUNTIME_EVENT_DOMAINS: readonly ["session", "turn", "providers", "tools", "tasks", "agents", "workflows", "orchestration", "communication", "planner", "permissions", "plugins", "mcp", "transport", "compaction", "ui", "ops", "forensics", "security", "automation", "routes", "control-plane", "deliveries", "watchers", "surfaces", "knowledge"];
|
|
53
|
+
export declare const RUNTIME_EVENT_DOMAINS: readonly ["session", "turn", "providers", "tools", "tasks", "agents", "workflows", "orchestration", "communication", "planner", "permissions", "plugins", "mcp", "transport", "compaction", "ui", "ops", "forensics", "security", "automation", "routes", "control-plane", "deliveries", "watchers", "surfaces", "knowledge", "workspace"];
|
|
53
54
|
/**
|
|
54
55
|
* Domain label type for use with domain-scoped subscriptions.
|
|
55
56
|
*/
|
|
@@ -83,6 +84,7 @@ export type DomainEventMap = {
|
|
|
83
84
|
watchers: WatcherEvent;
|
|
84
85
|
surfaces: SurfaceEvent;
|
|
85
86
|
knowledge: KnowledgeEvent;
|
|
87
|
+
workspace: WorkspaceEvent;
|
|
86
88
|
};
|
|
87
89
|
/**
|
|
88
90
|
* Legacy alias for `AnyRuntimeEvent` used by transport-layer generics.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-map.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/events/domain-map.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,0CAA0C;AAC1C,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ,SAAS,GACT,aAAa,GACb,SAAS,GACT,SAAS,GACT,UAAU,GACV,aAAa,GACb,kBAAkB,GAClB,kBAAkB,GAClB,YAAY,GACZ,eAAe,GACf,WAAW,GACX,QAAQ,GACR,cAAc,GACd,eAAe,GACf,OAAO,GACP,QAAQ,GACR,cAAc,GACd,aAAa,GACb,eAAe,GACf,UAAU,GACV,iBAAiB,GACjB,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,cAAc,CAAC;AAEnB;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,eAAe,CAAC,MAAM,CAAC,IAAI,OAAO,CAC1E,eAAe,EACf;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CACZ,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"domain-map.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/events/domain-map.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,0CAA0C;AAC1C,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ,SAAS,GACT,aAAa,GACb,SAAS,GACT,SAAS,GACT,UAAU,GACV,aAAa,GACb,kBAAkB,GAClB,kBAAkB,GAClB,YAAY,GACZ,eAAe,GACf,WAAW,GACX,QAAQ,GACR,cAAc,GACd,eAAe,GACf,OAAO,GACP,QAAQ,GACR,cAAc,GACd,aAAa,GACb,eAAe,GACf,UAAU,GACV,iBAAiB,GACjB,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,cAAc,CAAC;AAEnB;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,eAAe,CAAC,MAAM,CAAC,IAAI,OAAO,CAC1E,eAAe,EACf;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CACZ,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,4UA4BxB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAEtE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,kBAAkB,CAE/E;AAED,qDAAqD;AACrD,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,aAAa,CAAC;IACzB,aAAa,EAAE,kBAAkB,CAAC;IAClC,aAAa,EAAE,kBAAkB,CAAC;IAClC,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,EAAE,eAAe,CAAC;IAC7B,OAAO,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,cAAc,CAAC;IAC1B,UAAU,EAAE,eAAe,CAAC;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,cAAc,CAAC;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,EAAE,eAAe,CAAC;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,eAAe,EAAE,iBAAiB,CAAC;IACnC,UAAU,EAAE,aAAa,CAAC;IAC1B,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC"}
|
|
@@ -81,10 +81,13 @@ export declare class RuntimeEventBus {
|
|
|
81
81
|
*
|
|
82
82
|
* @see emitTurnSubmitted, emitToolReceived, etc. in `src/runtime/emitters/`
|
|
83
83
|
*
|
|
84
|
+
* Domain-keyed overload: when the domain is statically known, the envelope
|
|
85
|
+
* type is narrowed to the corresponding DomainEventMap entry — no cast needed.
|
|
86
|
+
*
|
|
84
87
|
* @param domain - Domain this event belongs to.
|
|
85
88
|
* @param envelope - The fully-formed envelope to dispatch.
|
|
86
89
|
*/
|
|
87
|
-
emit(domain:
|
|
90
|
+
emit<D extends RuntimeEventDomain>(domain: D, envelope: RuntimeEventEnvelope<DomainEventMap[D]['type'], DomainEventMap[D]>): void;
|
|
88
91
|
private _off;
|
|
89
92
|
private _offDomain;
|
|
90
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/events/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/events/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,21 +85,6 @@ export class RuntimeEventBus {
|
|
|
85
85
|
}
|
|
86
86
|
return () => this._offDomain(domain, callback);
|
|
87
87
|
}
|
|
88
|
-
/**
|
|
89
|
-
* Emit a runtime event envelope to all matching per-type and per-domain subscribers.
|
|
90
|
-
*
|
|
91
|
-
* @internal Callers MUST use the typed emitter wrapper functions from
|
|
92
|
-
* `src/runtime/emitters/` rather than calling this method directly.
|
|
93
|
-
* Direct usage bypasses domain-event type enforcement: TypeScript cannot
|
|
94
|
-
* statically link the `domain` argument to the `envelope` payload type due
|
|
95
|
-
* to union complexity limitations (TS2590), meaning mismatched pairs compile
|
|
96
|
-
* without error.
|
|
97
|
-
*
|
|
98
|
-
* @see emitTurnSubmitted, emitToolReceived, etc. in `src/runtime/emitters/`
|
|
99
|
-
*
|
|
100
|
-
* @param domain - Domain this event belongs to.
|
|
101
|
-
* @param envelope - The fully-formed envelope to dispatch.
|
|
102
|
-
*/
|
|
103
88
|
emit(domain, envelope) {
|
|
104
89
|
// Snapshot both sets before iterating so that subscribe/unsubscribe calls
|
|
105
90
|
// triggered by a handler do not mutate the live Set mid-iteration (C3 fix).
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
|
|
2
|
+
/**
|
|
3
|
+
* WorkspaceEvent — discriminated union covering workspace swap lifecycle events.
|
|
4
|
+
*
|
|
5
|
+
* Emitted under the 'workspace' domain on the RuntimeEventBus.
|
|
6
|
+
* Subscribers can react to working-directory changes without polling config.
|
|
7
|
+
*/
|
|
8
|
+
export type WorkspaceEvent =
|
|
9
|
+
/** Emitted immediately before the swap procedure begins. */
|
|
10
|
+
{
|
|
11
|
+
type: 'WORKSPACE_SWAP_STARTED';
|
|
12
|
+
from: string;
|
|
13
|
+
to: string;
|
|
14
|
+
}
|
|
15
|
+
/** Emitted after all stores have been re-rooted at the new working directory. */
|
|
16
|
+
| {
|
|
17
|
+
type: 'WORKSPACE_SWAP_COMPLETED';
|
|
18
|
+
from: string;
|
|
19
|
+
to: string;
|
|
20
|
+
/** True if the new path was persisted to daemon-settings.json. */
|
|
21
|
+
persistedInDaemonSettings: boolean;
|
|
22
|
+
}
|
|
23
|
+
/** Emitted when a swap is rejected because at least one session has pending input. */
|
|
24
|
+
| {
|
|
25
|
+
type: 'WORKSPACE_SWAP_REFUSED';
|
|
26
|
+
from: string;
|
|
27
|
+
to: string;
|
|
28
|
+
/** Human-readable reason string. */
|
|
29
|
+
reason: string;
|
|
30
|
+
/** Suggested retry delay in seconds. */
|
|
31
|
+
retryAfter: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Emitted when a daemon-home identity file is successfully copied during
|
|
35
|
+
* the one-time migration (0.21.19+ startup with a new daemon home).
|
|
36
|
+
*/
|
|
37
|
+
| {
|
|
38
|
+
type: 'WORKSPACE_IDENTITY_MIGRATED';
|
|
39
|
+
/** Source path the file was copied from. */
|
|
40
|
+
from: string;
|
|
41
|
+
/** Destination path under the new daemon home. */
|
|
42
|
+
to: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Emitted when a candidate identity file is skipped during migration because
|
|
46
|
+
* it contains corrupt JSON that cannot be safely migrated.
|
|
47
|
+
*/
|
|
48
|
+
| {
|
|
49
|
+
type: 'WORKSPACE_IDENTITY_MIGRATION_FAILED';
|
|
50
|
+
/** Path of the source file that was skipped. */
|
|
51
|
+
sourcePath: string;
|
|
52
|
+
/** Human-readable reason (e.g. JSON parse error message). */
|
|
53
|
+
reason: string;
|
|
54
|
+
};
|
|
55
|
+
export type WorkspaceEventType = WorkspaceEvent['type'];
|
|
56
|
+
//# sourceMappingURL=workspace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/events/workspace.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF;;;;;GAKG;AAEH,MAAM,MAAM,cAAc;AACxB,4DAA4D;AAC1D;IACE,IAAI,EAAE,wBAAwB,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AACH,iFAAiF;GAC/E;IACE,IAAI,EAAE,0BAA0B,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,yBAAyB,EAAE,OAAO,CAAC;CACpC;AACH,sFAAsF;GACpF;IACE,IAAI,EAAE,wBAAwB,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;CACpB;AACH;;;GAGG;GACD;IACE,IAAI,EAAE,6BAA6B,CAAC;IACpC,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,EAAE,EAAE,MAAM,CAAC;CACZ;AACH;;;GAGG;GACD;IACE,IAAI,EAAE,qCAAqC,CAAC;IAC5C,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effect-handlers.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/health/effect-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"effect-handlers.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/health/effect-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,oBAAoB,CAAC;AA0ChF,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACnC,iEAAiE;IACjE,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAC7C,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAiHN"}
|
|
@@ -31,7 +31,18 @@ import { createEventEnvelope } from '../events/index.js';
|
|
|
31
31
|
* src/runtime/emitters/ for all standard domain events.
|
|
32
32
|
*/
|
|
33
33
|
function emitHealthEvent(bus, envelope) {
|
|
34
|
-
|
|
34
|
+
// GC-ARCH-002: CASCADE_APPLIED and synthetic health events live outside the AnyRuntimeEvent
|
|
35
|
+
// typed union by design. We use the implementation overload of bus.emit directly to route
|
|
36
|
+
// them without polluting the AnyRuntimeEvent union. The single-step cast (not via unknown)
|
|
37
|
+
// is audited and intentional — health events are valid RuntimeEventEnvelope objects whose
|
|
38
|
+
// type discriminant is a string literal unknown to the compile-time union.
|
|
39
|
+
//
|
|
40
|
+
// Do NOT copy this pattern elsewhere — use typed emitters from src/runtime/emitters/ for
|
|
41
|
+
// all standard domain events.
|
|
42
|
+
bus.emit(
|
|
43
|
+
// Health events use 'session' as the routing domain — it is the most general
|
|
44
|
+
// domain and health cascades originate from session-level failures.
|
|
45
|
+
'session', envelope);
|
|
35
46
|
}
|
|
36
47
|
/**
|
|
37
48
|
* Dispatches the appropriate runtime action for a given CascadeEffect.
|
|
@@ -157,6 +157,25 @@ export interface RuntimeServices {
|
|
|
157
157
|
readonly modeManager: ModeManager;
|
|
158
158
|
readonly fileUndoManager: FileUndoManager;
|
|
159
159
|
readonly integrationHelpers: IntegrationHelperService;
|
|
160
|
+
/**
|
|
161
|
+
* Re-root all path-bound services to a new working directory.
|
|
162
|
+
*
|
|
163
|
+
* Called by WorkspaceSwapManager.requestSwap() after the new directory has
|
|
164
|
+
* been verified and its subdirectories created.
|
|
165
|
+
*
|
|
166
|
+
* Stores that are re-rooted in-process:
|
|
167
|
+
* - MemoryStore (memory.sqlite + vector index): closed and reopened at new path.
|
|
168
|
+
* - ProjectIndex: flushed to old location then reset to new directory.
|
|
169
|
+
*
|
|
170
|
+
* Stores that require a process restart to fully re-root emit a warn-level log
|
|
171
|
+
* naming the subsystem. They continue serving the old path until the daemon is
|
|
172
|
+
* restarted with --working-dir=<newDir> (or the persisted daemon-settings.json
|
|
173
|
+
* value is picked up at startup).
|
|
174
|
+
*
|
|
175
|
+
* @throws if MemoryStore or ProjectIndex reroot fails. Propagated as INVALID_PATH
|
|
176
|
+
* by WorkspaceSwapManager.
|
|
177
|
+
*/
|
|
178
|
+
rerootStores(newWorkingDir: string): Promise<void>;
|
|
160
179
|
}
|
|
161
180
|
export declare function createRuntimeServices(options: RuntimeServicesOptions): RuntimeServices;
|
|
162
181
|
//# sourceMappingURL=services.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/services.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/services.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAwB,MAAM,wBAAwB,CAAC;AAC5G,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACzH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAkB,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAA+B,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAA+B,MAAM,mBAAmB,CAAC;AACrG,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAuB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAC3C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IACzC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;CACtD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IACxC,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;IACpD,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IACtD,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,eAAe,EAAE,yBAAyB,CAAC;IACpD,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAClD,QAAQ,CAAC,oBAAoB,EAAE,eAAe,CAAC;IAC/C,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;IACxD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAClD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;IACvD,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,uBAAuB,EAAE,+BAA+B,CAAC;IAClE,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IACxD,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IACxD,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;IACjD,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;IAChE,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAChD,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;IACvD,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpD,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAChD,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IACtD,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpD,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAChD,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;IACtD;;;;;;;;;;;;;;;;;OAiBG;IACH,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CA2ZtF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { join } from 'node:path';
|
|
2
|
+
import { logger } from '../utils/logger.js';
|
|
2
3
|
import { ConfigManager } from '../config/manager.js';
|
|
3
4
|
import { SecretsManager } from '../config/secrets.js';
|
|
4
5
|
import { ServiceRegistry } from '../config/service-registry.js';
|
|
@@ -438,5 +439,35 @@ export function createRuntimeServices(options) {
|
|
|
438
439
|
modeManager,
|
|
439
440
|
fileUndoManager,
|
|
440
441
|
integrationHelpers,
|
|
442
|
+
async rerootStores(newWorkingDir) {
|
|
443
|
+
// Step 1: Re-root MemoryStore — close existing SQLite/vector handles, reopen at new path.
|
|
444
|
+
const newMemoryDbPath = join(newWorkingDir, '.goodvibes', surfaceRoot, 'memory.sqlite');
|
|
445
|
+
await memoryStore.reroot(newMemoryDbPath);
|
|
446
|
+
// Step 2: Re-root ProjectIndex — flush old location, reset, load from new directory.
|
|
447
|
+
await projectIndex.reroot(newWorkingDir);
|
|
448
|
+
// Step 3: Subsystems that cannot be live-rerooted emit a warn log.
|
|
449
|
+
// They continue operating at the old root path until the next process restart,
|
|
450
|
+
// at which point --working-dir / daemon-settings.json points to the new path.
|
|
451
|
+
// This is acceptable because: (a) the swap endpoint is daemon-token-gated,
|
|
452
|
+
// (b) these services primarily write user-scoped state (auth, bookmarks, profiles)
|
|
453
|
+
// that is not workspace-scoped, and (c) knowledge/artifact stores resolve paths
|
|
454
|
+
// through configManager which does not hot-reload during a running session.
|
|
455
|
+
const cannotReroot = [
|
|
456
|
+
'knowledgeStore (SQLite at configManager-resolved path — restart required)',
|
|
457
|
+
'sessionManager (initialised with fixed workingDirectory)',
|
|
458
|
+
'sessionOrchestration (task-graph.json path fixed at init)',
|
|
459
|
+
'artifactStore (resolves rootDir via configManager.getControlPlaneConfigDir)',
|
|
460
|
+
'hookDispatcher (projectRoot fixed at init)',
|
|
461
|
+
'sandboxSessionRegistry (workingDirectory fixed at init)',
|
|
462
|
+
'agentOrchestrator (workingDirectory fixed at init)',
|
|
463
|
+
'wrfcController (projectRoot fixed at init)',
|
|
464
|
+
'overflowHandler (baseDir fixed at init)',
|
|
465
|
+
'replayEngine (workingDirectory fixed at init)',
|
|
466
|
+
'planManager (workingDirectory fixed at init)',
|
|
467
|
+
];
|
|
468
|
+
for (const name of cannotReroot) {
|
|
469
|
+
logger.warn('[rerootStores] subsystem requires restart to reroot', { subsystem: name, newWorkingDir });
|
|
470
|
+
}
|
|
471
|
+
},
|
|
441
472
|
};
|
|
442
473
|
}
|
|
@@ -171,6 +171,17 @@ export declare class MemoryStore {
|
|
|
171
171
|
doctor(): Promise<MemoryDoctorReport>;
|
|
172
172
|
save(): Promise<boolean>;
|
|
173
173
|
close(): void;
|
|
174
|
+
/**
|
|
175
|
+
* Re-root the store to a new SQLite database path.
|
|
176
|
+
*
|
|
177
|
+
* Closes the existing SQLite handle and vector index, then re-opens both at
|
|
178
|
+
* the new path. The caller is responsible for ensuring no writes are in-flight
|
|
179
|
+
* when this is called (WorkspaceSwapManager enforces this via the busy-session
|
|
180
|
+
* guard).
|
|
181
|
+
*
|
|
182
|
+
* @throws if the new SQLite store or vector index cannot be opened.
|
|
183
|
+
*/
|
|
184
|
+
reroot(newDbPath: string): Promise<void>;
|
|
174
185
|
private persist;
|
|
175
186
|
}
|
|
176
187
|
//# sourceMappingURL=memory-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/state/memory-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,+BAA+B,EAC/B,KAAK,2BAA2B,EACjC,MAAM,wBAAwB,CAAC;AAmBhC,MAAM,MAAM,WAAW,GACnB,UAAU,GACV,YAAY,GACZ,UAAU,GACV,SAAS,GACT,MAAM,GACN,MAAM,GACN,SAAS,GACT,cAAc,GACd,WAAW,CAAC;AAEhB,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzD,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,cAAc,CAAC;AAEhF,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEhF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,4FAA4F;IAC5F,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,+DAA+D;IAC/D,KAAK,EAAE,WAAW,CAAC;IACnB,sEAAsE;IACtE,GAAG,EAAE,WAAW,CAAC;IACjB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,mDAAmD;IACnD,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,oCAAoC;IACpC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,0FAA0F;IAC1F,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,WAAW,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,CAAC;IACtD,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,eAAe,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACvC,mDAAmD;IACnD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,iBAAiB,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,+BAA+B,CAAC;IACnD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,yBAAyB,CAA2C;IAC5E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;gBAExD,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,kBAAkB;IAY7D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,2DAA2D;IACrD,GAAG,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAmDxD,sCAAsC;IACtC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAapC,8CAA8C;IAC9C,MAAM,CAAC,MAAM,GAAE,kBAAuB,GAAG,YAAY,EAAE;IAkFvD,cAAc,CAAC,MAAM,GAAE,kBAAuB,GAAG,0BAA0B,EAAE;IA8C7E,WAAW,CAAC,KAAK,SAAK,GAAG,YAAY,EAAE;IAQvC,YAAY,CAAC,MAAM,GAAE,kBAAuB,GAAG,YAAY;IA2BrD,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoDrE,kDAAkD;IAC5C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAkCtF,kEAAkE;IAClE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,EAAE;IAwBlC,mDAAmD;IACnD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,WAAW,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,YAAY,GAAG,IAAI;IA6B3H,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,YAAY,GAAG,IAAI;IAwCjE,yCAAyC;IACzC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAgB3B,kBAAkB,IAAI,iBAAiB;IAYjC,uBAAuB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAyB3D,WAAW,IAAI,iBAAiB;IAc1B,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAQrC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9B,KAAK,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/state/memory-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -465,6 +465,28 @@ export class MemoryStore {
|
|
|
465
465
|
this.vectorIndex?.close();
|
|
466
466
|
this.ready = false;
|
|
467
467
|
}
|
|
468
|
+
/**
|
|
469
|
+
* Re-root the store to a new SQLite database path.
|
|
470
|
+
*
|
|
471
|
+
* Closes the existing SQLite handle and vector index, then re-opens both at
|
|
472
|
+
* the new path. The caller is responsible for ensuring no writes are in-flight
|
|
473
|
+
* when this is called (WorkspaceSwapManager enforces this via the busy-session
|
|
474
|
+
* guard).
|
|
475
|
+
*
|
|
476
|
+
* @throws if the new SQLite store or vector index cannot be opened.
|
|
477
|
+
*/
|
|
478
|
+
async reroot(newDbPath) {
|
|
479
|
+
// Step 1: close existing handles
|
|
480
|
+
this.sqlite.close();
|
|
481
|
+
this.vectorIndex?.close();
|
|
482
|
+
this.ready = false;
|
|
483
|
+
this.rebuildVectorIndexPromise = null;
|
|
484
|
+
// Step 2: open at new path
|
|
485
|
+
this.sqlite = new SQLiteStore(newDbPath);
|
|
486
|
+
this.vectorIndex = new SqliteVecMemoryIndex(resolveMemoryVectorDbPath(newDbPath), undefined, this.embeddingRegistry);
|
|
487
|
+
// Step 3: initialise
|
|
488
|
+
await this.init();
|
|
489
|
+
}
|
|
468
490
|
// ── Private helpers ──────────────────────────────────────────────────────────
|
|
469
491
|
persist() {
|
|
470
492
|
void this.save().catch((err) => {
|
|
@@ -16,9 +16,9 @@ export interface FileEntry {
|
|
|
16
16
|
* Disk format: v4 tree (see DiskFormat above).
|
|
17
17
|
*/
|
|
18
18
|
export declare class ProjectIndex {
|
|
19
|
-
private
|
|
20
|
-
private
|
|
21
|
-
|
|
19
|
+
private indexPath;
|
|
20
|
+
private projectRoot;
|
|
21
|
+
baseDir: string;
|
|
22
22
|
private files;
|
|
23
23
|
private flushTimer;
|
|
24
24
|
private createdAt;
|
|
@@ -52,6 +52,16 @@ export declare class ProjectIndex {
|
|
|
52
52
|
removeFile(path: string): void;
|
|
53
53
|
private normalizePath;
|
|
54
54
|
dispose(): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Re-root the project index to a new base directory.
|
|
57
|
+
*
|
|
58
|
+
* Flushes any pending writes to the old location, then resets all in-memory
|
|
59
|
+
* state and re-points the index path to the new directory. A fresh load is
|
|
60
|
+
* performed to pick up any existing index at the new location.
|
|
61
|
+
*
|
|
62
|
+
* @param newBaseDir - Absolute path to the new project root.
|
|
63
|
+
*/
|
|
64
|
+
reroot(newBaseDir: string): Promise<void>;
|
|
55
65
|
private scheduleFlush;
|
|
56
66
|
private flush;
|
|
57
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-index.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/state/project-index.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAyBD;;;;;;;GAOG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"project-index.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/state/project-index.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAyBD;;;;;;;GAOG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,MAAM;IAU3B;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC,QAAQ,IAAI,SAAS,EAAE;IAIvB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAOvC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE;IAW7C,qEAAqE;IACrE,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAUvC,cAAc,IAAI,MAAM;IAUxB;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAO/C;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAc7B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAW9B,OAAO,CAAC,aAAa;IAWf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B;;;;;;;;OAQG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB/C,OAAO,CAAC,aAAa;YAUP,KAAK;CAiCpB"}
|
|
@@ -157,6 +157,37 @@ export class ProjectIndex {
|
|
|
157
157
|
}
|
|
158
158
|
await this.forceFlush();
|
|
159
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Re-root the project index to a new base directory.
|
|
162
|
+
*
|
|
163
|
+
* Flushes any pending writes to the old location, then resets all in-memory
|
|
164
|
+
* state and re-points the index path to the new directory. A fresh load is
|
|
165
|
+
* performed to pick up any existing index at the new location.
|
|
166
|
+
*
|
|
167
|
+
* @param newBaseDir - Absolute path to the new project root.
|
|
168
|
+
*/
|
|
169
|
+
async reroot(newBaseDir) {
|
|
170
|
+
// Step 1: flush pending writes to the old location (best-effort)
|
|
171
|
+
if (this.flushTimer !== null) {
|
|
172
|
+
clearTimeout(this.flushTimer);
|
|
173
|
+
this.flushTimer = null;
|
|
174
|
+
}
|
|
175
|
+
try {
|
|
176
|
+
await this.forceFlush();
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
// Non-fatal — old location may be inaccessible after swap
|
|
180
|
+
}
|
|
181
|
+
// Step 2: reset state and re-point to new directory
|
|
182
|
+
this.projectRoot = newBaseDir;
|
|
183
|
+
this.baseDir = newBaseDir;
|
|
184
|
+
this.indexPath = join(newBaseDir, '.goodvibes', 'project-index.json');
|
|
185
|
+
this.files = new Map();
|
|
186
|
+
this.loaded = false;
|
|
187
|
+
this.createdAt = new Date().toISOString();
|
|
188
|
+
// Step 3: load existing index at new location (no-op if not present)
|
|
189
|
+
await this.load();
|
|
190
|
+
}
|
|
160
191
|
scheduleFlush() {
|
|
161
192
|
if (this.flushTimer !== null)
|
|
162
193
|
clearTimeout(this.flushTimer);
|
|
@@ -9,6 +9,29 @@ export interface StateToolOptions {
|
|
|
9
9
|
readonly hookDispatcher?: HookDispatcher;
|
|
10
10
|
readonly modeManager?: ModeManager;
|
|
11
11
|
readonly telemetryDB?: TelemetryDB;
|
|
12
|
+
/**
|
|
13
|
+
* Current working directory at session start. Exposed as the well-known
|
|
14
|
+
* read-only key `runtime.workingDir` via `mode=get`.
|
|
15
|
+
* Updated dynamically via WorkspaceSwapManager on workspace swap.
|
|
16
|
+
*/
|
|
17
|
+
readonly workingDir?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Daemon home directory (immutable after startup). Exposed as the well-known
|
|
20
|
+
* read-only key `daemon.homeDir` via `mode=get`.
|
|
21
|
+
*/
|
|
22
|
+
readonly daemonHomeDir?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Workspace swap manager. When provided, `set({values: {'runtime.workingDir': '/new/path'}})`
|
|
25
|
+
* will trigger a real workspace swap via `requestSwap()` instead of returning an error.
|
|
26
|
+
* Swap failures are surfaced as `success: false` with the error reason.
|
|
27
|
+
*/
|
|
28
|
+
readonly swapManager?: {
|
|
29
|
+
requestSwap(newDir: string): Promise<{
|
|
30
|
+
ok: boolean;
|
|
31
|
+
reason?: string;
|
|
32
|
+
code?: string;
|
|
33
|
+
}>;
|
|
34
|
+
};
|
|
12
35
|
}
|
|
13
36
|
/**
|
|
14
37
|
* Create the `state` tool bound to the given KVState and ProjectIndex.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/tools/state/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,KAAK,EAAE,IAAI,EAAkB,MAAM,sBAAsB,CAAC;AAiCjE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/tools/state/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,KAAK,EAAE,IAAI,EAAkB,MAAM,sBAAsB,CAAC;AAiCjE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE;QAAE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;YAAE,EAAE,EAAE,OAAO,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;CAClH;AAMD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,gBAAgB,GACxB,IAAI,CAsFN"}
|