moai-adk 0.35.1__py3-none-any.whl
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.
Potentially problematic release.
This version of moai-adk might be problematic. Click here for more details.
- moai_adk/__init__.py +10 -0
- moai_adk/__main__.py +199 -0
- moai_adk/cli/__init__.py +6 -0
- moai_adk/cli/commands/__init__.py +17 -0
- moai_adk/cli/commands/analyze.py +116 -0
- moai_adk/cli/commands/doctor.py +272 -0
- moai_adk/cli/commands/init.py +372 -0
- moai_adk/cli/commands/language.py +248 -0
- moai_adk/cli/commands/status.py +104 -0
- moai_adk/cli/commands/update.py +2686 -0
- moai_adk/cli/main.py +13 -0
- moai_adk/cli/prompts/__init__.py +5 -0
- moai_adk/cli/prompts/init_prompts.py +219 -0
- moai_adk/cli/spec_status.py +263 -0
- moai_adk/cli/ui/__init__.py +44 -0
- moai_adk/cli/ui/progress.py +422 -0
- moai_adk/cli/ui/prompts.py +389 -0
- moai_adk/cli/ui/theme.py +129 -0
- moai_adk/cli/worktree/__init__.py +27 -0
- moai_adk/cli/worktree/__main__.py +31 -0
- moai_adk/cli/worktree/cli.py +683 -0
- moai_adk/cli/worktree/exceptions.py +89 -0
- moai_adk/cli/worktree/manager.py +493 -0
- moai_adk/cli/worktree/models.py +65 -0
- moai_adk/cli/worktree/registry.py +422 -0
- moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
- moai_adk/core/__init__.py +1 -0
- moai_adk/core/analysis/__init__.py +9 -0
- moai_adk/core/analysis/session_analyzer.py +400 -0
- moai_adk/core/claude_integration.py +393 -0
- moai_adk/core/command_helpers.py +270 -0
- moai_adk/core/comprehensive_monitoring_system.py +1183 -0
- moai_adk/core/config/__init__.py +19 -0
- moai_adk/core/config/auto_spec_config.py +340 -0
- moai_adk/core/config/migration.py +244 -0
- moai_adk/core/config/unified.py +436 -0
- moai_adk/core/context_manager.py +273 -0
- moai_adk/core/diagnostics/__init__.py +19 -0
- moai_adk/core/diagnostics/slash_commands.py +159 -0
- moai_adk/core/enterprise_features.py +1404 -0
- moai_adk/core/error_recovery_system.py +1902 -0
- moai_adk/core/event_driven_hook_system.py +1371 -0
- moai_adk/core/git/__init__.py +31 -0
- moai_adk/core/git/branch.py +25 -0
- moai_adk/core/git/branch_manager.py +129 -0
- moai_adk/core/git/checkpoint.py +134 -0
- moai_adk/core/git/commit.py +67 -0
- moai_adk/core/git/conflict_detector.py +413 -0
- moai_adk/core/git/event_detector.py +79 -0
- moai_adk/core/git/manager.py +216 -0
- moai_adk/core/hooks/post_tool_auto_spec_completion.py +901 -0
- moai_adk/core/input_validation_middleware.py +1006 -0
- moai_adk/core/integration/__init__.py +22 -0
- moai_adk/core/integration/engine.py +157 -0
- moai_adk/core/integration/integration_tester.py +226 -0
- moai_adk/core/integration/models.py +88 -0
- moai_adk/core/integration/utils.py +211 -0
- moai_adk/core/issue_creator.py +305 -0
- moai_adk/core/jit_context_loader.py +956 -0
- moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
- moai_adk/core/language_config.py +202 -0
- moai_adk/core/language_config_resolver.py +572 -0
- moai_adk/core/language_validator.py +543 -0
- moai_adk/core/mcp/setup.py +116 -0
- moai_adk/core/merge/__init__.py +9 -0
- moai_adk/core/merge/analyzer.py +605 -0
- moai_adk/core/migration/__init__.py +18 -0
- moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
- moai_adk/core/migration/backup_manager.py +277 -0
- moai_adk/core/migration/custom_element_scanner.py +358 -0
- moai_adk/core/migration/file_migrator.py +209 -0
- moai_adk/core/migration/interactive_checkbox_ui.py +488 -0
- moai_adk/core/migration/selective_restorer.py +470 -0
- moai_adk/core/migration/template_utils.py +74 -0
- moai_adk/core/migration/user_selection_ui.py +338 -0
- moai_adk/core/migration/version_detector.py +139 -0
- moai_adk/core/migration/version_migrator.py +228 -0
- moai_adk/core/performance/__init__.py +6 -0
- moai_adk/core/performance/cache_system.py +316 -0
- moai_adk/core/performance/parallel_processor.py +116 -0
- moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
- moai_adk/core/project/__init__.py +1 -0
- moai_adk/core/project/backup_utils.py +70 -0
- moai_adk/core/project/checker.py +300 -0
- moai_adk/core/project/detector.py +293 -0
- moai_adk/core/project/initializer.py +387 -0
- moai_adk/core/project/phase_executor.py +716 -0
- moai_adk/core/project/validator.py +139 -0
- moai_adk/core/quality/__init__.py +6 -0
- moai_adk/core/quality/trust_checker.py +377 -0
- moai_adk/core/quality/validators/__init__.py +6 -0
- moai_adk/core/quality/validators/base_validator.py +19 -0
- moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
- moai_adk/core/robust_json_parser.py +611 -0
- moai_adk/core/rollback_manager.py +918 -0
- moai_adk/core/session_manager.py +651 -0
- moai_adk/core/skill_loading_system.py +579 -0
- moai_adk/core/spec/confidence_scoring.py +680 -0
- moai_adk/core/spec/ears_template_engine.py +1247 -0
- moai_adk/core/spec/quality_validator.py +687 -0
- moai_adk/core/spec_status_manager.py +478 -0
- moai_adk/core/template/__init__.py +7 -0
- moai_adk/core/template/backup.py +174 -0
- moai_adk/core/template/config.py +191 -0
- moai_adk/core/template/languages.py +43 -0
- moai_adk/core/template/merger.py +233 -0
- moai_adk/core/template/processor.py +1200 -0
- moai_adk/core/template_engine.py +310 -0
- moai_adk/core/template_variable_synchronizer.py +417 -0
- moai_adk/core/unified_permission_manager.py +745 -0
- moai_adk/core/user_behavior_analytics.py +851 -0
- moai_adk/core/version_sync.py +429 -0
- moai_adk/foundation/__init__.py +56 -0
- moai_adk/foundation/backend.py +1027 -0
- moai_adk/foundation/database.py +1115 -0
- moai_adk/foundation/devops.py +1585 -0
- moai_adk/foundation/ears.py +431 -0
- moai_adk/foundation/frontend.py +870 -0
- moai_adk/foundation/git/commit_templates.py +557 -0
- moai_adk/foundation/git.py +376 -0
- moai_adk/foundation/langs.py +484 -0
- moai_adk/foundation/ml_ops.py +1162 -0
- moai_adk/foundation/testing.py +1524 -0
- moai_adk/foundation/trust/trust_principles.py +676 -0
- moai_adk/foundation/trust/validation_checklist.py +1573 -0
- moai_adk/project/__init__.py +0 -0
- moai_adk/project/configuration.py +1084 -0
- moai_adk/project/documentation.py +566 -0
- moai_adk/project/schema.py +447 -0
- moai_adk/statusline/__init__.py +38 -0
- moai_adk/statusline/alfred_detector.py +105 -0
- moai_adk/statusline/config.py +376 -0
- moai_adk/statusline/enhanced_output_style_detector.py +372 -0
- moai_adk/statusline/git_collector.py +190 -0
- moai_adk/statusline/main.py +322 -0
- moai_adk/statusline/metrics_tracker.py +78 -0
- moai_adk/statusline/renderer.py +343 -0
- moai_adk/statusline/update_checker.py +129 -0
- moai_adk/statusline/version_reader.py +741 -0
- moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +714 -0
- moai_adk/templates/.claude/agents/moai/builder-agent.md +474 -0
- moai_adk/templates/.claude/agents/moai/builder-command.md +1172 -0
- moai_adk/templates/.claude/agents/moai/builder-plugin.md +637 -0
- moai_adk/templates/.claude/agents/moai/builder-skill.md +666 -0
- moai_adk/templates/.claude/agents/moai/expert-backend.md +899 -0
- moai_adk/templates/.claude/agents/moai/expert-database.md +777 -0
- moai_adk/templates/.claude/agents/moai/expert-debug.md +401 -0
- moai_adk/templates/.claude/agents/moai/expert-devops.md +720 -0
- moai_adk/templates/.claude/agents/moai/expert-frontend.md +734 -0
- moai_adk/templates/.claude/agents/moai/expert-performance.md +657 -0
- moai_adk/templates/.claude/agents/moai/expert-security.md +513 -0
- moai_adk/templates/.claude/agents/moai/expert-testing.md +733 -0
- moai_adk/templates/.claude/agents/moai/expert-uiux.md +1041 -0
- moai_adk/templates/.claude/agents/moai/manager-claude-code.md +432 -0
- moai_adk/templates/.claude/agents/moai/manager-docs.md +573 -0
- moai_adk/templates/.claude/agents/moai/manager-git.md +1060 -0
- moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
- moai_adk/templates/.claude/agents/moai/manager-quality.md +624 -0
- moai_adk/templates/.claude/agents/moai/manager-spec.md +809 -0
- moai_adk/templates/.claude/agents/moai/manager-strategy.md +780 -0
- moai_adk/templates/.claude/agents/moai/manager-tdd.md +784 -0
- moai_adk/templates/.claude/agents/moai/mcp-context7.md +458 -0
- moai_adk/templates/.claude/agents/moai/mcp-figma.md +1607 -0
- moai_adk/templates/.claude/agents/moai/mcp-notion.md +789 -0
- moai_adk/templates/.claude/agents/moai/mcp-playwright.md +469 -0
- moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +1032 -0
- moai_adk/templates/.claude/commands/moai/0-project.md +1386 -0
- moai_adk/templates/.claude/commands/moai/1-plan.md +1427 -0
- moai_adk/templates/.claude/commands/moai/2-run.md +943 -0
- moai_adk/templates/.claude/commands/moai/3-sync.md +1324 -0
- moai_adk/templates/.claude/commands/moai/9-feedback.md +314 -0
- moai_adk/templates/.claude/hooks/__init__.py +8 -0
- moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
- moai_adk/templates/.claude/hooks/moai/lib/__init__.py +85 -0
- moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +244 -0
- moai_adk/templates/.claude/hooks/moai/lib/common.py +131 -0
- moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +446 -0
- moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
- moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
- moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
- moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +317 -0
- moai_adk/templates/.claude/hooks/moai/lib/models.py +102 -0
- moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +28 -0
- moai_adk/templates/.claude/hooks/moai/lib/project.py +768 -0
- moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
- moai_adk/templates/.claude/hooks/moai/lib/timeout.py +160 -0
- moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +530 -0
- moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +862 -0
- moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +1083 -0
- moai_adk/templates/.claude/output-styles/moai/r2d2.md +560 -0
- moai_adk/templates/.claude/output-styles/moai/yoda.md +359 -0
- moai_adk/templates/.claude/settings.json +172 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +307 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +431 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/batch_generate.py +560 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/generate_image.py +362 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +249 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +406 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +44 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +130 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +178 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +147 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +328 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +320 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +718 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +464 -0
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +323 -0
- moai_adk/templates/.claude/skills/moai-domain-database/examples.md +830 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
- moai_adk/templates/.claude/skills/moai-domain-database/reference.md +545 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +497 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +968 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +664 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +455 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
- moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +492 -0
- moai_adk/templates/.claude/skills/moai-formats-data/examples.md +804 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +98 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
- moai_adk/templates/.claude/skills/moai-formats-data/reference.md +585 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +202 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/examples.md +732 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +560 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +113 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +238 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference.md +209 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +441 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/examples.md +1048 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/reference.md +246 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +420 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/examples.md +358 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +359 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +757 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +864 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +981 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/reference.md +478 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +315 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/examples.md +228 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/assumption-matrix.md +80 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/cognitive-bias.md +199 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/first-principles.md +140 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/trade-off-analysis.md +154 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/reference.md +157 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +364 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +649 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +478 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +612 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +477 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/examples.md +1090 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/reference.md +686 -0
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +376 -0
- moai_adk/templates/.claude/skills/moai-lang-go/examples.md +919 -0
- moai_adk/templates/.claude/skills/moai-lang-go/reference.md +737 -0
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +385 -0
- moai_adk/templates/.claude/skills/moai-lang-java/examples.md +864 -0
- moai_adk/templates/.claude/skills/moai-lang-java/reference.md +291 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +382 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +1006 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +562 -0
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +644 -0
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +481 -0
- moai_adk/templates/.claude/skills/moai-lang-python/examples.md +977 -0
- moai_adk/templates/.claude/skills/moai-lang-python/reference.md +804 -0
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +579 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +687 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +372 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +659 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +504 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +497 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +633 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +423 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +497 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +918 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +672 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +368 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +1089 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +731 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +300 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/advanced-patterns.md +465 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/optimization.md +440 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +319 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/examples.md +592 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +17 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +57 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/optimization.md +303 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/reference.md +379 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +372 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
- moai_adk/templates/.claude/skills/moai-mcp-figma/SKILL.md +402 -0
- moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +607 -0
- moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +300 -0
- moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +537 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +291 -0
- moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +390 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +398 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +379 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +358 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +467 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +377 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +466 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +482 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/SKILL.md +474 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/examples.md +621 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/migration.md +341 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/reference.md +463 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/validation.md +373 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/SKILL.md +275 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/adaptive-mfa.md +233 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/akamai-integration.md +215 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/application-credentials.md +280 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/attack-protection-log-events.md +225 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/attack-protection-overview.md +140 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/bot-detection.md +144 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/breached-password-detection.md +187 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/brute-force-protection.md +189 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/certifications.md +282 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/compliance-overview.md +263 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/continuous-session-protection.md +307 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/customize-mfa.md +178 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/dpop-implementation.md +283 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/fapi-implementation.md +259 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/gdpr-compliance.md +313 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/guardian-configuration.md +269 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/highly-regulated-identity.md +272 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/jwt-fundamentals.md +248 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/mdl-verification.md +211 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-api-management.md +278 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-factors.md +226 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-overview.md +174 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/mtls-sender-constraining.md +316 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/ropg-flow-mfa.md +217 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/security-center.md +325 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/security-guidance.md +277 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/state-parameters.md +178 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/step-up-authentication.md +251 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/suspicious-ip-throttling.md +240 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/tenant-access-control.md +180 -0
- moai_adk/templates/.claude/skills/moai-security-auth0/modules/webauthn-fido.md +235 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +449 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/examples.md +544 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/reference.md +307 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +390 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +520 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +574 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +317 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +663 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +190 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +175 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples.md +547 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +17 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +158 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +340 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +713 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +538 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +1336 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +730 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +608 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +1005 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/reference.md +275 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1434 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +92 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +436 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +534 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/examples.md +900 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/reference.md +704 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +377 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/examples.md +552 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/reference.md +346 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +456 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/advanced-patterns.md +576 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples.md +672 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +220 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +845 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +1416 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +1234 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +1243 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +1260 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/optimization.md +505 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/reference.md +440 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
- moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +411 -0
- moai_adk/templates/.claude/skills/moai-worktree/examples.md +606 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +982 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +778 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +646 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +782 -0
- moai_adk/templates/.claude/skills/moai-worktree/reference.md +357 -0
- moai_adk/templates/.git-hooks/pre-commit +128 -0
- moai_adk/templates/.git-hooks/pre-push +365 -0
- moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
- moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
- moai_adk/templates/.github/workflows/spec-issue-sync.yml +337 -0
- moai_adk/templates/.gitignore +222 -0
- moai_adk/templates/.mcp.json +13 -0
- moai_adk/templates/.moai/config/config.yaml +58 -0
- moai_adk/templates/.moai/config/questions/_schema.yaml +174 -0
- moai_adk/templates/.moai/config/questions/tab0-init.yaml +251 -0
- moai_adk/templates/.moai/config/questions/tab1-user.yaml +107 -0
- moai_adk/templates/.moai/config/questions/tab2-project.yaml +79 -0
- moai_adk/templates/.moai/config/questions/tab3-git.yaml +632 -0
- moai_adk/templates/.moai/config/questions/tab4-quality.yaml +182 -0
- moai_adk/templates/.moai/config/questions/tab5-system.yaml +96 -0
- moai_adk/templates/.moai/config/sections/git-strategy.yaml +116 -0
- moai_adk/templates/.moai/config/sections/language.yaml +11 -0
- moai_adk/templates/.moai/config/sections/project.yaml +13 -0
- moai_adk/templates/.moai/config/sections/quality.yaml +17 -0
- moai_adk/templates/.moai/config/sections/system.yaml +24 -0
- moai_adk/templates/.moai/config/sections/user.yaml +5 -0
- moai_adk/templates/.moai/config/statusline-config.yaml +92 -0
- moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
- moai_adk/templates/CLAUDE.md +642 -0
- moai_adk/utils/__init__.py +30 -0
- moai_adk/utils/banner.py +38 -0
- moai_adk/utils/common.py +294 -0
- moai_adk/utils/link_validator.py +241 -0
- moai_adk/utils/logger.py +147 -0
- moai_adk/utils/safe_file_reader.py +206 -0
- moai_adk/utils/timeout.py +160 -0
- moai_adk/utils/toon_utils.py +256 -0
- moai_adk/version.py +22 -0
- moai_adk-0.35.1.dist-info/METADATA +3018 -0
- moai_adk-0.35.1.dist-info/RECORD +502 -0
- moai_adk-0.35.1.dist-info/WHEEL +4 -0
- moai_adk-0.35.1.dist-info/entry_points.txt +3 -0
- moai_adk-0.35.1.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
# JSON/YAML Optimization Implementation
|
|
2
|
+
|
|
3
|
+
> Module: High-performance JSON and YAML processing
|
|
4
|
+
> Complexity: Advanced
|
|
5
|
+
> Time: 20+ minutes
|
|
6
|
+
> Dependencies: orjson, PyYAML, ijson, typing, dataclasses, functools
|
|
7
|
+
|
|
8
|
+
## High-Performance JSON Handling
|
|
9
|
+
|
|
10
|
+
```python
|
|
11
|
+
import orjson # Ultra-fast JSON library
|
|
12
|
+
import yaml
|
|
13
|
+
from typing import Any, Dict, List
|
|
14
|
+
from dataclasses import dataclass
|
|
15
|
+
from functools import lru_cache
|
|
16
|
+
|
|
17
|
+
class JSONOptimizer:
|
|
18
|
+
"""Optimized JSON processing for high-performance applications."""
|
|
19
|
+
|
|
20
|
+
def __init__(self):
|
|
21
|
+
self._compression_cache = {}
|
|
22
|
+
|
|
23
|
+
def serialize_fast(self, obj: Any) -> bytes:
|
|
24
|
+
"""Ultra-fast JSON serialization using orjson."""
|
|
25
|
+
return orjson.dumps(
|
|
26
|
+
obj,
|
|
27
|
+
option=orjson.OPT_SERIALIZE_NUMPY |
|
|
28
|
+
orjson.OPT_SERIALIZE_DATACLASS |
|
|
29
|
+
orjson.OPT_SERIALIZE_UUID |
|
|
30
|
+
orjson.OPT_NON_STR_KEYS
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
def deserialize_fast(self, data: bytes) -> Any:
|
|
34
|
+
"""Ultra-fast JSON deserialization."""
|
|
35
|
+
return orjson.loads(data)
|
|
36
|
+
|
|
37
|
+
@lru_cache(maxsize=1024)
|
|
38
|
+
def compress_schema(self, schema: Dict) -> Dict:
|
|
39
|
+
"""Cache and compress JSON schemas for repeated use."""
|
|
40
|
+
return self._optimize_schema(schema)
|
|
41
|
+
|
|
42
|
+
def _optimize_schema(self, schema: Dict) -> Dict:
|
|
43
|
+
"""Remove redundant schema properties and optimize structure."""
|
|
44
|
+
optimized = {}
|
|
45
|
+
|
|
46
|
+
for key, value in schema.items():
|
|
47
|
+
if key == '$schema': # Remove schema URL
|
|
48
|
+
continue
|
|
49
|
+
elif key == 'description' and len(value) > 100: # Truncate long descriptions
|
|
50
|
+
optimized[key] = value[:100] + '...'
|
|
51
|
+
elif isinstance(value, dict):
|
|
52
|
+
optimized[key] = self._optimize_schema(value)
|
|
53
|
+
elif isinstance(value, list):
|
|
54
|
+
optimized[key] = [self._optimize_schema(item) if isinstance(item, dict) else item for item in value]
|
|
55
|
+
else:
|
|
56
|
+
optimized[key] = value
|
|
57
|
+
|
|
58
|
+
return optimized
|
|
59
|
+
|
|
60
|
+
class YAMLOptimizer:
|
|
61
|
+
"""Optimized YAML processing for configuration management."""
|
|
62
|
+
|
|
63
|
+
def __init__(self):
|
|
64
|
+
self.yaml_loader = yaml.CSafeLoader # Use C loader for performance
|
|
65
|
+
self.yaml_dumper = yaml.CSafeDumper
|
|
66
|
+
|
|
67
|
+
def load_fast(self, stream) -> Any:
|
|
68
|
+
"""Fast YAML loading with optimized loader."""
|
|
69
|
+
return yaml.load(stream, Loader=self.yaml_loader)
|
|
70
|
+
|
|
71
|
+
def dump_fast(self, data: Any, stream=None) -> str:
|
|
72
|
+
"""Fast YAML dumping with optimized dumper."""
|
|
73
|
+
return yaml.dump(
|
|
74
|
+
data,
|
|
75
|
+
stream=stream,
|
|
76
|
+
Dumper=self.yaml_dumper,
|
|
77
|
+
default_flow_style=False,
|
|
78
|
+
sort_keys=False,
|
|
79
|
+
allow_unicode=True
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
def merge_configs(self, *configs: Dict) -> Dict:
|
|
83
|
+
"""Intelligently merge multiple YAML configurations."""
|
|
84
|
+
result = {}
|
|
85
|
+
|
|
86
|
+
for config in configs:
|
|
87
|
+
result = self._deep_merge(result, config)
|
|
88
|
+
|
|
89
|
+
return result
|
|
90
|
+
|
|
91
|
+
def _deep_merge(self, base: Dict, overlay: Dict) -> Dict:
|
|
92
|
+
"""Deep merge dictionaries with conflict resolution."""
|
|
93
|
+
result = base.copy()
|
|
94
|
+
|
|
95
|
+
for key, value in overlay.items():
|
|
96
|
+
if key in result:
|
|
97
|
+
if isinstance(result[key], dict) and isinstance(value, dict):
|
|
98
|
+
result[key] = self._deep_merge(result[key], value)
|
|
99
|
+
elif isinstance(result[key], list) and isinstance(value, list):
|
|
100
|
+
result[key] = result[key] + value
|
|
101
|
+
else:
|
|
102
|
+
result[key] = value
|
|
103
|
+
else:
|
|
104
|
+
result[key] = value
|
|
105
|
+
|
|
106
|
+
return result
|
|
107
|
+
|
|
108
|
+
# Streaming data processor for large datasets
|
|
109
|
+
class StreamProcessor:
|
|
110
|
+
"""Memory-efficient streaming processor for large data files."""
|
|
111
|
+
|
|
112
|
+
def __init__(self, chunk_size: int = 8192):
|
|
113
|
+
self.chunk_size = chunk_size
|
|
114
|
+
|
|
115
|
+
def process_json_stream(self, file_path: str, processor_func):
|
|
116
|
+
"""Process large JSON files in streaming mode."""
|
|
117
|
+
import ijson
|
|
118
|
+
|
|
119
|
+
with open(file_path, 'rb') as file:
|
|
120
|
+
parser = ijson.parse(file)
|
|
121
|
+
|
|
122
|
+
current_object = {}
|
|
123
|
+
for prefix, event, value in parser:
|
|
124
|
+
if prefix.endswith('.item'):
|
|
125
|
+
if event == 'start_map':
|
|
126
|
+
current_object = {}
|
|
127
|
+
elif event == 'map_key':
|
|
128
|
+
self._current_key = value
|
|
129
|
+
elif event in ['string', 'number', 'boolean', 'null']:
|
|
130
|
+
current_object[self._current_key] = value
|
|
131
|
+
elif event == 'end_map':
|
|
132
|
+
processor_func(current_object)
|
|
133
|
+
|
|
134
|
+
def process_csv_stream(self, file_path: str, processor_func):
|
|
135
|
+
"""Process large CSV files in streaming mode."""
|
|
136
|
+
import csv
|
|
137
|
+
|
|
138
|
+
with open(file_path, 'r', encoding='utf-8') as file:
|
|
139
|
+
reader = csv.DictReader(file)
|
|
140
|
+
for row in reader:
|
|
141
|
+
processor_func(row)
|
|
142
|
+
|
|
143
|
+
def aggregate_json_stream(self, file_path: str, aggregation_key: str) -> Dict:
|
|
144
|
+
"""Aggregate streaming JSON data by key."""
|
|
145
|
+
aggregates = {}
|
|
146
|
+
|
|
147
|
+
def aggregate_processor(item):
|
|
148
|
+
key = item.get(aggregation_key, 'unknown')
|
|
149
|
+
if key not in aggregates:
|
|
150
|
+
aggregates[key] = {
|
|
151
|
+
'count': 0,
|
|
152
|
+
'items': []
|
|
153
|
+
}
|
|
154
|
+
aggregates[key]['count'] += 1
|
|
155
|
+
aggregates[key]['items'].append(item)
|
|
156
|
+
|
|
157
|
+
self.process_json_stream(file_path, aggregate_processor)
|
|
158
|
+
return aggregates
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Performance Optimization Techniques
|
|
162
|
+
|
|
163
|
+
### Memory Management
|
|
164
|
+
|
|
165
|
+
```python
|
|
166
|
+
class MemoryEfficientProcessor:
|
|
167
|
+
"""Memory-optimized data processing for large datasets."""
|
|
168
|
+
|
|
169
|
+
def __init__(self, max_memory_mb: int = 512):
|
|
170
|
+
self.max_memory_mb = max_memory_mb
|
|
171
|
+
self.current_memory = 0
|
|
172
|
+
|
|
173
|
+
def batch_process(self, data_generator, batch_size: int = 1000):
|
|
174
|
+
"""Process data in batches to control memory usage."""
|
|
175
|
+
batch = []
|
|
176
|
+
|
|
177
|
+
for item in data_generator:
|
|
178
|
+
batch.append(item)
|
|
179
|
+
|
|
180
|
+
# Check memory usage and process batch
|
|
181
|
+
if len(batch) >= batch_size:
|
|
182
|
+
yield self._process_batch(batch)
|
|
183
|
+
batch.clear()
|
|
184
|
+
|
|
185
|
+
# Process remaining items
|
|
186
|
+
if batch:
|
|
187
|
+
yield self._process_batch(batch)
|
|
188
|
+
|
|
189
|
+
def _process_batch(self, batch: List[Any]) -> Any:
|
|
190
|
+
"""Process a single batch of data."""
|
|
191
|
+
# Implement batch processing logic
|
|
192
|
+
pass
|
|
193
|
+
|
|
194
|
+
def _estimate_memory_usage(self, data: Any) -> int:
|
|
195
|
+
"""Estimate memory usage of data structure."""
|
|
196
|
+
import sys
|
|
197
|
+
return sys.getsizeof(data)
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Caching Strategies
|
|
201
|
+
|
|
202
|
+
```python
|
|
203
|
+
from functools import wraps
|
|
204
|
+
import hashlib
|
|
205
|
+
import pickle
|
|
206
|
+
import time
|
|
207
|
+
|
|
208
|
+
class SmartCache:
|
|
209
|
+
"""Intelligent caching with memory management and expiration."""
|
|
210
|
+
|
|
211
|
+
def __init__(self, max_size: int = 1000, ttl: int = 3600):
|
|
212
|
+
self.cache = {}
|
|
213
|
+
self.access_times = {}
|
|
214
|
+
self.max_size = max_size
|
|
215
|
+
self.ttl = ttl
|
|
216
|
+
|
|
217
|
+
def get_cache_key(self, func_name: str, args: tuple, kwargs: dict) -> str:
|
|
218
|
+
"""Generate consistent cache key."""
|
|
219
|
+
key_data = f"{func_name}:{pickle.dumps(args)}:{pickle.dumps(kwargs)}"
|
|
220
|
+
return hashlib.md5(key_data.encode()).hexdigest()
|
|
221
|
+
|
|
222
|
+
def get(self, key: str) -> Any:
|
|
223
|
+
"""Get value from cache with expiration check."""
|
|
224
|
+
if key in self.cache:
|
|
225
|
+
entry = self.cache[key]
|
|
226
|
+
if time.time() - entry['timestamp'] < self.ttl:
|
|
227
|
+
self.access_times[key] = time.time()
|
|
228
|
+
return entry['value']
|
|
229
|
+
else:
|
|
230
|
+
del self.cache[key]
|
|
231
|
+
del self.access_times[key]
|
|
232
|
+
return None
|
|
233
|
+
|
|
234
|
+
def set(self, key: str, value: Any):
|
|
235
|
+
"""Set value in cache with LRU eviction."""
|
|
236
|
+
# Evict old entries if at capacity
|
|
237
|
+
while len(self.cache) >= self.max_size:
|
|
238
|
+
oldest_key = min(self.access_times.keys(),
|
|
239
|
+
key=lambda k: self.access_times[k])
|
|
240
|
+
del self.cache[oldest_key]
|
|
241
|
+
del self.access_times[oldest_key]
|
|
242
|
+
|
|
243
|
+
self.cache[key] = {
|
|
244
|
+
'value': value,
|
|
245
|
+
'timestamp': time.time()
|
|
246
|
+
}
|
|
247
|
+
self.access_times[key] = time.time()
|
|
248
|
+
|
|
249
|
+
def cached(ttl: int = 3600):
|
|
250
|
+
"""Decorator for smart function caching."""
|
|
251
|
+
cache = SmartCache(ttl=ttl)
|
|
252
|
+
|
|
253
|
+
def decorator(func):
|
|
254
|
+
@wraps(func)
|
|
255
|
+
def wrapper(*args, kwargs):
|
|
256
|
+
cache_key = cache.get_cache_key(func.__name__, args, kwargs)
|
|
257
|
+
|
|
258
|
+
# Try to get from cache
|
|
259
|
+
cached_result = cache.get(cache_key)
|
|
260
|
+
if cached_result is not None:
|
|
261
|
+
return cached_result
|
|
262
|
+
|
|
263
|
+
# Execute and cache result
|
|
264
|
+
result = func(*args, kwargs)
|
|
265
|
+
cache.set(cache_key, result)
|
|
266
|
+
return result
|
|
267
|
+
|
|
268
|
+
return wrapper
|
|
269
|
+
return decorator
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### Format-Specific Optimizations
|
|
273
|
+
|
|
274
|
+
```python
|
|
275
|
+
class FormatSpecificOptimizer:
|
|
276
|
+
"""Optimizations for specific data formats."""
|
|
277
|
+
|
|
278
|
+
def optimize_for_json(self, data: Dict) -> Dict:
|
|
279
|
+
"""Optimize data structure for JSON serialization."""
|
|
280
|
+
optimized = {}
|
|
281
|
+
|
|
282
|
+
for key, value in data.items():
|
|
283
|
+
# Convert datetime objects to ISO strings
|
|
284
|
+
if hasattr(value, 'isoformat'):
|
|
285
|
+
optimized[key] = value.isoformat()
|
|
286
|
+
# Convert sets to lists for JSON compatibility
|
|
287
|
+
elif isinstance(value, set):
|
|
288
|
+
optimized[key] = list(value)
|
|
289
|
+
# Handle None values
|
|
290
|
+
elif value is None:
|
|
291
|
+
# Skip None values for compactness (optional)
|
|
292
|
+
continue
|
|
293
|
+
else:
|
|
294
|
+
optimized[key] = value
|
|
295
|
+
|
|
296
|
+
return optimized
|
|
297
|
+
|
|
298
|
+
def optimize_for_yaml(self, data: Dict) -> Dict:
|
|
299
|
+
"""Optimize data structure for YAML serialization."""
|
|
300
|
+
optimized = {}
|
|
301
|
+
|
|
302
|
+
for key, value in data.items():
|
|
303
|
+
# Preserve complex objects for YAML's better type support
|
|
304
|
+
if hasattr(value, '__dict__'):
|
|
305
|
+
optimized[key] = value
|
|
306
|
+
# Use multi-line strings for long text
|
|
307
|
+
elif isinstance(value, str) and len(value) > 100:
|
|
308
|
+
optimized[key] = self._format_multiline_string(value)
|
|
309
|
+
else:
|
|
310
|
+
optimized[key] = value
|
|
311
|
+
|
|
312
|
+
return optimized
|
|
313
|
+
|
|
314
|
+
def _format_multiline_string(self, text: str) -> str:
|
|
315
|
+
"""Format long strings as YAML multi-line."""
|
|
316
|
+
# Simple implementation - could be enhanced with smarter line breaks
|
|
317
|
+
lines = text.split('\n')
|
|
318
|
+
if len(lines) == 1:
|
|
319
|
+
return text
|
|
320
|
+
return '|\n' + '\n'.join(' ' + line for line in lines)
|
|
321
|
+
|
|
322
|
+
# Performance monitoring
|
|
323
|
+
class PerformanceMonitor:
|
|
324
|
+
"""Monitor and optimize data processing performance."""
|
|
325
|
+
|
|
326
|
+
def __init__(self):
|
|
327
|
+
self.metrics = {}
|
|
328
|
+
|
|
329
|
+
def time_operation(self, operation_name: str):
|
|
330
|
+
"""Decorator to time operations."""
|
|
331
|
+
def decorator(func):
|
|
332
|
+
@wraps(func)
|
|
333
|
+
def wrapper(*args, kwargs):
|
|
334
|
+
start_time = time.time()
|
|
335
|
+
result = func(*args, kwargs)
|
|
336
|
+
duration = time.time() - start_time
|
|
337
|
+
|
|
338
|
+
# Record metrics
|
|
339
|
+
if operation_name not in self.metrics:
|
|
340
|
+
self.metrics[operation_name] = []
|
|
341
|
+
self.metrics[operation_name].append(duration)
|
|
342
|
+
|
|
343
|
+
return result
|
|
344
|
+
return wrapper
|
|
345
|
+
return decorator
|
|
346
|
+
|
|
347
|
+
def get_stats(self, operation_name: str) -> Dict:
|
|
348
|
+
"""Get performance statistics for an operation."""
|
|
349
|
+
if operation_name not in self.metrics:
|
|
350
|
+
return {}
|
|
351
|
+
|
|
352
|
+
durations = self.metrics[operation_name]
|
|
353
|
+
return {
|
|
354
|
+
'count': len(durations),
|
|
355
|
+
'total_time': sum(durations),
|
|
356
|
+
'avg_time': sum(durations) / len(durations),
|
|
357
|
+
'min_time': min(durations),
|
|
358
|
+
'max_time': max(durations)
|
|
359
|
+
}
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
## Best Practices
|
|
363
|
+
|
|
364
|
+
1. Use orjson for JSON: 2-5x faster than standard json module
|
|
365
|
+
2. Stream large files: Use ijson for memory-efficient processing
|
|
366
|
+
3. Cache intelligently: Implement smart caching with expiration
|
|
367
|
+
4. Batch processing: Process data in manageable chunks
|
|
368
|
+
5. Profile regularly: Monitor performance bottlenecks
|
|
369
|
+
6. Choose right format: YAML for config, JSON for data exchange, TOON for LLM communication
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
Module: `modules/json-optimization.md`
|
|
374
|
+
Related: [TOON Encoding](./toon-encoding.md) | [Data Validation](./data-validation.md)
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
# TOON Encoding Implementation
|
|
2
|
+
|
|
3
|
+
> Module: Core TOON (Token-Optimized Object Notation) implementation
|
|
4
|
+
> Complexity: Advanced
|
|
5
|
+
> Time: 15+ minutes
|
|
6
|
+
> Dependencies: Python 3.8+, typing, datetime, json
|
|
7
|
+
|
|
8
|
+
## Core TOON Implementation
|
|
9
|
+
|
|
10
|
+
```python
|
|
11
|
+
from typing import Dict, List, Any, Union
|
|
12
|
+
import json
|
|
13
|
+
from datetime import datetime
|
|
14
|
+
|
|
15
|
+
class TOONEncoder:
|
|
16
|
+
"""Token-Optimized Object Notation encoder for efficient LLM communication."""
|
|
17
|
+
|
|
18
|
+
def __init__(self):
|
|
19
|
+
self.type_markers = {
|
|
20
|
+
'string': '',
|
|
21
|
+
'number': '#',
|
|
22
|
+
'boolean': '!',
|
|
23
|
+
'null': '~',
|
|
24
|
+
'timestamp': '@'
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
def encode(self, data: Any) -> str:
|
|
28
|
+
"""Encode Python data structure to TOON format."""
|
|
29
|
+
return self._encode_value(data)
|
|
30
|
+
|
|
31
|
+
def _encode_value(self, value: Any) -> str:
|
|
32
|
+
"""Encode individual values with type optimization."""
|
|
33
|
+
|
|
34
|
+
if value is None:
|
|
35
|
+
return '~'
|
|
36
|
+
|
|
37
|
+
elif isinstance(value, bool):
|
|
38
|
+
return f'!{str(value)[0]}' # !t or !f
|
|
39
|
+
|
|
40
|
+
elif isinstance(value, (int, float)):
|
|
41
|
+
return f'#{value}'
|
|
42
|
+
|
|
43
|
+
elif isinstance(value, str):
|
|
44
|
+
return self._escape_string(value)
|
|
45
|
+
|
|
46
|
+
elif isinstance(value, datetime):
|
|
47
|
+
return f'@{value.isoformat()}'
|
|
48
|
+
|
|
49
|
+
elif isinstance(value, dict):
|
|
50
|
+
if not value:
|
|
51
|
+
return '{}'
|
|
52
|
+
items = []
|
|
53
|
+
for k, v in value.items():
|
|
54
|
+
encoded_key = self._escape_string(str(k))
|
|
55
|
+
encoded_value = self._encode_value(v)
|
|
56
|
+
items.append(f'{encoded_key}:{encoded_value}')
|
|
57
|
+
return '{' + ','.join(items) + '}'
|
|
58
|
+
|
|
59
|
+
elif isinstance(value, list):
|
|
60
|
+
if not value:
|
|
61
|
+
return '[]'
|
|
62
|
+
encoded_items = [self._encode_value(item) for item in value]
|
|
63
|
+
return '[' + '|'.join(encoded_items) + ']'
|
|
64
|
+
|
|
65
|
+
else:
|
|
66
|
+
# Fallback to JSON for complex objects
|
|
67
|
+
json_str = json.dumps(value, default=str)
|
|
68
|
+
return f'${json_str}'
|
|
69
|
+
|
|
70
|
+
def _escape_string(self, s: str) -> str:
|
|
71
|
+
"""Escape special characters in strings."""
|
|
72
|
+
# Replace problematic characters
|
|
73
|
+
s = s.replace('\\', '\\\\')
|
|
74
|
+
s = s.replace(':', '\\:')
|
|
75
|
+
s = s.replace('|', '\\|')
|
|
76
|
+
s = s.replace(',', '\\,')
|
|
77
|
+
s = s.replace('{', '\\{')
|
|
78
|
+
s = s.replace('}', '\\}')
|
|
79
|
+
s = s.replace('[', '\\[')
|
|
80
|
+
s = s.replace(']', '\\]')
|
|
81
|
+
s = s.replace('~', '\\~')
|
|
82
|
+
s = s.replace('#', '\\#')
|
|
83
|
+
s = s.replace('!', '\\!')
|
|
84
|
+
s = s.replace('@', '\\@')
|
|
85
|
+
s = s.replace('$', '\\$')
|
|
86
|
+
|
|
87
|
+
return s
|
|
88
|
+
|
|
89
|
+
def decode(self, toon_str: str) -> Any:
|
|
90
|
+
"""Decode TOON format back to Python data structure."""
|
|
91
|
+
return self._parse_value(toon_str.strip())
|
|
92
|
+
|
|
93
|
+
def _parse_value(self, s: str) -> Any:
|
|
94
|
+
"""Parse TOON value back to Python type."""
|
|
95
|
+
s = s.strip()
|
|
96
|
+
|
|
97
|
+
if not s:
|
|
98
|
+
return None
|
|
99
|
+
|
|
100
|
+
# Null value
|
|
101
|
+
if s == '~':
|
|
102
|
+
return None
|
|
103
|
+
|
|
104
|
+
# Boolean values
|
|
105
|
+
if s.startswith('!'):
|
|
106
|
+
return s[1:] == 't'
|
|
107
|
+
|
|
108
|
+
# Numbers
|
|
109
|
+
if s.startswith('#'):
|
|
110
|
+
num_str = s[1:]
|
|
111
|
+
if '.' in num_str:
|
|
112
|
+
return float(num_str)
|
|
113
|
+
return int(num_str)
|
|
114
|
+
|
|
115
|
+
# Timestamps
|
|
116
|
+
if s.startswith('@'):
|
|
117
|
+
try:
|
|
118
|
+
return datetime.fromisoformat(s[1:])
|
|
119
|
+
except ValueError:
|
|
120
|
+
return s[1:] # Return as string if parsing fails
|
|
121
|
+
|
|
122
|
+
# JSON fallback
|
|
123
|
+
if s.startswith('$'):
|
|
124
|
+
return json.loads(s[1:])
|
|
125
|
+
|
|
126
|
+
# Arrays
|
|
127
|
+
if s.startswith('[') and s.endswith(']'):
|
|
128
|
+
content = s[1:-1]
|
|
129
|
+
if not content:
|
|
130
|
+
return []
|
|
131
|
+
items = self._split_array_items(content)
|
|
132
|
+
return [self._parse_value(item) for item in items]
|
|
133
|
+
|
|
134
|
+
# Objects
|
|
135
|
+
if s.startswith('{') and s.endswith('}'):
|
|
136
|
+
content = s[1:-1]
|
|
137
|
+
if not content:
|
|
138
|
+
return {}
|
|
139
|
+
pairs = self._split_object_pairs(content)
|
|
140
|
+
result = {}
|
|
141
|
+
for pair in pairs:
|
|
142
|
+
if ':' in pair:
|
|
143
|
+
key, value = pair.split(':', 1)
|
|
144
|
+
result[self._unescape_string(key)] = self._parse_value(value)
|
|
145
|
+
return result
|
|
146
|
+
|
|
147
|
+
# String (default)
|
|
148
|
+
return self._unescape_string(s)
|
|
149
|
+
|
|
150
|
+
def _split_array_items(self, content: str) -> List[str]:
|
|
151
|
+
"""Split array items handling escaped separators."""
|
|
152
|
+
items = []
|
|
153
|
+
current = []
|
|
154
|
+
escape = False
|
|
155
|
+
|
|
156
|
+
for char in content:
|
|
157
|
+
if escape:
|
|
158
|
+
current.append(char)
|
|
159
|
+
escape = False
|
|
160
|
+
elif char == '\\':
|
|
161
|
+
escape = True
|
|
162
|
+
elif char == '|':
|
|
163
|
+
items.append(''.join(current))
|
|
164
|
+
current = []
|
|
165
|
+
else:
|
|
166
|
+
current.append(char)
|
|
167
|
+
|
|
168
|
+
if current:
|
|
169
|
+
items.append(''.join(current))
|
|
170
|
+
|
|
171
|
+
return items
|
|
172
|
+
|
|
173
|
+
def _split_object_pairs(self, content: str) -> List[str]:
|
|
174
|
+
"""Split object pairs handling escaped separators."""
|
|
175
|
+
pairs = []
|
|
176
|
+
current = []
|
|
177
|
+
escape = False
|
|
178
|
+
depth = 0
|
|
179
|
+
|
|
180
|
+
for char in content:
|
|
181
|
+
if escape:
|
|
182
|
+
current.append(char)
|
|
183
|
+
escape = False
|
|
184
|
+
elif char == '\\':
|
|
185
|
+
escape = True
|
|
186
|
+
elif char in '{[':
|
|
187
|
+
depth += 1
|
|
188
|
+
current.append(char)
|
|
189
|
+
elif char in '}]':
|
|
190
|
+
depth -= 1
|
|
191
|
+
current.append(char)
|
|
192
|
+
elif char == ',' and depth == 0:
|
|
193
|
+
pairs.append(''.join(current))
|
|
194
|
+
current = []
|
|
195
|
+
else:
|
|
196
|
+
current.append(char)
|
|
197
|
+
|
|
198
|
+
if current:
|
|
199
|
+
pairs.append(''.join(current))
|
|
200
|
+
|
|
201
|
+
return pairs
|
|
202
|
+
|
|
203
|
+
def _unescape_string(self, s: str) -> str:
|
|
204
|
+
"""Unescape escaped characters in strings."""
|
|
205
|
+
return s.replace('\\:', ':').replace('\\|', '|').replace('\\,', ',') \
|
|
206
|
+
.replace('\\{', '{').replace('\\}', '}').replace('\\[', '[') \
|
|
207
|
+
.replace('\\]', ']').replace('\\~', '~').replace('\\#', '#') \
|
|
208
|
+
.replace('\\!', '!').replace('\\@', '@').replace('\\$', '$') \
|
|
209
|
+
.replace('\\\\', '\\')
|
|
210
|
+
|
|
211
|
+
# Usage example and performance comparison
|
|
212
|
+
def demonstrate_toon_optimization():
|
|
213
|
+
data = {
|
|
214
|
+
"user": {
|
|
215
|
+
"id": 12345,
|
|
216
|
+
"name": "John Doe",
|
|
217
|
+
"email": "john.doe@example.com",
|
|
218
|
+
"active": True,
|
|
219
|
+
"created_at": datetime.now()
|
|
220
|
+
},
|
|
221
|
+
"permissions": ["read", "write", "admin"],
|
|
222
|
+
"settings": {
|
|
223
|
+
"theme": "dark",
|
|
224
|
+
"notifications": True
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
encoder = TOONEncoder()
|
|
229
|
+
|
|
230
|
+
# JSON encoding
|
|
231
|
+
json_str = json.dumps(data, default=str)
|
|
232
|
+
json_tokens = len(json_str.split())
|
|
233
|
+
|
|
234
|
+
# TOON encoding
|
|
235
|
+
toon_str = encoder.encode(data)
|
|
236
|
+
toon_tokens = len(toon_str.split())
|
|
237
|
+
|
|
238
|
+
# Performance comparison
|
|
239
|
+
reduction = (1 - toon_tokens / json_tokens) * 100
|
|
240
|
+
|
|
241
|
+
return {
|
|
242
|
+
"json_size": len(json_str),
|
|
243
|
+
"toon_size": len(toon_str),
|
|
244
|
+
"json_tokens": json_tokens,
|
|
245
|
+
"toon_tokens": toon_tokens,
|
|
246
|
+
"token_reduction": reduction,
|
|
247
|
+
"json_str": json_str,
|
|
248
|
+
"toon_str": toon_str
|
|
249
|
+
}
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## TOON Format Specification
|
|
253
|
+
|
|
254
|
+
### Type Markers
|
|
255
|
+
- string: No marker (default)
|
|
256
|
+
- number: # prefix
|
|
257
|
+
- boolean: ! prefix (!t, !f)
|
|
258
|
+
- null: ~
|
|
259
|
+
- timestamp: @ prefix (ISO 8601)
|
|
260
|
+
- json-fallback: $ prefix (JSON-encoded)
|
|
261
|
+
|
|
262
|
+
### Structure Rules
|
|
263
|
+
- Objects: `{key1:value1,key2:value2}`
|
|
264
|
+
- Arrays: `[item1|item2|item3]`
|
|
265
|
+
- Escaping: Backslash `\` for special characters
|
|
266
|
+
- Separators: `,` for objects, `|` for arrays
|
|
267
|
+
|
|
268
|
+
### Performance Characteristics
|
|
269
|
+
- Token Reduction: 40-60% vs JSON for typical data
|
|
270
|
+
- Parsing Speed: 2-3x faster than JSON for simple structures
|
|
271
|
+
- Size Reduction: 30-50% smaller than JSON for most use cases
|
|
272
|
+
- Compatibility: Lossless round-trip encoding/decoding
|
|
273
|
+
|
|
274
|
+
### Advanced Usage Patterns
|
|
275
|
+
|
|
276
|
+
```python
|
|
277
|
+
# Batch processing
|
|
278
|
+
def encode_batch(data_list: List[Dict]) -> List[str]:
|
|
279
|
+
encoder = TOONEncoder()
|
|
280
|
+
return [encoder.encode(data) for data in data_list]
|
|
281
|
+
|
|
282
|
+
# Streaming TOON processing
|
|
283
|
+
def stream_toon_file(file_path: str):
|
|
284
|
+
with open(file_path, 'r') as f:
|
|
285
|
+
encoder = TOONEncoder()
|
|
286
|
+
for line in f:
|
|
287
|
+
data = json.loads(line.strip())
|
|
288
|
+
toon_data = encoder.encode(data)
|
|
289
|
+
yield toon_data
|
|
290
|
+
|
|
291
|
+
# Integration with LLM APIs
|
|
292
|
+
def prepare_for_llm(data: Any, max_tokens: int = 1000) -> str:
|
|
293
|
+
encoder = TOONEncoder()
|
|
294
|
+
toon_data = encoder.encode(data)
|
|
295
|
+
|
|
296
|
+
# Further compression if needed
|
|
297
|
+
while len(toon_data.split()) > max_tokens:
|
|
298
|
+
# Implement selective data reduction
|
|
299
|
+
data = reduce_data_complexity(data)
|
|
300
|
+
toon_data = encoder.encode(data)
|
|
301
|
+
|
|
302
|
+
return toon_data
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
Module: `modules/toon-encoding.md`
|
|
308
|
+
Related: [JSON Optimization](./json-optimization.md) | [Data Validation](./data-validation.md)
|