@flisk-sh/flisk 1.3.207 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +40 -37
- package/cli/dist/agent-runtimes/custom.js +3 -3
- package/cli/dist/agent-runtimes/registry.js +3 -3
- package/cli/dist/backend-frameworks/registry.js +8 -8
- package/cli/dist/backend-languages/python.js +4 -1
- package/cli/dist/backend-languages/registry.js +3 -3
- package/cli/dist/cli.js +4 -3
- package/cli/dist/commands/__tests__/project-e2e-helpers.js +6 -6
- package/cli/dist/commands/agent.js +8 -8
- package/cli/dist/commands/completion.js +26 -26
- package/cli/dist/commands/config.js +8 -8
- package/cli/dist/commands/doctor.js +18 -18
- package/cli/dist/commands/down.js +1 -1
- package/cli/dist/commands/eject.js +10 -10
- package/cli/dist/commands/help.js +2 -2
- package/cli/dist/commands/import.js +2 -2
- package/cli/dist/commands/logs.js +2 -2
- package/cli/dist/commands/mcp.js +2 -2
- package/cli/dist/commands/networks.js +2 -2
- package/cli/dist/commands/open.js +0 -1
- package/cli/dist/commands/project.js +19 -19
- package/cli/dist/commands/projects.js +1 -1
- package/cli/dist/commands/resource.js +21 -21
- package/cli/dist/commands/resources.js +2 -2
- package/cli/dist/commands/restart.js +7 -4
- package/cli/dist/commands/runtime.js +15 -3
- package/cli/dist/commands/stack.js +8 -8
- package/cli/dist/commands/up.js +23 -23
- package/cli/dist/commands/upgrade.js +44 -40
- package/cli/dist/frontend-frameworks/registry.js +3 -3
- package/cli/dist/generator/extension-fetch.js +12 -9
- package/cli/dist/generator/template-engine.js +66 -53
- package/cli/dist/mcp/tools.js +2 -2
- package/cli/dist/utils/agent-host.js +1 -1
- package/cli/dist/utils/cli-command.js +1 -1
- package/cli/dist/utils/cold-preflight.js +2 -2
- package/cli/dist/utils/constants.js +3 -3
- package/cli/dist/utils/discovery-paths.js +2 -2
- package/cli/dist/utils/doctor-fix.js +10 -10
- package/cli/dist/utils/doctor-report.js +3 -3
- package/cli/dist/utils/doctor-runtime.js +4 -3
- package/cli/dist/utils/doctor-starlark.js +3 -3
- package/cli/dist/utils/doctor-wiring.js +4 -4
- package/cli/dist/utils/down-cleanup.js +2 -2
- package/cli/dist/utils/env-compat-init.js +8 -0
- package/cli/dist/utils/env-compat.js +27 -0
- package/cli/dist/utils/env-selection.js +9 -9
- package/cli/dist/utils/errors.js +13 -13
- package/cli/dist/utils/file-helpers.js +5 -5
- package/cli/dist/utils/{tdk-version.js → flisk-version.js} +8 -8
- package/cli/dist/utils/generated-paths.js +6 -6
- package/cli/dist/utils/host-port-config.js +10 -10
- package/cli/dist/utils/host-port-plan.js +3 -3
- package/cli/dist/utils/machine-output.js +2 -2
- package/cli/dist/utils/native-windows.js +1 -1
- package/cli/dist/utils/paths.js +3 -3
- package/cli/dist/utils/platform.js +9 -9
- package/cli/dist/utils/port-conflict-fix.js +3 -3
- package/cli/dist/utils/port-fallback-notice.js +3 -3
- package/cli/dist/utils/project-config-defaults.js +1 -1
- package/cli/dist/utils/project-features.js +2 -2
- package/cli/dist/utils/resource-features.js +3 -3
- package/cli/dist/utils/runtime-layout.js +58 -0
- package/cli/dist/utils/schema-version-gate.js +3 -2
- package/cli/dist/utils/service-urls.js +3 -3
- package/cli/dist/utils/services.js +2 -2
- package/cli/dist/utils/shared-infra.js +2 -2
- package/cli/dist/utils/shared-platform-postgres.js +6 -6
- package/cli/dist/utils/tar.js +1 -1
- package/cli/dist/utils/tilt.js +1 -1
- package/cli/dist/utils/up-readiness.js +1 -1
- package/cli/dist/utils/windows-doctor.js +3 -3
- package/cli/dist-bundle/{chunk-D2DIEX5E.js → chunk-36SOQVAL.js} +2 -2
- package/cli/dist-bundle/{chunk-YZRPX76N.js → chunk-3J6XI3NX.js} +1 -1
- package/cli/dist-bundle/chunk-5EZ4EX6U.js +2 -0
- package/cli/dist-bundle/chunk-763VK575.js +54 -0
- package/cli/dist-bundle/{chunk-5LRMAY67.js → chunk-B6Q5VKL7.js} +13 -13
- package/cli/dist-bundle/{chunk-AGXA5DOQ.js → chunk-BWK6MPCB.js} +3 -3
- package/cli/dist-bundle/{chunk-SLKTM6ZO.js → chunk-D7N2GGJH.js} +14 -14
- package/cli/dist-bundle/chunk-HEMPQKD6.js +7 -0
- package/cli/dist-bundle/chunk-ICXF6PXA.js +35 -0
- package/cli/dist-bundle/chunk-K6SOCO6V.js +3 -0
- package/cli/dist-bundle/{chunk-6EA4DGCY.js → chunk-KJZUBHLO.js} +1 -1
- package/cli/dist-bundle/{chunk-GOEBYLFN.js → chunk-MINZ25AC.js} +1 -1
- package/cli/dist-bundle/{chunk-FAHNFTWN.js → chunk-PVBAGX5X.js} +2 -2
- package/cli/dist-bundle/chunk-QQEV6D74.js +2 -0
- package/cli/dist-bundle/chunk-VHFFSBVJ.js +10 -0
- package/cli/dist-bundle/chunk-VMB5673O.js +57 -0
- package/cli/dist-bundle/{chunk-53M5D4KE.js → chunk-XD3BBFZB.js} +1 -1
- package/cli/dist-bundle/{chunk-GIMHTZNR.js → chunk-YL56J2WX.js} +1 -1
- package/cli/dist-bundle/cli.js +254 -254
- package/cli/dist-bundle/cold-preflight-ABU26DYW.js +2 -0
- package/cli/dist-bundle/colima-GBURKN54.js +2 -0
- package/cli/dist-bundle/{demo-stage-ANHJKDZC.js → demo-stage-EBIUCJBX.js} +2 -2
- package/cli/dist-bundle/{devtools-MGITLOWZ.js → devtools-ZD6XIOLD.js} +2 -2
- package/cli/dist-bundle/extension-fetch-VEFSCG4B.js +2 -0
- package/cli/dist-bundle/native-windows-BWVEYVPO.js +2 -0
- package/cli/dist-bundle/{one-command-P6XVAXWV.js → one-command-VNKQAMFJ.js} +2 -2
- package/cli/dist-bundle/open-2KSAF6M2.js +2 -0
- package/cli/dist-bundle/project-YD3C4ZV3.js +2 -0
- package/cli/dist-bundle/project-templates-EYSQG2EO.js +2 -0
- package/cli/dist-bundle/{services-CBXN4SXC.js → services-V6Q55JR5.js} +2 -2
- package/cli/dist-bundle/{stack-progress-6GO2TCRH.js → stack-progress-NIFM5T2K.js} +2 -2
- package/cli/dist-bundle/tilt-port-owner-MWJ7P6NB.js +2 -0
- package/cli/dist-bundle/url-actions-HXJLBTX6.js +2 -0
- package/cli/package.json +5 -5
- package/cli/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +2 -2
- package/cli/shared-platform-engineering/docker-templates/install-deps.sh +2 -2
- package/cli/templates/.tiltignore.hbs +2 -2
- package/cli/templates/TILT_RESOURCE_DEFAULTS.star.hbs +1 -1
- package/cli/templates/TILT_TECH_STACK.star.hbs +1 -1
- package/cli/templates/Tiltfile.hbs +21 -21
- package/cli/templates/spec.master.hbs +4 -4
- package/examples/tdk-example/LICENSE +1 -1
- package/examples/tdk-example/Tiltfile +10 -10
- package/examples/tdk-example/services/platform/messaging/docker-compose.yml +7 -7
- package/examples/tdk-example/services/shop/orders-api/service.json +1 -1
- package/examples/tdk-example/services/shop/orders-api/src/index.ts +1 -1
- package/examples/tdk-example/services/shop/orders-app/index.html +1 -1
- package/examples/tdk-example/services/shop/orders-worker/service.json +1 -1
- package/examples/tdk-example/services/shop/orders-worker/src/index.ts +1 -1
- package/package.json +29 -11
- package/{Tiltfile → runtime/Tiltfile} +9 -5
- package/{discovery → runtime/discovery}/AGENTS.md +1 -1
- package/{discovery → runtime/discovery}/TILT_DISCOVERY.star +5 -5
- package/{discovery → runtime/discovery}/Tiltfile +5 -5
- package/{discovery → runtime/discovery}/config.star +5 -5
- package/{discovery → runtime/discovery}/constants.star +14 -14
- package/{discovery → runtime/discovery}/deterministic.star +1 -1
- package/{discovery → runtime/discovery}/discovery_daemon.star +2 -2
- package/{discovery → runtime/discovery}/discovery_orchestrator.star +17 -17
- package/{discovery → runtime/discovery}/identity-management-backend/service.yaml +2 -2
- package/{discovery → runtime/discovery}/incremental_discovery.star +1 -1
- package/{discovery → runtime/discovery}/json_manifest_scanner.star +2 -2
- package/{discovery → runtime/discovery}/libraries.star +1 -1
- package/{discovery → runtime/discovery}/manifest/constants.star +1 -1
- package/{discovery → runtime/discovery}/manifest/loading.star +7 -7
- package/{discovery → runtime/discovery}/manifest/normalize.star +12 -15
- package/{discovery → runtime/discovery}/registry.star +11 -11
- package/{discovery → runtime/discovery}/resource_snapshot.py +2 -2
- package/{discovery → runtime/discovery}/resource_snapshot.star +6 -6
- package/{discovery → runtime/discovery}/services/platform/orchestrator/orchestrator-glue-backend/service.yaml +2 -2
- package/{discovery → runtime/discovery}/test_resource_snapshot.py +6 -6
- package/{engine → runtime/engine}/AGENTS.md +6 -6
- package/{engine → runtime/engine}/README.md +2 -2
- package/{engine → runtime/engine}/Tiltfile +5 -5
- package/{engine → runtime/engine}/assets/docker/golden-layers.Dockerfile +17 -17
- package/{engine → runtime/engine}/assets/docker/wake-gateway/Dockerfile +7 -0
- package/{engine → runtime/engine}/entrypoint.star +1 -1
- package/{engine → runtime/engine}/paths.star +5 -5
- package/{engine → runtime/engine}/schemas/project-schema.json +2 -2
- package/{engine → runtime/engine}/schemas/service-schema.json +5 -5
- package/{engine → runtime/engine}/scripts/debug-container.sh +3 -3
- package/{engine → runtime/engine}/spec.master +3 -3
- package/{engine → runtime/engine}/topologies/README.md +3 -3
- package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image_build.star +5 -5
- package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image_constants.star +7 -7
- package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image_dockerfile.star +8 -8
- package/{engine → runtime/engine}/topologies/platform/docker/compose/compose.star +12 -12
- package/{engine → runtime/engine}/topologies/platform/docker/compose/traefik_standalone.star +21 -6
- package/{engine → runtime/engine}/topologies/platform/docker/config/healthcheck.star +7 -7
- package/{engine → runtime/engine}/topologies/platform/docker/constants.star +7 -7
- package/{engine → runtime/engine}/topologies/platform/docker/dockerfile/language_dockerfile.star +3 -3
- package/{engine → runtime/engine}/topologies/platform/docker/layers/l1_base_layers.star +5 -5
- package/{engine → runtime/engine}/topologies/platform/docker/layers/l2_dependency_layers.star +14 -14
- package/{engine → runtime/engine}/topologies/platform/docker/layers/l3_builder_layers.star +5 -5
- package/{engine → runtime/engine}/topologies/platform/docker/layers/l4_runtime_layers.star +8 -8
- package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/constants.star +5 -5
- package/{engine → runtime/engine}/topologies/platform/docker/networking/api_path_constants.star +5 -5
- package/{engine → runtime/engine}/topologies/platform/docker/networking/sablier_container_cycle.star +1 -1
- package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik_static_routes.star +1 -1
- package/{engine → runtime/engine}/topologies/platform/docker/secrets/env_secrets.star +2 -2
- package/{engine → runtime/engine}/topologies/platform/docker/secrets/infisical.star +4 -4
- package/{engine → runtime/engine}/topologies/platform/registries/verdaccio_loader.star +1 -1
- package/{engine → runtime/engine}/topologies/platform/security/secrets.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/common/utils.star +9 -10
- package/{engine → runtime/engine}/topologies/tilt/common/utils_debug.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/common/utils_deterministic.star +2 -2
- package/{engine → runtime/engine}/topologies/tilt/common/utils_env.star +5 -5
- package/{engine → runtime/engine}/topologies/tilt/config/profiles.star +4 -4
- package/{engine → runtime/engine}/topologies/tilt/generators/agents_md.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/generators/infisical/README.md +1 -1
- package/{engine → runtime/engine}/topologies/tilt/generators/infisical/organization.star +6 -6
- package/{engine → runtime/engine}/topologies/tilt/generators/npmrc.star +5 -5
- package/{engine → runtime/engine}/topologies/tilt/generators/typescript/backend_tsconfig.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/generators/typescript/playwright_config.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/generators/vite/helpers.star +7 -7
- package/{engine → runtime/engine}/topologies/tilt/generators/vite/templates.star +5 -5
- package/{engine → runtime/engine}/topologies/tilt/manifest/json_to_yaml.py +2 -2
- package/{engine → runtime/engine}/topologies/tilt/manifest/loader.star +2 -2
- package/{engine → runtime/engine}/topologies/tilt/manifest/schema.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/manifest/yaml_to_json.py +1 -1
- package/{engine → runtime/engine}/topologies/tilt/resources/build_concurrency.star +3 -3
- package/{engine → runtime/engine}/topologies/tilt/resources/databases.star +7 -6
- package/{engine → runtime/engine}/topologies/tilt/resources/infra-loader.star +12 -12
- package/{engine → runtime/engine}/topologies/tilt/resources/libs_paths.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/resources/libs_resource_definition.star +2 -2
- package/{engine → runtime/engine}/topologies/tilt/resources/libs_setup.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_compose_resource_registration.star +36 -28
- package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_migrator_orchestration.star +1 -1
- package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/frontend.star +5 -5
- package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/manifest_resource.star +4 -4
- package/{engine → runtime/engine}/topologies/tilt/resources/watchers.star +20 -20
- package/{engine → runtime/engine}/where-things-live.star +5 -5
- package/{ext → runtime/ext}/Tiltfile +5 -5
- package/{ext → runtime/ext}/ide-components/code_viewer/server.py +1 -1
- package/{ext → runtime/ext}/ide-components/config_inspector/server.py +2 -2
- package/{ext → runtime/ext}/ide-components/file_browser/server.py +1 -1
- package/{ext → runtime/ext}/ide-components/shared/config_service.py +2 -2
- package/{ext → runtime/ext}/ide-components/shared/file_utils.py +2 -2
- package/{ext → runtime/ext}/ide-components/shared/http_utils.py +1 -1
- package/{ext → runtime/ext}/ide-components/shared/syntax_highlighter.py +1 -1
- package/{ext → runtime/ext}/ide-components/shared/template_engine.py +1 -1
- package/{ext → runtime/ext}/ide-components/shared/templates/base.html +1 -1
- package/{ext → runtime/ext}/ide-components/shared/test_config_service.py +1 -1
- package/{ext → runtime/ext}/ide-components/shared/tilt_integration.py +1 -1
- package/{ext → runtime/ext}/ui-enhancements/tiltfile.py +1 -1
- package/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +2 -2
- package/shared-platform-engineering/docker-templates/install-deps.sh +2 -2
- package/cli/dist-bundle/chunk-42IVF3YT.js +0 -3
- package/cli/dist-bundle/chunk-AT5MFZ3D.js +0 -10
- package/cli/dist-bundle/chunk-BHWJU6HY.js +0 -2
- package/cli/dist-bundle/chunk-DWR3LLHS.js +0 -2
- package/cli/dist-bundle/chunk-GB6DJJ5N.js +0 -57
- package/cli/dist-bundle/chunk-ODYL6LET.js +0 -52
- package/cli/dist-bundle/chunk-YTXQPTCN.js +0 -35
- package/cli/dist-bundle/chunk-Z2C55UFP.js +0 -7
- package/cli/dist-bundle/cold-preflight-7PFKXNK7.js +0 -2
- package/cli/dist-bundle/colima-SVZX2UML.js +0 -2
- package/cli/dist-bundle/extension-fetch-6XNTDF44.js +0 -2
- package/cli/dist-bundle/native-windows-X5XVLFJS.js +0 -2
- package/cli/dist-bundle/open-VJZ7W4JR.js +0 -2
- package/cli/dist-bundle/project-QSH7LOWI.js +0 -2
- package/cli/dist-bundle/project-templates-JDRE7AVL.js +0 -2
- package/cli/dist-bundle/tilt-port-owner-SMN5SAQJ.js +0 -2
- package/cli/dist-bundle/url-actions-D6ROTHZG.js +0 -2
- /package/cli/bin/{tdk.js → flisk.js} +0 -0
- /package/{discovery → runtime/discovery}/filtering.star +0 -0
- /package/{discovery → runtime/discovery}/identity-management-frontend/service.yaml +0 -0
- /package/{discovery → runtime/discovery}/identity-sdk/service.yaml +0 -0
- /package/{discovery → runtime/discovery}/indexing.star +0 -0
- /package/{discovery → runtime/discovery}/loading.star +0 -0
- /package/{discovery → runtime/discovery}/manifest/validation.star +0 -0
- /package/{discovery → runtime/discovery}/normalization.star +0 -0
- /package/{discovery → runtime/discovery}/schemas.star +0 -0
- /package/{discovery → runtime/discovery}/services/platform/cdc/debezium/nats-connector/service.yaml +0 -0
- /package/{discovery → runtime/discovery}/services/platform/cdc/nats-http-bridge/service.yaml +0 -0
- /package/{discovery → runtime/discovery}/services/platform/synthetic-monitor/service.yaml +0 -0
- /package/{discovery → runtime/discovery}/validation.star +0 -0
- /package/{discovery → runtime/discovery}/versioning.star +0 -0
- /package/{engine → runtime/engine}/REFACTORING_MANIFEST_SYSTEM.md +0 -0
- /package/{engine → runtime/engine}/assets/docker/wake-gateway/decide.test.ts +0 -0
- /package/{engine → runtime/engine}/assets/docker/wake-gateway/decide.ts +0 -0
- /package/{engine → runtime/engine}/assets/docker/wake-gateway/server.ts +0 -0
- /package/{engine → runtime/engine}/assets/scripts/cleanup-completed-migrator-images.sh +0 -0
- /package/{engine → runtime/engine}/assets/scripts/cleanup-tilt-images.sh +0 -0
- /package/{engine → runtime/engine}/assets/scripts/mac-m1-resource-monitor.sh +0 -0
- /package/{engine → runtime/engine}/config.star +0 -0
- /package/{engine → runtime/engine}/lifecycle/orchestrator.star +0 -0
- /package/{engine → runtime/engine}/scripts/README.md +0 -0
- /package/{engine → runtime/engine}/scripts/build-and-publish-lib.sh +0 -0
- /package/{engine → runtime/engine}/scripts/check-lib-publish.sh +0 -0
- /package/{engine → runtime/engine}/scripts/generate-manifest.sh +0 -0
- /package/{engine → runtime/engine}/spec.master.example +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/auth/auth.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/build/frontend_build_plan.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/build/golden_image.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/compose/compose_helpers.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/compose/unsafe_value.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/config/bunignore.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/config/dockerignore.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/dockerfile/dockerfile.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/generators/golden_docker_generator_v2.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/index.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/bun_helpers.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/infisical/index.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/infisical/infisical_docker.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/db_readiness.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/filesystem_setup.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/migrate_script.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/prisma_build.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/prisma_runtime.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/layers/prisma/secret_resolution.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik_constants.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/docker/networking/traefik_helpers.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/net/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/platform/net/proxy.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/registries/local.star +0 -0
- /package/{engine → runtime/engine}/topologies/platform/security/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/platform/state/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/platform/state/relational.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/common/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/common/utils_docker_networks.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/common/utils_output.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/config/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/config/defaults.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/config/feature_flags.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/config/global.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/api_gateway.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/index.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/examples.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/index.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/machine_identity.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/path_manager.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/infisical/secrets_generator.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/nginx_conf.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/tsconfig.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/backend_library_tsconfig.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/common.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/frontend_library_tsconfig.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/frontend_tsconfig.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/include.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/typescript/prisma_config.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/validators.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/backend.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/lit.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/preact.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/qwik.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/react.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/solid.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/svelte.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/vanilla.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frameworks/vue.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/frontend.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/generators.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/library.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite/sdk.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/generators/vite_config.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/README.md +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/__init__.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/constants.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/errors.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/integration.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/mapper.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/parser.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/tests/test_integration.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/tests/test_loader_parser.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/tests/test_manifest.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/tests/test_validator.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/manifest/validator.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/conditions.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/declaration.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/deps.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/libs.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/libs_discovery.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/libs_tsconfig.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_manifest_orchestration.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_resource_validation.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/apply_runtime_flags.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/builders/typescript.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/dependencies/AGENTS.md +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/dependencies/index.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/dependencies/resolver.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/generators/env.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator/helpers.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/orchestrator.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/ordering.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/shared-platform-postgres.star +0 -0
- /package/{engine → runtime/engine}/topologies/tilt/resources/triggers.star +0 -0
- /package/{ext → runtime/ext}/ide-components/README.md +0 -0
- /package/{ext → runtime/ext}/ide-components/shared/static/styles.css +0 -0
- /package/{ext → runtime/ext}/ui-enhancements/cron-status-server.sh +0 -0
- /package/{ext → runtime/ext}/ui-enhancements/cron-status-tracker.sh +0 -0
- /package/{ext → runtime/ext}/ui-enhancements/extension.yaml +0 -0
- /package/{ext → runtime/ext}/ui-enhancements/ui/cron-jobs-tab.css +0 -0
- /package/{ext → runtime/ext}/ui-enhancements/ui/help-panel.css +0 -0
- /package/{ext → runtime/ext}/ui-enhancements/ui/icons.css +0 -0
- /package/{ext → runtime/ext}/ui-enhancements/ui/tooltips.css +0 -0
- /package/{specs → runtime/specs}/specs/TILT_SERVICE_DEFAULTS.star +0 -0
- /package/{specs → runtime/specs}/specs/TILT_TECH_STACK.star +0 -0
|
@@ -4,7 +4,7 @@ import * as http from "node:http";
|
|
|
4
4
|
import chalk from "chalk";
|
|
5
5
|
import { Command } from "commander";
|
|
6
6
|
import { createDiscoveryContext } from "../utils/discovery-context.js";
|
|
7
|
-
import { errorFactories,
|
|
7
|
+
import { errorFactories, FliskError, runCommand } from "../utils/errors.js";
|
|
8
8
|
import { getHostPortPlan } from "../utils/host-port-config.js";
|
|
9
9
|
import { createMachineEnvelope, writeMachineError } from "../utils/machine-output.js";
|
|
10
10
|
import { findProjectRoot } from "../utils/paths.js";
|
|
@@ -67,7 +67,7 @@ agentCommand
|
|
|
67
67
|
console.log(JSON.stringify(createMachineEnvelope(null, [{ code: "UNKNOWN_RESOURCE", message: msg }])));
|
|
68
68
|
process.exit(1);
|
|
69
69
|
}
|
|
70
|
-
throw new
|
|
70
|
+
throw new FliskError(msg);
|
|
71
71
|
}
|
|
72
72
|
const appType = resource.config?.appType ?? resource.type;
|
|
73
73
|
if (appType !== "agent") {
|
|
@@ -76,7 +76,7 @@ agentCommand
|
|
|
76
76
|
console.log(JSON.stringify(createMachineEnvelope(null, [{ code: "NOT_AN_AGENT", message: msg }])));
|
|
77
77
|
process.exit(1);
|
|
78
78
|
}
|
|
79
|
-
throw new
|
|
79
|
+
throw new FliskError(msg);
|
|
80
80
|
}
|
|
81
81
|
const port = resource.port;
|
|
82
82
|
if (!port) {
|
|
@@ -85,7 +85,7 @@ agentCommand
|
|
|
85
85
|
console.log(JSON.stringify(createMachineEnvelope(null, [{ code: "NO_PORT", message: msg }])));
|
|
86
86
|
process.exit(1);
|
|
87
87
|
}
|
|
88
|
-
throw new
|
|
88
|
+
throw new FliskError(msg);
|
|
89
89
|
}
|
|
90
90
|
// The agent runtime keys GET /session by x-session-id and has no list endpoint, so a missing id
|
|
91
91
|
// would only come back as a confusing 400. Fail before any request. Checked after resource
|
|
@@ -97,7 +97,7 @@ agentCommand
|
|
|
97
97
|
console.log(JSON.stringify(createMachineEnvelope(null, [{ code: "SESSION_ID_REQUIRED", message: msg }])));
|
|
98
98
|
process.exit(1);
|
|
99
99
|
}
|
|
100
|
-
throw new
|
|
100
|
+
throw new FliskError(msg, [`Run: flisk agent sessions ${resourceName} --session-id <id>`]);
|
|
101
101
|
}
|
|
102
102
|
const portPlan = root
|
|
103
103
|
? await getHostPortPlan(root, { inspectDocker: false }).catch(() => null)
|
|
@@ -109,7 +109,7 @@ agentCommand
|
|
|
109
109
|
console.log(JSON.stringify(createMachineEnvelope(null, [{ code: "NO_ROUTE", message: msg }])));
|
|
110
110
|
process.exit(1);
|
|
111
111
|
}
|
|
112
|
-
throw new
|
|
112
|
+
throw new FliskError(msg);
|
|
113
113
|
}
|
|
114
114
|
const request = agentSessionRequest(routeUrl, sessionId);
|
|
115
115
|
// Nothing answered, or Traefik answered for a missing backend: either way the agent is not up.
|
|
@@ -119,7 +119,7 @@ agentCommand
|
|
|
119
119
|
console.log(JSON.stringify(createMachineEnvelope(null, [{ code: "AGENT_NOT_RUNNING", message: msg }])));
|
|
120
120
|
process.exit(1);
|
|
121
121
|
}
|
|
122
|
-
throw new
|
|
122
|
+
throw new FliskError(msg, ["Start the stack with: flisk up"]);
|
|
123
123
|
};
|
|
124
124
|
let res;
|
|
125
125
|
let bodyText;
|
|
@@ -156,7 +156,7 @@ agentCommand
|
|
|
156
156
|
])));
|
|
157
157
|
process.exit(1);
|
|
158
158
|
}
|
|
159
|
-
throw new
|
|
159
|
+
throw new FliskError(`Agent error (${res.status}): ${detail}`);
|
|
160
160
|
}
|
|
161
161
|
if (options.json) {
|
|
162
162
|
console.log(JSON.stringify(createMachineEnvelope({
|
|
@@ -79,7 +79,7 @@ function shellTypeCondition(types) {
|
|
|
79
79
|
return parts.join(" || ");
|
|
80
80
|
}
|
|
81
81
|
/** The name of the variable that holds the `--type` of the command line. */
|
|
82
|
-
const TYPE_VARIABLE = "
|
|
82
|
+
const TYPE_VARIABLE = "flisk_type";
|
|
83
83
|
/** The stacks of the current project, read from the machine-readable CLI output. */
|
|
84
84
|
const BASH_STACKS = `flisk stacks --json 2>/dev/null | grep -o '"name":"[^"]*"' | sed 's/"name":"//;s/"$//'`;
|
|
85
85
|
const BASH_RESOURCES = `flisk resources --json 2>/dev/null | grep -o '"name":"[^"]*"' | sed 's/"name":"//;s/"$//'`;
|
|
@@ -106,7 +106,7 @@ const ZSH_TYPE = ` local ${TYPE_VARIABLE}=""
|
|
|
106
106
|
fi
|
|
107
107
|
done`;
|
|
108
108
|
/** The `--type` of the current command line, in fish. */
|
|
109
|
-
const FISH_TYPE = `function
|
|
109
|
+
const FISH_TYPE = `function __flisk_resource_type
|
|
110
110
|
set -l tokens (commandline -opc)
|
|
111
111
|
set -l ${TYPE_VARIABLE} ""
|
|
112
112
|
set -l token_count (count $tokens)
|
|
@@ -156,7 +156,7 @@ function zshTypeValues(flag, values) {
|
|
|
156
156
|
}
|
|
157
157
|
/** The values of a flag that depend on the `--type`, in fish. */
|
|
158
158
|
function fishTypeValues(values) {
|
|
159
|
-
const lines = [" switch (
|
|
159
|
+
const lines = [" switch (__flisk_resource_type)"];
|
|
160
160
|
for (const arm of typeValueArms(values)) {
|
|
161
161
|
lines.push(` case ${arm.types.map((type) => (type === "" ? "''" : type)).join(" ")}`);
|
|
162
162
|
lines.push(` printf '%s\\n' ${arm.values.join(" ")}`);
|
|
@@ -252,7 +252,7 @@ function renderBash(candidates) {
|
|
|
252
252
|
.join("\n");
|
|
253
253
|
return `# Flisk CLI Bash Completion
|
|
254
254
|
# Generated by "flisk completion bash". The command and flag lists come from the CLI itself.
|
|
255
|
-
|
|
255
|
+
_flisk_completions() {
|
|
256
256
|
local cur prev cmd sub options words commands stacks resources path ${TYPE_VARIABLE} ${TYPE_VARIABLE}_values
|
|
257
257
|
COMPREPLY=()
|
|
258
258
|
cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
@@ -335,24 +335,24 @@ ${positionalCases}
|
|
|
335
335
|
return 0
|
|
336
336
|
}
|
|
337
337
|
|
|
338
|
-
complete -F
|
|
338
|
+
complete -F _flisk_completions flisk
|
|
339
339
|
`;
|
|
340
340
|
}
|
|
341
341
|
/** The `_arguments` spec of the positional argument of a command. */
|
|
342
342
|
function zshPositionalSpecs(entry) {
|
|
343
343
|
// A command with sub-commands completes the name of the sub-command, not a value.
|
|
344
344
|
if (entry.subcommands.length > 0) {
|
|
345
|
-
return [`'1: :
|
|
345
|
+
return [`'1: :_flisk_${entry.name}_subcommands'`];
|
|
346
346
|
}
|
|
347
347
|
switch (entry.positional) {
|
|
348
348
|
case "stacks":
|
|
349
|
-
return ["'1:stack:
|
|
349
|
+
return ["'1:stack:_flisk_stacks'"];
|
|
350
350
|
case "resources":
|
|
351
|
-
return ["'1:resource:
|
|
351
|
+
return ["'1:resource:_flisk_resources'"];
|
|
352
352
|
case "stacks-and-resources":
|
|
353
|
-
return ["'1:target:
|
|
353
|
+
return ["'1:target:_flisk_stacks'"];
|
|
354
354
|
case "commands":
|
|
355
|
-
return ["'1:command:
|
|
355
|
+
return ["'1:command:_flisk_commands'"];
|
|
356
356
|
default:
|
|
357
357
|
break;
|
|
358
358
|
}
|
|
@@ -411,25 +411,25 @@ function renderZsh(candidates) {
|
|
|
411
411
|
.join("\n");
|
|
412
412
|
const subCommandLists = entries
|
|
413
413
|
.filter((entry) => entry.subcommands.length > 0)
|
|
414
|
-
.map((entry) => `
|
|
414
|
+
.map((entry) => `_flisk_${entry.name}_subcommands() {\n local commands=(\n${entry.subcommands
|
|
415
415
|
.map((subcommand) => ` '${subcommand.name}:${shortDescription(subcommand.description)}'`)
|
|
416
416
|
.join("\n")}\n )\n _describe -t commands '${entry.name} command' commands\n}`)
|
|
417
417
|
.join("\n\n");
|
|
418
418
|
const typeValueFunctions = Object.entries(candidates.typeValues)
|
|
419
|
-
.map(([flag, values]) => `
|
|
419
|
+
.map(([flag, values]) => `_flisk_${flag.slice(2)}_values() {\n${ZSH_TYPE}\n${zshTypeValues(flag, values)}\n}`)
|
|
420
420
|
.join("\n\n");
|
|
421
421
|
return `#compdef flisk
|
|
422
422
|
|
|
423
423
|
# Flisk CLI Zsh Completion
|
|
424
424
|
# Generated by "flisk completion zsh". The command and flag lists come from the CLI itself.
|
|
425
425
|
|
|
426
|
-
|
|
426
|
+
_flisk() {
|
|
427
427
|
local curcontext="$curcontext" state line
|
|
428
428
|
typeset -A opt_args
|
|
429
429
|
|
|
430
430
|
_arguments -C \\
|
|
431
431
|
${globalFlags} \\
|
|
432
|
-
'1: :
|
|
432
|
+
'1: :_flisk_commands' \\
|
|
433
433
|
'*:: :->args'
|
|
434
434
|
|
|
435
435
|
case "$line[1]" in
|
|
@@ -441,20 +441,20 @@ ${subCommandStates}
|
|
|
441
441
|
esac
|
|
442
442
|
}
|
|
443
443
|
|
|
444
|
-
|
|
444
|
+
_flisk_commands() {
|
|
445
445
|
local commands=(
|
|
446
446
|
${commandList}
|
|
447
447
|
)
|
|
448
448
|
_describe -t commands 'flisk command' commands
|
|
449
449
|
}
|
|
450
450
|
|
|
451
|
-
|
|
451
|
+
_flisk_stacks() {
|
|
452
452
|
local stacks
|
|
453
453
|
stacks=($(flisk stacks --json 2>/dev/null | grep -o '"name":"[^"]*"' | sed 's/"name":"//;s/"$//'))
|
|
454
454
|
_describe -t stacks 'stack' stacks
|
|
455
455
|
}
|
|
456
456
|
|
|
457
|
-
|
|
457
|
+
_flisk_resources() {
|
|
458
458
|
local resources
|
|
459
459
|
resources=($(flisk resources --json 2>/dev/null | grep -o '"name":"[^"]*"' | sed 's/"name":"//;s/"$//'))
|
|
460
460
|
_describe -t resources 'resource' resources
|
|
@@ -463,24 +463,24 @@ _tdk_resources() {
|
|
|
463
463
|
${subCommandLists}
|
|
464
464
|
|
|
465
465
|
${typeValueFunctions}
|
|
466
|
-
compdef
|
|
466
|
+
compdef _flisk flisk
|
|
467
467
|
`;
|
|
468
468
|
}
|
|
469
469
|
/** The `_arguments` spec of one flag, with the values it completes when it has them. */
|
|
470
470
|
function zshOptionSpec(option, candidates, entry) {
|
|
471
471
|
const description = shortDescription(option.description);
|
|
472
472
|
if (candidates.typeValues[option.flag]) {
|
|
473
|
-
return `'${option.flag}[${description}]:${option.flag.slice(2)}:
|
|
473
|
+
return `'${option.flag}[${description}]:${option.flag.slice(2)}:_flisk_${option.flag.slice(2)}_values'`;
|
|
474
474
|
}
|
|
475
475
|
const values = valuesOf(option.flag, candidates, entry);
|
|
476
476
|
if (values) {
|
|
477
477
|
return `'${option.flag}[${description}]:${option.flag.slice(2)}:(${values.join(" ")})'`;
|
|
478
478
|
}
|
|
479
479
|
if (option.flag === "--stack") {
|
|
480
|
-
return `'${option.flag}[${description}]:stack:
|
|
480
|
+
return `'${option.flag}[${description}]:stack:_flisk_stacks'`;
|
|
481
481
|
}
|
|
482
482
|
if (option.flag === "--only") {
|
|
483
|
-
return `'${option.flag}[${description}]:service:
|
|
483
|
+
return `'${option.flag}[${description}]:service:_flisk_resources'`;
|
|
484
484
|
}
|
|
485
485
|
return option.takesValue
|
|
486
486
|
? `'${option.flag}[${description}]:${option.flag.slice(2)}:'`
|
|
@@ -526,7 +526,7 @@ function renderFish(candidates) {
|
|
|
526
526
|
.filter((entry) => entry.positional === "commands")
|
|
527
527
|
.map((entry) => `complete -c flisk -f -n '${fishCondition(entry)}' -a '${commandWords(entries).join(" ")}'`);
|
|
528
528
|
const typeValueFunctions = Object.entries(candidates.typeValues)
|
|
529
|
-
.map(([flag, values]) => `function
|
|
529
|
+
.map(([flag, values]) => `function __flisk_${flag.slice(2)}_values\n${fishTypeValues(values)}\nend`)
|
|
530
530
|
.join("\n\n");
|
|
531
531
|
return `# Flisk CLI Fish Completion
|
|
532
532
|
# Generated by "flisk completion fish". The command and flag lists come from the CLI itself.
|
|
@@ -571,7 +571,7 @@ function fishCondition(entry) {
|
|
|
571
571
|
/** The fish argument that lists the values of a flag. */
|
|
572
572
|
function fishValueArgument(option, candidates, entry) {
|
|
573
573
|
if (candidates.typeValues[option.flag]) {
|
|
574
|
-
return ` -r -a '(
|
|
574
|
+
return ` -r -a '(__flisk_${option.flag.slice(2)}_values)'`;
|
|
575
575
|
}
|
|
576
576
|
const values = valuesOf(option.flag, candidates, entry);
|
|
577
577
|
return values ? ` -r -a '${values.join(" ")}'` : "";
|
|
@@ -761,11 +761,11 @@ export const completionCommand = new Command("completion")
|
|
|
761
761
|
const candidates = buildCompletionCandidates(program);
|
|
762
762
|
const completionScript = renderCompletionScript(shell, candidates);
|
|
763
763
|
const filename = shell === "bash"
|
|
764
|
-
? "
|
|
764
|
+
? "flisk-completion.bash"
|
|
765
765
|
: shell === "zsh"
|
|
766
|
-
? "
|
|
766
|
+
? "_flisk"
|
|
767
767
|
: shell === "fish"
|
|
768
|
-
? "
|
|
768
|
+
? "flisk.fish"
|
|
769
769
|
: "Microsoft.PowerShell_profile.ps1";
|
|
770
770
|
if (options.install) {
|
|
771
771
|
const home = homedir();
|
|
@@ -23,7 +23,7 @@ import { validateOptionalInfraService } from "../utils/validation.js";
|
|
|
23
23
|
export const configCommand = new Command("config")
|
|
24
24
|
.description("Manage project configuration and regenerate master files")
|
|
25
25
|
.addCommand(new Command("regenerate")
|
|
26
|
-
.description("Regenerate all 4 master config files from .
|
|
26
|
+
.description("Regenerate all 4 master config files from .flisk/project.json")
|
|
27
27
|
.option("--dry-run", "Show what would change without writing files")
|
|
28
28
|
.action(async (options) => {
|
|
29
29
|
await runCommand(async () => {
|
|
@@ -34,7 +34,7 @@ export const configCommand = new Command("config")
|
|
|
34
34
|
const projectConfig = readProjectConfig(projectRoot);
|
|
35
35
|
const engine = new TemplateEngine();
|
|
36
36
|
const newFiles = engine.generateAll(projectConfig);
|
|
37
|
-
const outputDir = join(projectRoot, ".
|
|
37
|
+
const outputDir = join(projectRoot, ".flisk", ".flisk-out");
|
|
38
38
|
const filesToCheck = MASTER_CONFIG_FILES;
|
|
39
39
|
let hasChanges = false;
|
|
40
40
|
for (const filename of filesToCheck) {
|
|
@@ -174,7 +174,7 @@ export const configCommand = new Command("config")
|
|
|
174
174
|
});
|
|
175
175
|
}))
|
|
176
176
|
.addCommand(new Command("verify")
|
|
177
|
-
.description("Verify that generated files match .
|
|
177
|
+
.description("Verify that generated files match .flisk/project.json")
|
|
178
178
|
.option("--json", "Emit a machine-readable verification report")
|
|
179
179
|
.action(async (options) => {
|
|
180
180
|
const action = async () => {
|
|
@@ -269,12 +269,12 @@ export const configCommand = new Command("config")
|
|
|
269
269
|
}
|
|
270
270
|
await runCommand(action);
|
|
271
271
|
}))
|
|
272
|
-
.addCommand(new Command("edit").description("Open .
|
|
272
|
+
.addCommand(new Command("edit").description("Open .flisk/project.json in your $EDITOR").action(async () => {
|
|
273
273
|
await runCommand(async () => {
|
|
274
274
|
const projectRoot = requireProjectRoot();
|
|
275
|
-
const projectJsonPath = join(projectRoot, ".
|
|
275
|
+
const projectJsonPath = join(projectRoot, ".flisk", PROJECT_JSON);
|
|
276
276
|
if (!existsSync(projectJsonPath)) {
|
|
277
|
-
throw new Error(".
|
|
277
|
+
throw new Error(".flisk/project.json not found");
|
|
278
278
|
}
|
|
279
279
|
const editor = process.env.EDITOR || "vi";
|
|
280
280
|
console.log(chalk.blue(`Opening ${projectJsonPath} in ${editor}...`));
|
|
@@ -325,7 +325,7 @@ async function toggleInfraService(service, enabled) {
|
|
|
325
325
|
const granted = await hasVerdaccioLicense(projectRoot);
|
|
326
326
|
if (!granted) {
|
|
327
327
|
throw new Error("Verdaccio is a Premium feature and requires a license key that grants it. " +
|
|
328
|
-
"Set export
|
|
328
|
+
"Set export FLISK_LICENSE_KEY=<key> (request a Premium license at https://flisk.sh/#waitlist) and try again.");
|
|
329
329
|
}
|
|
330
330
|
}
|
|
331
331
|
const config = readProjectConfig(projectRoot);
|
|
@@ -336,7 +336,7 @@ async function toggleInfraService(service, enabled) {
|
|
|
336
336
|
}
|
|
337
337
|
// Type-safe assignment: service is now narrowed to OptionalInfraKey
|
|
338
338
|
config.optional_infra[service] = enabled;
|
|
339
|
-
const projectJsonPath = join(projectRoot, ".
|
|
339
|
+
const projectJsonPath = join(projectRoot, ".flisk", PROJECT_JSON);
|
|
340
340
|
// ProjectConfig is guaranteed to be JSON-serializable
|
|
341
341
|
writeJsonFile(projectJsonPath, config);
|
|
342
342
|
const action = enabled ? "Enabled" : "Disabled";
|
|
@@ -13,7 +13,7 @@ import { checkColima as checkColimaState } from "../utils/colima.js";
|
|
|
13
13
|
import { AUTOGENERATED_DIR, CONTAINER_RUNTIME_CHECK, MASTER_CONFIG_FILES, PACKAGE_JSON, REQUIRED_PACKAGE_SCRIPTS, } from "../utils/constants.js";
|
|
14
14
|
import { isPathDiscovered, readDiscoveryPaths } from "../utils/discovery-paths.js";
|
|
15
15
|
import { checkCrashLoopingContainers } from "../utils/doctor-crashloop.js";
|
|
16
|
-
import { applyDoctorFixes,
|
|
16
|
+
import { applyDoctorFixes, checkDuplicateFliskInstalls, hasFailedActions, planDoctorFixes, projectTiltPids, } from "../utils/doctor-fix.js";
|
|
17
17
|
import { checkDiskSpace, dockerDesktopStuck } from "../utils/doctor-host.js";
|
|
18
18
|
import { collectDoctorChecks, createDoctorReport, getDoctorExitCode, } from "../utils/doctor-report.js";
|
|
19
19
|
import { checkHealthRoutes, checkIngressPorts, checkPrivateNpmRegistry, checkTiltResourceHealth, projectConfigEnablesVerdaccio, summarizeAdvertisedProbes, summarizeServiceProbes, summarizeSmokeResults, } from "../utils/doctor-runtime.js";
|
|
@@ -21,6 +21,7 @@ import { checkStarlarkLoadExports } from "../utils/doctor-starlark.js";
|
|
|
21
21
|
import { checkDockerNetworkCapacity, checkDuplicateResourceNames, checkDuplicateResourcePorts, checkFrontendBackendUrls, checkMigrationsInApi, checkNatsBroker, checkPrismaConsistency, checkResourcePackageJson, checkServiceUrlPorts, checkSharedPlatformPostgres, checkSharedStackRoutes, checkTiltInstances, } from "../utils/doctor-wiring.js";
|
|
22
22
|
import { validateEnvFile } from "../utils/env-validator.js";
|
|
23
23
|
import { execAsync, isExecTimeout } from "../utils/exec-async.js";
|
|
24
|
+
import { evaluateFliskVersionFloor } from "../utils/flisk-version.js";
|
|
24
25
|
import { formatCount } from "../utils/formatting.js";
|
|
25
26
|
import { getHostPortPlan, resolveRuntimeIngressPort } from "../utils/host-port-config.js";
|
|
26
27
|
import { createHostPortPlan } from "../utils/host-port-plan.js";
|
|
@@ -31,7 +32,6 @@ import { checkCircularDependencies, checkDependsOnShape, checkSchemaVersions, ch
|
|
|
31
32
|
import { buildAdvertisedTargets, buildHealthTargets, getProjectName, pingHealthTargets, } from "../utils/service-urls.js";
|
|
32
33
|
import { discoverResourcesFromRoot } from "../utils/services.js";
|
|
33
34
|
import { buildSmokePlans, readOnlySmokePlans, runSmokePlans, safeSmokeDeps, } from "../utils/smoke.js";
|
|
34
|
-
import { evaluateTdkVersionFloor } from "../utils/tdk-version.js";
|
|
35
35
|
import { findOnPath } from "../utils/which.js";
|
|
36
36
|
import { checkWindowsDockerMode, checkWindowsHostConfiguration, checkWindowsRuntimeTools, } from "../utils/windows-doctor.js";
|
|
37
37
|
export { checkIngressPorts, checkPrivateNpmRegistry, checkTiltResourceHealth, summarizeServiceProbes, summarizeTiltBuildError, } from "../utils/doctor-runtime.js";
|
|
@@ -95,12 +95,12 @@ function isWildcardBindAddress(value) {
|
|
|
95
95
|
return host.includes(":") && /^[0:]+$/.test(host);
|
|
96
96
|
}
|
|
97
97
|
/**
|
|
98
|
-
* Dev ports (Traefik, Postgres) bind to 127.0.0.1 by default.
|
|
98
|
+
* Dev ports (Traefik, Postgres) bind to 127.0.0.1 by default. FLISK_BIND_ADDRESS
|
|
99
99
|
* opts in to another address; a wildcard exposes them to every machine on the
|
|
100
100
|
* network (GHSA-3hj3-f39v-j2x5).
|
|
101
101
|
*/
|
|
102
102
|
export function checkPublishedBindAddress(env = process.env, strict = false) {
|
|
103
|
-
const bindAddress = (env.
|
|
103
|
+
const bindAddress = (env.FLISK_BIND_ADDRESS ?? "").trim();
|
|
104
104
|
if (!isWildcardBindAddress(bindAddress)) {
|
|
105
105
|
return {
|
|
106
106
|
name: "Dev Port Bind Address",
|
|
@@ -114,8 +114,8 @@ export function checkPublishedBindAddress(env = process.env, strict = false) {
|
|
|
114
114
|
name: "Dev Port Bind Address",
|
|
115
115
|
didPass: !strict,
|
|
116
116
|
isWarning: !strict,
|
|
117
|
-
message: `
|
|
118
|
-
fix: "Unset
|
|
117
|
+
message: `FLISK_BIND_ADDRESS is ${bindAddress}: Traefik and Postgres are reachable from other machines on the network.`,
|
|
118
|
+
fix: "Unset FLISK_BIND_ADDRESS to keep dev ports on 127.0.0.1. Keep it only when you test from another device on purpose.",
|
|
119
119
|
};
|
|
120
120
|
}
|
|
121
121
|
/** Failures are shown before passing statuses, with a 5432 conflict first. */
|
|
@@ -573,11 +573,11 @@ function checkEnvironmentVariables() {
|
|
|
573
573
|
};
|
|
574
574
|
}
|
|
575
575
|
function checkMasterConfigs() {
|
|
576
|
-
// `flisk project` writes generated master configs to .
|
|
576
|
+
// `flisk project` writes generated master configs to .flisk/.flisk-out/, not the
|
|
577
577
|
// project root, so look there (and walk up to find the project root, same
|
|
578
578
|
// as every other command that reads project state).
|
|
579
579
|
const projectRoot = findProjectRoot() ?? process.cwd();
|
|
580
|
-
const outDir = join(projectRoot, ".
|
|
580
|
+
const outDir = join(projectRoot, ".flisk", ".flisk-out");
|
|
581
581
|
const missing = MASTER_CONFIG_FILES.filter((file) => !existsSync(join(outDir, file)));
|
|
582
582
|
if (missing.length === 0) {
|
|
583
583
|
return {
|
|
@@ -594,11 +594,11 @@ function checkMasterConfigs() {
|
|
|
594
594
|
};
|
|
595
595
|
}
|
|
596
596
|
/**
|
|
597
|
-
* A repo can pin the oldest CLI it works with: `"
|
|
598
|
-
* .
|
|
597
|
+
* A repo can pin the oldest CLI it works with: `"minFliskVersion": "1.3.80"` in
|
|
598
|
+
* .flisk/project.json. An older `flisk` fails here, so a team sees one clear line
|
|
599
599
|
* instead of a half-working `flisk up`.
|
|
600
600
|
*/
|
|
601
|
-
export function
|
|
601
|
+
export function checkFliskVersion(currentVersion = getPackageVersion()) {
|
|
602
602
|
const projectRoot = findProjectRoot();
|
|
603
603
|
if (!projectRoot) {
|
|
604
604
|
return {
|
|
@@ -608,13 +608,13 @@ export function checkTdkVersion(currentVersion = getPackageVersion()) {
|
|
|
608
608
|
message: "Not in a project - skipping Flisk version check",
|
|
609
609
|
};
|
|
610
610
|
}
|
|
611
|
-
const floor =
|
|
611
|
+
const floor = evaluateFliskVersionFloor(projectRoot, currentVersion);
|
|
612
612
|
if (floor.status === "none") {
|
|
613
613
|
return {
|
|
614
614
|
name: "Flisk version",
|
|
615
615
|
didPass: true,
|
|
616
616
|
isSkipped: true,
|
|
617
|
-
message: `flisk ${currentVersion} (no
|
|
617
|
+
message: `flisk ${currentVersion} (no minFliskVersion in .flisk/project.json)`,
|
|
618
618
|
};
|
|
619
619
|
}
|
|
620
620
|
if (floor.status === "malformed" || floor.status === "too-old") {
|
|
@@ -623,7 +623,7 @@ export function checkTdkVersion(currentVersion = getPackageVersion()) {
|
|
|
623
623
|
return {
|
|
624
624
|
name: "Flisk version",
|
|
625
625
|
didPass: true,
|
|
626
|
-
message: `flisk ${currentVersion} meets
|
|
626
|
+
message: `flisk ${currentVersion} meets minFliskVersion ${floor.required}`,
|
|
627
627
|
};
|
|
628
628
|
}
|
|
629
629
|
/**
|
|
@@ -648,7 +648,7 @@ export function checkResourceDiscovery() {
|
|
|
648
648
|
name: "Resource Discovery",
|
|
649
649
|
didPass: false,
|
|
650
650
|
message: `${formatCount(stranded.length, "resource")} outside discovery.paths ${JSON.stringify(patterns)}: ${list}. \`flisk up\` will not start them`,
|
|
651
|
-
fix: "Move each under services/<stack>/<name>, or add a matching pattern to discovery.paths in .
|
|
651
|
+
fix: "Move each under services/<stack>/<name>, or add a matching pattern to discovery.paths in .flisk/project.json and run: flisk config regenerate",
|
|
652
652
|
};
|
|
653
653
|
}
|
|
654
654
|
// The scripts `flisk project` copies into every project. Generated Dockerfiles
|
|
@@ -1346,7 +1346,7 @@ export const doctorCommand = new Command("doctor")
|
|
|
1346
1346
|
name: "Host Ports",
|
|
1347
1347
|
didPass: false,
|
|
1348
1348
|
message: portPlanError ?? "Could not select host ports",
|
|
1349
|
-
fix: "Set
|
|
1349
|
+
fix: "Set FLISK_HTTP_PORT, FLISK_HTTPS_PORT, or FLISK_POSTGRES_PORT to available host ports.",
|
|
1350
1350
|
},
|
|
1351
1351
|
() => hostPortPlan
|
|
1352
1352
|
? checkIngressPorts(execSync, undefined, [
|
|
@@ -1370,10 +1370,10 @@ export const doctorCommand = new Command("doctor")
|
|
|
1370
1370
|
() => checkPublishedBindAddress(process.env, options.strict),
|
|
1371
1371
|
// Each project needs several networks; a full address pool fails `flisk up` late.
|
|
1372
1372
|
requiresContainerRuntime("Docker Network Pool", () => checkDockerNetworkCapacity()),
|
|
1373
|
-
() =>
|
|
1373
|
+
() => checkDuplicateFliskInstalls(),
|
|
1374
1374
|
];
|
|
1375
1375
|
const projectChecks = [
|
|
1376
|
-
() =>
|
|
1376
|
+
() => checkFliskVersion(),
|
|
1377
1377
|
checkMasterConfigs,
|
|
1378
1378
|
checkGeneratedProjectRuntimeAssets,
|
|
1379
1379
|
checkStarlarkLoadExports,
|
|
@@ -92,7 +92,7 @@ export const downCommand = addYesOption(new Command("down"))
|
|
|
92
92
|
if (!options.json)
|
|
93
93
|
console.log(chalk.blue("Stopping all tilt resources..."));
|
|
94
94
|
if (options.verbose && !options.json) {
|
|
95
|
-
console.log(chalk.gray("Running: tilt down -f .
|
|
95
|
+
console.log(chalk.gray("Running: tilt down -f .flisk/.flisk-out/Tiltfile"));
|
|
96
96
|
}
|
|
97
97
|
const result = await runTilt("down", tiltArgs, {
|
|
98
98
|
verbose: options.verbose && !options.json,
|
|
@@ -8,7 +8,7 @@ import { addYesOption, confirmOrCancel, handleDryRun } from "../utils/command-he
|
|
|
8
8
|
import { errorFactories, runCommand } from "../utils/errors.js";
|
|
9
9
|
import { findProjectRoot } from "../utils/paths.js";
|
|
10
10
|
// Same location `flisk up` hands to Tilt (see getTiltfilePath in utils/tilt.ts), relative to the project root.
|
|
11
|
-
export const TILTFILE_RELATIVE_PATH = ".
|
|
11
|
+
export const TILTFILE_RELATIVE_PATH = ".flisk/.flisk-out/Tiltfile";
|
|
12
12
|
export const TILT_UP_COMMAND = `tilt up -f ${TILTFILE_RELATIVE_PATH} -- --focus=<stack>`;
|
|
13
13
|
export const EJECTED_CONTENT = `# Ejected from Flisk
|
|
14
14
|
|
|
@@ -17,10 +17,10 @@ not remove Flisk. What exists is what Flisk had already generated, and that is s
|
|
|
17
17
|
|
|
18
18
|
## Where the generated files are
|
|
19
19
|
|
|
20
|
-
- \`.
|
|
20
|
+
- \`.flisk/.flisk-out/\` holds the Tiltfile and the engine it loads (\`flisk-cli-ext/\`). It is git-ignored.
|
|
21
21
|
\`flisk config regenerate\` rewrites the master files in it.
|
|
22
22
|
- The per-service Compose files (\`services/<stack>/<name>/.autogenerated/\`), the golden-layer
|
|
23
|
-
Dockerfile and the Traefik file (\`.
|
|
23
|
+
Dockerfile and the Traefik file (\`.flisk/.flisk-out/\`) are written by Tilt when it runs, not by
|
|
24
24
|
\`flisk eject\`. Until Tilt has run they do not exist. They are git-ignored too.
|
|
25
25
|
- Your own Dockerfiles, \`service.json\` files and source code are untouched.
|
|
26
26
|
|
|
@@ -31,19 +31,19 @@ There is no Tiltfile at the project root, so a plain \`tilt up\` does not find o
|
|
|
31
31
|
${TILT_UP_COMMAND}
|
|
32
32
|
|
|
33
33
|
from the project root (\`<stack>\` is a stack name under \`services/\`; without \`--focus\` the Tiltfile
|
|
34
|
-
falls back to its default phase). The Tiltfile still reads \`.
|
|
34
|
+
falls back to its default phase). The Tiltfile still reads \`.flisk/project.json\` and the
|
|
35
35
|
\`service.json\` files, so those must stay. \`flisk up\` also does steps before Tilt starts (it chooses
|
|
36
36
|
host ports and exports them to Tilt); running Tilt by hand skips them.
|
|
37
37
|
|
|
38
38
|
## Cleaning up
|
|
39
39
|
|
|
40
|
-
Optional to delete later: this file, and \`.
|
|
40
|
+
Optional to delete later: this file, and \`.flisk/\` plus the \`service.json\` files if you stop using Flisk.
|
|
41
41
|
Deleting them also removes what the Tiltfile needs.
|
|
42
42
|
|
|
43
43
|
To go back to Flisk: install it and run \`flisk config regenerate\`.
|
|
44
44
|
`;
|
|
45
45
|
export const ejectCommand = addYesOption(new Command("eject"))
|
|
46
|
-
.description("Write EJECTED.md describing the generated Tilt files (copies and generates nothing; they stay in .
|
|
46
|
+
.description("Write EJECTED.md describing the generated Tilt files (copies and generates nothing; they stay in .flisk/.flisk-out/)")
|
|
47
47
|
.option("--dry-run", "List the generated files and what would be written, without changing the project", false)
|
|
48
48
|
.action(async (options) => {
|
|
49
49
|
await runCommand(async () => {
|
|
@@ -51,7 +51,7 @@ export const ejectCommand = addYesOption(new Command("eject"))
|
|
|
51
51
|
if (!projectRoot) {
|
|
52
52
|
throw errorFactories.notInProject();
|
|
53
53
|
}
|
|
54
|
-
const generatedPaths = [".
|
|
54
|
+
const generatedPaths = [".flisk/.flisk-out"];
|
|
55
55
|
const presentPaths = generatedPaths.filter((path) => existsSync(join(projectRoot, path)));
|
|
56
56
|
const files = presentPaths.flatMap((path) => {
|
|
57
57
|
const absolutePath = join(projectRoot, path);
|
|
@@ -64,7 +64,7 @@ export const ejectCommand = addYesOption(new Command("eject"))
|
|
|
64
64
|
return [path];
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
|
-
if (!existsSync(join(projectRoot, ".
|
|
67
|
+
if (!existsSync(join(projectRoot, ".flisk", ".flisk-out", "Tiltfile"))) {
|
|
68
68
|
throw new Error("Generated Tilt files are missing. Run `flisk project --yes` before ejecting.");
|
|
69
69
|
}
|
|
70
70
|
const rootTiltfile = join(projectRoot, "Tiltfile");
|
|
@@ -90,7 +90,7 @@ export const ejectCommand = addYesOption(new Command("eject"))
|
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
92
92
|
if (!options.yes &&
|
|
93
|
-
!(await confirmOrCancel("Write EJECTED.md? (Generated files stay in .
|
|
93
|
+
!(await confirmOrCancel("Write EJECTED.md? (Generated files stay in .flisk/.flisk-out/; nothing is copied or moved.)"))) {
|
|
94
94
|
return;
|
|
95
95
|
}
|
|
96
96
|
if (existsSync(ejectedPath)) {
|
|
@@ -100,7 +100,7 @@ export const ejectCommand = addYesOption(new Command("eject"))
|
|
|
100
100
|
writeFileSync(ejectedPath, EJECTED_CONTENT, { flag: "wx" });
|
|
101
101
|
console.log(chalk.green("Wrote EJECTED.md. Nothing was copied, moved or generated."));
|
|
102
102
|
}
|
|
103
|
-
console.log("Generated files stay in .
|
|
103
|
+
console.log("Generated files stay in .flisk/.flisk-out/ (git-ignored) and still need Flisk inputs.");
|
|
104
104
|
console.log(`Run from the project root: ${TILT_UP_COMMAND}`);
|
|
105
105
|
console.log("Replace <stack> with a stack name under services/, or omit --focus to use the Tiltfile's default phase.");
|
|
106
106
|
console.log("Read EJECTED.md");
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
import chalk from "chalk";
|
|
4
4
|
import pkg from "../../package.json" with { type: "json" };
|
|
5
|
-
const
|
|
5
|
+
const FLISK_BANNER = `
|
|
6
6
|
${chalk.bold.cyan("flisk")} ${chalk.gray(`v${pkg.version}`)} ${chalk.white("Flisk CLI — start services on your machine.")}
|
|
7
7
|
`;
|
|
8
8
|
const COMMAND_GROUPS = [
|
|
@@ -107,7 +107,7 @@ function formatCommand(name, desc, alias, color) {
|
|
|
107
107
|
return ` ${nameFormatted} ${descFormatted}${aliasFormatted}`;
|
|
108
108
|
}
|
|
109
109
|
export function showHelp() {
|
|
110
|
-
console.log(
|
|
110
|
+
console.log(FLISK_BANNER);
|
|
111
111
|
console.log(chalk.gray("\n Local development inner loop; Flisk does not replace Helm for cluster deployments.\n"));
|
|
112
112
|
console.log(chalk.bold.white(" Project → Phase → Stack → Resource\n"));
|
|
113
113
|
console.log(chalk.gray(" Usage: flisk [command] [options]\n"));
|
|
@@ -7,7 +7,7 @@ import { getPackageVersion } from "../utils/paths.js";
|
|
|
7
7
|
/**
|
|
8
8
|
* The importer lives in its own repo so it can ship without a CLI release, and is run from npm at a
|
|
9
9
|
* pinned version so a push to its main branch cannot change what `flisk import` does. Move the pin
|
|
10
|
-
* when a new importer is published. `
|
|
10
|
+
* when a new importer is published. `FLISK_IMPORT_PACKAGE` overrides the package spec.
|
|
11
11
|
*/
|
|
12
12
|
export const IMPORT_PACKAGE = "flisk-import@0.2.2";
|
|
13
13
|
/** Minimum Flisk core release supporting buildContext required by flisk import (#634). */
|
|
@@ -102,7 +102,7 @@ export function checkCoreVersion(currentVersion = getPackageVersion(), args = []
|
|
|
102
102
|
return { ok: true };
|
|
103
103
|
}
|
|
104
104
|
export function importInvocation(args, env = process.env, platform = process.platform) {
|
|
105
|
-
const pkg = env.
|
|
105
|
+
const pkg = env.FLISK_IMPORT_PACKAGE || IMPORT_PACKAGE;
|
|
106
106
|
return {
|
|
107
107
|
command: platform === "win32" ? "npx.cmd" : "npx",
|
|
108
108
|
args: ["--yes", pkg, ...args],
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
import { Command } from "commander";
|
|
4
4
|
import { STANDARD_PORTS } from "../utils/constants.js";
|
|
5
|
-
import { errorFactories, runCommand, showErrorAndExit
|
|
5
|
+
import { errorFactories, FliskError, runCommand, showErrorAndExit } from "../utils/errors.js";
|
|
6
6
|
import { createMachineEnvelope } from "../utils/machine-output.js";
|
|
7
7
|
import { findProjectRoot } from "../utils/paths.js";
|
|
8
8
|
import { EnvUnreadableError, envSecretValues, redactSecrets, redactValue, } from "../utils/secret-redaction.js";
|
|
@@ -49,7 +49,7 @@ export const logsCommand = new Command("logs")
|
|
|
49
49
|
process.exit(exitCode);
|
|
50
50
|
}
|
|
51
51
|
if (redactedSuggestions.length > 0) {
|
|
52
|
-
return new
|
|
52
|
+
return new FliskError(message, redactedSuggestions, exitCode).exit();
|
|
53
53
|
}
|
|
54
54
|
return showErrorAndExit(message, exitCode);
|
|
55
55
|
};
|
package/cli/dist/commands/mcp.js
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
import { createInterface } from "node:readline";
|
|
4
4
|
import { Command } from "commander";
|
|
5
5
|
import { createMcpServer } from "../mcp/server.js";
|
|
6
|
-
import {
|
|
6
|
+
import { createFliskTools } from "../mcp/tools.js";
|
|
7
7
|
import { getPackageVersion } from "../utils/paths.js";
|
|
8
8
|
export const mcpCommand = new Command("mcp")
|
|
9
9
|
.description("Run a Model Context Protocol server over stdio for coding agents")
|
|
10
10
|
.action(async () => {
|
|
11
|
-
const server = createMcpServer(
|
|
11
|
+
const server = createMcpServer(createFliskTools(), {
|
|
12
12
|
name: "flisk",
|
|
13
13
|
version: getPackageVersion(),
|
|
14
14
|
});
|
|
@@ -51,7 +51,7 @@ function determineDefaultDomain() {
|
|
|
51
51
|
if (projectRoot) {
|
|
52
52
|
const projectConfig = readProjectConfig(projectRoot);
|
|
53
53
|
const projectName = projectConfig.project?.name;
|
|
54
|
-
if (projectName && projectName !== "
|
|
54
|
+
if (projectName && projectName !== "flisk-project") {
|
|
55
55
|
return `${projectName}.localhost`;
|
|
56
56
|
}
|
|
57
57
|
}
|
|
@@ -289,7 +289,7 @@ export const networksCommand = new Command("networks")
|
|
|
289
289
|
const projectConfig = readProjectConfig(projectRoot);
|
|
290
290
|
const projectName = projectConfig.project.name;
|
|
291
291
|
console.log(chalk.yellow("💡 Tip: Set custom domain with:"));
|
|
292
|
-
console.log(chalk.cyan(` export
|
|
292
|
+
console.log(chalk.cyan(` export FLISK_PUBLIC_HOST=${projectName}.localhost`));
|
|
293
293
|
}
|
|
294
294
|
console.log();
|
|
295
295
|
};
|
|
@@ -41,7 +41,6 @@ export async function pickReadyFrontend(targets, waitMs = 30000, onWait) {
|
|
|
41
41
|
if (targets.length === 0)
|
|
42
42
|
return undefined;
|
|
43
43
|
const started = Date.now();
|
|
44
|
-
const deadline = started + waitMs;
|
|
45
44
|
while (true) {
|
|
46
45
|
for (const target of targets) {
|
|
47
46
|
if (await isFrontendReady(target.url))
|