@vybestack/llxprt-code-storage 0.10.0 → 0.11.0-nightly.260728.ffaa8d5d7

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.
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  export declare const LLXPRT_DIR = ".llxprt";
7
+ export declare const AGENTS_DIR = ".agents";
7
8
  export declare const PROVIDER_ACCOUNTS_FILENAME = "provider_accounts.json";
8
9
  export declare const OAUTH_FILE = "oauth_creds.json";
9
10
  /**
@@ -87,6 +88,21 @@ export declare class Storage {
87
88
  static getGlobalSettingsPath(): string;
88
89
  static getUserCommandsDir(): string;
89
90
  static getUserSkillsDir(): string;
91
+ /**
92
+ * Returns the global `.agents/` directory under the user's home directory,
93
+ * matching the cross-tool Agent Skills open standard
94
+ * (https://agentskills.io). Always resolved against `os.homedir()` so it
95
+ * never falls back to a world-writable temp directory. If the home
96
+ * directory cannot be determined, this throws rather than silently
97
+ * resolving to a relative or temp path (fail-closed for security).
98
+ */
99
+ static getGlobalAgentsDir(): string;
100
+ /**
101
+ * Returns the user-level skills directory under the cross-tool
102
+ * `.agents/skills/` standard (https://agentskills.io), enabling
103
+ * interoperability with tools like `npx skills add`.
104
+ */
105
+ static getUserAgentSkillsDir(): string;
90
106
  static getUserPoliciesDir(): string;
91
107
  static getMcpOAuthTokensPath(): string;
92
108
  static getInstallationIdPath(): string;
@@ -187,7 +203,26 @@ export declare class Storage {
187
203
  getWorkspaceSettingsPath(): string;
188
204
  getProjectCommandsDir(): string;
189
205
  getProjectSkillsDir(): string;
206
+ /**
207
+ * Returns the workspace-local `.agents/` directory, matching the cross-tool
208
+ * Agent Skills open standard (https://agentskills.io).
209
+ */
210
+ getAgentsDir(): string;
211
+ /**
212
+ * Returns the workspace-local skills directory under the cross-tool
213
+ * `.agents/skills/` standard (https://agentskills.io), enabling
214
+ * interoperability with tools like `npx skills add`.
215
+ */
216
+ getProjectAgentSkillsDir(): string;
190
217
  getProjectTempCheckpointsDir(): string;
218
+ /**
219
+ * The single source of truth for the chats directory, where session
220
+ * recordings/persistence files live (`<projectTempDir>/chats`). Every
221
+ * consumer (session recording, resume probes, session cleanup, chat
222
+ * persistence) must derive the path through this helper so the writers and
223
+ * the readers/probes can never drift apart on the location.
224
+ */
225
+ getProjectChatsDir(): string;
191
226
  getExtensionsDir(): string;
192
227
  getExtensionsConfigPath(): string;
193
228
  getHistoryFilePath(): string;
@@ -9,6 +9,7 @@ import * as crypto from 'crypto';
9
9
  import * as fs from 'fs';
10
10
  import { resolveGlobalConfigDir as resolveGlobalConfigDirShared, resolveGlobalDataDir as resolveGlobalDataDirShared, resolveGlobalCacheDir as resolveGlobalCacheDirShared, resolveGlobalLogDir as resolveGlobalLogDirShared, resolveEnvOverride, } from './path-resolver.js';
11
11
  export const LLXPRT_DIR = '.llxprt';
12
+ export const AGENTS_DIR = '.agents';
12
13
  export const PROVIDER_ACCOUNTS_FILENAME = 'provider_accounts.json';
13
14
  export const OAUTH_FILE = 'oauth_creds.json';
14
15
  const TMP_DIR_NAME = 'tmp';
@@ -129,6 +130,29 @@ export class Storage {
129
130
  static getUserSkillsDir() {
130
131
  return path.join(Storage.getGlobalConfigDir(), 'skills');
131
132
  }
133
+ /**
134
+ * Returns the global `.agents/` directory under the user's home directory,
135
+ * matching the cross-tool Agent Skills open standard
136
+ * (https://agentskills.io). Always resolved against `os.homedir()` so it
137
+ * never falls back to a world-writable temp directory. If the home
138
+ * directory cannot be determined, this throws rather than silently
139
+ * resolving to a relative or temp path (fail-closed for security).
140
+ */
141
+ static getGlobalAgentsDir() {
142
+ const homeDir = os.homedir();
143
+ if (!homeDir || !path.isAbsolute(homeDir)) {
144
+ throw new Error('Unable to resolve user home directory for .agents skills; refusing to fall back to a relative or temp path.');
145
+ }
146
+ return path.join(homeDir, AGENTS_DIR);
147
+ }
148
+ /**
149
+ * Returns the user-level skills directory under the cross-tool
150
+ * `.agents/skills/` standard (https://agentskills.io), enabling
151
+ * interoperability with tools like `npx skills add`.
152
+ */
153
+ static getUserAgentSkillsDir() {
154
+ return path.join(Storage.getGlobalAgentsDir(), 'skills');
155
+ }
132
156
  static getUserPoliciesDir() {
133
157
  return path.join(Storage.getGlobalConfigDir(), 'policies');
134
158
  }
@@ -306,9 +330,34 @@ export class Storage {
306
330
  getProjectSkillsDir() {
307
331
  return path.join(this.getLlxprtDir(), 'skills');
308
332
  }
333
+ /**
334
+ * Returns the workspace-local `.agents/` directory, matching the cross-tool
335
+ * Agent Skills open standard (https://agentskills.io).
336
+ */
337
+ getAgentsDir() {
338
+ return path.join(this.targetDir, AGENTS_DIR);
339
+ }
340
+ /**
341
+ * Returns the workspace-local skills directory under the cross-tool
342
+ * `.agents/skills/` standard (https://agentskills.io), enabling
343
+ * interoperability with tools like `npx skills add`.
344
+ */
345
+ getProjectAgentSkillsDir() {
346
+ return path.join(this.getAgentsDir(), 'skills');
347
+ }
309
348
  getProjectTempCheckpointsDir() {
310
349
  return path.join(this.getProjectTempDir(), 'checkpoints');
311
350
  }
351
+ /**
352
+ * The single source of truth for the chats directory, where session
353
+ * recordings/persistence files live (`<projectTempDir>/chats`). Every
354
+ * consumer (session recording, resume probes, session cleanup, chat
355
+ * persistence) must derive the path through this helper so the writers and
356
+ * the readers/probes can never drift apart on the location.
357
+ */
358
+ getProjectChatsDir() {
359
+ return path.join(this.getProjectTempDir(), 'chats');
360
+ }
312
361
  getExtensionsDir() {
313
362
  return path.join(this.getLlxprtDir(), 'extensions');
314
363
  }
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/config/storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EACL,sBAAsB,IAAI,4BAA4B,EACtD,oBAAoB,IAAI,0BAA0B,EAClD,qBAAqB,IAAI,2BAA2B,EACpD,mBAAmB,IAAI,yBAAyB,EAChD,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AACpC,MAAM,CAAC,MAAM,0BAA0B,GAAG,wBAAwB,CAAC;AACnE,MAAM,CAAC,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAC7C,MAAM,YAAY,GAAG,KAAK,CAAC;AAE3B;;;;;;;GAOG;AACH,SAAS,wBAAwB,CAAC,GAAuB;IACvD,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;GASG;AAEH,MAAM,OAAO,OAAO;IACD,SAAS,CAAS;IAEnC,YAAY,SAAiB;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,kBAAkB;QACvB,OAAO,4BAA4B,EAAE,CAAC;IACxC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,gBAAgB;QACrB,OAAO,0BAA0B,EAAE,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,iBAAiB;QACtB,OAAO,2BAA2B,EAAE,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,eAAe;QACpB,OAAO,yBAAyB,EAAE,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,kBAAkB;QACvB,OAAO,OAAO,CAAC,kBAAkB,EAAE,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,kBAAkB;QACvB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,uEAAuE;IAEvE,MAAM,CAAC,qBAAqB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,eAAe,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,CAAC,kBAAkB;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,gBAAgB;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,kBAAkB;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IAED,uEAAuE;IAEvE,MAAM,CAAC,qBAAqB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,uBAAuB,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,CAAC,qBAAqB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,CAAC,oBAAoB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,0BAA0B,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,CAAC,qBAAqB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,sBAAsB,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,iBAAiB;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,oBAAoB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,kBAAkB;QACvB,OAAO,OAAO,CAAC,kBAAkB,EAAE,CAAC;IACtC,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,gBAAgB;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,2DAA2D;IAE3D;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,qBAAqB;QAC1B,MAAM,SAAS,GAAG,wBAAwB,CACxC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAC3C,CAAC;QACF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,WAAW,GAAG,wBAAwB,CAC1C,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAChD,CAAC;QACF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,uDAAuD,CAAC;QACjE,CAAC;aAAM,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC;YACrC,OAAO,6CAA6C,CAAC;QACvD,CAAC;QACD,OAAO,gCAAgC,CAAC;IAC1C,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,qBAAqB;QAC1B,MAAM,SAAS,GAAG,wBAAwB,CACxC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAC3C,CAAC;QACF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,WAAW,GAAG,wBAAwB,CAC1C,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAChD,CAAC;QACF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CACd,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,EAC7C,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,oBAAoB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,0BAA0B,CAAC,KAAyB;QACzD,OAAO,wBAAwB,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;IACvD,CAAC;IAED,uEAAuE;IAEvE,MAAM,CAAC,gBAAgB;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,YAAY,CAAC,CAAC;IAC5D,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,iBAAiB;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,0BAA0B;QACxB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEO,eAAe,CAAC,QAAgB;QACtC,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAED,aAAa;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,SAAS,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,wBAAwB;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,eAAe,CAAC,CAAC;IACzD,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,4BAA4B;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,aAAa,CAAC,CAAC;IAC5D,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,uBAAuB,CAAC,CAAC;IACrE,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;CACF"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/config/storage.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export type { StorageLogger, NullStorageLogger } from './types/logger.js';
2
2
  export { NullStorageLoggerImpl } from './types/logger.js';
3
- export { Storage, LLXPRT_DIR, PROVIDER_ACCOUNTS_FILENAME, OAUTH_FILE, } from './config/storage.js';
3
+ export { Storage, LLXPRT_DIR, AGENTS_DIR, PROVIDER_ACCOUNTS_FILENAME, OAUTH_FILE, } from './config/storage.js';
4
4
  export { FileSystemService, StandardFileSystemService, } from './services/fileSystemService.js';
5
5
  export { FileDiscoveryService } from './services/fileDiscoveryService.js';
6
6
  export type { FilterFilesOptions, FilterReport, } from './services/fileDiscoveryService.js';
package/dist/src/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { NullStorageLoggerImpl } from './types/logger.js';
2
2
  // Storage paths and constants
3
- export { Storage, LLXPRT_DIR, PROVIDER_ACCOUNTS_FILENAME, OAUTH_FILE, } from './config/storage.js';
3
+ export { Storage, LLXPRT_DIR, AGENTS_DIR, PROVIDER_ACCOUNTS_FILENAME, OAUTH_FILE, } from './config/storage.js';
4
4
  // File services
5
5
  export { FileSystemService, StandardFileSystemService, } from './services/fileSystemService.js';
6
6
  export { FileDiscoveryService } from './services/fileDiscoveryService.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,8BAA8B;AAC9B,OAAO,EACL,OAAO,EACP,UAAU,EACV,0BAA0B,EAC1B,UAAU,GACX,MAAM,qBAAqB,CAAC;AAE7B,gBAAgB;AAChB,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAM1E,kDAAkD;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAO7D,iBAAiB;AACjB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,gCAAgC,CAAC;AAMxC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,GAChB,MAAM,wCAAwC,CAAC;AAGhD,0DAA0D;AAC1D,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAO1C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,8BAA8B;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAOhE,2BAA2B;AAC3B,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,0CAA0C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,8BAA8B;AAC9B,OAAO,EACL,OAAO,EACP,UAAU,EACV,UAAU,EACV,0BAA0B,EAC1B,UAAU,GACX,MAAM,qBAAqB,CAAC;AAE7B,gBAAgB;AAChB,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAM1E,kDAAkD;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAO7D,iBAAiB;AACjB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,gCAAgC,CAAC;AAMxC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,GAChB,MAAM,wCAAwC,CAAC;AAGhD,0DAA0D;AAC1D,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAO1C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,8BAA8B;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAOhE,2BAA2B;AAC3B,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,0CAA0C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vybestack/llxprt-code-storage",
3
- "version": "0.10.0",
3
+ "version": "0.11.0-nightly.260728.ffaa8d5d7",
4
4
  "description": "LLxprt Code Storage",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -17,6 +17,7 @@ import {
17
17
  } from './path-resolver.js';
18
18
 
19
19
  export const LLXPRT_DIR = '.llxprt';
20
+ export const AGENTS_DIR = '.agents';
20
21
  export const PROVIDER_ACCOUNTS_FILENAME = 'provider_accounts.json';
21
22
  export const OAUTH_FILE = 'oauth_creds.json';
22
23
  const TMP_DIR_NAME = 'tmp';
@@ -152,6 +153,33 @@ export class Storage {
152
153
  return path.join(Storage.getGlobalConfigDir(), 'skills');
153
154
  }
154
155
 
156
+ /**
157
+ * Returns the global `.agents/` directory under the user's home directory,
158
+ * matching the cross-tool Agent Skills open standard
159
+ * (https://agentskills.io). Always resolved against `os.homedir()` so it
160
+ * never falls back to a world-writable temp directory. If the home
161
+ * directory cannot be determined, this throws rather than silently
162
+ * resolving to a relative or temp path (fail-closed for security).
163
+ */
164
+ static getGlobalAgentsDir(): string {
165
+ const homeDir = os.homedir();
166
+ if (!homeDir || !path.isAbsolute(homeDir)) {
167
+ throw new Error(
168
+ 'Unable to resolve user home directory for .agents skills; refusing to fall back to a relative or temp path.',
169
+ );
170
+ }
171
+ return path.join(homeDir, AGENTS_DIR);
172
+ }
173
+
174
+ /**
175
+ * Returns the user-level skills directory under the cross-tool
176
+ * `.agents/skills/` standard (https://agentskills.io), enabling
177
+ * interoperability with tools like `npx skills add`.
178
+ */
179
+ static getUserAgentSkillsDir(): string {
180
+ return path.join(Storage.getGlobalAgentsDir(), 'skills');
181
+ }
182
+
155
183
  static getUserPoliciesDir(): string {
156
184
  return path.join(Storage.getGlobalConfigDir(), 'policies');
157
185
  }
@@ -366,10 +394,38 @@ export class Storage {
366
394
  return path.join(this.getLlxprtDir(), 'skills');
367
395
  }
368
396
 
397
+ /**
398
+ * Returns the workspace-local `.agents/` directory, matching the cross-tool
399
+ * Agent Skills open standard (https://agentskills.io).
400
+ */
401
+ getAgentsDir(): string {
402
+ return path.join(this.targetDir, AGENTS_DIR);
403
+ }
404
+
405
+ /**
406
+ * Returns the workspace-local skills directory under the cross-tool
407
+ * `.agents/skills/` standard (https://agentskills.io), enabling
408
+ * interoperability with tools like `npx skills add`.
409
+ */
410
+ getProjectAgentSkillsDir(): string {
411
+ return path.join(this.getAgentsDir(), 'skills');
412
+ }
413
+
369
414
  getProjectTempCheckpointsDir(): string {
370
415
  return path.join(this.getProjectTempDir(), 'checkpoints');
371
416
  }
372
417
 
418
+ /**
419
+ * The single source of truth for the chats directory, where session
420
+ * recordings/persistence files live (`<projectTempDir>/chats`). Every
421
+ * consumer (session recording, resume probes, session cleanup, chat
422
+ * persistence) must derive the path through this helper so the writers and
423
+ * the readers/probes can never drift apart on the location.
424
+ */
425
+ getProjectChatsDir(): string {
426
+ return path.join(this.getProjectTempDir(), 'chats');
427
+ }
428
+
373
429
  getExtensionsDir(): string {
374
430
  return path.join(this.getLlxprtDir(), 'extensions');
375
431
  }
package/src/index.ts CHANGED
@@ -5,6 +5,7 @@ export { NullStorageLoggerImpl } from './types/logger.js';
5
5
  export {
6
6
  Storage,
7
7
  LLXPRT_DIR,
8
+ AGENTS_DIR,
8
9
  PROVIDER_ACCOUNTS_FILENAME,
9
10
  OAUTH_FILE,
10
11
  } from './config/storage.js';