@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,CAEnE;AAED,wBAAgB,yBAAyB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEjE;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"}
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, undefined, 'sessions');
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, undefined, 'recovery.jsonl');
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.27';
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pellux/goodvibes-sdk",
3
- "version": "0.18.27",
3
+ "version": "0.18.28",
4
4
  "description": "Umbrella GoodVibes SDK with operator, peer, daemon, transport, and runtime-specific integration layers.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",