@dollhousemcp/mcp-server 2.0.39 → 2.0.41
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/CHANGELOG.md +16 -0
- package/dist/cache/CollectionCache.d.ts +1 -0
- package/dist/cache/CollectionCache.d.ts.map +1 -1
- package/dist/cache/CollectionCache.js +7 -16
- package/dist/cache/CollectionIndexCache.d.ts +1 -1
- package/dist/cache/CollectionIndexCache.d.ts.map +1 -1
- package/dist/cache/CollectionIndexCache.js +3 -2
- package/dist/cache/cachePaths.d.ts +7 -0
- package/dist/cache/cachePaths.d.ts.map +1 -0
- package/dist/cache/cachePaths.js +15 -0
- package/dist/di/Container.d.ts.map +1 -1
- package/dist/di/Container.js +11 -8
- package/dist/elements/agents/AgentManager.d.ts +146 -7
- package/dist/elements/agents/AgentManager.d.ts.map +1 -1
- package/dist/elements/agents/AgentManager.js +329 -51
- package/dist/elements/base/BaseElementManager.d.ts +18 -2
- package/dist/elements/base/BaseElementManager.d.ts.map +1 -1
- package/dist/elements/base/BaseElementManager.js +39 -20
- package/dist/elements/memories/Memory.d.ts +7 -0
- package/dist/elements/memories/Memory.d.ts.map +1 -1
- package/dist/elements/memories/Memory.js +68 -34
- package/dist/elements/memories/MemoryManager.d.ts.map +1 -1
- package/dist/elements/memories/MemoryManager.js +10 -2
- package/dist/elements/memories/memoryYamlValidation.d.ts +6 -0
- package/dist/elements/memories/memoryYamlValidation.d.ts.map +1 -0
- package/dist/elements/memories/memoryYamlValidation.js +25 -0
- package/dist/generated/version.d.ts +2 -2
- package/dist/generated/version.js +3 -3
- package/dist/handlers/CollectionHandler.d.ts.map +1 -1
- package/dist/handlers/CollectionHandler.js +2 -3
- package/dist/handlers/ElementCRUDHandler.d.ts +36 -8
- package/dist/handlers/ElementCRUDHandler.d.ts.map +1 -1
- package/dist/handlers/ElementCRUDHandler.js +227 -96
- package/dist/handlers/mcp-aql/MCPAQLHandler.d.ts +1 -1
- package/dist/handlers/mcp-aql/MCPAQLHandler.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/MCPAQLHandler.js +137 -73
- package/dist/handlers/mcp-aql/OperationSchema.js +4 -4
- package/dist/handlers/mcp-aql/policies/ElementPolicies.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/policies/ElementPolicies.js +7 -5
- package/dist/handlers/strategies/AgentActivationStrategy.d.ts.map +1 -1
- package/dist/handlers/strategies/AgentActivationStrategy.js +5 -2
- package/dist/handlers/strategies/ElementActivationStrategy.d.ts +2 -0
- package/dist/handlers/strategies/ElementActivationStrategy.d.ts.map +1 -1
- package/dist/handlers/strategies/ElementActivationStrategy.js +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/portfolio/PortfolioManager.d.ts +5 -1
- package/dist/portfolio/PortfolioManager.d.ts.map +1 -1
- package/dist/portfolio/PortfolioManager.js +9 -3
- package/dist/security/contentValidator.d.ts +9 -1
- package/dist/security/contentValidator.d.ts.map +1 -1
- package/dist/security/contentValidator.js +24 -3
- package/dist/security/secureYamlParser.d.ts +3 -1
- package/dist/security/secureYamlParser.d.ts.map +1 -1
- package/dist/security/secureYamlParser.js +3 -3
- package/dist/security/securityMonitor.d.ts +1 -1
- package/dist/security/securityMonitor.d.ts.map +1 -1
- package/dist/security/securityMonitor.js +1 -1
- package/dist/security/validation/BackgroundValidator.d.ts.map +1 -1
- package/dist/security/validation/BackgroundValidator.js +6 -4
- package/dist/services/ActivationStore.d.ts +5 -4
- package/dist/services/ActivationStore.d.ts.map +1 -1
- package/dist/services/ActivationStore.js +35 -9
- package/dist/services/PolicyExportService.d.ts +8 -2
- package/dist/services/PolicyExportService.d.ts.map +1 -1
- package/dist/services/PolicyExportService.js +37 -6
- package/dist/storage/ElementStorageLayer.d.ts +3 -3
- package/dist/storage/ElementStorageLayer.d.ts.map +1 -1
- package/dist/storage/ElementStorageLayer.js +33 -7
- package/dist/storage/IStorageLayer.d.ts +8 -1
- package/dist/storage/IStorageLayer.d.ts.map +1 -1
- package/dist/storage/IStorageLayer.js +1 -1
- package/dist/storage/MemoryMetadataExtractor.d.ts.map +1 -1
- package/dist/storage/MemoryMetadataExtractor.js +7 -2
- package/dist/storage/MemoryStorageLayer.d.ts +4 -3
- package/dist/storage/MemoryStorageLayer.d.ts.map +1 -1
- package/dist/storage/MemoryStorageLayer.js +43 -13
- package/dist/storage/types.d.ts +7 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/types.js +17 -2
- package/dist/utils/filesystem.d.ts +6 -0
- package/dist/utils/filesystem.d.ts.map +1 -1
- package/dist/utils/filesystem.js +22 -1
- package/oauth-helper.mjs +19 -26
- package/package.json +9 -9
- package/server.json +2 -2
package/dist/storage/types.d.ts
CHANGED
|
@@ -62,4 +62,11 @@ export interface ManifestDiffResult {
|
|
|
62
62
|
/** Files whose mtime matches the manifest (no change) */
|
|
63
63
|
unchanged: string[];
|
|
64
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Merge sequential scan results without losing an earlier invalidation when a
|
|
67
|
+
* trailing scan observes the same path as unchanged. Changed categories are
|
|
68
|
+
* intentionally retained as unions; consumers that evict caches must see any
|
|
69
|
+
* modification/removal observed during the freshness window.
|
|
70
|
+
*/
|
|
71
|
+
export declare function mergeManifestDiffResults(first: ManifestDiffResult, second: ManifestDiffResult): ManifestDiffResult;
|
|
65
72
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAGlB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yDAAyD;IACzD,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAGlB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yDAAyD;IACzD,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,kBAAkB,GACzB,kBAAkB,CAUpB"}
|
package/dist/storage/types.js
CHANGED
|
@@ -4,5 +4,20 @@
|
|
|
4
4
|
* Phase 1: Provides lightweight metadata indexing to avoid
|
|
5
5
|
* full file reads during list() operations.
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Merge sequential scan results without losing an earlier invalidation when a
|
|
9
|
+
* trailing scan observes the same path as unchanged. Changed categories are
|
|
10
|
+
* intentionally retained as unions; consumers that evict caches must see any
|
|
11
|
+
* modification/removal observed during the freshness window.
|
|
12
|
+
*/
|
|
13
|
+
export function mergeManifestDiffResults(first, second) {
|
|
14
|
+
const unique = (values) => Array.from(new Set(values));
|
|
15
|
+
const added = unique([...first.added, ...second.added]);
|
|
16
|
+
const modified = unique([...first.modified, ...second.modified]);
|
|
17
|
+
const removed = unique([...first.removed, ...second.removed]);
|
|
18
|
+
const changed = new Set([...added, ...modified, ...removed]);
|
|
19
|
+
const unchanged = unique([...first.unchanged, ...second.unchanged])
|
|
20
|
+
.filter((filePath) => !changed.has(filePath));
|
|
21
|
+
return { added, modified, removed, unchanged };
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmFnZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQWlFSDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsS0FBeUIsRUFDekIsTUFBMEI7SUFFMUIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFnQixFQUFZLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDM0UsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDakUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDOUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxHQUFHLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDN0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2hFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFaEQsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN0b3JhZ2UgbGF5ZXIgdHlwZXMgZm9yIGNhY2hlLWF3YXJlIGVsZW1lbnQgbGlzdGluZy5cbiAqXG4gKiBQaGFzZSAxOiBQcm92aWRlcyBsaWdodHdlaWdodCBtZXRhZGF0YSBpbmRleGluZyB0byBhdm9pZFxuICogZnVsbCBmaWxlIHJlYWRzIGR1cmluZyBsaXN0KCkgb3BlcmF0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEZpbGVzeXN0ZW0gbWV0YWRhdGEgZm9yIGEgc2luZ2xlIHN0b3JhZ2UgaXRlbS5cbiAqIFJldHVybmVkIGJ5IHN0YXQgb3BlcmF0aW9ucyBvbiB0aGUgc3RvcmFnZSBiYWNrZW5kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VJdGVtTWV0YWRhdGEge1xuICAvKiogUGF0aCByZWxhdGl2ZSB0byB0aGUgZWxlbWVudCBkaXJlY3RvcnkgKi9cbiAgcmVsYXRpdmVQYXRoOiBzdHJpbmc7XG4gIC8qKiBGdWxseSByZXNvbHZlZCBhYnNvbHV0ZSBwYXRoICovXG4gIGFic29sdXRlUGF0aDogc3RyaW5nO1xuICAvKiogTGFzdCBtb2RpZmljYXRpb24gdGltZSBpbiBtaWxsaXNlY29uZHMgc2luY2UgZXBvY2ggKi9cbiAgbXRpbWVNczogbnVtYmVyO1xuICAvKiogRmlsZSBzaXplIGluIGJ5dGVzICovXG4gIHNpemVCeXRlczogbnVtYmVyO1xufVxuXG4vKipcbiAqIEluZGV4ZWQgbWV0YWRhdGEgZm9yIGEgc2luZ2xlIGVsZW1lbnQuXG4gKiBFeHRyYWN0ZWQgZnJvbSBmcm9udG1hdHRlciB3aXRob3V0IGxvYWRpbmcgZnVsbCBlbGVtZW50IGNvbnRlbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWxlbWVudEluZGV4RW50cnkge1xuICAvKiogUmVsYXRpdmUgcGF0aCB3aXRoaW4gdGhlIGVsZW1lbnQgZGlyZWN0b3J5ICovXG4gIGZpbGVQYXRoOiBzdHJpbmc7XG4gIC8qKiBFbGVtZW50IG5hbWUgZnJvbSBmcm9udG1hdHRlciAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBFbGVtZW50IGRlc2NyaXB0aW9uIGZyb20gZnJvbnRtYXR0ZXIgKi9cbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgLyoqIFNlbWFudGljIHZlcnNpb24gc3RyaW5nICovXG4gIHZlcnNpb246IHN0cmluZztcbiAgLyoqIEF1dGhvciBuYW1lICovXG4gIGF1dGhvcjogc3RyaW5nO1xuICAvKiogQ2xhc3NpZmljYXRpb24gdGFncyAqL1xuICB0YWdzOiBzdHJpbmdbXTtcbiAgLyoqIExhc3QgbW9kaWZpY2F0aW9uIHRpbWUgaW4gbWlsbGlzZWNvbmRzIChtaXJyb3JzIFN0b3JhZ2VJdGVtTWV0YWRhdGEubXRpbWVNcykgKi9cbiAgbXRpbWVNczogbnVtYmVyO1xuICAvKiogRmlsZSBzaXplIGluIGJ5dGVzIChtaXJyb3JzIFN0b3JhZ2VJdGVtTWV0YWRhdGEuc2l6ZUJ5dGVzKSAqL1xuICBzaXplQnl0ZXM6IG51bWJlcjtcblxuICAvLyBQaGFzZSAyOiBtZW1vcnktc3BlY2lmaWMgb3B0aW9uYWwgZmllbGRzXG4gIC8qKiBXaGV0aGVyIHRoaXMgbWVtb3J5IHNob3VsZCBiZSBhdXRvLWxvYWRlZCBvbiBzZXJ2ZXIgc3RhcnR1cCAqL1xuICBhdXRvTG9hZD86IGJvb2xlYW47XG4gIC8qKiBMb2FkIHByaW9yaXR5IChsb3dlciA9IGhpZ2hlciBwcmlvcml0eSkgKi9cbiAgcHJpb3JpdHk/OiBudW1iZXI7XG4gIC8qKiBNZW1vcnkgdHlwZSBjbGFzc2lmaWNhdGlvbiAoc3lzdGVtLCBhZGFwdGVyLCB1c2VyKSAqL1xuICBtZW1vcnlUeXBlPzogc3RyaW5nO1xuICAvKiogTnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIG1lbW9yeSAqL1xuICB0b3RhbEVudHJpZXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIGRpZmZpbmcgY3VycmVudCBmaWxlc3lzdGVtIHN0YXRlIGFnYWluc3QgYSBzdG9yZWQgbWFuaWZlc3QuXG4gKiBFYWNoIGFycmF5IGNvbnRhaW5zIHJlbGF0aXZlIHBhdGhzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hbmlmZXN0RGlmZlJlc3VsdCB7XG4gIC8qKiBGaWxlcyBwcmVzZW50IG9uIGRpc2sgYnV0IG5vdCBpbiBtYW5pZmVzdCAobmV3IGZpbGVzKSAqL1xuICBhZGRlZDogc3RyaW5nW107XG4gIC8qKiBGaWxlcyB3aG9zZSBtdGltZSBjaGFuZ2VkIHNpbmNlIGxhc3QgbWFuaWZlc3Qgc25hcHNob3QgKi9cbiAgbW9kaWZpZWQ6IHN0cmluZ1tdO1xuICAvKiogRmlsZXMgaW4gbWFuaWZlc3QgYnV0IG5vIGxvbmdlciBvbiBkaXNrICovXG4gIHJlbW92ZWQ6IHN0cmluZ1tdO1xuICAvKiogRmlsZXMgd2hvc2UgbXRpbWUgbWF0Y2hlcyB0aGUgbWFuaWZlc3QgKG5vIGNoYW5nZSkgKi9cbiAgdW5jaGFuZ2VkOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBNZXJnZSBzZXF1ZW50aWFsIHNjYW4gcmVzdWx0cyB3aXRob3V0IGxvc2luZyBhbiBlYXJsaWVyIGludmFsaWRhdGlvbiB3aGVuIGFcbiAqIHRyYWlsaW5nIHNjYW4gb2JzZXJ2ZXMgdGhlIHNhbWUgcGF0aCBhcyB1bmNoYW5nZWQuIENoYW5nZWQgY2F0ZWdvcmllcyBhcmVcbiAqIGludGVudGlvbmFsbHkgcmV0YWluZWQgYXMgdW5pb25zOyBjb25zdW1lcnMgdGhhdCBldmljdCBjYWNoZXMgbXVzdCBzZWUgYW55XG4gKiBtb2RpZmljYXRpb24vcmVtb3ZhbCBvYnNlcnZlZCBkdXJpbmcgdGhlIGZyZXNobmVzcyB3aW5kb3cuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZU1hbmlmZXN0RGlmZlJlc3VsdHMoXG4gIGZpcnN0OiBNYW5pZmVzdERpZmZSZXN1bHQsXG4gIHNlY29uZDogTWFuaWZlc3REaWZmUmVzdWx0LFxuKTogTWFuaWZlc3REaWZmUmVzdWx0IHtcbiAgY29uc3QgdW5pcXVlID0gKHZhbHVlczogc3RyaW5nW10pOiBzdHJpbmdbXSA9PiBBcnJheS5mcm9tKG5ldyBTZXQodmFsdWVzKSk7XG4gIGNvbnN0IGFkZGVkID0gdW5pcXVlKFsuLi5maXJzdC5hZGRlZCwgLi4uc2Vjb25kLmFkZGVkXSk7XG4gIGNvbnN0IG1vZGlmaWVkID0gdW5pcXVlKFsuLi5maXJzdC5tb2RpZmllZCwgLi4uc2Vjb25kLm1vZGlmaWVkXSk7XG4gIGNvbnN0IHJlbW92ZWQgPSB1bmlxdWUoWy4uLmZpcnN0LnJlbW92ZWQsIC4uLnNlY29uZC5yZW1vdmVkXSk7XG4gIGNvbnN0IGNoYW5nZWQgPSBuZXcgU2V0KFsuLi5hZGRlZCwgLi4ubW9kaWZpZWQsIC4uLnJlbW92ZWRdKTtcbiAgY29uc3QgdW5jaGFuZ2VkID0gdW5pcXVlKFsuLi5maXJzdC51bmNoYW5nZWQsIC4uLnNlY29uZC51bmNoYW5nZWRdKVxuICAgIC5maWx0ZXIoKGZpbGVQYXRoKSA9PiAhY2hhbmdlZC5oYXMoZmlsZVBhdGgpKTtcblxuICByZXR1cm4geyBhZGRlZCwgbW9kaWZpZWQsIHJlbW92ZWQsIHVuY2hhbmdlZCB9O1xufVxuIl19
|
|
@@ -5,6 +5,12 @@
|
|
|
5
5
|
* Generate an anonymous ID for users without identity
|
|
6
6
|
*/
|
|
7
7
|
export declare function generateAnonymousId(): string;
|
|
8
|
+
/**
|
|
9
|
+
* Normalize an element name to the canonical filename identity used by managers.
|
|
10
|
+
*/
|
|
11
|
+
export declare function normalizeElementFilename(name: string): string;
|
|
12
|
+
/** Canonical non-empty identity used for element files and related runtime maps. */
|
|
13
|
+
export declare function normalizeElementStorageIdentity(name: string): string;
|
|
8
14
|
export declare function generateUniqueId(personaName: string, author?: string): string;
|
|
9
15
|
/**
|
|
10
16
|
* Convert text to URL-safe slug
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/utils/filesystem.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmBH;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAK5C;AAQD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAsB7E;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0B5C;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQpE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGnE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAInE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxF"}
|
|
1
|
+
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/utils/filesystem.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmBH;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAK5C;AAQD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAe7D;AAED,oFAAoF;AACpF,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAsB7E;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0B5C;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQpE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGnE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAInE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxF"}
|
package/dist/utils/filesystem.js
CHANGED
|
@@ -29,6 +29,27 @@ export function generateAnonymousId() {
|
|
|
29
29
|
*/
|
|
30
30
|
// Pre-compiled regex for better performance (avoids creating regex on each character)
|
|
31
31
|
const ALPHANUMERIC_REGEX = /[a-z0-9]/;
|
|
32
|
+
/**
|
|
33
|
+
* Normalize an element name to the canonical filename identity used by managers.
|
|
34
|
+
*/
|
|
35
|
+
export function normalizeElementFilename(name) {
|
|
36
|
+
if (!name || name.trim().length === 0) {
|
|
37
|
+
return 'unnamed';
|
|
38
|
+
}
|
|
39
|
+
const normalized = name
|
|
40
|
+
.replace(/([a-z])([A-Z])/g, '$1-$2')
|
|
41
|
+
.replace(/[\s_]+/g, '-')
|
|
42
|
+
.toLowerCase()
|
|
43
|
+
.replace(/[^a-z0-9-]/g, '-')
|
|
44
|
+
.replace(/-+/g, '-');
|
|
45
|
+
const start = normalized.startsWith('-') ? 1 : 0;
|
|
46
|
+
const end = normalized.endsWith('-') ? -1 : undefined;
|
|
47
|
+
return normalized.slice(start, end);
|
|
48
|
+
}
|
|
49
|
+
/** Canonical non-empty identity used for element files and related runtime maps. */
|
|
50
|
+
export function normalizeElementStorageIdentity(name) {
|
|
51
|
+
return normalizeElementFilename(name) || 'unnamed';
|
|
52
|
+
}
|
|
32
53
|
export function generateUniqueId(personaName, author) {
|
|
33
54
|
const now = new Date();
|
|
34
55
|
const dateStr = now.toISOString().slice(0, 10).replaceAll('-', '');
|
|
@@ -114,4 +135,4 @@ export async function createBackup(sourcePath, backupPath) {
|
|
|
114
135
|
// Copy directory recursively
|
|
115
136
|
await fs.cp(sourcePath, backupPath, { recursive: true });
|
|
116
137
|
}
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXN5c3RlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9maWxlc3lzdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBMEIscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFakUsMERBQTBEO0FBQzFELElBQUkscUJBQXFCLEdBQWtDLElBQUksQ0FBQztBQUVoRSxTQUFTLHdCQUF3QjtJQUMvQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMzQixxQkFBcUIsR0FBRyxJQUFJLHFCQUFxQixDQUFDLElBQUksZUFBZSxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBQ0QsT0FBTyxxQkFBcUIsQ0FBQztBQUMvQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM1RSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbkUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FB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QyxJQUFJLENBQUM7QUFDcEIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxZQUFZLENBQUMsVUFBa0IsRUFBRSxVQUFrQjtJQUN2RSxpQ0FBaUM7SUFDakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxNQUFNLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVqQyw2QkFBNkI7SUFDN0IsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUMzRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGaWxlc3lzdGVtIGFuZCBzdHJpbmcgbWFuaXB1bGF0aW9uIHV0aWxpdGllc1xuICovXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzL3Byb21pc2VzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBBREpFQ1RJVkVTLCBBTklNQUxTIH0gZnJvbSAnLi4vY29uZmlnL2NvbnN0YW50cy5qcyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuL2xvZ2dlci5qcyc7XG5pbXBvcnQgeyBJRmlsZU9wZXJhdGlvbnNTZXJ2aWNlLCBGaWxlT3BlcmF0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9GaWxlT3BlcmF0aW9uc1NlcnZpY2UuanMnO1xuaW1wb3J0IHsgRmlsZUxvY2tNYW5hZ2VyIH0gZnJvbSAnLi4vc2VjdXJpdHkvZmlsZUxvY2tNYW5hZ2VyLmpzJztcblxuLy8gU2luZ2xldG9uIGZpbGUgb3BlcmF0aW9ucyBzZXJ2aWNlIGZvciB1dGlsaXR5IGZ1bmN0aW9uc1xubGV0IGZpbGVPcGVyYXRpb25zU2VydmljZTogSUZpbGVPcGVyYXRpb25zU2VydmljZSB8IG51bGwgPSBudWxsO1xuXG5mdW5jdGlvbiBnZXRGaWxlT3BlcmF0aW9uc1NlcnZpY2UoKTogSUZpbGVPcGVyYXRpb25zU2VydmljZSB7XG4gIGlmICghZmlsZU9wZXJhdGlvbnNTZXJ2aWNlKSB7XG4gICAgZmlsZU9wZXJhdGlvbnNTZXJ2aWNlID0gbmV3IEZpbGVPcGVyYXRpb25zU2VydmljZShuZXcgRmlsZUxvY2tNYW5hZ2VyKCkpO1xuICB9XG4gIHJldHVybiBmaWxlT3BlcmF0aW9uc1NlcnZpY2U7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYW4gYW5vbnltb3VzIElEIGZvciB1c2VycyB3aXRob3V0IGlkZW50aXR5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUFub255bW91c0lkKCk6IHN0cmluZyB7XG4gIGNvbnN0IGFkamVjdGl2ZSA9IEFESkVDVElWRVNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogQURKRUNUSVZFUy5sZW5ndGgpXTtcbiAgY29uc3QgYW5pbWFsID0gQU5JTUFMU1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBBTklNQUxTLmxlbmd0aCldO1xuICBjb25zdCByYW5kb20gPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgNik7XG4gIHJldHVybiBgYW5vbi0ke2FkamVjdGl2ZX0tJHthbmltYWx9LSR7cmFuZG9tfWA7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSB1bmlxdWUgSUQgZm9yIHBlcnNvbmFzXG4gKi9cbi8vIFByZS1jb21waWxlZCByZWdleCBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlIChhdm9pZHMgY3JlYXRpbmcgcmVnZXggb24gZWFjaCBjaGFyYWN0ZXIpXG5jb25zdCBBTFBIQU5VTUVSSUNfUkVHRVggPSAvW2EtejAtOV0vO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVVbmlxdWVJZChwZXJzb25hTmFtZTogc3RyaW5nLCBhdXRob3I/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBkYXRlU3RyID0gbm93LnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwgMTApLnJlcGxhY2VBbGwoJy0nLCAnJyk7XG4gIGNvbnN0IHRpbWVTdHIgPSBub3cudG9UaW1lU3RyaW5nKCkuc2xpY2UoMCwgOCkucmVwbGFjZUFsbCgnOicsICcnKTtcbiAgLy8gSXNzdWUgIzg0ODogQWRkIG1pbGxpc2Vjb25kcyArIHJhbmRvbSBzdWZmaXggZm9yIHN1Yi1zZWNvbmQgdW5pcXVlbmVzcy5cbiAgLy8gQ3JpdGljYWwgZm9yIGNvcHktb24td3JpdGUsIHN3YXJtIG9wZXJhdGlvbnMsIGFuZCByYXBpZCBwcm9ncmFtbWF0aWMgY3JlYXRpb24uXG4gIGNvbnN0IG1zU3RyID0gbm93LmdldE1pbGxpc2Vjb25kcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMywgJzAnKTtcbiAgY29uc3QgcmFuZCA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA2KTtcbiAgLy8gU0VDVVJJVFkgRklYOiBQcmV2ZW50IFJlRG9TIGJ5IHVzaW5nIGEgc2luZ2xlLXBhc3MgYXBwcm9hY2hcbiAgLy8gUHJldmlvdXNseTogTXVsdGlwbGUgcmVwbGFjZSgpIG9wZXJhdGlvbnMgd2l0aCB1bmJvdW5kZWQgcXVhbnRpZmllcnMgY291bGQgY2F1c2UgZXhwb25lbnRpYWwgYmFja3RyYWNraW5nXG4gIC8vIE5vdzogU2luZ2xlLXBhc3MgdHJhbnNmb3JtYXRpb24gd2l0aCBidWlsdC1pbiBsZW5ndGggbGltaXRcbiAgY29uc3Qgbm9ybWFsaXplZCA9IHBlcnNvbmFOYW1lLnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IHNhbml0aXplZE5hbWUgPSBub3JtYWxpemVkXG4gICAgLnNwbGl0KCcnKVxuICAgIC5tYXAoY2hhciA9PiBBTFBIQU5VTUVSSUNfUkVHRVgudGVzdChjaGFyKSA/IGNoYXIgOiAnLScpXG4gICAgLmpvaW4oJycpXG4gICAgLnN1YnN0cmluZygwLCAxMDApIC8vIExpbWl0IGFmdGVyIHRyYW5zZm9ybWF0aW9uIHRvIHByZXNlcnZlIHN0cnVjdHVyZVxuICAgIC5yZXBsYWNlQWxsKC8oXi0rKXwoLSskKS9nLCAnJykgLy8gT25seSB0cmltIGxlYWRpbmcvdHJhaWxpbmcgaHlwaGVuc1xuICAgIC5yZXBsYWNlQWxsKC8tezIsfS9nLCAnLScpOyAvLyBDb2xsYXBzZSBtdWx0aXBsZSBoeXBoZW5zXG4gIGNvbnN0IHdob01hZGVJdCA9IGF1dGhvciB8fCBnZW5lcmF0ZUFub255bW91c0lkKCk7XG5cbiAgcmV0dXJuIGAke3Nhbml0aXplZE5hbWV9XyR7ZGF0ZVN0cn0tJHt0aW1lU3RyfSR7bXNTdHJ9LSR7cmFuZH1fJHt3aG9NYWRlSXR9YDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IHRleHQgdG8gVVJMLXNhZmUgc2x1Z1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2x1Z2lmeSh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBTRUNVUklUWSBGSVg6IFByZXZlbnQgUmVEb1MgYnkgdXNpbmcgYSBzaW5nbGUtcGFzcyBhcHByb2FjaFxuICAvLyBQcmV2aW91c2x5OiBNdWx0aXBsZSByZXBsYWNlKCkgb3BlcmF0aW9ucyB3aXRoIHVuYm91bmRlZCBxdWFudGlmaWVycyBjb3VsZCBjYXVzZSBleHBvbmVudGlhbCBiYWNrdHJhY2tpbmdcbiAgLy8gTm93OiBTaW5nbGUtcGFzcyB0cmFuc2Zvcm1hdGlvbiB3aXRoIGJ1aWx0LWluIGxlbmd0aCBsaW1pdFxuICBjb25zdCBub3JtYWxpemVkID0gdGV4dC50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCB0cmFuc2Zvcm1lZCA9IG5vcm1hbGl6ZWRcbiAgICAuc3BsaXQoJycpXG4gICAgLm1hcChjaGFyID0+IEFMUEhBTlVNRVJJQ19SRUdFWC50ZXN0KGNoYXIpID8gY2hhciA6ICctJylcbiAgICAuam9pbignJyk7XG4gIFxuICAvLyBTRUNVUklUWSBGSVg6IEF2b2lkIHBvbHlub21pYWwgcmVnZXggYnkgdXNpbmcgc2VwYXJhdGUgb3BlcmF0aW9uc1xuICAvLyBUcmltIGxlYWRpbmcgaHlwaGVuc1xuICBsZXQgc3RhcnQgPSAwO1xuICB3aGlsZSAoc3RhcnQgPCB0cmFuc2Zvcm1lZC5sZW5ndGggJiYgdHJhbnNmb3JtZWRbc3RhcnRdID09PSAnLScpIHtcbiAgICBzdGFydCsrO1xuICB9XG4gIFxuICAvLyBUcmltIHRyYWlsaW5nIGh5cGhlbnNcbiAgbGV0IGVuZCA9IHRyYW5zZm9ybWVkLmxlbmd0aCAtIDE7XG4gIHdoaWxlIChlbmQgPj0gc3RhcnQgJiYgdHJhbnNmb3JtZWRbZW5kXSA9PT0gJy0nKSB7XG4gICAgZW5kLS07XG4gIH1cbiAgXG4gIC8vIEV4dHJhY3QgdGhlIHRyaW1tZWQgcG9ydGlvbiBhbmQgY29sbGFwc2UgbXVsdGlwbGUgaHlwaGVuc1xuICBjb25zdCB0cmltbWVkID0gdHJhbnNmb3JtZWQuc2xpY2Uoc3RhcnQsIGVuZCArIDEpO1xuICByZXR1cm4gdHJpbW1lZC5yZXBsYWNlQWxsKC8tezIsfS9nLCAnLScpOyAvLyBUaGlzIGlzIHNhZmUgYXMgaXQncyBsaW5lYXJcbn1cblxuLyoqXG4gKiBFbnN1cmUgYSBkaXJlY3RvcnkgZXhpc3RzLCBjcmVhdGUgaWYgaXQgZG9lc24ndFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5zdXJlRGlyZWN0b3J5KGRpclBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBmaWxlT3BzID0gZ2V0RmlsZU9wZXJhdGlvbnNTZXJ2aWNlKCk7XG4gIGNvbnN0IGV4aXN0cyA9IGF3YWl0IGZpbGVPcHMuZXhpc3RzKGRpclBhdGgpO1xuXG4gIGlmICghZXhpc3RzKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBDcmVhdGluZyBkaXJlY3Rvcnk6ICR7ZGlyUGF0aH1gKTtcbiAgICBhd2FpdCBmaWxlT3BzLmNyZWF0ZURpcmVjdG9yeShkaXJQYXRoKTtcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgZmlsZSBleGlzdHNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbGVFeGlzdHMoZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCBmaWxlT3BzID0gZ2V0RmlsZU9wZXJhdGlvbnNTZXJ2aWNlKCk7XG4gIHJldHVybiBmaWxlT3BzLmV4aXN0cyhmaWxlUGF0aCk7XG59XG5cbi8qKlxuICogR2V0IGZpbGUgc2l6ZSBpbiBieXRlc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RmlsZVNpemUoZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gIGNvbnN0IGZpbGVPcHMgPSBnZXRGaWxlT3BlcmF0aW9uc1NlcnZpY2UoKTtcbiAgY29uc3Qgc3RhdHMgPSBhd2FpdCBmaWxlT3BzLnN0YXQoZmlsZVBhdGgpO1xuICByZXR1cm4gc3RhdHMuc2l6ZTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBiYWNrdXAgb2YgYSBkaXJlY3RvcnlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUJhY2t1cChzb3VyY2VQYXRoOiBzdHJpbmcsIGJhY2t1cFBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAvLyBFbnN1cmUgYmFja3VwIGRpcmVjdG9yeSBleGlzdHNcbiAgY29uc3QgYmFja3VwRGlyID0gcGF0aC5kaXJuYW1lKGJhY2t1cFBhdGgpO1xuICBhd2FpdCBlbnN1cmVEaXJlY3RvcnkoYmFja3VwRGlyKTtcbiAgXG4gIC8vIENvcHkgZGlyZWN0b3J5IHJlY3Vyc2l2ZWx5XG4gIGF3YWl0IGZzLmNwKHNvdXJjZVBhdGgsIGJhY2t1cFBhdGgsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xufSJdfQ==
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXN5c3RlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9maWxlc3lzdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBMEIscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFakUsMERBQTBEO0FBQzFELElBQUkscUJBQXFCLEdBQWtDLElBQUksQ0FBQztBQUVoRSxTQUFTLHdCQUF3QjtJQUMvQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMzQixxQkFBcUIsR0FBRyxJQUFJLHFCQUFxQixDQUFDLElBQUksZUFBZSxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBQ0QsT0FBTyxxQkFBcUIsQ0FBQztBQUMvQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM1RSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbkUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FB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O0lBRWpDLDZCQUE2QjtJQUM3QixNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZpbGVzeXN0ZW0gYW5kIHN0cmluZyBtYW5pcHVsYXRpb24gdXRpbGl0aWVzXG4gKi9cblxuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEFESkVDVElWRVMsIEFOSU1BTFMgfSBmcm9tICcuLi9jb25maWcvY29uc3RhbnRzLmpzJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyLmpzJztcbmltcG9ydCB7IElGaWxlT3BlcmF0aW9uc1NlcnZpY2UsIEZpbGVPcGVyYXRpb25zU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL0ZpbGVPcGVyYXRpb25zU2VydmljZS5qcyc7XG5pbXBvcnQgeyBGaWxlTG9ja01hbmFnZXIgfSBmcm9tICcuLi9zZWN1cml0eS9maWxlTG9ja01hbmFnZXIuanMnO1xuXG4vLyBTaW5nbGV0b24gZmlsZSBvcGVyYXRpb25zIHNlcnZpY2UgZm9yIHV0aWxpdHkgZnVuY3Rpb25zXG5sZXQgZmlsZU9wZXJhdGlvbnNTZXJ2aWNlOiBJRmlsZU9wZXJhdGlvbnNTZXJ2aWNlIHwgbnVsbCA9IG51bGw7XG5cbmZ1bmN0aW9uIGdldEZpbGVPcGVyYXRpb25zU2VydmljZSgpOiBJRmlsZU9wZXJhdGlvbnNTZXJ2aWNlIHtcbiAgaWYgKCFmaWxlT3BlcmF0aW9uc1NlcnZpY2UpIHtcbiAgICBmaWxlT3BlcmF0aW9uc1NlcnZpY2UgPSBuZXcgRmlsZU9wZXJhdGlvbnNTZXJ2aWNlKG5ldyBGaWxlTG9ja01hbmFnZXIoKSk7XG4gIH1cbiAgcmV0dXJuIGZpbGVPcGVyYXRpb25zU2VydmljZTtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhbiBhbm9ueW1vdXMgSUQgZm9yIHVzZXJzIHdpdGhvdXQgaWRlbnRpdHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlQW5vbnltb3VzSWQoKTogc3RyaW5nIHtcbiAgY29uc3QgYWRqZWN0aXZlID0gQURKRUNUSVZFU1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBBREpFQ1RJVkVTLmxlbmd0aCldO1xuICBjb25zdCBhbmltYWwgPSBBTklNQUxTW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIEFOSU1BTFMubGVuZ3RoKV07XG4gIGNvbnN0IHJhbmRvbSA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA2KTtcbiAgcmV0dXJuIGBhbm9uLSR7YWRqZWN0aXZlfS0ke2FuaW1hbH0tJHtyYW5kb219YDtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIHVuaXF1ZSBJRCBmb3IgcGVyc29uYXNcbiAqL1xuLy8gUHJlLWNvbXBpbGVkIHJlZ2V4IGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UgKGF2b2lkcyBjcmVhdGluZyByZWdleCBvbiBlYWNoIGNoYXJhY3RlcilcbmNvbnN0IEFMUEhBTlVNRVJJQ19SRUdFWCA9IC9bYS16MC05XS87XG5cbi8qKlxuICogTm9ybWFsaXplIGFuIGVsZW1lbnQgbmFtZSB0byB0aGUgY2Fub25pY2FsIGZpbGVuYW1lIGlkZW50aXR5IHVzZWQgYnkgbWFuYWdlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVFbGVtZW50RmlsZW5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFuYW1lIHx8IG5hbWUudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAndW5uYW1lZCc7XG4gIH1cblxuICBjb25zdCBub3JtYWxpemVkID0gbmFtZVxuICAgIC5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCAnJDEtJDInKVxuICAgIC5yZXBsYWNlKC9bXFxzX10rL2csICctJylcbiAgICAudG9Mb3dlckNhc2UoKVxuICAgIC5yZXBsYWNlKC9bXmEtejAtOS1dL2csICctJylcbiAgICAucmVwbGFjZSgvLSsvZywgJy0nKTtcblxuICBjb25zdCBzdGFydCA9IG5vcm1hbGl6ZWQuc3RhcnRzV2l0aCgnLScpID8gMSA6IDA7XG4gIGNvbnN0IGVuZCA9IG5vcm1hbGl6ZWQuZW5kc1dpdGgoJy0nKSA/IC0xIDogdW5kZWZpbmVkO1xuICByZXR1cm4gbm9ybWFsaXplZC5zbGljZShzdGFydCwgZW5kKTtcbn1cblxuLyoqIENhbm9uaWNhbCBub24tZW1wdHkgaWRlbnRpdHkgdXNlZCBmb3IgZWxlbWVudCBmaWxlcyBhbmQgcmVsYXRlZCBydW50aW1lIG1hcHMuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplRWxlbWVudFN0b3JhZ2VJZGVudGl0eShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbm9ybWFsaXplRWxlbWVudEZpbGVuYW1lKG5hbWUpIHx8ICd1bm5hbWVkJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlVW5pcXVlSWQocGVyc29uYU5hbWU6IHN0cmluZywgYXV0aG9yPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgZGF0ZVN0ciA9IG5vdy50b0lTT1N0cmluZygpLnNsaWNlKDAsIDEwKS5yZXBsYWNlQWxsKCctJywgJycpO1xuICBjb25zdCB0aW1lU3RyID0gbm93LnRvVGltZVN0cmluZygpLnNsaWNlKDAsIDgpLnJlcGxhY2VBbGwoJzonLCAnJyk7XG4gIC8vIElzc3VlICM4NDg6IEFkZCBtaWxsaXNlY29uZHMgKyByYW5kb20gc3VmZml4IGZvciBzdWItc2Vjb25kIHVuaXF1ZW5lc3MuXG4gIC8vIENyaXRpY2FsIGZvciBjb3B5LW9uLXdyaXRlLCBzd2FybSBvcGVyYXRpb25zLCBhbmQgcmFwaWQgcHJvZ3JhbW1hdGljIGNyZWF0aW9uLlxuICBjb25zdCBtc1N0ciA9IG5vdy5nZXRNaWxsaXNlY29uZHMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDMsICcwJyk7XG4gIGNvbnN0IHJhbmQgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgNik7XG4gIC8vIFNFQ1VSSVRZIEZJWDogUHJldmVudCBSZURvUyBieSB1c2luZyBhIHNpbmdsZS1wYXNzIGFwcHJvYWNoXG4gIC8vIFByZXZpb3VzbHk6IE11bHRpcGxlIHJlcGxhY2UoKSBvcGVyYXRpb25zIHdpdGggdW5ib3VuZGVkIHF1YW50aWZpZXJzIGNvdWxkIGNhdXNlIGV4cG9uZW50aWFsIGJhY2t0cmFja2luZ1xuICAvLyBOb3c6IFNpbmdsZS1wYXNzIHRyYW5zZm9ybWF0aW9uIHdpdGggYnVpbHQtaW4gbGVuZ3RoIGxpbWl0XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBwZXJzb25hTmFtZS50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBzYW5pdGl6ZWROYW1lID0gbm9ybWFsaXplZFxuICAgIC5zcGxpdCgnJylcbiAgICAubWFwKGNoYXIgPT4gQUxQSEFOVU1FUklDX1JFR0VYLnRlc3QoY2hhcikgPyBjaGFyIDogJy0nKVxuICAgIC5qb2luKCcnKVxuICAgIC5zdWJzdHJpbmcoMCwgMTAwKSAvLyBMaW1pdCBhZnRlciB0cmFuc2Zvcm1hdGlvbiB0byBwcmVzZXJ2ZSBzdHJ1Y3R1cmVcbiAgICAucmVwbGFjZUFsbCgvKF4tKyl8KC0rJCkvZywgJycpIC8vIE9ubHkgdHJpbSBsZWFkaW5nL3RyYWlsaW5nIGh5cGhlbnNcbiAgICAucmVwbGFjZUFsbCgvLXsyLH0vZywgJy0nKTsgLy8gQ29sbGFwc2UgbXVsdGlwbGUgaHlwaGVuc1xuICBjb25zdCB3aG9NYWRlSXQgPSBhdXRob3IgfHwgZ2VuZXJhdGVBbm9ueW1vdXNJZCgpO1xuXG4gIHJldHVybiBgJHtzYW5pdGl6ZWROYW1lfV8ke2RhdGVTdHJ9LSR7dGltZVN0cn0ke21zU3RyfS0ke3JhbmR9XyR7d2hvTWFkZUl0fWA7XG59XG5cbi8qKlxuICogQ29udmVydCB0ZXh0IHRvIFVSTC1zYWZlIHNsdWdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNsdWdpZnkodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gU0VDVVJJVFkgRklYOiBQcmV2ZW50IFJlRG9TIGJ5IHVzaW5nIGEgc2luZ2xlLXBhc3MgYXBwcm9hY2hcbiAgLy8gUHJldmlvdXNseTogTXVsdGlwbGUgcmVwbGFjZSgpIG9wZXJhdGlvbnMgd2l0aCB1bmJvdW5kZWQgcXVhbnRpZmllcnMgY291bGQgY2F1c2UgZXhwb25lbnRpYWwgYmFja3RyYWNraW5nXG4gIC8vIE5vdzogU2luZ2xlLXBhc3MgdHJhbnNmb3JtYXRpb24gd2l0aCBidWlsdC1pbiBsZW5ndGggbGltaXRcbiAgY29uc3Qgbm9ybWFsaXplZCA9IHRleHQudG9Mb3dlckNhc2UoKTtcbiAgY29uc3QgdHJhbnNmb3JtZWQgPSBub3JtYWxpemVkXG4gICAgLnNwbGl0KCcnKVxuICAgIC5tYXAoY2hhciA9PiBBTFBIQU5VTUVSSUNfUkVHRVgudGVzdChjaGFyKSA/IGNoYXIgOiAnLScpXG4gICAgLmpvaW4oJycpO1xuICBcbiAgLy8gU0VDVVJJVFkgRklYOiBBdm9pZCBwb2x5bm9taWFsIHJlZ2V4IGJ5IHVzaW5nIHNlcGFyYXRlIG9wZXJhdGlvbnNcbiAgLy8gVHJpbSBsZWFkaW5nIGh5cGhlbnNcbiAgbGV0IHN0YXJ0ID0gMDtcbiAgd2hpbGUgKHN0YXJ0IDwgdHJhbnNmb3JtZWQubGVuZ3RoICYmIHRyYW5zZm9ybWVkW3N0YXJ0XSA9PT0gJy0nKSB7XG4gICAgc3RhcnQrKztcbiAgfVxuICBcbiAgLy8gVHJpbSB0cmFpbGluZyBoeXBoZW5zXG4gIGxldCBlbmQgPSB0cmFuc2Zvcm1lZC5sZW5ndGggLSAxO1xuICB3aGlsZSAoZW5kID49IHN0YXJ0ICYmIHRyYW5zZm9ybWVkW2VuZF0gPT09ICctJykge1xuICAgIGVuZC0tO1xuICB9XG4gIFxuICAvLyBFeHRyYWN0IHRoZSB0cmltbWVkIHBvcnRpb24gYW5kIGNvbGxhcHNlIG11bHRpcGxlIGh5cGhlbnNcbiAgY29uc3QgdHJpbW1lZCA9IHRyYW5zZm9ybWVkLnNsaWNlKHN0YXJ0LCBlbmQgKyAxKTtcbiAgcmV0dXJuIHRyaW1tZWQucmVwbGFjZUFsbCgvLXsyLH0vZywgJy0nKTsgLy8gVGhpcyBpcyBzYWZlIGFzIGl0J3MgbGluZWFyXG59XG5cbi8qKlxuICogRW5zdXJlIGEgZGlyZWN0b3J5IGV4aXN0cywgY3JlYXRlIGlmIGl0IGRvZXNuJ3RcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuc3VyZURpcmVjdG9yeShkaXJQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZmlsZU9wcyA9IGdldEZpbGVPcGVyYXRpb25zU2VydmljZSgpO1xuICBjb25zdCBleGlzdHMgPSBhd2FpdCBmaWxlT3BzLmV4aXN0cyhkaXJQYXRoKTtcblxuICBpZiAoIWV4aXN0cykge1xuICAgIGxvZ2dlci5kZWJ1ZyhgQ3JlYXRpbmcgZGlyZWN0b3J5OiAke2RpclBhdGh9YCk7XG4gICAgYXdhaXQgZmlsZU9wcy5jcmVhdGVEaXJlY3RvcnkoZGlyUGF0aCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIGZpbGUgZXhpc3RzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmaWxlRXhpc3RzKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgZmlsZU9wcyA9IGdldEZpbGVPcGVyYXRpb25zU2VydmljZSgpO1xuICByZXR1cm4gZmlsZU9wcy5leGlzdHMoZmlsZVBhdGgpO1xufVxuXG4vKipcbiAqIEdldCBmaWxlIHNpemUgaW4gYnl0ZXNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEZpbGVTaXplKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj4ge1xuICBjb25zdCBmaWxlT3BzID0gZ2V0RmlsZU9wZXJhdGlvbnNTZXJ2aWNlKCk7XG4gIGNvbnN0IHN0YXRzID0gYXdhaXQgZmlsZU9wcy5zdGF0KGZpbGVQYXRoKTtcbiAgcmV0dXJuIHN0YXRzLnNpemU7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgYmFja3VwIG9mIGEgZGlyZWN0b3J5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVCYWNrdXAoc291cmNlUGF0aDogc3RyaW5nLCBiYWNrdXBQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gRW5zdXJlIGJhY2t1cCBkaXJlY3RvcnkgZXhpc3RzXG4gIGNvbnN0IGJhY2t1cERpciA9IHBhdGguZGlybmFtZShiYWNrdXBQYXRoKTtcbiAgYXdhaXQgZW5zdXJlRGlyZWN0b3J5KGJhY2t1cERpcik7XG4gIFxuICAvLyBDb3B5IGRpcmVjdG9yeSByZWN1cnNpdmVseVxuICBhd2FpdCBmcy5jcChzb3VyY2VQYXRoLCBiYWNrdXBQYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbn1cbiJdfQ==
|
package/oauth-helper.mjs
CHANGED
|
@@ -330,6 +330,25 @@ async function writePidFile() {
|
|
|
330
330
|
}
|
|
331
331
|
|
|
332
332
|
async function main() {
|
|
333
|
+
let attempts = 0;
|
|
334
|
+
|
|
335
|
+
// Install termination handling before the first await and before publishing
|
|
336
|
+
// the PID file. Callers use that file as the helper readiness signal.
|
|
337
|
+
process.on('exit', cleanupPidFileSync);
|
|
338
|
+
process.on('beforeExit', async () => {
|
|
339
|
+
await log('OAuth helper completing cleanup');
|
|
340
|
+
await cleanupPidFile();
|
|
341
|
+
});
|
|
342
|
+
|
|
343
|
+
const handleInterruption = () => {
|
|
344
|
+
writeTerminalResultSync('failed', attempts, 'interrupted');
|
|
345
|
+
cleanupStateFileSync();
|
|
346
|
+
cleanupPidFileSync();
|
|
347
|
+
process.exit(1);
|
|
348
|
+
};
|
|
349
|
+
process.once('SIGINT', handleInterruption);
|
|
350
|
+
process.once('SIGTERM', handleInterruption);
|
|
351
|
+
|
|
333
352
|
await log(`[START] OAuth helper started - PID: ${process.pid}`);
|
|
334
353
|
await log('[CONFIG] Device code received');
|
|
335
354
|
await log(`[CONFIG] Poll interval: ${pollIntervalSeconds}s, Expires in: ${expiresIn}s`);
|
|
@@ -349,35 +368,9 @@ async function main() {
|
|
|
349
368
|
|
|
350
369
|
const startTime = Date.now();
|
|
351
370
|
const timeout = startTime + (expiresIn * 1000);
|
|
352
|
-
let attempts = 0;
|
|
353
371
|
let consecutiveErrors = 0;
|
|
354
372
|
let currentPollIntervalMs = pollIntervalSeconds * 1000;
|
|
355
373
|
const MAX_CONSECUTIVE_ERRORS = 5;
|
|
356
|
-
|
|
357
|
-
// Set up cleanup on exit - use synchronous cleanup for exit event
|
|
358
|
-
process.on('exit', () => {
|
|
359
|
-
cleanupPidFileSync();
|
|
360
|
-
});
|
|
361
|
-
|
|
362
|
-
// Use beforeExit for async cleanup when possible
|
|
363
|
-
process.on('beforeExit', async () => {
|
|
364
|
-
await log('OAuth helper completing cleanup');
|
|
365
|
-
await cleanupPidFile();
|
|
366
|
-
});
|
|
367
|
-
|
|
368
|
-
process.on('SIGINT', () => {
|
|
369
|
-
writeTerminalResultSync('failed', attempts, 'interrupted');
|
|
370
|
-
cleanupStateFileSync();
|
|
371
|
-
cleanupPidFileSync();
|
|
372
|
-
process.exit(1);
|
|
373
|
-
});
|
|
374
|
-
|
|
375
|
-
process.on('SIGTERM', () => {
|
|
376
|
-
writeTerminalResultSync('failed', attempts, 'interrupted');
|
|
377
|
-
cleanupStateFileSync();
|
|
378
|
-
cleanupPidFileSync();
|
|
379
|
-
process.exit(1);
|
|
380
|
-
});
|
|
381
374
|
|
|
382
375
|
async function finish(status, errorCode, exitCode) {
|
|
383
376
|
clearInterval(heartbeatInterval);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dollhousemcp/mcp-server",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.41",
|
|
4
4
|
"description": "DollhouseMCP - A Model Context Protocol (MCP) server that enables dynamic AI persona management from markdown files, allowing Claude and other compatible AI assistants to activate and switch between different behavioral personas.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
},
|
|
12
12
|
"scripts": {
|
|
13
13
|
"prebuild": "npm run build:safety && node scripts/generate-version.js && node scripts/generate-hashes.mjs",
|
|
14
|
-
"build:safety": "cd packages/safety && npm
|
|
14
|
+
"build:safety": "cd packages/safety && npm ci --ignore-scripts --workspaces=false && npm run build",
|
|
15
15
|
"build": "tsc",
|
|
16
16
|
"postbuild": "node -e \"const fs=require('fs'),p=require('path');function rm(d){if(fs.existsSync(d)){for(const e of fs.readdirSync(d)){const f=p.join(d,e);fs.statSync(f).isDirectory()?rm(f):fs.unlinkSync(f)}fs.rmdirSync(d)}}function cpR(s,d){fs.mkdirSync(d,{recursive:true});for(const e of fs.readdirSync(s)){const sp=p.join(s,e),dp=p.join(d,e);fs.statSync(sp).isDirectory()?cpR(sp,dp):fs.copyFileSync(sp,dp)}}cpR('src/seed-elements','dist/seed-elements');rm('dist/web/public');cpR('src/web/public','dist/web/public')\"",
|
|
17
17
|
"web": "node dist/index.js --web",
|
|
18
18
|
"start": "node dist/index.js",
|
|
19
19
|
"dev": "tsx watch src/index.ts",
|
|
20
|
-
"inspector": "
|
|
21
|
-
"inspector:dev": "
|
|
20
|
+
"inspector": "mcp-inspector node dist/index.js",
|
|
21
|
+
"inspector:dev": "mcp-inspector tsx src/index.ts",
|
|
22
22
|
"clean": "rm -rf dist",
|
|
23
23
|
"rebuild": "npm run clean && npm run build",
|
|
24
|
-
"setup": "npm
|
|
24
|
+
"setup": "npm ci --ignore-scripts && npm run build",
|
|
25
25
|
"prepublishOnly": "cp README.md README.md.backup 2>/dev/null || true && cp README.npm.md README.md && BUILD_TYPE=npm npm run build",
|
|
26
26
|
"postpublish": "if [ -f README.md.backup ]; then mv README.md.backup README.md; else echo 'No backup found, README.md unchanged'; fi",
|
|
27
27
|
"test": "cross-env \"NODE_OPTIONS=$NODE_OPTIONS --experimental-vm-modules --no-warnings\" jest --config tests/jest.config.cjs",
|
|
@@ -57,9 +57,9 @@
|
|
|
57
57
|
"security:audit:verbose": "tsx scripts/run-security-audit.ts --verbose",
|
|
58
58
|
"typecheck:scripts": "tsc --noEmit --project tsconfig.scripts.json",
|
|
59
59
|
"pre-commit": "npm run security:rapid && npm run typecheck:scripts && npm audit --audit-level=high",
|
|
60
|
-
"test:playwright": "
|
|
61
|
-
"test:playwright:headed": "
|
|
62
|
-
"test:playwright:ui": "
|
|
60
|
+
"test:playwright": "playwright test",
|
|
61
|
+
"test:playwright:headed": "playwright test --headed",
|
|
62
|
+
"test:playwright:ui": "playwright test --ui",
|
|
63
63
|
"test:e2e": "cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.e2e.config.cjs",
|
|
64
64
|
"test:e2e:watch": "cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.e2e.config.cjs --watch",
|
|
65
65
|
"test:e2e:verbose": "cross-env \"NODE_OPTIONS=--experimental-vm-modules --no-warnings\" jest --config tests/jest.e2e.config.cjs --verbose",
|
|
@@ -252,7 +252,7 @@
|
|
|
252
252
|
"path-to-regexp": "8.4.2"
|
|
253
253
|
},
|
|
254
254
|
"giget": {
|
|
255
|
-
"tar": "7.5.
|
|
255
|
+
"tar": "7.5.22"
|
|
256
256
|
},
|
|
257
257
|
"form-data": "4.0.6",
|
|
258
258
|
"qs": "6.15.2",
|
package/server.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "io.github.DollhouseMCP/mcp-server",
|
|
4
4
|
"title": "DollhouseMCP",
|
|
5
5
|
"description": "OSS to create Personas, Skills, Templates, Agents, and Memories to customize your AI experience.",
|
|
6
|
-
"version": "2.0.
|
|
6
|
+
"version": "2.0.41",
|
|
7
7
|
"homepage": "https://dollhousemcp.com",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
{
|
|
30
30
|
"registryType": "npm",
|
|
31
31
|
"identifier": "@dollhousemcp/mcp-server",
|
|
32
|
-
"version": "2.0.
|
|
32
|
+
"version": "2.0.41",
|
|
33
33
|
"transport": {
|
|
34
34
|
"type": "stdio"
|
|
35
35
|
}
|