@mytechtoday/augment-extensions 0.4.0 → 0.7.0
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/README.md +6 -6
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/dracula/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/dracula/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/high-contrast/README.md +27 -0
- package/augment-extensions/domain-rules/design/color/themes/high-contrast/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/monokai/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/monokai/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/nord/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/nord/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/one-dark/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/one-dark/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/one-light/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/one-light/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/solarized-dark/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/solarized-dark/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/solarized-light/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/solarized-light/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/tokyo-night/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/tokyo-night/module.json +26 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/README.md +136 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/SCHEMA-VALIDATION-REPORT.md +216 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/brand-kit-example.yaml +292 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/campaign-brief-example.yaml +389 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/content-calendar-example.yaml +643 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/email-newsletter-example.md +376 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/landing-page-example.md +934 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/ppc-ad-copy-example.md +301 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/seo-blog-post-example.md +347 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/social-media-campaign-example.md +606 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/module.json +50 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/affiliate-influencer-marketing.md +593 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/asset-management.md +418 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/brand-consistency.md +210 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/content-marketing.md +337 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/conversion-optimization.md +455 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/direct-sales.md +499 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/email-marketing.md +439 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/legal-compliance.md +227 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/ppc-advertising.md +569 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/seo-optimization.md +470 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/social-media-marketing.md +414 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/universal-marketing.md +177 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/asset-inventory.schema.json +247 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/brand-kit.schema.json +326 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/campaign-brief.schema.json +342 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/color-palette.schema.json +223 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/content-template.schema.json +383 -0
- package/augment-extensions/workflows/beads-integration/IMPLEMENTATION-STATUS.md +145 -0
- package/augment-extensions/workflows/beads-integration/README.md +143 -0
- package/augment-extensions/workflows/beads-integration/config/defaults.json +32 -0
- package/augment-extensions/workflows/beads-integration/config/schema.json +140 -0
- package/augment-extensions/workflows/beads-integration/examples/basic-task-generation.md +293 -0
- package/augment-extensions/workflows/beads-integration/module.json +75 -0
- package/augment-extensions/workflows/beads-integration/rules/core-rules.md +219 -0
- package/augment-extensions/workflows/beads-integration/rules/effectiveness-standards.md +256 -0
- package/augment-extensions/workflows/beads-integration/rules/task-generation.md +607 -0
- package/augment-extensions/writing-standards/screenplay/README.md +135 -6
- package/augment-extensions/writing-standards/screenplay/_templates/README.md +121 -0
- package/augment-extensions/writing-standards/screenplay/_templates/genre-template.md +153 -0
- package/augment-extensions/writing-standards/screenplay/_templates/style-template.md +243 -0
- package/augment-extensions/writing-standards/screenplay/_templates/theme-template.md +213 -0
- package/augment-extensions/writing-standards/screenplay/examples/beat-sheet-example.yaml +95 -0
- package/augment-extensions/writing-standards/screenplay/examples/character-profile-example.yaml +116 -0
- package/augment-extensions/writing-standards/screenplay/examples/commercial-30sec.fountain +151 -0
- package/augment-extensions/writing-standards/screenplay/examples/independent-monologue.fountain +67 -0
- package/augment-extensions/writing-standards/screenplay/examples/news-segment.fountain +142 -0
- package/augment-extensions/writing-standards/screenplay/examples/plot-outline-example.yaml +184 -0
- package/augment-extensions/writing-standards/screenplay/examples/tv-episode-teaser.fountain +204 -0
- package/augment-extensions/writing-standards/screenplay/genres/README.md +181 -0
- package/augment-extensions/writing-standards/screenplay/genres/examples/.gitkeep +2 -0
- package/augment-extensions/writing-standards/screenplay/genres/module.json +70 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/.gitkeep +2 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/action.md +399 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/adventure.md +407 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/animation.md +293 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/biographical.md +293 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/comedy.md +401 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/documentary.md +293 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/drama.md +409 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/fantasy.md +293 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/historical.md +293 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/horror.md +268 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/musical.md +294 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/mystery.md +293 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/noir.md +294 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/romance.md +293 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/sci-fi.md +289 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/superhero.md +293 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/thriller.md +294 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/western.md +293 -0
- package/augment-extensions/writing-standards/screenplay/module.json +1 -1
- package/augment-extensions/writing-standards/screenplay/rules/aaa-hollywood-films.md +339 -0
- package/augment-extensions/writing-standards/screenplay/rules/ai-integration-testing.md +329 -0
- package/augment-extensions/writing-standards/screenplay/rules/character-development.md +169 -0
- package/augment-extensions/writing-standards/screenplay/rules/commercials.md +437 -0
- package/augment-extensions/writing-standards/screenplay/rules/dialogue-writing.md +263 -0
- package/augment-extensions/writing-standards/screenplay/rules/diversity-inclusion.md +261 -0
- package/augment-extensions/writing-standards/screenplay/rules/examples-guide.md +315 -0
- package/augment-extensions/writing-standards/screenplay/rules/formatting-validation.md +413 -0
- package/augment-extensions/writing-standards/screenplay/rules/fountain-format.md +372 -0
- package/augment-extensions/writing-standards/screenplay/rules/independent-films.md +374 -0
- package/augment-extensions/writing-standards/screenplay/rules/live-tv-productions.md +443 -0
- package/augment-extensions/writing-standards/screenplay/rules/narrative-structures.md +207 -0
- package/augment-extensions/writing-standards/screenplay/rules/news-broadcasts.md +444 -0
- package/augment-extensions/writing-standards/screenplay/rules/pacing-timing.md +331 -0
- package/augment-extensions/writing-standards/screenplay/rules/quality-review-checklist.md +334 -0
- package/augment-extensions/writing-standards/screenplay/rules/quick-reference.md +299 -0
- package/augment-extensions/writing-standards/screenplay/rules/screen-continuity.md +263 -0
- package/augment-extensions/writing-standards/screenplay/rules/streaming-content.md +412 -0
- package/augment-extensions/writing-standards/screenplay/rules/trope-management.md +370 -0
- package/augment-extensions/writing-standards/screenplay/rules/tv-series.md +374 -0
- package/augment-extensions/writing-standards/screenplay/rules/vscode-integration.md +277 -0
- package/augment-extensions/writing-standards/screenplay/rules/web-content.md +393 -0
- package/augment-extensions/writing-standards/screenplay/schemas/beat-sheet.json +332 -0
- package/augment-extensions/writing-standards/screenplay/schemas/character-profile.json +247 -0
- package/augment-extensions/writing-standards/screenplay/schemas/feature-selection.json +200 -0
- package/augment-extensions/writing-standards/screenplay/schemas/plot-outline.json +233 -0
- package/augment-extensions/writing-standards/screenplay/schemas/screenplay-config.json +245 -0
- package/augment-extensions/writing-standards/screenplay/schemas/trope-inventory.json +221 -0
- package/augment-extensions/writing-standards/screenplay/styles/README.md +159 -0
- package/augment-extensions/writing-standards/screenplay/styles/examples/.gitkeep +2 -0
- package/augment-extensions/writing-standards/screenplay/styles/examples/style-applications.md +1449 -0
- package/augment-extensions/writing-standards/screenplay/styles/module.json +64 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/.gitkeep +2 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/dialogue-centric.md +520 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/ensemble.md +499 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/epic.md +497 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/experimental.md +492 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/flashback.md +509 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/linear.md +490 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/minimalist.md +499 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/non-linear.md +501 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/poetic.md +499 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/realistic.md +498 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/satirical.md +499 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/surreal.md +508 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/voice-over.md +500 -0
- package/augment-extensions/writing-standards/screenplay/themes/README.md +158 -0
- package/augment-extensions/writing-standards/screenplay/themes/examples/.gitkeep +2 -0
- package/augment-extensions/writing-standards/screenplay/themes/examples/common-mistakes-and-fixes.md +643 -0
- package/augment-extensions/writing-standards/screenplay/themes/examples/complete-scene-example.md +311 -0
- package/augment-extensions/writing-standards/screenplay/themes/examples/individual-theme-examples.md +562 -0
- package/augment-extensions/writing-standards/screenplay/themes/examples/multi-theme-weaving.md +538 -0
- package/augment-extensions/writing-standards/screenplay/themes/examples/theme-application-guide.md +432 -0
- package/augment-extensions/writing-standards/screenplay/themes/examples/theme-integration-across-acts.md +637 -0
- package/augment-extensions/writing-standards/screenplay/themes/module.json +66 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/.gitkeep +2 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/ambition.md +458 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/betrayal.md +490 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/environment.md +458 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/fate.md +459 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/friendship.md +491 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/growth.md +491 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/identity.md +490 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/isolation.md +464 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/justice.md +461 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/love.md +489 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/power.md +494 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/redemption.md +483 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/revenge.md +489 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/survival.md +496 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/technology.md +463 -0
- package/cli/dist/cli.js +30 -1
- package/cli/dist/cli.js.map +1 -1
- package/cli/dist/commands/show.d.ts +23 -0
- package/cli/dist/commands/show.d.ts.map +1 -1
- package/cli/dist/commands/show.js +928 -10
- package/cli/dist/commands/show.js.map +1 -1
- package/cli/dist/types/gui.d.ts +62 -0
- package/cli/dist/types/gui.d.ts.map +1 -0
- package/cli/dist/types/gui.js +30 -0
- package/cli/dist/types/gui.js.map +1 -0
- package/cli/dist/utils/config-system.d.ts +111 -0
- package/cli/dist/utils/config-system.d.ts.map +1 -0
- package/cli/dist/utils/config-system.js +239 -0
- package/cli/dist/utils/config-system.js.map +1 -0
- package/cli/dist/utils/gui-helpers.d.ts +23 -0
- package/cli/dist/utils/gui-helpers.d.ts.map +1 -0
- package/cli/dist/utils/gui-helpers.js +159 -0
- package/cli/dist/utils/gui-helpers.js.map +1 -0
- package/cli/dist/utils/hook-system.d.ts +84 -0
- package/cli/dist/utils/hook-system.d.ts.map +1 -0
- package/cli/dist/utils/hook-system.js +151 -0
- package/cli/dist/utils/hook-system.js.map +1 -0
- package/cli/dist/utils/inspection-cache.d.ts +56 -0
- package/cli/dist/utils/inspection-cache.d.ts.map +1 -0
- package/cli/dist/utils/inspection-cache.js +166 -0
- package/cli/dist/utils/inspection-cache.js.map +1 -0
- package/cli/dist/utils/inspection-handlers.d.ts +75 -0
- package/cli/dist/utils/inspection-handlers.d.ts.map +1 -0
- package/cli/dist/utils/inspection-handlers.js +171 -0
- package/cli/dist/utils/inspection-handlers.js.map +1 -0
- package/cli/dist/utils/module-system.d.ts +81 -1
- package/cli/dist/utils/module-system.d.ts.map +1 -1
- package/cli/dist/utils/module-system.js +393 -16
- package/cli/dist/utils/module-system.js.map +1 -1
- package/cli/dist/utils/plugin-system.d.ts +133 -0
- package/cli/dist/utils/plugin-system.d.ts.map +1 -0
- package/cli/dist/utils/plugin-system.js +210 -0
- package/cli/dist/utils/plugin-system.js.map +1 -0
- package/cli/dist/utils/progress.d.ts +67 -0
- package/cli/dist/utils/progress.d.ts.map +1 -0
- package/cli/dist/utils/progress.js +146 -0
- package/cli/dist/utils/progress.js.map +1 -0
- package/cli/dist/utils/stream-reader.d.ts +34 -0
- package/cli/dist/utils/stream-reader.d.ts.map +1 -0
- package/cli/dist/utils/stream-reader.js +147 -0
- package/cli/dist/utils/stream-reader.js.map +1 -0
- package/cli/dist/utils/vscode-editor.d.ts +45 -0
- package/cli/dist/utils/vscode-editor.d.ts.map +1 -0
- package/cli/dist/utils/vscode-editor.js +171 -0
- package/cli/dist/utils/vscode-editor.js.map +1 -0
- package/cli/dist/utils/vscode-links.d.ts +49 -0
- package/cli/dist/utils/vscode-links.d.ts.map +1 -0
- package/cli/dist/utils/vscode-links.js +167 -0
- package/cli/dist/utils/vscode-links.js.map +1 -0
- package/modules.md +44 -2
- package/package.json +6 -4
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* GUI Helper Functions
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.loadGuiConfig = loadGuiConfig;
|
|
7
|
+
exports.formatModuleChoice = formatModuleChoice;
|
|
8
|
+
exports.fuzzySearch = fuzzySearch;
|
|
9
|
+
exports.filterModules = filterModules;
|
|
10
|
+
const gui_1 = require("../types/gui");
|
|
11
|
+
/**
|
|
12
|
+
* Load GUI configuration from VS Code settings or use defaults
|
|
13
|
+
*/
|
|
14
|
+
function loadGuiConfig() {
|
|
15
|
+
// In a real implementation, this would read from VS Code settings
|
|
16
|
+
// For now, return default config
|
|
17
|
+
return { ...gui_1.DEFAULT_GUI_CONFIG };
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Format module for display in GUI
|
|
21
|
+
*/
|
|
22
|
+
function formatModuleChoice(module, linkedModules = []) {
|
|
23
|
+
return {
|
|
24
|
+
name: `${module.metadata.displayName} (${module.fullName})`,
|
|
25
|
+
value: module.fullName,
|
|
26
|
+
description: module.metadata.description,
|
|
27
|
+
type: module.metadata.type,
|
|
28
|
+
priority: module.metadata.augment?.priority,
|
|
29
|
+
characterCount: module.metadata.augment?.characterCount,
|
|
30
|
+
linked: linkedModules.includes(module.fullName),
|
|
31
|
+
checked: linkedModules.includes(module.fullName)
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Fuzzy search implementation using simple string matching
|
|
36
|
+
* For production, consider using Fuse.js or similar library
|
|
37
|
+
*/
|
|
38
|
+
function fuzzySearch(query, modules, options) {
|
|
39
|
+
if (!query || query.trim() === '') {
|
|
40
|
+
return modules.map(m => ({ module: m, score: 1, matches: [] }));
|
|
41
|
+
}
|
|
42
|
+
const normalizedQuery = options.caseSensitive ? query : query.toLowerCase();
|
|
43
|
+
const results = [];
|
|
44
|
+
for (const module of modules) {
|
|
45
|
+
let totalScore = 0;
|
|
46
|
+
const matches = [];
|
|
47
|
+
// Search in name
|
|
48
|
+
if (options.searchFields.includes('name')) {
|
|
49
|
+
const nameValue = module.name || '';
|
|
50
|
+
const normalizedName = options.caseSensitive ? nameValue : nameValue.toLowerCase();
|
|
51
|
+
const nameScore = calculateMatchScore(normalizedQuery, normalizedName);
|
|
52
|
+
if (nameScore > 0) {
|
|
53
|
+
totalScore += nameScore * 0.5; // Name weight: 0.5
|
|
54
|
+
matches.push({
|
|
55
|
+
field: 'name',
|
|
56
|
+
indices: findMatchIndices(normalizedQuery, normalizedName),
|
|
57
|
+
value: nameValue
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Search in description
|
|
62
|
+
if (options.searchFields.includes('description') && module.description) {
|
|
63
|
+
const descValue = module.description;
|
|
64
|
+
const normalizedDesc = options.caseSensitive ? descValue : descValue.toLowerCase();
|
|
65
|
+
const descScore = calculateMatchScore(normalizedQuery, normalizedDesc);
|
|
66
|
+
if (descScore > 0) {
|
|
67
|
+
totalScore += descScore * 0.3; // Description weight: 0.3
|
|
68
|
+
matches.push({
|
|
69
|
+
field: 'description',
|
|
70
|
+
indices: findMatchIndices(normalizedQuery, normalizedDesc),
|
|
71
|
+
value: descValue
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Search in type (treated as tags)
|
|
76
|
+
if (options.searchFields.includes('tags') && module.type) {
|
|
77
|
+
const typeValue = module.type;
|
|
78
|
+
const normalizedType = options.caseSensitive ? typeValue : typeValue.toLowerCase();
|
|
79
|
+
const typeScore = calculateMatchScore(normalizedQuery, normalizedType);
|
|
80
|
+
if (typeScore > 0) {
|
|
81
|
+
totalScore += typeScore * 0.2; // Tags weight: 0.2
|
|
82
|
+
matches.push({
|
|
83
|
+
field: 'tags',
|
|
84
|
+
indices: findMatchIndices(normalizedQuery, normalizedType),
|
|
85
|
+
value: typeValue
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (totalScore >= options.minMatchScore) {
|
|
90
|
+
results.push({ module, score: totalScore, matches });
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// Sort by score descending
|
|
94
|
+
return results.sort((a, b) => b.score - a.score);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Calculate match score between query and text
|
|
98
|
+
*/
|
|
99
|
+
function calculateMatchScore(query, text) {
|
|
100
|
+
if (text.includes(query)) {
|
|
101
|
+
// Exact substring match
|
|
102
|
+
return 1.0;
|
|
103
|
+
}
|
|
104
|
+
// Simple fuzzy matching: count matching characters in order
|
|
105
|
+
let queryIndex = 0;
|
|
106
|
+
let matchCount = 0;
|
|
107
|
+
for (let i = 0; i < text.length && queryIndex < query.length; i++) {
|
|
108
|
+
if (text[i] === query[queryIndex]) {
|
|
109
|
+
matchCount++;
|
|
110
|
+
queryIndex++;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return matchCount / query.length;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Find indices of matches in text
|
|
117
|
+
*/
|
|
118
|
+
function findMatchIndices(query, text) {
|
|
119
|
+
const indices = [];
|
|
120
|
+
const index = text.indexOf(query);
|
|
121
|
+
if (index !== -1) {
|
|
122
|
+
indices.push([index, index + query.length]);
|
|
123
|
+
}
|
|
124
|
+
return indices;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Filter modules based on filter options
|
|
128
|
+
*/
|
|
129
|
+
function filterModules(modules, filters) {
|
|
130
|
+
return modules.filter(module => {
|
|
131
|
+
// Filter by categories
|
|
132
|
+
if (filters.categories.length > 0) {
|
|
133
|
+
const moduleCategory = module.type || '';
|
|
134
|
+
if (!filters.categories.includes(moduleCategory)) {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Filter by types (same as categories for now)
|
|
139
|
+
if (filters.types.length > 0) {
|
|
140
|
+
const moduleType = module.type || '';
|
|
141
|
+
if (!filters.types.includes(moduleType)) {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Filter by priorities
|
|
146
|
+
if (filters.priorities.length > 0) {
|
|
147
|
+
const modulePriority = module.priority || 'medium';
|
|
148
|
+
if (!filters.priorities.includes(modulePriority)) {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Filter by linked status
|
|
153
|
+
if (filters.linkedOnly && !module.linked) {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
return true;
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=gui-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gui-helpers.js","sourceRoot":"","sources":["../../src/utils/gui-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook System for Augment Extensions
|
|
3
|
+
* Provides pre/post inspection hooks with error handling
|
|
4
|
+
*/
|
|
5
|
+
import { Hook, HookType, HookContext } from './plugin-system';
|
|
6
|
+
/**
|
|
7
|
+
* Hook execution result
|
|
8
|
+
*/
|
|
9
|
+
export interface HookExecutionResult {
|
|
10
|
+
success: boolean;
|
|
11
|
+
hookId: string;
|
|
12
|
+
error?: Error;
|
|
13
|
+
executionTime: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Base hook class
|
|
17
|
+
*/
|
|
18
|
+
export declare abstract class BaseHook implements Hook {
|
|
19
|
+
abstract id: string;
|
|
20
|
+
abstract type: HookType;
|
|
21
|
+
priority: number;
|
|
22
|
+
/**
|
|
23
|
+
* Execute the hook
|
|
24
|
+
*/
|
|
25
|
+
abstract execute(context: HookContext): Promise<void> | void;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Pre-inspection hook - runs before module inspection
|
|
29
|
+
*/
|
|
30
|
+
export declare class PreInspectionHook extends BaseHook {
|
|
31
|
+
id: string;
|
|
32
|
+
type: HookType;
|
|
33
|
+
priority: number;
|
|
34
|
+
execute(context: HookContext): Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Post-inspection hook - runs after module inspection
|
|
38
|
+
*/
|
|
39
|
+
export declare class PostInspectionHook extends BaseHook {
|
|
40
|
+
id: string;
|
|
41
|
+
type: HookType;
|
|
42
|
+
priority: number;
|
|
43
|
+
execute(context: HookContext): Promise<void>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Pre-load hook - runs before plugin/module loading
|
|
47
|
+
*/
|
|
48
|
+
export declare class PreLoadHook extends BaseHook {
|
|
49
|
+
id: string;
|
|
50
|
+
type: HookType;
|
|
51
|
+
priority: number;
|
|
52
|
+
execute(context: HookContext): Promise<void>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Post-load hook - runs after plugin/module loading
|
|
56
|
+
*/
|
|
57
|
+
export declare class PostLoadHook extends BaseHook {
|
|
58
|
+
id: string;
|
|
59
|
+
type: HookType;
|
|
60
|
+
priority: number;
|
|
61
|
+
execute(context: HookContext): Promise<void>;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Hook manager for executing hooks with error handling
|
|
65
|
+
*/
|
|
66
|
+
export declare class HookManager {
|
|
67
|
+
/**
|
|
68
|
+
* Execute a single hook with error handling
|
|
69
|
+
*/
|
|
70
|
+
executeHook(hook: Hook, context: HookContext): Promise<HookExecutionResult>;
|
|
71
|
+
/**
|
|
72
|
+
* Execute multiple hooks in sequence
|
|
73
|
+
*/
|
|
74
|
+
executeHooks(hooks: Hook[], context: HookContext): Promise<HookExecutionResult[]>;
|
|
75
|
+
/**
|
|
76
|
+
* Execute hooks with timeout
|
|
77
|
+
*/
|
|
78
|
+
executeHooksWithTimeout(hooks: Hook[], context: HookContext, timeout?: number): Promise<HookExecutionResult[]>;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Global hook manager instance
|
|
82
|
+
*/
|
|
83
|
+
export declare const hookManager: HookManager;
|
|
84
|
+
//# sourceMappingURL=hook-system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-system.d.ts","sourceRoot":"","sources":["../../src/utils/hook-system.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,8BAAsB,QAAS,YAAW,IAAI;IAC5C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAK;IAErB;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAC7D;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;IAC7C,EAAE,SAA4B;IAC9B,IAAI,EAAE,QAAQ,CAAoB;IAClC,QAAQ,SAAK;IAEP,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAMnD;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C,EAAE,SAA6B;IAC/B,IAAI,EAAE,QAAQ,CAAqB;IACnC,QAAQ,SAAK;IAEP,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAUnD;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,QAAQ;IACvC,EAAE,SAAsB;IACxB,IAAI,EAAE,QAAQ,CAAc;IAC5B,QAAQ,SAAK;IAEP,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAInD;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,QAAQ;IACxC,EAAE,SAAuB;IACzB,IAAI,EAAE,QAAQ,CAAe;IAC7B,QAAQ,SAAK;IAEP,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAInD;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuBjF;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAgBvF;;OAEG;IACG,uBAAuB,CAC3B,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,EAAE,WAAW,EACpB,OAAO,GAAE,MAAa,GACrB,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAalC;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,aAAoB,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Hook System for Augment Extensions
|
|
4
|
+
* Provides pre/post inspection hooks with error handling
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.hookManager = exports.HookManager = exports.PostLoadHook = exports.PreLoadHook = exports.PostInspectionHook = exports.PreInspectionHook = exports.BaseHook = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* Base hook class
|
|
10
|
+
*/
|
|
11
|
+
class BaseHook {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.priority = 0;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.BaseHook = BaseHook;
|
|
17
|
+
/**
|
|
18
|
+
* Pre-inspection hook - runs before module inspection
|
|
19
|
+
*/
|
|
20
|
+
class PreInspectionHook extends BaseHook {
|
|
21
|
+
constructor() {
|
|
22
|
+
super(...arguments);
|
|
23
|
+
this.id = 'pre-inspection-default';
|
|
24
|
+
this.type = 'pre-inspection';
|
|
25
|
+
this.priority = 0;
|
|
26
|
+
}
|
|
27
|
+
async execute(context) {
|
|
28
|
+
// Default pre-inspection logic
|
|
29
|
+
if (context.module) {
|
|
30
|
+
console.log(`Starting inspection of module: ${context.module.fullName || context.module.name}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.PreInspectionHook = PreInspectionHook;
|
|
35
|
+
/**
|
|
36
|
+
* Post-inspection hook - runs after module inspection
|
|
37
|
+
*/
|
|
38
|
+
class PostInspectionHook extends BaseHook {
|
|
39
|
+
constructor() {
|
|
40
|
+
super(...arguments);
|
|
41
|
+
this.id = 'post-inspection-default';
|
|
42
|
+
this.type = 'post-inspection';
|
|
43
|
+
this.priority = 0;
|
|
44
|
+
}
|
|
45
|
+
async execute(context) {
|
|
46
|
+
// Default post-inspection logic
|
|
47
|
+
if (context.module) {
|
|
48
|
+
console.log(`Completed inspection of module: ${context.module.fullName || context.module.name}`);
|
|
49
|
+
}
|
|
50
|
+
if (context.error) {
|
|
51
|
+
console.error(`Inspection failed with error: ${context.error.message}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.PostInspectionHook = PostInspectionHook;
|
|
56
|
+
/**
|
|
57
|
+
* Pre-load hook - runs before plugin/module loading
|
|
58
|
+
*/
|
|
59
|
+
class PreLoadHook extends BaseHook {
|
|
60
|
+
constructor() {
|
|
61
|
+
super(...arguments);
|
|
62
|
+
this.id = 'pre-load-default';
|
|
63
|
+
this.type = 'pre-load';
|
|
64
|
+
this.priority = 0;
|
|
65
|
+
}
|
|
66
|
+
async execute(context) {
|
|
67
|
+
// Default pre-load logic
|
|
68
|
+
console.log('Loading plugins and modules...');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.PreLoadHook = PreLoadHook;
|
|
72
|
+
/**
|
|
73
|
+
* Post-load hook - runs after plugin/module loading
|
|
74
|
+
*/
|
|
75
|
+
class PostLoadHook extends BaseHook {
|
|
76
|
+
constructor() {
|
|
77
|
+
super(...arguments);
|
|
78
|
+
this.id = 'post-load-default';
|
|
79
|
+
this.type = 'post-load';
|
|
80
|
+
this.priority = 0;
|
|
81
|
+
}
|
|
82
|
+
async execute(context) {
|
|
83
|
+
// Default post-load logic
|
|
84
|
+
console.log('Plugins and modules loaded successfully');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.PostLoadHook = PostLoadHook;
|
|
88
|
+
/**
|
|
89
|
+
* Hook manager for executing hooks with error handling
|
|
90
|
+
*/
|
|
91
|
+
class HookManager {
|
|
92
|
+
/**
|
|
93
|
+
* Execute a single hook with error handling
|
|
94
|
+
*/
|
|
95
|
+
async executeHook(hook, context) {
|
|
96
|
+
const startTime = Date.now();
|
|
97
|
+
try {
|
|
98
|
+
await hook.execute(context);
|
|
99
|
+
return {
|
|
100
|
+
success: true,
|
|
101
|
+
hookId: hook.id,
|
|
102
|
+
executionTime: Date.now() - startTime
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
107
|
+
return {
|
|
108
|
+
success: false,
|
|
109
|
+
hookId: hook.id,
|
|
110
|
+
error: err,
|
|
111
|
+
executionTime: Date.now() - startTime
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Execute multiple hooks in sequence
|
|
117
|
+
*/
|
|
118
|
+
async executeHooks(hooks, context) {
|
|
119
|
+
const results = [];
|
|
120
|
+
for (const hook of hooks) {
|
|
121
|
+
const result = await this.executeHook(hook, context);
|
|
122
|
+
results.push(result);
|
|
123
|
+
// If a hook fails, store the error in context but continue
|
|
124
|
+
if (!result.success && result.error) {
|
|
125
|
+
context.error = result.error;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return results;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Execute hooks with timeout
|
|
132
|
+
*/
|
|
133
|
+
async executeHooksWithTimeout(hooks, context, timeout = 5000) {
|
|
134
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
135
|
+
setTimeout(() => reject(new Error(`Hook execution timed out after ${timeout}ms`)), timeout);
|
|
136
|
+
});
|
|
137
|
+
const executionPromise = this.executeHooks(hooks, context);
|
|
138
|
+
try {
|
|
139
|
+
return await Promise.race([executionPromise, timeoutPromise]);
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
throw error;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
exports.HookManager = HookManager;
|
|
147
|
+
/**
|
|
148
|
+
* Global hook manager instance
|
|
149
|
+
*/
|
|
150
|
+
exports.hookManager = new HookManager();
|
|
151
|
+
//# sourceMappingURL=hook-system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-system.js","sourceRoot":"","sources":["../../src/utils/hook-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inspection Cache Utility
|
|
3
|
+
*
|
|
4
|
+
* Provides caching for module inspection results to improve performance.
|
|
5
|
+
* Supports in-memory caching with file change detection for cache invalidation.
|
|
6
|
+
*/
|
|
7
|
+
interface CacheOptions {
|
|
8
|
+
ttl?: number;
|
|
9
|
+
maxSize?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare class InspectionCache<T = any> {
|
|
12
|
+
private cache;
|
|
13
|
+
private ttl;
|
|
14
|
+
private maxSize;
|
|
15
|
+
private enabled;
|
|
16
|
+
constructor(options?: CacheOptions);
|
|
17
|
+
/**
|
|
18
|
+
* Get cached data if valid
|
|
19
|
+
*/
|
|
20
|
+
get(key: string, filePath?: string): T | null;
|
|
21
|
+
/**
|
|
22
|
+
* Set cache data
|
|
23
|
+
*/
|
|
24
|
+
set(key: string, data: T, filePath?: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Clear all cache entries
|
|
27
|
+
*/
|
|
28
|
+
clear(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Clear cache entries for a specific file
|
|
31
|
+
*/
|
|
32
|
+
clearFile(filePath: string): void;
|
|
33
|
+
/**
|
|
34
|
+
* Enable or disable caching
|
|
35
|
+
*/
|
|
36
|
+
setEnabled(enabled: boolean): void;
|
|
37
|
+
/**
|
|
38
|
+
* Check if caching is enabled
|
|
39
|
+
*/
|
|
40
|
+
isEnabled(): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Get cache statistics
|
|
43
|
+
*/
|
|
44
|
+
getStats(): {
|
|
45
|
+
size: number;
|
|
46
|
+
maxSize: number;
|
|
47
|
+
enabled: boolean;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Calculate file hash for change detection
|
|
51
|
+
*/
|
|
52
|
+
private getFileHash;
|
|
53
|
+
}
|
|
54
|
+
export declare const moduleInspectionCache: InspectionCache<any>;
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=inspection-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspection-cache.d.ts","sourceRoot":"","sources":["../../src/utils/inspection-cache.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,UAAU,YAAY;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,eAAe,CAAC,CAAC,GAAG,GAAG;IAClC,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAiB;gBAEpB,OAAO,GAAE,YAAiB;IAKtC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IA6B7C;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAuBlD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAYjC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAOlC;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,QAAQ,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;IAQ/D;;OAEG;IACH,OAAO,CAAC,WAAW;CAapB;AAGD,eAAO,MAAM,qBAAqB,sBAGhC,CAAC"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Inspection Cache Utility
|
|
4
|
+
*
|
|
5
|
+
* Provides caching for module inspection results to improve performance.
|
|
6
|
+
* Supports in-memory caching with file change detection for cache invalidation.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.moduleInspectionCache = exports.InspectionCache = void 0;
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
class InspectionCache {
|
|
45
|
+
constructor(options = {}) {
|
|
46
|
+
this.cache = new Map();
|
|
47
|
+
this.enabled = true;
|
|
48
|
+
this.ttl = options.ttl || 5 * 60 * 1000; // 5 minutes default
|
|
49
|
+
this.maxSize = options.maxSize || 100;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Get cached data if valid
|
|
53
|
+
*/
|
|
54
|
+
get(key, filePath) {
|
|
55
|
+
if (!this.enabled) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
const entry = this.cache.get(key);
|
|
59
|
+
if (!entry) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
// Check if entry has expired
|
|
63
|
+
const now = Date.now();
|
|
64
|
+
if (now - entry.timestamp > this.ttl) {
|
|
65
|
+
this.cache.delete(key);
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
// Check if file has changed (if filePath provided)
|
|
69
|
+
if (filePath && entry.filePath) {
|
|
70
|
+
const currentHash = this.getFileHash(filePath);
|
|
71
|
+
if (currentHash !== entry.fileHash) {
|
|
72
|
+
this.cache.delete(key);
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return entry.data;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Set cache data
|
|
80
|
+
*/
|
|
81
|
+
set(key, data, filePath) {
|
|
82
|
+
if (!this.enabled) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
// Enforce max size by removing oldest entries
|
|
86
|
+
if (this.cache.size >= this.maxSize) {
|
|
87
|
+
const firstKey = this.cache.keys().next().value;
|
|
88
|
+
if (firstKey) {
|
|
89
|
+
this.cache.delete(firstKey);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const entry = {
|
|
93
|
+
data,
|
|
94
|
+
timestamp: Date.now(),
|
|
95
|
+
fileHash: filePath ? this.getFileHash(filePath) : '',
|
|
96
|
+
filePath: filePath || ''
|
|
97
|
+
};
|
|
98
|
+
this.cache.set(key, entry);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Clear all cache entries
|
|
102
|
+
*/
|
|
103
|
+
clear() {
|
|
104
|
+
this.cache.clear();
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Clear cache entries for a specific file
|
|
108
|
+
*/
|
|
109
|
+
clearFile(filePath) {
|
|
110
|
+
const keysToDelete = [];
|
|
111
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
112
|
+
if (entry.filePath === filePath) {
|
|
113
|
+
keysToDelete.push(key);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
keysToDelete.forEach(key => this.cache.delete(key));
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Enable or disable caching
|
|
120
|
+
*/
|
|
121
|
+
setEnabled(enabled) {
|
|
122
|
+
this.enabled = enabled;
|
|
123
|
+
if (!enabled) {
|
|
124
|
+
this.clear();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Check if caching is enabled
|
|
129
|
+
*/
|
|
130
|
+
isEnabled() {
|
|
131
|
+
return this.enabled;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Get cache statistics
|
|
135
|
+
*/
|
|
136
|
+
getStats() {
|
|
137
|
+
return {
|
|
138
|
+
size: this.cache.size,
|
|
139
|
+
maxSize: this.maxSize,
|
|
140
|
+
enabled: this.enabled
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Calculate file hash for change detection
|
|
145
|
+
*/
|
|
146
|
+
getFileHash(filePath) {
|
|
147
|
+
try {
|
|
148
|
+
if (!fs.existsSync(filePath)) {
|
|
149
|
+
return '';
|
|
150
|
+
}
|
|
151
|
+
const stats = fs.statSync(filePath);
|
|
152
|
+
// Use mtime and size for quick hash (faster than reading entire file)
|
|
153
|
+
return `${stats.mtime.getTime()}-${stats.size}`;
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
return '';
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
exports.InspectionCache = InspectionCache;
|
|
161
|
+
// Global cache instance for module inspection
|
|
162
|
+
exports.moduleInspectionCache = new InspectionCache({
|
|
163
|
+
ttl: 5 * 60 * 1000, // 5 minutes
|
|
164
|
+
maxSize: 100
|
|
165
|
+
});
|
|
166
|
+
//# sourceMappingURL=inspection-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspection-cache.js","sourceRoot":"","sources":["../../src/utils/inspection-cache.ts"],"names":[],"mappings":"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"}
|