@pellux/goodvibes-sdk 0.18.27 → 0.18.28
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.
|
@@ -24,9 +24,9 @@ export type SessionPersistencePaths = {
|
|
|
24
24
|
readonly workingDirectory: string;
|
|
25
25
|
readonly homeDirectory: string;
|
|
26
26
|
};
|
|
27
|
-
export declare function getUserSessionsDir(workingDirectory: string): string;
|
|
28
|
-
export declare function getLastSessionPointerPath(workingDirectory: string): string;
|
|
29
|
-
export declare function getRecoveryFilePath(homeDirectory: string): string;
|
|
27
|
+
export declare function getUserSessionsDir(workingDirectory: string, surfaceRoot?: string): string;
|
|
28
|
+
export declare function getLastSessionPointerPath(workingDirectory: string, surfaceRoot?: string): string;
|
|
29
|
+
export declare function getRecoveryFilePath(homeDirectory: string, surfaceRoot?: string): string;
|
|
30
30
|
export declare function generateUserSessionId(): string;
|
|
31
31
|
export declare function saveSession(sessionId: string, data: SessionSnapshot, model: string, provider: string, title?: string, options?: SessionPersistenceOptions): void;
|
|
32
32
|
export declare function persistConversation(sessionId: string, data: SessionSnapshot, model: string, provider: string, title?: string, options?: SessionPersistenceOptions): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-persistence.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/session-persistence.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAoB,MAAM,wBAAwB,CAAC;AAE1E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAIvE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,aAAa,CAAC,EAAE,2BAA2B,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,2BAA2B,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,CAAC;AAgCF,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"session-persistence.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/session-persistence.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAoB,MAAM,wBAAwB,CAAC;AAE1E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAIvE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,aAAa,CAAC,EAAE,2BAA2B,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,2BAA2B,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,CAAC;AAgCF,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEzF;AAED,wBAAgB,yBAAyB,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhG;AAED,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvF;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,WAAW,CACzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAK,EACV,OAAO,CAAC,EAAE,yBAAyB,GAClC,IAAI,CAeN;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAK,EACV,OAAO,CAAC,EAAE,yBAAyB,GAClC,IAAI,CAGN;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAapG;AAED,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,MAAM,GAAG,IAAI,CAWzF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,eAAe,GAAG,IAAI,CAYhG;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,MAAM,EACjB,KAAK,SAAK,EACV,OAAO,CAAC,EAAE,yBAAyB,GAClC,IAAI,CA2BN;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAO5E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,gBAAgB,GAAG,IAAI,CAmC9F;AAED,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,eAAe,GAAG,IAAI,CA6CpG"}
|
|
@@ -31,14 +31,14 @@ function resolveSessionManager(options) {
|
|
|
31
31
|
}
|
|
32
32
|
return new SessionManager(requireWorkingDirectory(options), { surfaceRoot: options?.surfaceRoot });
|
|
33
33
|
}
|
|
34
|
-
export function getUserSessionsDir(workingDirectory) {
|
|
35
|
-
return resolveScopedDirectory(workingDirectory,
|
|
34
|
+
export function getUserSessionsDir(workingDirectory, surfaceRoot) {
|
|
35
|
+
return resolveScopedDirectory(workingDirectory, surfaceRoot, 'sessions');
|
|
36
36
|
}
|
|
37
|
-
export function getLastSessionPointerPath(workingDirectory) {
|
|
38
|
-
return join(getUserSessionsDir(workingDirectory), 'last-session.json');
|
|
37
|
+
export function getLastSessionPointerPath(workingDirectory, surfaceRoot) {
|
|
38
|
+
return join(getUserSessionsDir(workingDirectory, surfaceRoot), 'last-session.json');
|
|
39
39
|
}
|
|
40
|
-
export function getRecoveryFilePath(homeDirectory) {
|
|
41
|
-
return resolveScopedDirectory(homeDirectory,
|
|
40
|
+
export function getRecoveryFilePath(homeDirectory, surfaceRoot) {
|
|
41
|
+
return resolveScopedDirectory(homeDirectory, surfaceRoot, 'recovery.jsonl');
|
|
42
42
|
}
|
|
43
43
|
export function generateUserSessionId() {
|
|
44
44
|
return randomBytes(4).toString('hex');
|
|
@@ -67,7 +67,7 @@ export function persistConversation(sessionId, data, model, provider, title = ''
|
|
|
67
67
|
export function writeLastSessionPointer(sessionId, options) {
|
|
68
68
|
try {
|
|
69
69
|
const workingDirectory = requireWorkingDirectory(options);
|
|
70
|
-
const pointerPath = getLastSessionPointerPath(workingDirectory);
|
|
70
|
+
const pointerPath = getLastSessionPointerPath(workingDirectory, options?.surfaceRoot);
|
|
71
71
|
mkdirSync(dirname(pointerPath), { recursive: true });
|
|
72
72
|
writeFileSync(pointerPath, JSON.stringify({ sessionId, timestamp: new Date().toISOString() }) + '\n', 'utf-8');
|
|
73
73
|
}
|
|
@@ -78,7 +78,7 @@ export function writeLastSessionPointer(sessionId, options) {
|
|
|
78
78
|
export function readLastSessionPointer(options) {
|
|
79
79
|
try {
|
|
80
80
|
const workingDirectory = requireWorkingDirectory(options);
|
|
81
|
-
const pointerPath = getLastSessionPointerPath(workingDirectory);
|
|
81
|
+
const pointerPath = getLastSessionPointerPath(workingDirectory, options?.surfaceRoot);
|
|
82
82
|
if (!existsSync(pointerPath))
|
|
83
83
|
return null;
|
|
84
84
|
const data = JSON.parse(readFileSync(pointerPath, 'utf-8'));
|
|
@@ -109,7 +109,7 @@ export function writeRecoveryFile(snapshot, sessionId, title = '', options) {
|
|
|
109
109
|
if (!snapshot.messages.length)
|
|
110
110
|
return;
|
|
111
111
|
const homeDirectory = requireHomeDirectory(options);
|
|
112
|
-
const recoveryFile = getRecoveryFilePath(homeDirectory);
|
|
112
|
+
const recoveryFile = getRecoveryFilePath(homeDirectory, options?.surfaceRoot);
|
|
113
113
|
const lines = [];
|
|
114
114
|
lines.push(JSON.stringify({ type: 'meta', sessionId, title, timestamp: Date.now() }));
|
|
115
115
|
if (snapshot.titleSource || snapshot.returnContext) {
|
|
@@ -137,7 +137,7 @@ export function writeRecoveryFile(snapshot, sessionId, title = '', options) {
|
|
|
137
137
|
export function deleteRecoveryFile(options) {
|
|
138
138
|
try {
|
|
139
139
|
const homeDirectory = requireHomeDirectory(options);
|
|
140
|
-
unlinkSync(getRecoveryFilePath(homeDirectory));
|
|
140
|
+
unlinkSync(getRecoveryFilePath(homeDirectory, options?.surfaceRoot));
|
|
141
141
|
}
|
|
142
142
|
catch {
|
|
143
143
|
// missing file is fine
|
|
@@ -149,11 +149,11 @@ export function checkRecoveryFile(options) {
|
|
|
149
149
|
workingDirectory: requireWorkingDirectory(options),
|
|
150
150
|
homeDirectory: requireHomeDirectory(options),
|
|
151
151
|
});
|
|
152
|
-
const recoveryFile = getRecoveryFilePath(homeDirectory);
|
|
152
|
+
const recoveryFile = getRecoveryFilePath(homeDirectory, options?.surfaceRoot);
|
|
153
153
|
if (!existsSync(recoveryFile))
|
|
154
154
|
return null;
|
|
155
155
|
const recoveryMtime = statSync(recoveryFile).mtimeMs;
|
|
156
|
-
const pointerPath = getLastSessionPointerPath(workingDirectory);
|
|
156
|
+
const pointerPath = getLastSessionPointerPath(workingDirectory, options?.surfaceRoot);
|
|
157
157
|
if (existsSync(pointerPath)) {
|
|
158
158
|
const lastCleanMtime = statSync(pointerPath).mtimeMs;
|
|
159
159
|
if (recoveryMtime <= lastCleanMtime)
|
|
@@ -180,7 +180,7 @@ export function checkRecoveryFile(options) {
|
|
|
180
180
|
export function loadRecoveryConversation(options) {
|
|
181
181
|
try {
|
|
182
182
|
const homeDirectory = requireHomeDirectory(options);
|
|
183
|
-
const recoveryFile = getRecoveryFilePath(homeDirectory);
|
|
183
|
+
const recoveryFile = getRecoveryFilePath(homeDirectory, options?.surfaceRoot);
|
|
184
184
|
const raw = readFileSync(recoveryFile, 'utf-8');
|
|
185
185
|
const lines = raw.split('\n').filter(Boolean);
|
|
186
186
|
if (lines.length < 2)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
let version = '0.18.
|
|
3
|
+
let version = '0.18.28';
|
|
4
4
|
try {
|
|
5
5
|
const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', '..', 'package.json'), 'utf-8'));
|
|
6
6
|
version = pkg.version ?? version;
|
package/package.json
CHANGED