@mytechtoday/augment-extensions 0.2.0 → 0.5.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 +614 -39
- package/augment-extensions/coding-standards/bash/README.md +196 -0
- package/augment-extensions/coding-standards/bash/module.json +163 -0
- package/augment-extensions/coding-standards/bash/rules/naming-conventions.md +336 -0
- package/augment-extensions/coding-standards/bash/rules/universal-standards.md +289 -0
- package/augment-extensions/coding-standards/css/README.md +40 -0
- package/augment-extensions/coding-standards/css/examples/css-examples.css +550 -0
- package/augment-extensions/coding-standards/css/module.json +44 -0
- package/augment-extensions/coding-standards/css/rules/css-modern-features.md +448 -0
- package/augment-extensions/coding-standards/css/rules/css-standards.md +492 -0
- package/augment-extensions/coding-standards/html/README.md +40 -0
- package/augment-extensions/coding-standards/html/examples/html-examples.html +267 -0
- package/augment-extensions/coding-standards/html/examples/responsive-layout.html +505 -0
- package/augment-extensions/coding-standards/html/module.json +44 -0
- package/augment-extensions/coding-standards/html/rules/html-standards.md +349 -0
- package/augment-extensions/coding-standards/html-css-js/README.md +194 -0
- package/augment-extensions/coding-standards/html-css-js/examples/async-examples.js +487 -0
- package/augment-extensions/coding-standards/html-css-js/examples/css-examples.css +550 -0
- package/augment-extensions/coding-standards/html-css-js/examples/dom-examples.js +667 -0
- package/augment-extensions/coding-standards/html-css-js/examples/html-examples.html +267 -0
- package/augment-extensions/coding-standards/html-css-js/examples/javascript-examples.js +612 -0
- package/augment-extensions/coding-standards/html-css-js/examples/responsive-layout.html +505 -0
- package/augment-extensions/coding-standards/html-css-js/module.json +48 -0
- package/augment-extensions/coding-standards/html-css-js/rules/async-patterns.md +515 -0
- package/augment-extensions/coding-standards/html-css-js/rules/css-modern-features.md +448 -0
- package/augment-extensions/coding-standards/html-css-js/rules/css-standards.md +492 -0
- package/augment-extensions/coding-standards/html-css-js/rules/dom-manipulation.md +439 -0
- package/augment-extensions/coding-standards/html-css-js/rules/html-standards.md +349 -0
- package/augment-extensions/coding-standards/html-css-js/rules/javascript-standards.md +486 -0
- package/augment-extensions/coding-standards/html-css-js/rules/performance.md +463 -0
- package/augment-extensions/coding-standards/html-css-js/rules/tooling.md +543 -0
- package/augment-extensions/coding-standards/js/README.md +46 -0
- package/augment-extensions/coding-standards/js/examples/async-examples.js +487 -0
- package/augment-extensions/coding-standards/js/examples/dom-examples.js +667 -0
- package/augment-extensions/coding-standards/js/examples/javascript-examples.js +612 -0
- package/augment-extensions/coding-standards/js/module.json +49 -0
- package/augment-extensions/coding-standards/js/rules/async-patterns.md +515 -0
- package/augment-extensions/coding-standards/js/rules/dom-manipulation.md +439 -0
- package/augment-extensions/coding-standards/js/rules/javascript-standards.md +486 -0
- package/augment-extensions/coding-standards/js/rules/performance.md +463 -0
- package/augment-extensions/coding-standards/js/rules/tooling.md +543 -0
- package/augment-extensions/coding-standards/php/README.md +248 -0
- package/augment-extensions/coding-standards/php/examples/api-endpoint-example.php +204 -0
- package/augment-extensions/coding-standards/php/examples/cli-command-example.php +206 -0
- package/augment-extensions/coding-standards/php/examples/legacy-refactoring-example.php +234 -0
- package/augment-extensions/coding-standards/php/examples/web-application-example.php +211 -0
- package/augment-extensions/coding-standards/php/examples/woocommerce-extension-example.php +215 -0
- package/augment-extensions/coding-standards/php/examples/wordpress-plugin-example.php +189 -0
- package/augment-extensions/coding-standards/php/module.json +166 -0
- package/augment-extensions/coding-standards/php/rules/api-development.md +480 -0
- package/augment-extensions/coding-standards/php/rules/category-configuration.md +332 -0
- package/augment-extensions/coding-standards/php/rules/cli-tools.md +472 -0
- package/augment-extensions/coding-standards/php/rules/cms-integration.md +561 -0
- package/augment-extensions/coding-standards/php/rules/code-quality.md +402 -0
- package/augment-extensions/coding-standards/php/rules/documentation.md +425 -0
- package/augment-extensions/coding-standards/php/rules/ecommerce.md +627 -0
- package/augment-extensions/coding-standards/php/rules/error-handling.md +336 -0
- package/augment-extensions/coding-standards/php/rules/legacy-migration.md +677 -0
- package/augment-extensions/coding-standards/php/rules/naming-conventions.md +279 -0
- package/augment-extensions/coding-standards/php/rules/performance.md +392 -0
- package/augment-extensions/coding-standards/php/rules/psr-standards.md +186 -0
- package/augment-extensions/coding-standards/php/rules/security.md +358 -0
- package/augment-extensions/coding-standards/php/rules/testing.md +403 -0
- package/augment-extensions/coding-standards/php/rules/type-declarations.md +331 -0
- package/augment-extensions/coding-standards/php/rules/web-applications.md +426 -0
- package/augment-extensions/coding-standards/powershell/README.md +154 -0
- package/augment-extensions/coding-standards/powershell/examples/admin-example.ps1 +272 -0
- package/augment-extensions/coding-standards/powershell/examples/automation-example.ps1 +173 -0
- package/augment-extensions/coding-standards/powershell/examples/cloud-example.ps1 +243 -0
- package/augment-extensions/coding-standards/powershell/examples/cross-platform-example.ps1 +297 -0
- package/augment-extensions/coding-standards/powershell/examples/dsc-example.ps1 +224 -0
- package/augment-extensions/coding-standards/powershell/examples/legacy-migration-example.ps1 +340 -0
- package/augment-extensions/coding-standards/powershell/examples/module-example.psm1 +255 -0
- package/augment-extensions/coding-standards/powershell/module.json +165 -0
- package/augment-extensions/coding-standards/powershell/rules/administrative-tools.md +439 -0
- package/augment-extensions/coding-standards/powershell/rules/automation-scripts.md +240 -0
- package/augment-extensions/coding-standards/powershell/rules/cloud-orchestration.md +384 -0
- package/augment-extensions/coding-standards/powershell/rules/configuration-schema.md +383 -0
- package/augment-extensions/coding-standards/powershell/rules/cross-platform-scripts.md +482 -0
- package/augment-extensions/coding-standards/powershell/rules/dsc-configurations.md +296 -0
- package/augment-extensions/coding-standards/powershell/rules/error-handling.md +314 -0
- package/augment-extensions/coding-standards/powershell/rules/legacy-migrations.md +466 -0
- package/augment-extensions/coding-standards/powershell/rules/modules-functions.md +244 -0
- package/augment-extensions/coding-standards/powershell/rules/naming-conventions.md +266 -0
- package/augment-extensions/coding-standards/powershell/rules/performance-optimization.md +209 -0
- package/augment-extensions/coding-standards/powershell/rules/security-practices.md +314 -0
- package/augment-extensions/coding-standards/powershell/rules/testing-guidelines.md +268 -0
- package/augment-extensions/coding-standards/powershell/rules/universal-standards.md +197 -0
- package/augment-extensions/coding-standards/python/README.md +12 -8
- package/augment-extensions/coding-standards/python/examples/best-practices.py +373 -0
- package/augment-extensions/coding-standards/python/module.json +8 -4
- package/augment-extensions/coding-standards/python/rules/async-patterns.md +884 -0
- package/augment-extensions/coding-standards/python/rules/documentation.md +831 -0
- package/augment-extensions/coding-standards/python/rules/error-handling.md +855 -68
- package/augment-extensions/coding-standards/python/rules/testing.md +409 -0
- package/augment-extensions/coding-standards/python/rules/tooling.md +446 -0
- package/augment-extensions/coding-standards/python/rules/type-hints.md +115 -50
- package/augment-extensions/collections/html-css-js/README.md +82 -0
- package/augment-extensions/collections/html-css-js/collection.json +41 -0
- package/augment-extensions/domain-rules/database/README.md +161 -0
- package/augment-extensions/domain-rules/database/examples/flat-database-example.md +793 -0
- package/augment-extensions/domain-rules/database/examples/hybrid-database-example.md +1132 -0
- package/augment-extensions/domain-rules/database/examples/nosql-document-example.md +868 -0
- package/augment-extensions/domain-rules/database/examples/nosql-graph-example.md +805 -0
- package/augment-extensions/domain-rules/database/examples/relational-schema-example.md +621 -0
- package/augment-extensions/domain-rules/database/examples/vector-database-example.md +965 -0
- package/augment-extensions/domain-rules/database/module.json +28 -0
- package/augment-extensions/domain-rules/database/rules/flat-databases.md +624 -0
- package/augment-extensions/domain-rules/database/rules/nosql-databases.md +588 -0
- package/augment-extensions/domain-rules/database/rules/nosql-document-stores.md +856 -0
- package/augment-extensions/domain-rules/database/rules/nosql-graph-databases.md +778 -0
- package/augment-extensions/domain-rules/database/rules/nosql-key-value-stores.md +963 -0
- package/augment-extensions/domain-rules/database/rules/performance-optimization.md +1076 -0
- package/augment-extensions/domain-rules/database/rules/relational-databases.md +697 -0
- package/augment-extensions/domain-rules/database/rules/relational-indexing.md +671 -0
- package/augment-extensions/domain-rules/database/rules/relational-query-optimization.md +607 -0
- package/augment-extensions/domain-rules/database/rules/relational-schema-design.md +907 -0
- package/augment-extensions/domain-rules/database/rules/relational-transactions.md +783 -0
- package/augment-extensions/domain-rules/database/rules/security-standards.md +980 -0
- package/augment-extensions/domain-rules/database/rules/universal-best-practices.md +485 -0
- package/augment-extensions/domain-rules/database/rules/vector-databases.md +521 -0
- package/augment-extensions/domain-rules/database/rules/vector-embeddings.md +858 -0
- package/augment-extensions/domain-rules/database/rules/vector-indexing.md +934 -0
- 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/domain-rules/mcp/README.md +150 -0
- package/augment-extensions/domain-rules/mcp/examples/compressed-example.md +522 -0
- package/augment-extensions/domain-rules/mcp/examples/graph-augmented-example.md +520 -0
- package/augment-extensions/domain-rules/mcp/examples/hybrid-example.md +570 -0
- package/augment-extensions/domain-rules/mcp/examples/state-based-example.md +427 -0
- package/augment-extensions/domain-rules/mcp/examples/token-based-example.md +435 -0
- package/augment-extensions/domain-rules/mcp/examples/vector-based-example.md +502 -0
- package/augment-extensions/domain-rules/mcp/module.json +49 -0
- package/augment-extensions/domain-rules/mcp/rules/compressed-mcp.md +595 -0
- package/augment-extensions/domain-rules/mcp/rules/configuration.md +345 -0
- package/augment-extensions/domain-rules/mcp/rules/graph-augmented-mcp.md +687 -0
- package/augment-extensions/domain-rules/mcp/rules/hybrid-mcp.md +636 -0
- package/augment-extensions/domain-rules/mcp/rules/state-based-mcp.md +484 -0
- package/augment-extensions/domain-rules/mcp/rules/testing-validation.md +360 -0
- package/augment-extensions/domain-rules/mcp/rules/token-based-mcp.md +393 -0
- package/augment-extensions/domain-rules/mcp/rules/universal-rules.md +194 -0
- package/augment-extensions/domain-rules/mcp/rules/vector-based-mcp.md +625 -0
- package/augment-extensions/workflows/beads/module.json +4 -3
- 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/workflows/database/README.md +195 -0
- package/augment-extensions/workflows/database/ai-prompt-testing.md +295 -0
- package/augment-extensions/workflows/database/examples/migration-example.md +498 -0
- package/augment-extensions/workflows/database/examples/optimization-example.md +496 -0
- package/augment-extensions/workflows/database/examples/schema-design-example.md +444 -0
- package/augment-extensions/workflows/database/module.json +42 -0
- package/augment-extensions/workflows/database/rules/data-migration.md +249 -0
- package/augment-extensions/workflows/database/rules/documentation-standards.md +339 -0
- package/augment-extensions/workflows/database/rules/migration-workflow.md +352 -0
- package/augment-extensions/workflows/database/rules/optimization-workflow.md +435 -0
- package/augment-extensions/workflows/database/rules/schema-design-workflow.md +535 -0
- package/augment-extensions/workflows/database/rules/testing-patterns.md +305 -0
- package/augment-extensions/workflows/database/rules/workflow.md +458 -0
- package/augment-extensions/workflows/openspec/module.json +4 -3
- package/augment-extensions/writing-standards/screenplay/README.md +300 -0
- 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/aaa-hollywood-scene.fountain +164 -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 +124 -0
- 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/universal-formatting.md +339 -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/MODULES.md +302 -0
- package/cli/dist/cli.js +168 -10
- package/cli/dist/cli.js.map +1 -1
- package/cli/dist/commands/catalog.d.ts +13 -0
- package/cli/dist/commands/catalog.d.ts.map +1 -0
- package/cli/dist/commands/catalog.js +104 -0
- package/cli/dist/commands/catalog.js.map +1 -0
- package/cli/dist/commands/gui.d.ts +6 -0
- package/cli/dist/commands/gui.d.ts.map +1 -0
- package/cli/dist/commands/gui.js +211 -0
- package/cli/dist/commands/gui.js.map +1 -0
- package/cli/dist/commands/init.d.ts.map +1 -1
- package/cli/dist/commands/init.js +12 -0
- package/cli/dist/commands/init.js.map +1 -1
- package/cli/dist/commands/install-rules.d.ts +14 -0
- package/cli/dist/commands/install-rules.d.ts.map +1 -0
- package/cli/dist/commands/install-rules.js +127 -0
- package/cli/dist/commands/install-rules.js.map +1 -0
- package/cli/dist/commands/link.d.ts.map +1 -1
- package/cli/dist/commands/link.js +9 -11
- package/cli/dist/commands/link.js.map +1 -1
- package/cli/dist/commands/list.d.ts.map +1 -1
- package/cli/dist/commands/list.js +11 -28
- package/cli/dist/commands/list.js.map +1 -1
- package/cli/dist/commands/mcp.d.ts +48 -0
- package/cli/dist/commands/mcp.d.ts.map +1 -0
- package/cli/dist/commands/mcp.js +229 -0
- package/cli/dist/commands/mcp.js.map +1 -0
- package/cli/dist/commands/self-remove.d.ts +7 -0
- package/cli/dist/commands/self-remove.d.ts.map +1 -0
- package/cli/dist/commands/self-remove.js +179 -0
- package/cli/dist/commands/self-remove.js.map +1 -0
- package/cli/dist/commands/show.d.ts +19 -0
- package/cli/dist/commands/show.d.ts.map +1 -1
- package/cli/dist/commands/show.js +478 -63
- package/cli/dist/commands/show.js.map +1 -1
- package/cli/dist/commands/skill.d.ts +67 -0
- package/cli/dist/commands/skill.d.ts.map +1 -0
- package/cli/dist/commands/skill.js +513 -0
- package/cli/dist/commands/skill.js.map +1 -0
- package/cli/dist/commands/unlink.d.ts +6 -0
- package/cli/dist/commands/unlink.d.ts.map +1 -0
- package/cli/dist/commands/unlink.js +115 -0
- package/cli/dist/commands/unlink.js.map +1 -0
- package/cli/dist/commands/validate.d.ts +6 -0
- package/cli/dist/commands/validate.d.ts.map +1 -0
- package/cli/dist/commands/validate.js +159 -0
- package/cli/dist/commands/validate.js.map +1 -0
- 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/catalog-sync.d.ts +22 -0
- package/cli/dist/utils/catalog-sync.d.ts.map +1 -0
- package/cli/dist/utils/catalog-sync.js +157 -0
- package/cli/dist/utils/catalog-sync.js.map +1 -0
- package/cli/dist/utils/character-count.d.ts +56 -0
- package/cli/dist/utils/character-count.d.ts.map +1 -0
- package/cli/dist/utils/character-count.js +190 -0
- package/cli/dist/utils/character-count.js.map +1 -0
- package/cli/dist/utils/documentation-validator.d.ts +18 -0
- package/cli/dist/utils/documentation-validator.d.ts.map +1 -0
- package/cli/dist/utils/documentation-validator.js +233 -0
- package/cli/dist/utils/documentation-validator.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/install-rules.d.ts +32 -0
- package/cli/dist/utils/install-rules.d.ts.map +1 -0
- package/cli/dist/utils/install-rules.js +375 -0
- package/cli/dist/utils/install-rules.js.map +1 -0
- package/cli/dist/utils/mcp-integration.d.ts +70 -0
- package/cli/dist/utils/mcp-integration.d.ts.map +1 -0
- package/cli/dist/utils/mcp-integration.js +292 -0
- package/cli/dist/utils/mcp-integration.js.map +1 -0
- package/cli/dist/utils/module-system.d.ts +232 -0
- package/cli/dist/utils/module-system.d.ts.map +1 -0
- package/cli/dist/utils/module-system.js +900 -0
- package/cli/dist/utils/module-system.js.map +1 -0
- package/cli/dist/utils/modules-catalog.d.ts +33 -0
- package/cli/dist/utils/modules-catalog.d.ts.map +1 -0
- package/cli/dist/utils/modules-catalog.js +163 -0
- package/cli/dist/utils/modules-catalog.js.map +1 -0
- package/cli/dist/utils/rule-install-hooks.d.ts +19 -0
- package/cli/dist/utils/rule-install-hooks.d.ts.map +1 -0
- package/cli/dist/utils/rule-install-hooks.js +224 -0
- package/cli/dist/utils/rule-install-hooks.js.map +1 -0
- package/cli/dist/utils/skill-system.d.ts +95 -0
- package/cli/dist/utils/skill-system.d.ts.map +1 -0
- package/cli/dist/utils/skill-system.js +313 -0
- package/cli/dist/utils/skill-system.js.map +1 -0
- package/modules.md +559 -105
- package/package.json +17 -6
|
@@ -0,0 +1,595 @@
|
|
|
1
|
+
# Compressed MCP Guidelines
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
**Compressed MCP** uses context compression techniques to maximize information density within token budgets. This enables long-term memory and efficient context management.
|
|
6
|
+
|
|
7
|
+
**Key Challenge**: Balancing compression ratio with information preservation while maintaining semantic coherence and retrieval quality.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. Summarization Techniques
|
|
12
|
+
|
|
13
|
+
### Extractive Summarization
|
|
14
|
+
|
|
15
|
+
Select key sentences:
|
|
16
|
+
|
|
17
|
+
```python
|
|
18
|
+
from sklearn.feature_extraction.text import TfidfVectorizer
|
|
19
|
+
import numpy as np
|
|
20
|
+
|
|
21
|
+
def extractive_summarize(text: str, num_sentences=5):
|
|
22
|
+
"""Extract key sentences using TF-IDF"""
|
|
23
|
+
sentences = text.split('. ')
|
|
24
|
+
|
|
25
|
+
if len(sentences) <= num_sentences:
|
|
26
|
+
return text
|
|
27
|
+
|
|
28
|
+
# Compute TF-IDF
|
|
29
|
+
vectorizer = TfidfVectorizer()
|
|
30
|
+
tfidf_matrix = vectorizer.fit_transform(sentences)
|
|
31
|
+
|
|
32
|
+
# Score sentences by sum of TF-IDF values
|
|
33
|
+
scores = np.array(tfidf_matrix.sum(axis=1)).flatten()
|
|
34
|
+
|
|
35
|
+
# Get top sentences
|
|
36
|
+
top_indices = np.argsort(scores)[-num_sentences:]
|
|
37
|
+
top_indices = sorted(top_indices) # Maintain order
|
|
38
|
+
|
|
39
|
+
summary = '. '.join([sentences[i] for i in top_indices])
|
|
40
|
+
return summary
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Abstractive Summarization
|
|
44
|
+
|
|
45
|
+
Generate new summary:
|
|
46
|
+
|
|
47
|
+
```python
|
|
48
|
+
def abstractive_summarize(text: str, max_tokens=200):
|
|
49
|
+
"""Generate abstractive summary using LLM"""
|
|
50
|
+
prompt = f"""
|
|
51
|
+
Summarize the following text in {max_tokens} tokens or less.
|
|
52
|
+
Preserve key information and maintain coherence.
|
|
53
|
+
|
|
54
|
+
Text: {text}
|
|
55
|
+
|
|
56
|
+
Summary:
|
|
57
|
+
"""
|
|
58
|
+
|
|
59
|
+
response = llm_call(prompt, max_tokens=max_tokens)
|
|
60
|
+
return response.strip()
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Hierarchical Summarization
|
|
64
|
+
|
|
65
|
+
Multi-level compression:
|
|
66
|
+
|
|
67
|
+
```python
|
|
68
|
+
def hierarchical_summarize(text: str, levels=3):
|
|
69
|
+
"""Create multi-level summaries"""
|
|
70
|
+
summaries = {'original': text}
|
|
71
|
+
current_text = text
|
|
72
|
+
|
|
73
|
+
compression_ratios = [0.5, 0.4, 0.25] # 50%, 40%, 25% of previous
|
|
74
|
+
|
|
75
|
+
for i, ratio in enumerate(compression_ratios[:levels]):
|
|
76
|
+
current_tokens = count_tokens(current_text)
|
|
77
|
+
target_tokens = int(current_tokens * ratio)
|
|
78
|
+
|
|
79
|
+
summary = abstractive_summarize(current_text, max_tokens=target_tokens)
|
|
80
|
+
summaries[f'level_{i+1}'] = summary
|
|
81
|
+
current_text = summary
|
|
82
|
+
|
|
83
|
+
return summaries
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Best Practices**:
|
|
87
|
+
- Use extractive for factual content
|
|
88
|
+
- Use abstractive for narrative content
|
|
89
|
+
- Use hierarchical for long documents
|
|
90
|
+
- Validate summary quality
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 2. Key-Value Memory
|
|
95
|
+
|
|
96
|
+
### Key-Value Store
|
|
97
|
+
|
|
98
|
+
Store compressed facts:
|
|
99
|
+
|
|
100
|
+
```python
|
|
101
|
+
class KeyValueMemory:
|
|
102
|
+
"""Key-value memory for compressed facts"""
|
|
103
|
+
|
|
104
|
+
def __init__(self):
|
|
105
|
+
self.memory = {}
|
|
106
|
+
|
|
107
|
+
def extract_facts(self, text: str):
|
|
108
|
+
"""Extract key-value facts from text"""
|
|
109
|
+
prompt = f"""
|
|
110
|
+
Extract key facts from the text as key-value pairs.
|
|
111
|
+
|
|
112
|
+
Text: {text}
|
|
113
|
+
|
|
114
|
+
Return as JSON object: {{"key1": "value1", "key2": "value2", ...}}
|
|
115
|
+
"""
|
|
116
|
+
|
|
117
|
+
response = llm_call(prompt)
|
|
118
|
+
facts = json.loads(response)
|
|
119
|
+
|
|
120
|
+
return facts
|
|
121
|
+
|
|
122
|
+
def add(self, text: str):
|
|
123
|
+
"""Add text to memory"""
|
|
124
|
+
facts = self.extract_facts(text)
|
|
125
|
+
self.memory.update(facts)
|
|
126
|
+
|
|
127
|
+
def retrieve(self, query: str, k=5):
|
|
128
|
+
"""Retrieve relevant facts"""
|
|
129
|
+
# Compute relevance scores
|
|
130
|
+
query_embedding = generate_embeddings([query])[0]
|
|
131
|
+
|
|
132
|
+
scored_facts = []
|
|
133
|
+
for key, value in self.memory.items():
|
|
134
|
+
fact_text = f"{key}: {value}"
|
|
135
|
+
fact_embedding = generate_embeddings([fact_text])[0]
|
|
136
|
+
score = cosine_similarity(query_embedding, fact_embedding)
|
|
137
|
+
scored_facts.append((key, value, score))
|
|
138
|
+
|
|
139
|
+
# Return top-k
|
|
140
|
+
scored_facts.sort(key=lambda x: x[2], reverse=True)
|
|
141
|
+
return [(k, v) for k, v, s in scored_facts[:k]]
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**Best Practices**:
|
|
145
|
+
- Extract atomic facts
|
|
146
|
+
- Use consistent key naming
|
|
147
|
+
- Index keys for fast retrieval
|
|
148
|
+
- Deduplicate facts
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 4. Context Distillation
|
|
153
|
+
|
|
154
|
+
### Progressive Distillation
|
|
155
|
+
|
|
156
|
+
Iteratively compress context:
|
|
157
|
+
|
|
158
|
+
```python
|
|
159
|
+
def progressive_distillation(text: str, target_tokens=500, iterations=3):
|
|
160
|
+
"""Progressively distill text to target size"""
|
|
161
|
+
current_text = text
|
|
162
|
+
current_tokens = count_tokens(current_text)
|
|
163
|
+
|
|
164
|
+
for i in range(iterations):
|
|
165
|
+
if current_tokens <= target_tokens:
|
|
166
|
+
break
|
|
167
|
+
|
|
168
|
+
# Calculate compression ratio for this iteration
|
|
169
|
+
ratio = (target_tokens / current_tokens) ** (1 / (iterations - i))
|
|
170
|
+
target_for_iteration = int(current_tokens * ratio)
|
|
171
|
+
|
|
172
|
+
# Compress
|
|
173
|
+
prompt = f"""
|
|
174
|
+
Compress the following text to approximately {target_for_iteration} tokens.
|
|
175
|
+
Preserve the most important information.
|
|
176
|
+
|
|
177
|
+
Text: {current_text}
|
|
178
|
+
|
|
179
|
+
Compressed:
|
|
180
|
+
"""
|
|
181
|
+
|
|
182
|
+
current_text = llm_call(prompt, max_tokens=target_for_iteration)
|
|
183
|
+
current_tokens = count_tokens(current_text)
|
|
184
|
+
|
|
185
|
+
return current_text
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Selective Distillation
|
|
189
|
+
|
|
190
|
+
Compress based on importance:
|
|
191
|
+
|
|
192
|
+
```python
|
|
193
|
+
def selective_distillation(text: str, importance_threshold=0.7):
|
|
194
|
+
"""Distill text by removing low-importance content"""
|
|
195
|
+
sentences = text.split('. ')
|
|
196
|
+
|
|
197
|
+
# Score importance of each sentence
|
|
198
|
+
prompt = f"""
|
|
199
|
+
Rate the importance of each sentence on a scale of 0-1.
|
|
200
|
+
|
|
201
|
+
Sentences:
|
|
202
|
+
{chr(10).join(f"{i+1}. {s}" for i, s in enumerate(sentences))}
|
|
203
|
+
|
|
204
|
+
Return as JSON array: [0.9, 0.5, 0.8, ...]
|
|
205
|
+
"""
|
|
206
|
+
|
|
207
|
+
response = llm_call(prompt)
|
|
208
|
+
scores = json.loads(response)
|
|
209
|
+
|
|
210
|
+
# Keep only important sentences
|
|
211
|
+
important_sentences = [
|
|
212
|
+
sentences[i] for i, score in enumerate(scores)
|
|
213
|
+
if score >= importance_threshold
|
|
214
|
+
]
|
|
215
|
+
|
|
216
|
+
return '. '.join(important_sentences)
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Lossy Compression
|
|
220
|
+
|
|
221
|
+
Trade accuracy for compression:
|
|
222
|
+
|
|
223
|
+
```python
|
|
224
|
+
def lossy_compress(text: str, compression_level='medium'):
|
|
225
|
+
"""Apply lossy compression"""
|
|
226
|
+
levels = {
|
|
227
|
+
'low': {'ratio': 0.7, 'detail': 'high'},
|
|
228
|
+
'medium': {'ratio': 0.4, 'detail': 'medium'},
|
|
229
|
+
'high': {'ratio': 0.2, 'detail': 'low'}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
config = levels[compression_level]
|
|
233
|
+
target_tokens = int(count_tokens(text) * config['ratio'])
|
|
234
|
+
|
|
235
|
+
prompt = f"""
|
|
236
|
+
Compress the text to {target_tokens} tokens with {config['detail']} detail level.
|
|
237
|
+
Focus on key information, omit minor details.
|
|
238
|
+
|
|
239
|
+
Text: {text}
|
|
240
|
+
|
|
241
|
+
Compressed:
|
|
242
|
+
"""
|
|
243
|
+
|
|
244
|
+
return llm_call(prompt, max_tokens=target_tokens)
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**Best Practices**:
|
|
248
|
+
- Use progressive distillation for gradual compression
|
|
249
|
+
- Use selective distillation to preserve important content
|
|
250
|
+
- Use lossy compression when high compression is needed
|
|
251
|
+
- Monitor information loss
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## 5. Compression Strategies
|
|
256
|
+
|
|
257
|
+
### Temporal Compression
|
|
258
|
+
|
|
259
|
+
Compress older content more aggressively:
|
|
260
|
+
|
|
261
|
+
```python
|
|
262
|
+
from datetime import datetime, timedelta
|
|
263
|
+
|
|
264
|
+
class TemporalCompressor:
|
|
265
|
+
"""Compress content based on age"""
|
|
266
|
+
|
|
267
|
+
def __init__(self):
|
|
268
|
+
self.memory = []
|
|
269
|
+
|
|
270
|
+
def add(self, text: str):
|
|
271
|
+
"""Add text with timestamp"""
|
|
272
|
+
self.memory.append({
|
|
273
|
+
'text': text,
|
|
274
|
+
'timestamp': datetime.now(),
|
|
275
|
+
'compressed': None
|
|
276
|
+
})
|
|
277
|
+
|
|
278
|
+
def compress_by_age(self):
|
|
279
|
+
"""Compress based on age"""
|
|
280
|
+
now = datetime.now()
|
|
281
|
+
|
|
282
|
+
for item in self.memory:
|
|
283
|
+
age_days = (now - item['timestamp']).days
|
|
284
|
+
|
|
285
|
+
if age_days < 1:
|
|
286
|
+
# Recent: no compression
|
|
287
|
+
item['compressed'] = item['text']
|
|
288
|
+
elif age_days < 7:
|
|
289
|
+
# 1-7 days: light compression (70%)
|
|
290
|
+
item['compressed'] = lossy_compress(item['text'], 'low')
|
|
291
|
+
elif age_days < 30:
|
|
292
|
+
# 7-30 days: medium compression (40%)
|
|
293
|
+
item['compressed'] = lossy_compress(item['text'], 'medium')
|
|
294
|
+
else:
|
|
295
|
+
# 30+ days: high compression (20%)
|
|
296
|
+
item['compressed'] = lossy_compress(item['text'], 'high')
|
|
297
|
+
|
|
298
|
+
def retrieve(self, query: str, token_budget=2048):
|
|
299
|
+
"""Retrieve compressed content within budget"""
|
|
300
|
+
self.compress_by_age()
|
|
301
|
+
|
|
302
|
+
# Score relevance
|
|
303
|
+
query_embedding = generate_embeddings([query])[0]
|
|
304
|
+
scored_items = []
|
|
305
|
+
|
|
306
|
+
for item in self.memory:
|
|
307
|
+
text = item['compressed'] or item['text']
|
|
308
|
+
embedding = generate_embeddings([text])[0]
|
|
309
|
+
score = cosine_similarity(query_embedding, embedding)
|
|
310
|
+
scored_items.append((item, score))
|
|
311
|
+
|
|
312
|
+
# Select within budget
|
|
313
|
+
scored_items.sort(key=lambda x: x[1], reverse=True)
|
|
314
|
+
selected = []
|
|
315
|
+
total_tokens = 0
|
|
316
|
+
|
|
317
|
+
for item, score in scored_items:
|
|
318
|
+
text = item['compressed'] or item['text']
|
|
319
|
+
tokens = count_tokens(text)
|
|
320
|
+
|
|
321
|
+
if total_tokens + tokens <= token_budget:
|
|
322
|
+
selected.append(text)
|
|
323
|
+
total_tokens += tokens
|
|
324
|
+
else:
|
|
325
|
+
break
|
|
326
|
+
|
|
327
|
+
return selected
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Adaptive Compression
|
|
331
|
+
|
|
332
|
+
Adjust compression based on usage:
|
|
333
|
+
|
|
334
|
+
```python
|
|
335
|
+
class AdaptiveCompressor:
|
|
336
|
+
"""Adaptively compress based on access patterns"""
|
|
337
|
+
|
|
338
|
+
def __init__(self):
|
|
339
|
+
self.memory = {}
|
|
340
|
+
|
|
341
|
+
def add(self, key: str, text: str):
|
|
342
|
+
"""Add text to memory"""
|
|
343
|
+
self.memory[key] = {
|
|
344
|
+
'original': text,
|
|
345
|
+
'compressed': None,
|
|
346
|
+
'access_count': 0,
|
|
347
|
+
'last_accessed': datetime.now()
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
def access(self, key: str):
|
|
351
|
+
"""Access and update stats"""
|
|
352
|
+
if key in self.memory:
|
|
353
|
+
self.memory[key]['access_count'] += 1
|
|
354
|
+
self.memory[key]['last_accessed'] = datetime.now()
|
|
355
|
+
return self.memory[key]['compressed'] or self.memory[key]['original']
|
|
356
|
+
return None
|
|
357
|
+
|
|
358
|
+
def compress_all(self):
|
|
359
|
+
"""Compress based on access patterns"""
|
|
360
|
+
for key, item in self.memory.items():
|
|
361
|
+
# Frequently accessed: light compression
|
|
362
|
+
if item['access_count'] > 10:
|
|
363
|
+
compression_level = 'low'
|
|
364
|
+
# Moderately accessed: medium compression
|
|
365
|
+
elif item['access_count'] > 3:
|
|
366
|
+
compression_level = 'medium'
|
|
367
|
+
# Rarely accessed: high compression
|
|
368
|
+
else:
|
|
369
|
+
compression_level = 'high'
|
|
370
|
+
|
|
371
|
+
item['compressed'] = lossy_compress(item['original'], compression_level)
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
**Best Practices**:
|
|
375
|
+
- Compress older content more aggressively
|
|
376
|
+
- Preserve frequently accessed content
|
|
377
|
+
- Adjust compression based on usage patterns
|
|
378
|
+
- Monitor compression ratios
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
## 6. Best Practices
|
|
383
|
+
|
|
384
|
+
### DO
|
|
385
|
+
|
|
386
|
+
✅ **Use hierarchical summarization**: Multiple compression levels
|
|
387
|
+
✅ **Extract key-value facts**: Atomic information
|
|
388
|
+
✅ **Apply temporal compression**: Age-based compression
|
|
389
|
+
✅ **Monitor compression ratios**: Track information loss
|
|
390
|
+
✅ **Validate compressed content**: Ensure quality
|
|
391
|
+
✅ **Combine techniques**: Summarization + key-value + gist
|
|
392
|
+
✅ **Cache compressed results**: Avoid recomputation
|
|
393
|
+
✅ **Use adaptive compression**: Based on access patterns
|
|
394
|
+
|
|
395
|
+
### DON'T
|
|
396
|
+
|
|
397
|
+
❌ **Don't over-compress**: Balance ratio vs quality
|
|
398
|
+
❌ **Don't lose critical information**: Validate preservation
|
|
399
|
+
❌ **Don't compress everything equally**: Prioritize by importance
|
|
400
|
+
❌ **Don't forget original text**: Maintain mapping
|
|
401
|
+
❌ **Don't ignore compression artifacts**: Monitor quality
|
|
402
|
+
❌ **Don't use single compression level**: Adapt to content
|
|
403
|
+
❌ **Don't compress without validation**: Test quality
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## 7. Common Pitfalls
|
|
408
|
+
|
|
409
|
+
### Information Loss
|
|
410
|
+
|
|
411
|
+
**Problem**: Critical information lost in compression
|
|
412
|
+
|
|
413
|
+
**Solution**:
|
|
414
|
+
- Use extractive summarization for facts
|
|
415
|
+
- Validate compressed content
|
|
416
|
+
- Maintain importance scores
|
|
417
|
+
- Keep original text accessible
|
|
418
|
+
|
|
419
|
+
### Poor Compression Ratio
|
|
420
|
+
|
|
421
|
+
**Problem**: Compression doesn't save enough tokens
|
|
422
|
+
|
|
423
|
+
**Solution**:
|
|
424
|
+
- Use abstractive summarization
|
|
425
|
+
- Apply progressive distillation
|
|
426
|
+
- Combine multiple techniques
|
|
427
|
+
- Use gist tokens for extreme compression
|
|
428
|
+
|
|
429
|
+
### Semantic Drift
|
|
430
|
+
|
|
431
|
+
**Problem**: Compressed content loses original meaning
|
|
432
|
+
|
|
433
|
+
**Solution**:
|
|
434
|
+
- Validate semantic similarity
|
|
435
|
+
- Use hierarchical compression
|
|
436
|
+
- Test retrieval quality
|
|
437
|
+
- Adjust compression parameters
|
|
438
|
+
|
|
439
|
+
---
|
|
440
|
+
|
|
441
|
+
## 8. Integration Example
|
|
442
|
+
|
|
443
|
+
Complete compressed MCP implementation:
|
|
444
|
+
|
|
445
|
+
```python
|
|
446
|
+
class CompressedMCP:
|
|
447
|
+
"""Complete compressed MCP implementation"""
|
|
448
|
+
|
|
449
|
+
def __init__(self, config: dict):
|
|
450
|
+
self.config = config
|
|
451
|
+
self.temporal_compressor = TemporalCompressor()
|
|
452
|
+
self.kv_memory = KeyValueMemory()
|
|
453
|
+
self.gist_memory = GistMemory()
|
|
454
|
+
|
|
455
|
+
def add(self, text: str):
|
|
456
|
+
"""Add text to all memory types"""
|
|
457
|
+
# Add to temporal compressor
|
|
458
|
+
self.temporal_compressor.add(text)
|
|
459
|
+
|
|
460
|
+
# Extract and add key-value facts
|
|
461
|
+
self.kv_memory.add(text)
|
|
462
|
+
|
|
463
|
+
# Add as gist tokens
|
|
464
|
+
self.gist_memory.add(text, num_gist_tokens=10)
|
|
465
|
+
|
|
466
|
+
def retrieve(self, query: str, token_budget=2048):
|
|
467
|
+
"""Retrieve compressed context"""
|
|
468
|
+
# Allocate budget
|
|
469
|
+
temporal_budget = int(token_budget * 0.5)
|
|
470
|
+
kv_budget = int(token_budget * 0.3)
|
|
471
|
+
gist_budget = int(token_budget * 0.2)
|
|
472
|
+
|
|
473
|
+
# Retrieve from each memory type
|
|
474
|
+
temporal_results = self.temporal_compressor.retrieve(query, temporal_budget)
|
|
475
|
+
kv_results = self.kv_memory.retrieve(query, k=10)
|
|
476
|
+
gist_results = self.gist_memory.retrieve(query, k=5)
|
|
477
|
+
|
|
478
|
+
# Combine results
|
|
479
|
+
context = {
|
|
480
|
+
'temporal': temporal_results,
|
|
481
|
+
'facts': kv_results,
|
|
482
|
+
'gists': gist_results
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
return context
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
---
|
|
489
|
+
|
|
490
|
+
## Configuration Example
|
|
491
|
+
|
|
492
|
+
```json
|
|
493
|
+
{
|
|
494
|
+
"mcp": {
|
|
495
|
+
"type": "compressed",
|
|
496
|
+
"summarization": {
|
|
497
|
+
"method": "hierarchical",
|
|
498
|
+
"levels": 3,
|
|
499
|
+
"compressionRatios": [0.5, 0.4, 0.25]
|
|
500
|
+
},
|
|
501
|
+
"keyValue": {
|
|
502
|
+
"enabled": true,
|
|
503
|
+
"maxFacts": 1000
|
|
504
|
+
},
|
|
505
|
+
"gistTokens": {
|
|
506
|
+
"enabled": true,
|
|
507
|
+
"tokensPerGist": 10,
|
|
508
|
+
"maxGists": 100
|
|
509
|
+
},
|
|
510
|
+
"temporalCompression": {
|
|
511
|
+
"enabled": true,
|
|
512
|
+
"ageBuckets": [
|
|
513
|
+
{"days": 1, "compressionLevel": "none"},
|
|
514
|
+
{"days": 7, "compressionLevel": "low"},
|
|
515
|
+
{"days": 30, "compressionLevel": "medium"},
|
|
516
|
+
{"days": 999999, "compressionLevel": "high"}
|
|
517
|
+
]
|
|
518
|
+
},
|
|
519
|
+
"tokenBudget": {
|
|
520
|
+
"maxCompressedTokens": 2048,
|
|
521
|
+
"allocation": {
|
|
522
|
+
"temporal": 0.5,
|
|
523
|
+
"keyValue": 0.3,
|
|
524
|
+
"gist": 0.2
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
---
|
|
532
|
+
|
|
533
|
+
## 3. Gist Tokens
|
|
534
|
+
|
|
535
|
+
### Gist Token Generation
|
|
536
|
+
|
|
537
|
+
Compress context into special tokens:
|
|
538
|
+
|
|
539
|
+
```python
|
|
540
|
+
def generate_gist_tokens(text: str, num_gist_tokens=10):
|
|
541
|
+
"""Generate gist tokens for text"""
|
|
542
|
+
# Use LLM to generate ultra-compressed representation
|
|
543
|
+
prompt = f"""
|
|
544
|
+
Compress the following text into exactly {num_gist_tokens} key phrases.
|
|
545
|
+
Each phrase should be 2-5 words and capture essential information.
|
|
546
|
+
|
|
547
|
+
Text: {text}
|
|
548
|
+
|
|
549
|
+
Return as JSON array: ["phrase1", "phrase2", ...]
|
|
550
|
+
"""
|
|
551
|
+
|
|
552
|
+
response = llm_call(prompt)
|
|
553
|
+
gist_tokens = json.loads(response)
|
|
554
|
+
|
|
555
|
+
return gist_tokens[:num_gist_tokens]
|
|
556
|
+
|
|
557
|
+
class GistMemory:
|
|
558
|
+
"""Memory using gist tokens"""
|
|
559
|
+
|
|
560
|
+
def __init__(self):
|
|
561
|
+
self.gists = []
|
|
562
|
+
|
|
563
|
+
def add(self, text: str, num_gist_tokens=10):
|
|
564
|
+
"""Add text as gist tokens"""
|
|
565
|
+
gist_tokens = generate_gist_tokens(text, num_gist_tokens)
|
|
566
|
+
self.gists.append({
|
|
567
|
+
'gist_tokens': gist_tokens,
|
|
568
|
+
'original_length': count_tokens(text),
|
|
569
|
+
'compressed_length': sum(count_tokens(t) for t in gist_tokens)
|
|
570
|
+
})
|
|
571
|
+
|
|
572
|
+
def retrieve(self, query: str, k=5):
|
|
573
|
+
"""Retrieve relevant gists"""
|
|
574
|
+
query_embedding = generate_embeddings([query])[0]
|
|
575
|
+
|
|
576
|
+
scored_gists = []
|
|
577
|
+
for gist in self.gists:
|
|
578
|
+
gist_text = ' '.join(gist['gist_tokens'])
|
|
579
|
+
gist_embedding = generate_embeddings([gist_text])[0]
|
|
580
|
+
score = cosine_similarity(query_embedding, gist_embedding)
|
|
581
|
+
scored_gists.append((gist, score))
|
|
582
|
+
|
|
583
|
+
scored_gists.sort(key=lambda x: x[1], reverse=True)
|
|
584
|
+
return [g for g, s in scored_gists[:k]]
|
|
585
|
+
```
|
|
586
|
+
|
|
587
|
+
**Best Practices**:
|
|
588
|
+
- Use gist tokens for extreme compression
|
|
589
|
+
- Maintain mapping to original text
|
|
590
|
+
- Use for long-term memory
|
|
591
|
+
- Combine with other compression techniques
|
|
592
|
+
|
|
593
|
+
---
|
|
594
|
+
|
|
595
|
+
|