umlforge 0.2.0__tar.gz → 0.2.2__tar.gz
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.
- {umlforge-0.2.0 → umlforge-0.2.2}/PKG-INFO +3 -2
- {umlforge-0.2.0 → umlforge-0.2.2}/api/prompts/__init__.py +1 -1
- {umlforge-0.2.0 → umlforge-0.2.2}/api/prompts/base.py +2 -2
- {umlforge-0.2.0 → umlforge-0.2.2}/api/prompts/p13_legacy_migrate.py +1 -1
- {umlforge-0.2.0 → umlforge-0.2.2}/api/prompts/suggest.py +5 -1
- {umlforge-0.2.0 → umlforge-0.2.2}/connector/README.md +2 -1
- {umlforge-0.2.0 → umlforge-0.2.2}/connector/tools.py +19 -9
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/docs/page.tsx +1 -1
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/manuals/page.tsx +1 -1
- {umlforge-0.2.0 → umlforge-0.2.2}/pyproject.toml +1 -1
- {umlforge-0.2.0 → umlforge-0.2.2}/server.json +2 -2
- {umlforge-0.2.0 → umlforge-0.2.2}/tests/test_phase7_all_prompts.py +1 -1
- {umlforge-0.2.0 → umlforge-0.2.2}/.claude/settings.json +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/.env.example +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/.github/workflows/ci.yml +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/.gitignore +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/.mcp.json +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/.railway/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/LICENSE +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/alembic/README +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/alembic/env.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/alembic/script.py.mako +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/alembic/versions/000_create_base_schema.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/alembic/versions/001_add_dashboard_auth_fields.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/alembic/versions/002_rename_socratic_to_guided.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/alembic/versions/003_add_key_lookup_hash.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/alembic/versions/004_add_admin_tier.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/alembic/versions/005_add_diagram_history_and_guided_toggle.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/alembic/versions/006_add_report_mode_enabled.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/alembic/versions/007_add_report_text_to_diagram_history.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/alembic/versions/008_add_lemonsqueezy_to_subscriptions.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/alembic.ini +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/all-commits.patch +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/__init__.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/_rate_limiter.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/auth.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/auth_routes.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/billing.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/billing_routes.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/config.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/db.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/email.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/free_tier_budget.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/lemon.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/limiter.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/main.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/models/__init__.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/models/inputs.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/models/orm.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/models/responses.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/prompts/p01_reverse_engineer.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/prompts/p02_stakeholder_arch.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/prompts/p03_api_sequence.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/prompts/p04_state_machine.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/prompts/p05_living_docs.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/prompts/p06_erd_schema.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/prompts/p07_threat_model.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/prompts/p08_frontend_components.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/prompts/p09_event_driven.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/prompts/p10_onboarding.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/prompts/p11_ai_agent.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/prompts/p12_deployment.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/providers/__init__.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/providers/anthropic_provider.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/providers/base.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/providers/factory.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/providers/google_provider.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/providers/ollama_provider.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/providers/openai_provider.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/router.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/usage.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/api/validator.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/connector/__init__.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/connector/__main__.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/connector/api_client.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/connector/config.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/connector/requirements.txt +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/connector/server.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/.env.example +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/billing/BillingContent.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/billing/page.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/connect/page.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/dashboard/page.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/demo/page.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/docs/getting-started/page.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/docs/how-to/page.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/feedback/page.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/forgot-password/page.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/generate/page.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/globals.css +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/history/page.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/layout.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/login/page.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/page.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/privacy/page.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/reset-password/page.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/signup/page.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/terms/page.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/app/verify/page.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/components/CreateKeyModal.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/components/DemoSection.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/components/DiagramsSection.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/components/MermaidDiagram.tsx +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/global.d.ts +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/lib/api.ts +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/next-env.d.ts +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/next.config.js +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@antfu/install-pkg/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@braintree/sanitize-url/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@iconify/types/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@img/colour/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@img/sharp-win32-x64/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@jridgewell/gen-mapping/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@jridgewell/resolve-uri/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@jridgewell/sourcemap-codec/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@jridgewell/trace-mapping/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@mermaid-js/parser/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@next/env/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@next/swc-win32-x64-msvc/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@nodelib/fs.scandir/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@nodelib/fs.stat/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@nodelib/fs.walk/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-array/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-axis/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-brush/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-chord/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-color/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-contour/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-delaunay/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-dispatch/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-drag/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-dsv/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-ease/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-fetch/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-force/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-format/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-geo/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-hierarchy/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-interpolate/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-path/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-polygon/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-quadtree/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-random/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-scale/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-scale-chromatic/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-selection/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-shape/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-time/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-time-format/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-timer/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-transition/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/d3-zoom/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/geojson/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/node/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/prop-types/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/react/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/react-dom/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@types/trusted-types/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@upsetjs/venn.js/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@vercel/analytics/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/any-promise/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/anymatch/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/arg/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/autoprefixer/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/baseline-browser-mapping/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/braces/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/browserslist/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/camelcase-css/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/caniuse-lite/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/chokidar/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/chokidar/node_modules/glob-parent/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/cose-base/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/cssesc/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/csstype/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/cytoscape/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/cytoscape-cose-bilkent/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/cytoscape-fcose/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/cytoscape-fcose/node_modules/cose-base/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/cytoscape-fcose/node_modules/layout-base/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-array/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-axis/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-brush/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-chord/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-color/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-contour/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-delaunay/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-dispatch/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-drag/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-dsv/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-ease/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-fetch/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-force/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-format/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-geo/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-hierarchy/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-interpolate/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-path/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-polygon/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-quadtree/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-random/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-sankey/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-sankey/node_modules/d3-array/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-sankey/node_modules/d3-path/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-sankey/node_modules/d3-shape/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-sankey/node_modules/internmap/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-scale/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-scale-chromatic/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-selection/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-shape/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-time/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-time-format/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-timer/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-transition/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/d3-zoom/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/dagre-d3-es/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/dayjs/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/delaunator/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/detect-libc/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/didyoumean/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/dlv/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/dompurify/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/electron-to-chromium/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/es-errors/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/es-toolkit/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/fast-glob/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/fast-glob/node_modules/glob-parent/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/fastq/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/fill-range/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/fraction.js/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/function-bind/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/glob-parent/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/hachure-fill/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/hasown/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/iconv-lite/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/internmap/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/is-core-module/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/is-extglob/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/is-glob/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/is-number/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/jiti/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/katex/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/katex/contrib/auto-render/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/katex/contrib/copy-tex/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/katex/contrib/mathtex-script-type/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/katex/contrib/mhchem/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/katex/dist/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/katex/src/metrics/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/layout-base/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/lines-and-columns/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/lodash-es/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/marked/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/merge2/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/mermaid/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/micromatch/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/mz/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/nanoid/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/next/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/next/dist/compiled/@babel/runtime/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/next/dist/compiled/react-is/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/next/dist/compiled/react-refresh/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/next/dist/compiled/regenerator-runtime/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/next/node_modules/postcss/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/node-releases/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/normalize-path/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/package-manager-detector/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/path-data-parser/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/path-parse/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/picocolors/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/picomatch/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/pirates/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/points-on-curve/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/points-on-path/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/postcss/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/postcss-import/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/postcss-js/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/postcss-load-config/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/postcss-nested/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/postcss-selector-parser/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/postcss-value-parser/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/queue-microtask/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/react/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/react-dom/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/read-cache/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/readdirp/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/reusify/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/robust-predicates/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/roughjs/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/run-parallel/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/rw/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/scheduler/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/semver/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/sharp/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/source-map-js/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/stylis/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/sucrase/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/supports-preserve-symlinks-flag/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/tailwindcss/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/tailwindcss/lib/postcss-plugins/nesting/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/tailwindcss/lib/value-parser/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/tailwindcss/src/postcss-plugins/nesting/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/tailwindcss/src/value-parser/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/thenify/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/thenify-all/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/tinyexec/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/tinyglobby/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/tinyglobby/node_modules/fdir/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/tinyglobby/node_modules/picomatch/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/to-regex-range/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/ts-dedent/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/ts-interface-checker/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/tslib/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/typescript/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/undici-types/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/update-browserslist-db/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/util-deprecate/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/uuid/README.md +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/package-lock.json +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/package.json +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/postcss.config.js +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/tailwind.config.js +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/tsconfig.json +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/vercel.json +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/dashboard/wrangler.toml +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/infra/db/schema.sql +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/pytest.ini +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/railway.toml +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/requirements-dev.txt +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/requirements.txt +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/ruff.toml +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/scripts/setup_paystack_plans.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/test_phase3_app.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/tests/conftest.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/tests/test_integration.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/tests/test_phase10_connector.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/tests/test_phase11_auth_routes.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/tests/test_phase12_billing_routes.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/tests/test_phase14_deployment.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/tests/test_phase15_vercel.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/tests/test_phase16_providers.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/tests/test_phase1_database.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/tests/test_phase2_auth.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/tests/test_phase3_app.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/tests/test_phase4_prompts.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/tests/test_phase5_threat_model.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/tests/test_phase6_validator.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/tests/test_phase8_billing.py +0 -0
- {umlforge-0.2.0 → umlforge-0.2.2}/tests/test_phase9_usage.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: umlforge
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: UML Forge MCP connector — architecture intelligence, security analysis, and living documentation for engineering teams
|
|
5
5
|
Project-URL: Homepage, https://umlforge.dev
|
|
6
6
|
Project-URL: Documentation, https://umlforge.dev/docs
|
|
@@ -29,7 +29,7 @@ Description-Content-Type: text/markdown
|
|
|
29
29
|
**Architecture intelligence, security analysis, and living documentation — inside your coding agent.**
|
|
30
30
|
|
|
31
31
|
[UML Forge](https://umlforge.dev) gives Claude Code, Cursor, Windsurf, and any
|
|
32
|
-
MCP-compatible coding agent a suite of
|
|
32
|
+
MCP-compatible coding agent a suite of 14 specialised tools for producing
|
|
33
33
|
professional UML diagrams from your codebase, schema, or architecture
|
|
34
34
|
descriptions.
|
|
35
35
|
|
|
@@ -69,6 +69,7 @@ Get your API key at [umlforge.dev](https://umlforge.dev).
|
|
|
69
69
|
| `umlforge_stakeholder_arch` | C4 context diagrams for investors, CTOs, and non-technical stakeholders |
|
|
70
70
|
| `umlforge_living_docs` | Update existing diagrams to reflect sprint or PR changes |
|
|
71
71
|
| `umlforge_onboarding` | Day-one knowledge-transfer package for new team members |
|
|
72
|
+
| `umlforge_legacy_migration` | Legacy structure + modern architecture diagrams and 6-phase migration roadmap from COBOL, Fortran, ABAP, RPG, and other legacy languages |
|
|
72
73
|
|
|
73
74
|
All tools accept `report_mode=True` to generate a written analysis report
|
|
74
75
|
alongside the diagram.
|
|
@@ -36,7 +36,7 @@ TOOL_REGISTRY: dict[str, BasePrompt] = {
|
|
|
36
36
|
"umlforge_onboarding": OnboardingPrompt(),
|
|
37
37
|
"umlforge_ai_agent": AiAgentPrompt(),
|
|
38
38
|
"umlforge_deployment": DeploymentPrompt(),
|
|
39
|
-
"
|
|
39
|
+
"umlforge_legacy_migration": LegacyMigratePrompt(),
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
UML Forge — Base Prompt Architecture
|
|
3
3
|
|
|
4
|
-
BasePrompt is the abstract base class for all
|
|
4
|
+
BasePrompt is the abstract base class for all 13 prompt modules.
|
|
5
5
|
Every module inherits from this, sets tool_name + clarifying_questions,
|
|
6
6
|
and implements build_prompt().
|
|
7
7
|
|
|
@@ -62,7 +62,7 @@ _DIAGRAM_TYPE_MAP: dict[str, str] = {
|
|
|
62
62
|
|
|
63
63
|
class BaseToolInput(BaseModel):
|
|
64
64
|
"""
|
|
65
|
-
Base input model for all
|
|
65
|
+
Base input model for all 14 prompt tools.
|
|
66
66
|
clarifications is populated by the Socratic elicitation engine —
|
|
67
67
|
tool-specific input models must inherit from this class.
|
|
68
68
|
"""
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
UML Forge — Tool Suggestion Prompt
|
|
3
3
|
|
|
4
|
-
Suggests which of the
|
|
4
|
+
Suggests which of the 13 prompt tools best matches a plain-English
|
|
5
5
|
task description. Implemented as a standalone function rather than
|
|
6
6
|
a BasePrompt subclass because it does not produce a diagram.
|
|
7
7
|
Registered at POST /v1/suggest (wired in Phase 7).
|
|
@@ -68,6 +68,10 @@ umlforge_ai_agent(pipeline_purpose="", agents="", tools_available="", orchestrat
|
|
|
68
68
|
umlforge_deployment(system_name="", cloud_provider="", environments="", services="", cicd_tool="", report_mode=False)
|
|
69
69
|
→ Infrastructure topology and CI/CD pipeline diagram.
|
|
70
70
|
→ NOT FOR: application-level architecture, security threat modelling.
|
|
71
|
+
|
|
72
|
+
umlforge_legacy_migration(legacy_code="", github_url=None, source_language="COBOL", target_language="Python", system_purpose="", report_mode=False)
|
|
73
|
+
→ Visualise a legacy codebase (COBOL, Fortran, ABAP, RPG, PL/I, Pascal, BASIC, Assembly, Ada, ALGOL) and produce a 6-phase migration roadmap to Python, Go, Rust, Java, TypeScript, C#, or Kotlin.
|
|
74
|
+
→ NOT FOR: analysing modern codebases, generating translated source code, database schema design.
|
|
71
75
|
""".strip()
|
|
72
76
|
|
|
73
77
|
_VALID_TOOLS = frozenset(t.split("(")[0] for t in _TOOL_CATALOGUE.splitlines() if t.startswith("umlforge_"))
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
**Architecture intelligence, security analysis, and living documentation — inside your coding agent.**
|
|
6
6
|
|
|
7
7
|
[UML Forge](https://umlforge.dev) gives Claude Code, Cursor, Windsurf, and any
|
|
8
|
-
MCP-compatible coding agent a suite of
|
|
8
|
+
MCP-compatible coding agent a suite of 14 specialised tools for producing
|
|
9
9
|
professional UML diagrams from your codebase, schema, or architecture
|
|
10
10
|
descriptions.
|
|
11
11
|
|
|
@@ -45,6 +45,7 @@ Get your API key at [umlforge.dev](https://umlforge.dev).
|
|
|
45
45
|
| `umlforge_stakeholder_arch` | C4 context diagrams for investors, CTOs, and non-technical stakeholders |
|
|
46
46
|
| `umlforge_living_docs` | Update existing diagrams to reflect sprint or PR changes |
|
|
47
47
|
| `umlforge_onboarding` | Day-one knowledge-transfer package for new team members |
|
|
48
|
+
| `umlforge_legacy_migration` | Legacy structure + modern architecture diagrams and 6-phase migration roadmap from COBOL, Fortran, ABAP, RPG, and other legacy languages |
|
|
48
49
|
|
|
49
50
|
All tools accept `report_mode=True` to generate a written analysis report
|
|
50
51
|
alongside the diagram.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
UML Forge Connector — MCP Tool Definitions
|
|
3
3
|
|
|
4
|
-
Registers all
|
|
4
|
+
Registers all 14 UML Forge tools with the FastMCP server.
|
|
5
5
|
|
|
6
6
|
CRITICAL CONSTRAINTS (enforced by architecture):
|
|
7
7
|
- ZERO business logic in this file
|
|
@@ -131,7 +131,7 @@ _GUIDED_QUESTIONS: dict[str, list[str]] = {
|
|
|
131
131
|
"Are there any manual steps in the current deployment "
|
|
132
132
|
"process that are not yet automated and should be flagged?",
|
|
133
133
|
],
|
|
134
|
-
"
|
|
134
|
+
"umlforge_legacy_migration": [
|
|
135
135
|
"What does this program currently do in production — is it a batch job, "
|
|
136
136
|
"an online transaction processor, or a reporting/extract system?",
|
|
137
137
|
"Are there hard interface contracts that must be preserved exactly — "
|
|
@@ -187,6 +187,7 @@ async def umlforge_reverse_engineer(
|
|
|
187
187
|
codebase: str = "",
|
|
188
188
|
github_url: str | None = None,
|
|
189
189
|
max_nodes: int = 20,
|
|
190
|
+
github_token: str | None = None,
|
|
190
191
|
report_mode: bool = False,
|
|
191
192
|
ctx: Context | None = None,
|
|
192
193
|
) -> str:
|
|
@@ -222,7 +223,9 @@ async def umlforge_reverse_engineer(
|
|
|
222
223
|
github.com/owner/repo/blob/branch/path/to/file.py
|
|
223
224
|
codebase: Paste code directly when you have files in context
|
|
224
225
|
or the repo is private.
|
|
225
|
-
max_nodes: Max classes/components per diagram (default 20).
|
|
226
|
+
max_nodes: Max classes/components per diagram (default 20, range 5–50).
|
|
227
|
+
github_token: GitHub personal access token (repo scope) — only needed
|
|
228
|
+
for private repositories. Never stored or logged.
|
|
226
229
|
report_mode: True → also produce an Architectural Intelligence Report.
|
|
227
230
|
Pro/Team/Enterprise only.
|
|
228
231
|
"""
|
|
@@ -231,6 +234,7 @@ async def umlforge_reverse_engineer(
|
|
|
231
234
|
"codebase": codebase,
|
|
232
235
|
"github_url": github_url,
|
|
233
236
|
"max_nodes": max_nodes,
|
|
237
|
+
"github_token": github_token,
|
|
234
238
|
"report_mode": report_mode,
|
|
235
239
|
}
|
|
236
240
|
if config.guided_mode and ctx is not None:
|
|
@@ -637,8 +641,10 @@ async def umlforge_frontend_components(
|
|
|
637
641
|
Args:
|
|
638
642
|
feature_description: The UI feature or page to diagram.
|
|
639
643
|
framework: Frontend framework (default: React).
|
|
644
|
+
Supported: React, Vue, Angular, Svelte, Next.js.
|
|
640
645
|
state_management: State approach — Redux, Zustand, Context API, Pinia (optional).
|
|
641
|
-
interactions: Key user interactions
|
|
646
|
+
interactions: Key user interactions and data flows
|
|
647
|
+
(e.g. "user submits form, table sorts on header click") (optional).
|
|
642
648
|
report_mode: True → also produce Component Analysis Notes.
|
|
643
649
|
Pro/Team/Enterprise only.
|
|
644
650
|
"""
|
|
@@ -917,15 +923,16 @@ async def umlforge_deployment(
|
|
|
917
923
|
)
|
|
918
924
|
|
|
919
925
|
|
|
920
|
-
# ── 13. Legacy
|
|
926
|
+
# ── 13. Legacy Migration ─────────────────────────────────────────────────────
|
|
921
927
|
|
|
922
928
|
@mcp.tool(annotations=_READ_ONLY)
|
|
923
|
-
async def
|
|
929
|
+
async def umlforge_legacy_migration(
|
|
924
930
|
legacy_code: str = "",
|
|
925
931
|
github_url: str | None = None,
|
|
926
932
|
source_language: str = "COBOL",
|
|
927
933
|
target_language: str = "Python",
|
|
928
934
|
system_purpose: str = "",
|
|
935
|
+
github_token: str | None = None,
|
|
929
936
|
report_mode: bool = False,
|
|
930
937
|
ctx: Context | None = None,
|
|
931
938
|
) -> str:
|
|
@@ -972,6 +979,8 @@ async def umlforge_legacy_migrate(
|
|
|
972
979
|
system_purpose: Brief description of what the program does in production
|
|
973
980
|
(e.g. "monthly payroll batch", "order entry OLTP"). Optional
|
|
974
981
|
but improves diagram labels and migration advice.
|
|
982
|
+
github_token: GitHub personal access token (repo scope) — only needed
|
|
983
|
+
for private repositories. Never stored or logged.
|
|
975
984
|
report_mode: True → also produce a Legacy Migration Assessment with
|
|
976
985
|
complexity scores and tooling recommendations.
|
|
977
986
|
Pro/Team/Enterprise only.
|
|
@@ -983,16 +992,17 @@ async def umlforge_legacy_migrate(
|
|
|
983
992
|
"source_language": source_language,
|
|
984
993
|
"target_language": target_language,
|
|
985
994
|
"system_purpose": system_purpose,
|
|
995
|
+
"github_token": github_token,
|
|
986
996
|
"report_mode": report_mode,
|
|
987
997
|
}
|
|
988
998
|
if config.guided_mode and ctx is not None:
|
|
989
999
|
clarifications = await _elicit_clarifications(
|
|
990
|
-
ctx, _GUIDED_QUESTIONS["
|
|
1000
|
+
ctx, _GUIDED_QUESTIONS["umlforge_legacy_migration"]
|
|
991
1001
|
)
|
|
992
1002
|
if clarifications:
|
|
993
1003
|
params["clarifications"] = clarifications
|
|
994
1004
|
return await api_client.generate(
|
|
995
|
-
"
|
|
1005
|
+
"umlforge_legacy_migration", params, guided_mode=config.guided_mode
|
|
996
1006
|
)
|
|
997
1007
|
|
|
998
1008
|
|
|
@@ -1009,7 +1019,7 @@ async def umlforge_suggest(task_description: str) -> str:
|
|
|
1009
1019
|
3. Explain why this tool fits and suggest an alternative
|
|
1010
1020
|
|
|
1011
1021
|
USE THIS WHEN:
|
|
1012
|
-
- You are not sure which of the
|
|
1022
|
+
- You are not sure which of the 14 tools to use
|
|
1013
1023
|
- You want to describe a goal ("analyse this repo", "model our order lifecycle")
|
|
1014
1024
|
and get a ready-to-run recommendation
|
|
1015
1025
|
- You want to avoid trial and error with the wrong tool
|
|
@@ -34,7 +34,7 @@ const TOOLS = [
|
|
|
34
34
|
{ name: "umlforge_onboarding", label: "Team Onboarding", desc: "System overview and developer workflow package for new team members." },
|
|
35
35
|
{ name: "umlforge_deployment", label: "Deployment Architecture", desc: "Infrastructure topology and CI/CD pipeline diagrams." },
|
|
36
36
|
{ name: "umlforge_living_docs", label: "Living Docs", desc: "Update existing diagrams to reflect sprint or PR changes." },
|
|
37
|
-
{ name: "
|
|
37
|
+
{ name: "umlforge_legacy_migration", label: "Legacy Migration", desc: "Visualise COBOL, Fortran, or other legacy code and produce a modern equivalent architecture diagram and migration roadmap." },
|
|
38
38
|
{ name: "umlforge_suggest", label: "Suggest a Tool", desc: "Describe your task and get a recommendation for the right diagram tool." },
|
|
39
39
|
];
|
|
40
40
|
|
|
@@ -218,7 +218,7 @@ const TOOLS = [
|
|
|
218
218
|
],
|
|
219
219
|
},
|
|
220
220
|
{
|
|
221
|
-
name: "
|
|
221
|
+
name: "umlforge_legacy_migration",
|
|
222
222
|
label: "Legacy Migrate",
|
|
223
223
|
icon: "🏺",
|
|
224
224
|
when: "You have COBOL, Fortran, ABAP, RPG, PL/I, Pascal, BASIC, Assembly, Ada, or ALGOL code and want to understand its structure and plan a migration to a modern language.",
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "umlforge"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.2"
|
|
8
8
|
description = "UML Forge MCP connector — architecture intelligence, security analysis, and living documentation for engineering teams"
|
|
9
9
|
readme = "connector/README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"url": "https://github.com/dave1362/umlforge-connector",
|
|
8
8
|
"source": "github"
|
|
9
9
|
},
|
|
10
|
-
"version": "0.2.
|
|
10
|
+
"version": "0.2.2",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "pypi",
|
|
14
14
|
"identifier": "umlforge",
|
|
15
|
-
"version": "0.2.
|
|
15
|
+
"version": "0.2.2",
|
|
16
16
|
"transport": {
|
|
17
17
|
"type": "stdio"
|
|
18
18
|
},
|
|
@@ -91,7 +91,7 @@ _VALID_INPUTS = {
|
|
|
91
91
|
"environments": "development, staging, production",
|
|
92
92
|
"services": "FastAPI API, Next.js dashboard, Neon PostgreSQL, Redis cache",
|
|
93
93
|
},
|
|
94
|
-
"
|
|
94
|
+
"umlforge_legacy_migration": {
|
|
95
95
|
"legacy_code": "IDENTIFICATION DIVISION.\nPROGRAM-ID. PAYROLL.\nDATA DIVISION.\nWORKING-STORAGE SECTION.\n01 WS-HOURS PIC 9(3).\nPROCEDURE DIVISION.\n MOVE 40 TO WS-HOURS\n STOP RUN.",
|
|
96
96
|
"source_language": "COBOL",
|
|
97
97
|
"target_language": "Python",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{umlforge-0.2.0 → umlforge-0.2.2}/alembic/versions/005_add_diagram_history_and_guided_toggle.py
RENAMED
|
File without changes
|
|
File without changes
|
{umlforge-0.2.0 → umlforge-0.2.2}/alembic/versions/007_add_report_text_to_diagram_history.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@jridgewell/sourcemap-codec/README.md
RENAMED
|
File without changes
|
{umlforge-0.2.0 → umlforge-0.2.2}/dashboard/node_modules/@jridgewell/trace-mapping/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|