@untangle-code/cli 0.0.0-stage → 0.1.1
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 +661 -0
- package/NOTICE +90 -0
- package/README.md +451 -2
- package/THIRD_PARTY_LICENSES.md +152 -0
- package/dist/cli/args.d.ts +48 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +167 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/command.d.ts +69 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +82 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/deadline.d.ts +33 -0
- package/dist/cli/deadline.d.ts.map +1 -0
- package/dist/cli/deadline.js +49 -0
- package/dist/cli/deadline.js.map +1 -0
- package/dist/cli/embedder-deadline.d.ts +72 -0
- package/dist/cli/embedder-deadline.d.ts.map +1 -0
- package/dist/cli/embedder-deadline.js +117 -0
- package/dist/cli/embedder-deadline.js.map +1 -0
- package/dist/cli/exit.d.ts +71 -0
- package/dist/cli/exit.d.ts.map +1 -0
- package/dist/cli/exit.js +81 -0
- package/dist/cli/exit.js.map +1 -0
- package/dist/cli/graphs.d.ts +65 -0
- package/dist/cli/graphs.d.ts.map +1 -0
- package/dist/cli/graphs.js +108 -0
- package/dist/cli/graphs.js.map +1 -0
- package/dist/cli/index-freshness.d.ts +13 -0
- package/dist/cli/index-freshness.d.ts.map +1 -0
- package/dist/cli/index-freshness.js +226 -0
- package/dist/cli/index-freshness.js.map +1 -0
- package/dist/cli/index-refresh.d.ts +10 -0
- package/dist/cli/index-refresh.d.ts.map +1 -0
- package/dist/cli/index-refresh.js +76 -0
- package/dist/cli/index-refresh.js.map +1 -0
- package/dist/cli/index-state.d.ts +184 -0
- package/dist/cli/index-state.d.ts.map +1 -0
- package/dist/cli/index-state.js +852 -0
- package/dist/cli/index-state.js.map +1 -0
- package/dist/cli/io.d.ts +29 -0
- package/dist/cli/io.d.ts.map +1 -0
- package/dist/cli/io.js +42 -0
- package/dist/cli/io.js.map +1 -0
- package/dist/cli/language-support.d.ts +77 -0
- package/dist/cli/language-support.d.ts.map +1 -0
- package/dist/cli/language-support.js +152 -0
- package/dist/cli/language-support.js.map +1 -0
- package/dist/cli/renewing-lease.d.ts +26 -0
- package/dist/cli/renewing-lease.d.ts.map +1 -0
- package/dist/cli/renewing-lease.js +102 -0
- package/dist/cli/renewing-lease.js.map +1 -0
- package/dist/cli/search-graph-enrichment.d.ts +16 -0
- package/dist/cli/search-graph-enrichment.d.ts.map +1 -0
- package/dist/cli/search-graph-enrichment.js +428 -0
- package/dist/cli/search-graph-enrichment.js.map +1 -0
- package/dist/cli/system.d.ts +34 -0
- package/dist/cli/system.d.ts.map +1 -0
- package/dist/cli/system.js +89 -0
- package/dist/cli/system.js.map +1 -0
- package/dist/cli/vector-store-policy.d.ts +116 -0
- package/dist/cli/vector-store-policy.d.ts.map +1 -0
- package/dist/cli/vector-store-policy.js +160 -0
- package/dist/cli/vector-store-policy.js.map +1 -0
- package/dist/cli/version.d.ts +3 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +3 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/cli/workspace.d.ts +105 -0
- package/dist/cli/workspace.d.ts.map +1 -0
- package/dist/cli/workspace.js +215 -0
- package/dist/cli/workspace.js.map +1 -0
- package/dist/commands/complexity.d.ts +72 -0
- package/dist/commands/complexity.d.ts.map +1 -0
- package/dist/commands/complexity.js +580 -0
- package/dist/commands/complexity.js.map +1 -0
- package/dist/commands/doctor.d.ts +66 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +764 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/doctor.languages.d.ts +37 -0
- package/dist/commands/doctor.languages.d.ts.map +1 -0
- package/dist/commands/doctor.languages.js +143 -0
- package/dist/commands/doctor.languages.js.map +1 -0
- package/dist/commands/doctor.storage.d.ts +17 -0
- package/dist/commands/doctor.storage.d.ts.map +1 -0
- package/dist/commands/doctor.storage.js +91 -0
- package/dist/commands/doctor.storage.js.map +1 -0
- package/dist/commands/extensions/add.d.ts +10 -0
- package/dist/commands/extensions/add.d.ts.map +1 -0
- package/dist/commands/extensions/add.js +213 -0
- package/dist/commands/extensions/add.js.map +1 -0
- package/dist/commands/extensions/configure.d.ts +5 -0
- package/dist/commands/extensions/configure.d.ts.map +1 -0
- package/dist/commands/extensions/configure.js +58 -0
- package/dist/commands/extensions/configure.js.map +1 -0
- package/dist/commands/extensions/container.d.ts +15 -0
- package/dist/commands/extensions/container.d.ts.map +1 -0
- package/dist/commands/extensions/container.js +135 -0
- package/dist/commands/extensions/container.js.map +1 -0
- package/dist/commands/extensions/context.d.ts +37 -0
- package/dist/commands/extensions/context.d.ts.map +1 -0
- package/dist/commands/extensions/context.js +72 -0
- package/dist/commands/extensions/context.js.map +1 -0
- package/dist/commands/extensions/enable.d.ts +6 -0
- package/dist/commands/extensions/enable.d.ts.map +1 -0
- package/dist/commands/extensions/enable.js +180 -0
- package/dist/commands/extensions/enable.js.map +1 -0
- package/dist/commands/extensions/environment.d.ts +74 -0
- package/dist/commands/extensions/environment.d.ts.map +1 -0
- package/dist/commands/extensions/environment.js +168 -0
- package/dist/commands/extensions/environment.js.map +1 -0
- package/dist/commands/extensions/feature-scan.d.ts +48 -0
- package/dist/commands/extensions/feature-scan.d.ts.map +1 -0
- package/dist/commands/extensions/feature-scan.js +156 -0
- package/dist/commands/extensions/feature-scan.js.map +1 -0
- package/dist/commands/extensions/invoke.d.ts +60 -0
- package/dist/commands/extensions/invoke.d.ts.map +1 -0
- package/dist/commands/extensions/invoke.js +275 -0
- package/dist/commands/extensions/invoke.js.map +1 -0
- package/dist/commands/extensions/list.d.ts +5 -0
- package/dist/commands/extensions/list.d.ts.map +1 -0
- package/dist/commands/extensions/list.js +125 -0
- package/dist/commands/extensions/list.js.map +1 -0
- package/dist/commands/extensions/logs.d.ts +5 -0
- package/dist/commands/extensions/logs.d.ts.map +1 -0
- package/dist/commands/extensions/logs.js +74 -0
- package/dist/commands/extensions/logs.js.map +1 -0
- package/dist/commands/extensions/provision.d.ts +36 -0
- package/dist/commands/extensions/provision.d.ts.map +1 -0
- package/dist/commands/extensions/provision.js +137 -0
- package/dist/commands/extensions/provision.js.map +1 -0
- package/dist/commands/extensions/remove.d.ts +5 -0
- package/dist/commands/extensions/remove.d.ts.map +1 -0
- package/dist/commands/extensions/remove.js +77 -0
- package/dist/commands/extensions/remove.js.map +1 -0
- package/dist/commands/extensions/render.d.ts +16 -0
- package/dist/commands/extensions/render.d.ts.map +1 -0
- package/dist/commands/extensions/render.js +25 -0
- package/dist/commands/extensions/render.js.map +1 -0
- package/dist/commands/extensions/run.d.ts +30 -0
- package/dist/commands/extensions/run.d.ts.map +1 -0
- package/dist/commands/extensions/run.js +292 -0
- package/dist/commands/extensions/run.js.map +1 -0
- package/dist/commands/extensions/secret-store.d.ts +15 -0
- package/dist/commands/extensions/secret-store.d.ts.map +1 -0
- package/dist/commands/extensions/secret-store.js +164 -0
- package/dist/commands/extensions/secret-store.js.map +1 -0
- package/dist/commands/extensions/setup.d.ts +17 -0
- package/dist/commands/extensions/setup.d.ts.map +1 -0
- package/dist/commands/extensions/setup.js +94 -0
- package/dist/commands/extensions/setup.js.map +1 -0
- package/dist/commands/extensions/source.d.ts +47 -0
- package/dist/commands/extensions/source.d.ts.map +1 -0
- package/dist/commands/extensions/source.js +142 -0
- package/dist/commands/extensions/source.js.map +1 -0
- package/dist/commands/extensions/state.d.ts +62 -0
- package/dist/commands/extensions/state.d.ts.map +1 -0
- package/dist/commands/extensions/state.js +177 -0
- package/dist/commands/extensions/state.js.map +1 -0
- package/dist/commands/extensions/status.d.ts +9 -0
- package/dist/commands/extensions/status.d.ts.map +1 -0
- package/dist/commands/extensions/status.js +239 -0
- package/dist/commands/extensions/status.js.map +1 -0
- package/dist/commands/extensions.d.ts +3 -0
- package/dist/commands/extensions.d.ts.map +1 -0
- package/dist/commands/extensions.js +223 -0
- package/dist/commands/extensions.js.map +1 -0
- package/dist/commands/flow/index.d.ts +3 -0
- package/dist/commands/flow/index.d.ts.map +1 -0
- package/dist/commands/flow/index.js +295 -0
- package/dist/commands/flow/index.js.map +1 -0
- package/dist/commands/flow/limits.d.ts +12 -0
- package/dist/commands/flow/limits.d.ts.map +1 -0
- package/dist/commands/flow/limits.js +13 -0
- package/dist/commands/flow/limits.js.map +1 -0
- package/dist/commands/flow/output.d.ts +8 -0
- package/dist/commands/flow/output.d.ts.map +1 -0
- package/dist/commands/flow/output.js +11 -0
- package/dist/commands/flow/output.js.map +1 -0
- package/dist/commands/flow/render.d.ts +51 -0
- package/dist/commands/flow/render.d.ts.map +1 -0
- package/dist/commands/flow/render.js +220 -0
- package/dist/commands/flow/render.js.map +1 -0
- package/dist/commands/flow/select.d.ts +31 -0
- package/dist/commands/flow/select.d.ts.map +1 -0
- package/dist/commands/flow/select.js +62 -0
- package/dist/commands/flow/select.js.map +1 -0
- package/dist/commands/graph/boundaries-input.d.ts +26 -0
- package/dist/commands/graph/boundaries-input.d.ts.map +1 -0
- package/dist/commands/graph/boundaries-input.js +54 -0
- package/dist/commands/graph/boundaries-input.js.map +1 -0
- package/dist/commands/graph/boundaries.d.ts +4 -0
- package/dist/commands/graph/boundaries.d.ts.map +1 -0
- package/dist/commands/graph/boundaries.js +141 -0
- package/dist/commands/graph/boundaries.js.map +1 -0
- package/dist/commands/graph/bounds.d.ts +16 -0
- package/dist/commands/graph/bounds.d.ts.map +1 -0
- package/dist/commands/graph/bounds.js +22 -0
- package/dist/commands/graph/bounds.js.map +1 -0
- package/dist/commands/graph/category-clusters.d.ts +20 -0
- package/dist/commands/graph/category-clusters.d.ts.map +1 -0
- package/dist/commands/graph/category-clusters.js +158 -0
- package/dist/commands/graph/category-clusters.js.map +1 -0
- package/dist/commands/graph/feature-3d.d.ts +22 -0
- package/dist/commands/graph/feature-3d.d.ts.map +1 -0
- package/dist/commands/graph/feature-3d.js +114 -0
- package/dist/commands/graph/feature-3d.js.map +1 -0
- package/dist/commands/graph/feature-clusters.d.ts +17 -0
- package/dist/commands/graph/feature-clusters.d.ts.map +1 -0
- package/dist/commands/graph/feature-clusters.js +94 -0
- package/dist/commands/graph/feature-clusters.js.map +1 -0
- package/dist/commands/graph/feature-html.d.ts +26 -0
- package/dist/commands/graph/feature-html.d.ts.map +1 -0
- package/dist/commands/graph/feature-html.js +314 -0
- package/dist/commands/graph/feature-html.js.map +1 -0
- package/dist/commands/graph/feature-map.d.ts +31 -0
- package/dist/commands/graph/feature-map.d.ts.map +1 -0
- package/dist/commands/graph/feature-map.js +217 -0
- package/dist/commands/graph/feature-map.js.map +1 -0
- package/dist/commands/graph/feature-model.d.ts +55 -0
- package/dist/commands/graph/feature-model.d.ts.map +1 -0
- package/dist/commands/graph/feature-model.js +167 -0
- package/dist/commands/graph/feature-model.js.map +1 -0
- package/dist/commands/graph/feature-untangle-motion.d.ts +33 -0
- package/dist/commands/graph/feature-untangle-motion.d.ts.map +1 -0
- package/dist/commands/graph/feature-untangle-motion.js +155 -0
- package/dist/commands/graph/feature-untangle-motion.js.map +1 -0
- package/dist/commands/graph/index.d.ts +3 -0
- package/dist/commands/graph/index.d.ts.map +1 -0
- package/dist/commands/graph/index.js +414 -0
- package/dist/commands/graph/index.js.map +1 -0
- package/dist/commands/graph/render.d.ts +63 -0
- package/dist/commands/graph/render.d.ts.map +1 -0
- package/dist/commands/graph/render.js +352 -0
- package/dist/commands/graph/render.js.map +1 -0
- package/dist/commands/graph/select.d.ts +34 -0
- package/dist/commands/graph/select.d.ts.map +1 -0
- package/dist/commands/graph/select.js +55 -0
- package/dist/commands/graph/select.js.map +1 -0
- package/dist/commands/index/index.d.ts +6 -0
- package/dist/commands/index/index.d.ts.map +1 -0
- package/dist/commands/index/index.js +461 -0
- package/dist/commands/index/index.js.map +1 -0
- package/dist/commands/index/render.d.ts +53 -0
- package/dist/commands/index/render.d.ts.map +1 -0
- package/dist/commands/index/render.js +205 -0
- package/dist/commands/index/render.js.map +1 -0
- package/dist/commands/index/target.d.ts +34 -0
- package/dist/commands/index/target.d.ts.map +1 -0
- package/dist/commands/index/target.js +97 -0
- package/dist/commands/index/target.js.map +1 -0
- package/dist/commands/index-watch.d.ts +30 -0
- package/dist/commands/index-watch.d.ts.map +1 -0
- package/dist/commands/index-watch.js +138 -0
- package/dist/commands/index-watch.js.map +1 -0
- package/dist/commands/init/command.d.ts +25 -0
- package/dist/commands/init/command.d.ts.map +1 -0
- package/dist/commands/init/command.js +198 -0
- package/dist/commands/init/command.js.map +1 -0
- package/dist/commands/init/config-draft.d.ts +48 -0
- package/dist/commands/init/config-draft.d.ts.map +1 -0
- package/dist/commands/init/config-draft.js +201 -0
- package/dist/commands/init/config-draft.js.map +1 -0
- package/dist/commands/init/diff.d.ts +33 -0
- package/dist/commands/init/diff.d.ts.map +1 -0
- package/dist/commands/init/diff.js +109 -0
- package/dist/commands/init/diff.js.map +1 -0
- package/dist/commands/init/http-probe.d.ts +26 -0
- package/dist/commands/init/http-probe.d.ts.map +1 -0
- package/dist/commands/init/http-probe.js +144 -0
- package/dist/commands/init/http-probe.js.map +1 -0
- package/dist/commands/init/ignore-rules.d.ts +70 -0
- package/dist/commands/init/ignore-rules.d.ts.map +1 -0
- package/dist/commands/init/ignore-rules.js +146 -0
- package/dist/commands/init/ignore-rules.js.map +1 -0
- package/dist/commands/init/index.d.ts +33 -0
- package/dist/commands/init/index.d.ts.map +1 -0
- package/dist/commands/init/index.js +32 -0
- package/dist/commands/init/index.js.map +1 -0
- package/dist/commands/init/integrations-apply.d.ts +50 -0
- package/dist/commands/init/integrations-apply.d.ts.map +1 -0
- package/dist/commands/init/integrations-apply.js +452 -0
- package/dist/commands/init/integrations-apply.js.map +1 -0
- package/dist/commands/init/integrations-plan.d.ts +68 -0
- package/dist/commands/init/integrations-plan.d.ts.map +1 -0
- package/dist/commands/init/integrations-plan.js +515 -0
- package/dist/commands/init/integrations-plan.js.map +1 -0
- package/dist/commands/init/integrations.d.ts +5 -0
- package/dist/commands/init/integrations.d.ts.map +1 -0
- package/dist/commands/init/integrations.js +4 -0
- package/dist/commands/init/integrations.js.map +1 -0
- package/dist/commands/init/languages.d.ts +55 -0
- package/dist/commands/init/languages.d.ts.map +1 -0
- package/dist/commands/init/languages.js +245 -0
- package/dist/commands/init/languages.js.map +1 -0
- package/dist/commands/init/product-context.d.ts +63 -0
- package/dist/commands/init/product-context.d.ts.map +1 -0
- package/dist/commands/init/product-context.js +390 -0
- package/dist/commands/init/product-context.js.map +1 -0
- package/dist/commands/init/render.d.ts +38 -0
- package/dist/commands/init/render.d.ts.map +1 -0
- package/dist/commands/init/render.js +501 -0
- package/dist/commands/init/render.js.map +1 -0
- package/dist/commands/init/report.d.ts +24 -0
- package/dist/commands/init/report.d.ts.map +1 -0
- package/dist/commands/init/report.js +163 -0
- package/dist/commands/init/report.js.map +1 -0
- package/dist/commands/init/run.d.ts +71 -0
- package/dist/commands/init/run.d.ts.map +1 -0
- package/dist/commands/init/run.js +253 -0
- package/dist/commands/init/run.js.map +1 -0
- package/dist/commands/init/services.d.ts +82 -0
- package/dist/commands/init/services.d.ts.map +1 -0
- package/dist/commands/init/services.js +209 -0
- package/dist/commands/init/services.js.map +1 -0
- package/dist/commands/init/storage.d.ts +8 -0
- package/dist/commands/init/storage.d.ts.map +1 -0
- package/dist/commands/init/storage.js +102 -0
- package/dist/commands/init/storage.js.map +1 -0
- package/dist/commands/init/toml.d.ts +65 -0
- package/dist/commands/init/toml.d.ts.map +1 -0
- package/dist/commands/init/toml.js +159 -0
- package/dist/commands/init/toml.js.map +1 -0
- package/dist/commands/init/topology.d.ts +54 -0
- package/dist/commands/init/topology.d.ts.map +1 -0
- package/dist/commands/init/topology.js +146 -0
- package/dist/commands/init/topology.js.map +1 -0
- package/dist/commands/init/types.d.ts +334 -0
- package/dist/commands/init/types.d.ts.map +1 -0
- package/dist/commands/init/types.js +31 -0
- package/dist/commands/init/types.js.map +1 -0
- package/dist/commands/init/wizard-terminal.d.ts +36 -0
- package/dist/commands/init/wizard-terminal.d.ts.map +1 -0
- package/dist/commands/init/wizard-terminal.js +163 -0
- package/dist/commands/init/wizard-terminal.js.map +1 -0
- package/dist/commands/init/wizard.d.ts +25 -0
- package/dist/commands/init/wizard.d.ts.map +1 -0
- package/dist/commands/init/wizard.js +358 -0
- package/dist/commands/init/wizard.js.map +1 -0
- package/dist/commands/mcp.d.ts +4 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +111 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/product-test-runner.d.ts +4 -0
- package/dist/commands/product-test-runner.d.ts.map +1 -0
- package/dist/commands/product-test-runner.js +85 -0
- package/dist/commands/product-test-runner.js.map +1 -0
- package/dist/commands/product.d.ts +16 -0
- package/dist/commands/product.d.ts.map +1 -0
- package/dist/commands/product.js +262 -0
- package/dist/commands/product.js.map +1 -0
- package/dist/commands/query.d.ts +114 -0
- package/dist/commands/query.d.ts.map +1 -0
- package/dist/commands/query.js +783 -0
- package/dist/commands/query.js.map +1 -0
- package/dist/commands/scan.d.ts +10 -0
- package/dist/commands/scan.d.ts.map +1 -0
- package/dist/commands/scan.js +302 -0
- package/dist/commands/scan.js.map +1 -0
- package/dist/commands/sdd.d.ts +24 -0
- package/dist/commands/sdd.d.ts.map +1 -0
- package/dist/commands/sdd.js +195 -0
- package/dist/commands/sdd.js.map +1 -0
- package/dist/commands/unavailable.d.ts +40 -0
- package/dist/commands/unavailable.d.ts.map +1 -0
- package/dist/commands/unavailable.js +73 -0
- package/dist/commands/unavailable.js.map +1 -0
- package/dist/commands/watch/analyze.d.ts +69 -0
- package/dist/commands/watch/analyze.d.ts.map +1 -0
- package/dist/commands/watch/analyze.js +402 -0
- package/dist/commands/watch/analyze.js.map +1 -0
- package/dist/commands/watch/cli.d.ts +8 -0
- package/dist/commands/watch/cli.d.ts.map +1 -0
- package/dist/commands/watch/cli.js +97 -0
- package/dist/commands/watch/cli.js.map +1 -0
- package/dist/commands/watch/delta.d.ts +46 -0
- package/dist/commands/watch/delta.d.ts.map +1 -0
- package/dist/commands/watch/delta.js +170 -0
- package/dist/commands/watch/delta.js.map +1 -0
- package/dist/commands/watch/events.d.ts +214 -0
- package/dist/commands/watch/events.d.ts.map +1 -0
- package/dist/commands/watch/events.js +13 -0
- package/dist/commands/watch/events.js.map +1 -0
- package/dist/commands/watch/index.d.ts +19 -0
- package/dist/commands/watch/index.d.ts.map +1 -0
- package/dist/commands/watch/index.js +15 -0
- package/dist/commands/watch/index.js.map +1 -0
- package/dist/commands/watch/options.d.ts +43 -0
- package/dist/commands/watch/options.d.ts.map +1 -0
- package/dist/commands/watch/options.js +193 -0
- package/dist/commands/watch/options.js.map +1 -0
- package/dist/commands/watch/render.d.ts +26 -0
- package/dist/commands/watch/render.d.ts.map +1 -0
- package/dist/commands/watch/render.js +175 -0
- package/dist/commands/watch/render.js.map +1 -0
- package/dist/commands/watch/run.d.ts +14 -0
- package/dist/commands/watch/run.d.ts.map +1 -0
- package/dist/commands/watch/run.js +460 -0
- package/dist/commands/watch/run.js.map +1 -0
- package/dist/commands/watch/runtime.d.ts +67 -0
- package/dist/commands/watch/runtime.d.ts.map +1 -0
- package/dist/commands/watch/runtime.js +149 -0
- package/dist/commands/watch/runtime.js.map +1 -0
- package/dist/commands/watch-command.d.ts +3 -0
- package/dist/commands/watch-command.d.ts.map +1 -0
- package/dist/commands/watch-command.js +273 -0
- package/dist/commands/watch-command.js.map +1 -0
- package/dist/entry-point.d.ts +11 -0
- package/dist/entry-point.d.ts.map +1 -0
- package/dist/entry-point.js +65 -0
- package/dist/entry-point.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +245 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/boundaries-schema.d.ts +262 -0
- package/dist/mcp/boundaries-schema.d.ts.map +1 -0
- package/dist/mcp/boundaries-schema.js +183 -0
- package/dist/mcp/boundaries-schema.js.map +1 -0
- package/dist/mcp/default-runtime.d.ts +16 -0
- package/dist/mcp/default-runtime.d.ts.map +1 -0
- package/dist/mcp/default-runtime.js +718 -0
- package/dist/mcp/default-runtime.js.map +1 -0
- package/dist/mcp/envelope.d.ts +13 -0
- package/dist/mcp/envelope.d.ts.map +1 -0
- package/dist/mcp/envelope.js +29 -0
- package/dist/mcp/envelope.js.map +1 -0
- package/dist/mcp/index.d.ts +8 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +8 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/output-schemas.d.ts +5928 -0
- package/dist/mcp/output-schemas.d.ts.map +1 -0
- package/dist/mcp/output-schemas.js +2814 -0
- package/dist/mcp/output-schemas.js.map +1 -0
- package/dist/mcp/path-sandbox.d.ts +35 -0
- package/dist/mcp/path-sandbox.d.ts.map +1 -0
- package/dist/mcp/path-sandbox.js +128 -0
- package/dist/mcp/path-sandbox.js.map +1 -0
- package/dist/mcp/server.d.ts +155 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +257 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/stdio.d.ts +20 -0
- package/dist/mcp/stdio.d.ts.map +1 -0
- package/dist/mcp/stdio.js +71 -0
- package/dist/mcp/stdio.js.map +1 -0
- package/dist/mcp/tools.d.ts +355 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +319 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp/types.d.ts +15 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +45 -0
- package/dist/mcp/types.js.map +1 -0
- package/package.json +99 -3
- package/src/cli/args.ts +231 -0
- package/src/cli/command.ts +146 -0
- package/src/cli/deadline.ts +56 -0
- package/src/cli/embedder-deadline.ts +187 -0
- package/src/cli/exit.ts +94 -0
- package/src/cli/graphs.ts +191 -0
- package/src/cli/index-freshness.ts +303 -0
- package/src/cli/index-refresh.ts +125 -0
- package/src/cli/index-state.ts +1217 -0
- package/src/cli/io.ts +56 -0
- package/src/cli/language-support.ts +203 -0
- package/src/cli/renewing-lease.ts +121 -0
- package/src/cli/search-graph-enrichment.ts +639 -0
- package/src/cli/system.ts +94 -0
- package/src/cli/vector-store-policy.ts +213 -0
- package/src/cli/version.ts +2 -0
- package/src/cli/workspace.ts +324 -0
- package/src/commands/complexity.ts +776 -0
- package/src/commands/doctor.languages.ts +187 -0
- package/src/commands/doctor.storage.ts +124 -0
- package/src/commands/doctor.ts +946 -0
- package/src/commands/extensions/add.ts +312 -0
- package/src/commands/extensions/configure.ts +82 -0
- package/src/commands/extensions/container.ts +209 -0
- package/src/commands/extensions/context.ts +109 -0
- package/src/commands/extensions/enable.ts +237 -0
- package/src/commands/extensions/environment.ts +218 -0
- package/src/commands/extensions/feature-scan.ts +232 -0
- package/src/commands/extensions/invoke.ts +368 -0
- package/src/commands/extensions/list.ts +158 -0
- package/src/commands/extensions/logs.ts +104 -0
- package/src/commands/extensions/provision.ts +206 -0
- package/src/commands/extensions/remove.ts +110 -0
- package/src/commands/extensions/render.ts +32 -0
- package/src/commands/extensions/run.ts +386 -0
- package/src/commands/extensions/secret-store.ts +223 -0
- package/src/commands/extensions/setup.ts +140 -0
- package/src/commands/extensions/source.ts +189 -0
- package/src/commands/extensions/state.ts +252 -0
- package/src/commands/extensions/status.ts +320 -0
- package/src/commands/extensions.ts +280 -0
- package/src/commands/flow/index.ts +402 -0
- package/src/commands/flow/limits.ts +14 -0
- package/src/commands/flow/output.ts +16 -0
- package/src/commands/flow/render.ts +318 -0
- package/src/commands/flow/select.ts +101 -0
- package/src/commands/graph/boundaries-input.ts +63 -0
- package/src/commands/graph/boundaries.ts +182 -0
- package/src/commands/graph/bounds.ts +25 -0
- package/src/commands/graph/category-clusters.ts +194 -0
- package/src/commands/graph/feature-3d.ts +141 -0
- package/src/commands/graph/feature-clusters.ts +125 -0
- package/src/commands/graph/feature-html.ts +336 -0
- package/src/commands/graph/feature-map.ts +270 -0
- package/src/commands/graph/feature-model.ts +234 -0
- package/src/commands/graph/feature-untangle-motion.ts +192 -0
- package/src/commands/graph/index.ts +562 -0
- package/src/commands/graph/render.ts +503 -0
- package/src/commands/graph/select.ts +77 -0
- package/src/commands/index/index.ts +595 -0
- package/src/commands/index/render.ts +325 -0
- package/src/commands/index/target.ts +136 -0
- package/src/commands/index-watch.ts +206 -0
- package/src/commands/init/command.ts +238 -0
- package/src/commands/init/config-draft.ts +235 -0
- package/src/commands/init/diff.ts +117 -0
- package/src/commands/init/http-probe.ts +150 -0
- package/src/commands/init/ignore-rules.ts +170 -0
- package/src/commands/init/index.ts +63 -0
- package/src/commands/init/integrations-apply.ts +618 -0
- package/src/commands/init/integrations-plan.ts +634 -0
- package/src/commands/init/integrations.ts +8 -0
- package/src/commands/init/languages.ts +320 -0
- package/src/commands/init/product-context.ts +576 -0
- package/src/commands/init/render.ts +598 -0
- package/src/commands/init/report.ts +204 -0
- package/src/commands/init/run.ts +349 -0
- package/src/commands/init/services.ts +271 -0
- package/src/commands/init/storage.ts +136 -0
- package/src/commands/init/toml.ts +174 -0
- package/src/commands/init/topology.ts +192 -0
- package/src/commands/init/types.ts +366 -0
- package/src/commands/init/wizard-terminal.ts +206 -0
- package/src/commands/init/wizard.ts +450 -0
- package/src/commands/mcp.ts +123 -0
- package/src/commands/product-test-runner.ts +80 -0
- package/src/commands/product.ts +331 -0
- package/src/commands/query.ts +1032 -0
- package/src/commands/scan.ts +360 -0
- package/src/commands/sdd.ts +243 -0
- package/src/commands/unavailable.ts +92 -0
- package/src/commands/watch/README.md +160 -0
- package/src/commands/watch/analyze.ts +600 -0
- package/src/commands/watch/cli.ts +108 -0
- package/src/commands/watch/delta.ts +186 -0
- package/src/commands/watch/events.ts +235 -0
- package/src/commands/watch/index.ts +53 -0
- package/src/commands/watch/options.ts +234 -0
- package/src/commands/watch/render.ts +240 -0
- package/src/commands/watch/run.ts +553 -0
- package/src/commands/watch/runtime.ts +167 -0
- package/src/commands/watch-command.ts +294 -0
- package/src/entry-point.ts +67 -0
- package/src/index.ts +291 -0
- package/src/mcp/boundaries-schema.ts +193 -0
- package/src/mcp/default-runtime.ts +1034 -0
- package/src/mcp/envelope.ts +57 -0
- package/src/mcp/index.ts +28 -0
- package/src/mcp/output-schemas.ts +3071 -0
- package/src/mcp/path-sandbox.ts +156 -0
- package/src/mcp/server.ts +358 -0
- package/src/mcp/stdio.ts +92 -0
- package/src/mcp/tools.ts +563 -0
- package/src/mcp/types.ts +66 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Eine Frist um JEDEN Aufruf des Einbettungsdienstes — und ein sichtbares
|
|
3
|
+
* Lebenszeichen, solange er laeuft.
|
|
4
|
+
*
|
|
5
|
+
* WARUM (WP-227, gemessen, nicht vermutet): Beim Abnahmelauf gegen ein
|
|
6
|
+
* Projekt mit NEUN Dateien lief `untangle index` ueber 300 Sekunden ohne eine
|
|
7
|
+
* einzige Zeile Ausgabe und musste abgebrochen werden. Ursache war ein
|
|
8
|
+
* Ollama, dessen `/api/embed` haengt, waehrend `/api/tags` sofort antwortet.
|
|
9
|
+
* Die Rechnung dahinter: `embeddings.requestTimeoutMs` steht per Vorgabe auf
|
|
10
|
+
* 120 000 ms, und die Bereitschaftsfolge wiederholt ihren Zeitueberlauf mit
|
|
11
|
+
* Backoff — drei Versuche sind sechs Minuten. Fuer den Indexlauf ist langes
|
|
12
|
+
* Durchhalten grundsaetzlich richtig; ein Mensch am Terminal, der nichts
|
|
13
|
+
* sieht, weiss aber nicht einmal, OB etwas passiert. Das ist die
|
|
14
|
+
* Oberflaechenform derselben Unehrlichkeit, gegen die E4 antritt.
|
|
15
|
+
*
|
|
16
|
+
* ES IST DASSELBE MUSTER WIE IN `untangle doctor`: eine eigene Frist der
|
|
17
|
+
* Oberflaeche, und ein abgebrochener Aufruf gilt als FEHLGESCHLAGEN, nie als
|
|
18
|
+
* bestanden. Der Unterschied ist nur, dass die Frist hier nicht um einen
|
|
19
|
+
* Diagnosetest liegt, sondern um jeden einzelnen Aufruf des Dienstes.
|
|
20
|
+
*
|
|
21
|
+
* ZWEI DINGE, DIE DIESE HUELLE NIE TUT:
|
|
22
|
+
*
|
|
23
|
+
* 1. Sie faelscht kein Ergebnis. Laeuft die Frist ab, wirft sie
|
|
24
|
+
* `EMBEDDING_UNAVAILABLE` — nie einen leeren Vektorsatz, der weiter unten
|
|
25
|
+
* als „fertig" durchginge (spec.md §25.1, BUILD_PLAN E4).
|
|
26
|
+
* 2. Sie taeuscht keinen Nutzerabbruch vor. Ein Fristablauf traegt bewusst
|
|
27
|
+
* NICHT den Namen `AbortError` und nicht den Code `JOB_CANCELLED`: der
|
|
28
|
+
* Laeufer unterscheidet Abbruch von Fehlschlag genau daran (siehe
|
|
29
|
+
* `packages/core/src/cancellation.ts`), und ein Fristablauf ist ein
|
|
30
|
+
* Fehlschlag der UMGEBUNG, kein Strg-C. Bricht dagegen der Nutzer wirklich
|
|
31
|
+
* ab, geht sein Fehler unveraendert weiter.
|
|
32
|
+
*/
|
|
33
|
+
import { type EmbeddingProvider } from "@untangle-code/domain";
|
|
34
|
+
/**
|
|
35
|
+
* Vorgabefrist je Aufruf.
|
|
36
|
+
*
|
|
37
|
+
* Grosszuegiger als die 15 s von `doctor`, weil ein Indexstapel echte Arbeit
|
|
38
|
+
* ist (acht Dateien, ein kalt geladenes Modell) — und trotzdem endlich, weil
|
|
39
|
+
* genau das der Unterschied zwischen „dauert" und „haengt" ist. Wem sie zu
|
|
40
|
+
* knapp ist, der hebt sie mit `--timeout` an; wer schnell scheitern will,
|
|
41
|
+
* senkt sie.
|
|
42
|
+
*/
|
|
43
|
+
export declare const DEFAULT_EMBEDDING_TIMEOUT_MS = 60000;
|
|
44
|
+
/** Abstand der Lebenszeichen, solange ein Aufruf laeuft. */
|
|
45
|
+
export declare const DEFAULT_HEARTBEAT_MS = 5000;
|
|
46
|
+
export interface EmbeddingDeadlineOptions {
|
|
47
|
+
/** Frist je Aufruf in Millisekunden. */
|
|
48
|
+
readonly timeoutMs: number;
|
|
49
|
+
/**
|
|
50
|
+
* Das Abbruchsignal des Befehls. Es gilt zusaetzlich zu dem, das der
|
|
51
|
+
* Aufrufer je Aufruf mitgibt — Strg-C wirkt sofort, nicht erst zur Frist.
|
|
52
|
+
*/
|
|
53
|
+
readonly outerSignal: AbortSignal;
|
|
54
|
+
/** Wohin die Lebenszeichen gehen. In der Oberflaeche: stderr. */
|
|
55
|
+
readonly onProgress?: ((text: string) => void) | undefined;
|
|
56
|
+
/** Abstand der Lebenszeichen; 0 schaltet sie ab. */
|
|
57
|
+
readonly heartbeatMs?: number | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Die Uhr der Lebenszeichen. Vorgabe ist der `systemClock`-Port — nie
|
|
60
|
+
* `Date.now()` direkt (spec.md §5, Regel 5). Die gemessene Dauer ist
|
|
61
|
+
* DIAGNOSE auf stderr und geht in keine Ergebnisdatei ein.
|
|
62
|
+
*/
|
|
63
|
+
readonly clock?: {
|
|
64
|
+
nowEpochMs(): number;
|
|
65
|
+
} | undefined;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Legt {@link EmbeddingDeadlineOptions.timeoutMs} um jeden Aufruf von
|
|
69
|
+
* `inner` und meldet, dass gewartet wird.
|
|
70
|
+
*/
|
|
71
|
+
export declare function withEmbeddingDeadline(inner: EmbeddingProvider, options: EmbeddingDeadlineOptions): EmbeddingProvider;
|
|
72
|
+
//# sourceMappingURL=embedder-deadline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedder-deadline.d.ts","sourceRoot":"","sources":["../../src/cli/embedder-deadline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAIL,KAAK,iBAAiB,EAGvB,MAAM,uBAAuB,CAAC;AAK/B;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,QAAS,CAAC;AAEnD,4DAA4D;AAC5D,eAAO,MAAM,oBAAoB,OAAQ,CAAC;AAE1C,MAAM,WAAW,wBAAwB;IACvC,wCAAwC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,iEAAiE;IACjE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3D,oDAAoD;IACpD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,UAAU,IAAI,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CACvD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,wBAAwB,GAChC,iBAAiB,CA8FnB"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Eine Frist um JEDEN Aufruf des Einbettungsdienstes — und ein sichtbares
|
|
3
|
+
* Lebenszeichen, solange er laeuft.
|
|
4
|
+
*
|
|
5
|
+
* WARUM (WP-227, gemessen, nicht vermutet): Beim Abnahmelauf gegen ein
|
|
6
|
+
* Projekt mit NEUN Dateien lief `untangle index` ueber 300 Sekunden ohne eine
|
|
7
|
+
* einzige Zeile Ausgabe und musste abgebrochen werden. Ursache war ein
|
|
8
|
+
* Ollama, dessen `/api/embed` haengt, waehrend `/api/tags` sofort antwortet.
|
|
9
|
+
* Die Rechnung dahinter: `embeddings.requestTimeoutMs` steht per Vorgabe auf
|
|
10
|
+
* 120 000 ms, und die Bereitschaftsfolge wiederholt ihren Zeitueberlauf mit
|
|
11
|
+
* Backoff — drei Versuche sind sechs Minuten. Fuer den Indexlauf ist langes
|
|
12
|
+
* Durchhalten grundsaetzlich richtig; ein Mensch am Terminal, der nichts
|
|
13
|
+
* sieht, weiss aber nicht einmal, OB etwas passiert. Das ist die
|
|
14
|
+
* Oberflaechenform derselben Unehrlichkeit, gegen die E4 antritt.
|
|
15
|
+
*
|
|
16
|
+
* ES IST DASSELBE MUSTER WIE IN `untangle doctor`: eine eigene Frist der
|
|
17
|
+
* Oberflaeche, und ein abgebrochener Aufruf gilt als FEHLGESCHLAGEN, nie als
|
|
18
|
+
* bestanden. Der Unterschied ist nur, dass die Frist hier nicht um einen
|
|
19
|
+
* Diagnosetest liegt, sondern um jeden einzelnen Aufruf des Dienstes.
|
|
20
|
+
*
|
|
21
|
+
* ZWEI DINGE, DIE DIESE HUELLE NIE TUT:
|
|
22
|
+
*
|
|
23
|
+
* 1. Sie faelscht kein Ergebnis. Laeuft die Frist ab, wirft sie
|
|
24
|
+
* `EMBEDDING_UNAVAILABLE` — nie einen leeren Vektorsatz, der weiter unten
|
|
25
|
+
* als „fertig" durchginge (spec.md §25.1, BUILD_PLAN E4).
|
|
26
|
+
* 2. Sie taeuscht keinen Nutzerabbruch vor. Ein Fristablauf traegt bewusst
|
|
27
|
+
* NICHT den Namen `AbortError` und nicht den Code `JOB_CANCELLED`: der
|
|
28
|
+
* Laeufer unterscheidet Abbruch von Fehlschlag genau daran (siehe
|
|
29
|
+
* `packages/core/src/cancellation.ts`), und ein Fristablauf ist ein
|
|
30
|
+
* Fehlschlag der UMGEBUNG, kein Strg-C. Bricht dagegen der Nutzer wirklich
|
|
31
|
+
* ab, geht sein Fehler unveraendert weiter.
|
|
32
|
+
*/
|
|
33
|
+
import { UntangleError, } from "@untangle-code/domain";
|
|
34
|
+
import { withDeadline } from "./deadline.js";
|
|
35
|
+
import { systemClock } from "./system.js";
|
|
36
|
+
/**
|
|
37
|
+
* Vorgabefrist je Aufruf.
|
|
38
|
+
*
|
|
39
|
+
* Grosszuegiger als die 15 s von `doctor`, weil ein Indexstapel echte Arbeit
|
|
40
|
+
* ist (acht Dateien, ein kalt geladenes Modell) — und trotzdem endlich, weil
|
|
41
|
+
* genau das der Unterschied zwischen „dauert" und „haengt" ist. Wem sie zu
|
|
42
|
+
* knapp ist, der hebt sie mit `--timeout` an; wer schnell scheitern will,
|
|
43
|
+
* senkt sie.
|
|
44
|
+
*/
|
|
45
|
+
export const DEFAULT_EMBEDDING_TIMEOUT_MS = 60_000;
|
|
46
|
+
/** Abstand der Lebenszeichen, solange ein Aufruf laeuft. */
|
|
47
|
+
export const DEFAULT_HEARTBEAT_MS = 5_000;
|
|
48
|
+
/**
|
|
49
|
+
* Legt {@link EmbeddingDeadlineOptions.timeoutMs} um jeden Aufruf von
|
|
50
|
+
* `inner` und meldet, dass gewartet wird.
|
|
51
|
+
*/
|
|
52
|
+
export function withEmbeddingDeadline(inner, options) {
|
|
53
|
+
const heartbeatMs = options.heartbeatMs ?? DEFAULT_HEARTBEAT_MS;
|
|
54
|
+
const clock = options.clock ?? systemClock;
|
|
55
|
+
const now = () => clock.nowEpochMs();
|
|
56
|
+
async function guarded(label, startNote, call, callerOptions) {
|
|
57
|
+
options.onProgress?.(startNote);
|
|
58
|
+
// Das Signal des Aufrufers ist das aeussere, wenn es eines gibt: der
|
|
59
|
+
// Laeufer reicht sein internes Signal durch, und daran haengt Strg-C.
|
|
60
|
+
const outer = callerOptions?.signal ?? options.outerSignal;
|
|
61
|
+
const startedAt = now();
|
|
62
|
+
const timer = heartbeatMs > 0 && options.onProgress !== undefined
|
|
63
|
+
? setInterval(() => {
|
|
64
|
+
const elapsedMs = now() - startedAt;
|
|
65
|
+
options.onProgress?.(` … ${label}: waiting ${seconds(elapsedMs)} without a response ` +
|
|
66
|
+
`(deadline ${seconds(options.timeoutMs)}).`);
|
|
67
|
+
}, heartbeatMs)
|
|
68
|
+
: undefined;
|
|
69
|
+
// Ein Lebenszeichen darf den Prozess nie am Leben halten.
|
|
70
|
+
timer?.unref?.();
|
|
71
|
+
let outcome;
|
|
72
|
+
try {
|
|
73
|
+
outcome = await withDeadline(call, options.timeoutMs, outer);
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
if (timer !== undefined)
|
|
77
|
+
clearInterval(timer);
|
|
78
|
+
}
|
|
79
|
+
if (outcome.ok)
|
|
80
|
+
return outcome.value;
|
|
81
|
+
if (!outcome.timedOut)
|
|
82
|
+
throw outcome.error;
|
|
83
|
+
throw new UntangleError("EMBEDDING_UNAVAILABLE", `The embedding service did not answer "${label}" within ${String(options.timeoutMs)} ms ` +
|
|
84
|
+
". The call was cancelled; a cancelled call is not a " +
|
|
85
|
+
"result but a failure.", {
|
|
86
|
+
retryable: true,
|
|
87
|
+
operation: "index.embed",
|
|
88
|
+
context: { call: label, timeoutMs: options.timeoutMs, model: inner.profile.model },
|
|
89
|
+
cause: outcome.error,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
get profile() {
|
|
94
|
+
return inner.profile;
|
|
95
|
+
},
|
|
96
|
+
get profileId() {
|
|
97
|
+
return inner.profileId;
|
|
98
|
+
},
|
|
99
|
+
ensureReady(callerOptions) {
|
|
100
|
+
return guarded("Readiness check", `[ 2%] Embedding service: readiness check running; model ${inner.profile.model}, ` +
|
|
101
|
+
`deadline ${seconds(options.timeoutMs)} per call.`, (signal) => inner.ensureReady({ signal }), callerOptions);
|
|
102
|
+
},
|
|
103
|
+
embedDocuments(preparedTexts, callerOptions) {
|
|
104
|
+
return guarded(`Embedding ${String(preparedTexts.length)} texts`, ` Embedding: ${String(preparedTexts.length)} texts in progress ` +
|
|
105
|
+
`(deadline ${seconds(options.timeoutMs)}).`, (signal) => inner.embedDocuments(preparedTexts, { signal }), callerOptions);
|
|
106
|
+
},
|
|
107
|
+
embedQuery(preparedText, callerOptions) {
|
|
108
|
+
return guarded("Query embedding", ` Query embedding in progress (deadline ${seconds(options.timeoutMs)}).`, (signal) => inner.embedQuery(preparedText, { signal }), callerOptions);
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/** „61 s" statt „61000 ms" — die Frist liest ein Mensch. */
|
|
113
|
+
function seconds(milliseconds) {
|
|
114
|
+
const value = milliseconds / 1000;
|
|
115
|
+
return `${Number.isInteger(value) ? String(value) : value.toFixed(1)} s`;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=embedder-deadline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedder-deadline.js","sourceRoot":"","sources":["../../src/cli/embedder-deadline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exit codes and the error shapes that produce them.
|
|
3
|
+
*
|
|
4
|
+
* WARUM EIGENE CODES UND NICHT NUR 0/1: Der Nutzer will Untangle in eine
|
|
5
|
+
* Schleife haengen („continuous complexity monitoring"). Eine Schleife muss
|
|
6
|
+
* „das Werkzeug kann das noch nicht" von „die Umgebung laeuft nicht" und von
|
|
7
|
+
* „die Schwelle wurde gerissen" unterscheiden koennen, ohne stderr zu parsen.
|
|
8
|
+
* Genau dafuer sind die Codes belegt.
|
|
9
|
+
*
|
|
10
|
+
* BUILD_PLAN E4 gilt auch hier: {@link EXIT.unavailable} ist ein EIGENER Code,
|
|
11
|
+
* damit eine noch nicht gebaute Faehigkeit nie wie ein Betriebsfehler aussieht
|
|
12
|
+
* — und nie wie ein Erfolg.
|
|
13
|
+
*/
|
|
14
|
+
export declare const EXIT: {
|
|
15
|
+
/** Alles gut. */
|
|
16
|
+
readonly ok: 0;
|
|
17
|
+
/** Betriebsfehler: Datei unlesbar, Konfiguration ungueltig, Adapter warf. */
|
|
18
|
+
readonly operational: 1;
|
|
19
|
+
/** Aufruffehler: unbekannter Befehl, unbekannte Option, fehlendes Argument. */
|
|
20
|
+
readonly usage: 2;
|
|
21
|
+
/** Die Faehigkeit ist noch nicht gebaut. Kein Fehler des Nutzers. */
|
|
22
|
+
readonly unavailable: 3;
|
|
23
|
+
/** Die Umgebung ist nicht bereit: Ollama/Qdrant nicht erreichbar, kein Index. */
|
|
24
|
+
readonly environment: 4;
|
|
25
|
+
/** Eine Schwelle wurde gerissen (Quality Gate). Die Analyse selbst lief. */
|
|
26
|
+
readonly gate: 5;
|
|
27
|
+
/** Abgebrochen (SIGINT/SIGTERM). */
|
|
28
|
+
readonly cancelled: 130;
|
|
29
|
+
};
|
|
30
|
+
export type ExitCode = (typeof EXIT)[keyof typeof EXIT];
|
|
31
|
+
/**
|
|
32
|
+
* Ein Fehler, den die Oberflaeche selbst erzeugt hat.
|
|
33
|
+
*
|
|
34
|
+
* `nextStep` ist bewusst ein Pflichtfeld im Konstruktor jedes Untertyps, der
|
|
35
|
+
* es tragen kann: eine Fehlermeldung ohne naechsten Schritt laesst den Nutzer
|
|
36
|
+
* genau dort stehen, wo er nicht weiterkommt.
|
|
37
|
+
*/
|
|
38
|
+
export declare class CliError extends Error {
|
|
39
|
+
readonly exitCode: ExitCode;
|
|
40
|
+
readonly nextStep: string | undefined;
|
|
41
|
+
constructor(message: string, exitCode: ExitCode, nextStep?: string, options?: {
|
|
42
|
+
cause?: unknown;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/** Falsch aufgerufen — unbekannter Befehl, unbekannte Option, fehlender Wert. */
|
|
46
|
+
export declare class UsageError extends CliError {
|
|
47
|
+
constructor(message: string, nextStep?: string);
|
|
48
|
+
}
|
|
49
|
+
/** Etwas ist schiefgegangen, das schiefgehen darf. */
|
|
50
|
+
export declare class OperationalError extends CliError {
|
|
51
|
+
constructor(message: string, nextStep?: string, options?: {
|
|
52
|
+
cause?: unknown;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Die Faehigkeit ist noch nicht gebaut.
|
|
57
|
+
*
|
|
58
|
+
* `reason` sagt, WAS fehlt und WO es hingehoert — nicht „nicht implementiert",
|
|
59
|
+
* sondern die pruefbare Aussage. Ein Nutzer, der das liest, kann selbst
|
|
60
|
+
* nachsehen, ob es inzwischen anders ist.
|
|
61
|
+
*/
|
|
62
|
+
export declare class UnavailableError extends CliError {
|
|
63
|
+
constructor(message: string, nextStep: string);
|
|
64
|
+
}
|
|
65
|
+
/** Die Umgebung ist nicht bereit. */
|
|
66
|
+
export declare class EnvironmentError extends CliError {
|
|
67
|
+
constructor(message: string, nextStep: string, options?: {
|
|
68
|
+
cause?: unknown;
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=exit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exit.d.ts","sourceRoot":"","sources":["../../src/cli/exit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,IAAI;IACf,iBAAiB;;IAEjB,6EAA6E;;IAE7E,+EAA+E;;IAE/E,qEAAqE;;IAErE,iFAAiF;;IAEjF,4EAA4E;;IAE5E,oCAAoC;;CAE5B,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC;AAExD;;;;;;GAMG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;gBAGpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAOhC;AAED,iFAAiF;AACjF,qBAAa,UAAW,SAAQ,QAAQ;gBAC1B,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;CAI/C;AAED,sDAAsD;AACtD,qBAAa,gBAAiB,SAAQ,QAAQ;gBAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAI9E;AAED;;;;;;GAMG;AACH,qBAAa,gBAAiB,SAAQ,QAAQ;gBAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAI9C;AAED,qCAAqC;AACrC,qBAAa,gBAAiB,SAAQ,QAAQ;gBAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAI7E"}
|
package/dist/cli/exit.js
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exit codes and the error shapes that produce them.
|
|
3
|
+
*
|
|
4
|
+
* WARUM EIGENE CODES UND NICHT NUR 0/1: Der Nutzer will Untangle in eine
|
|
5
|
+
* Schleife haengen („continuous complexity monitoring"). Eine Schleife muss
|
|
6
|
+
* „das Werkzeug kann das noch nicht" von „die Umgebung laeuft nicht" und von
|
|
7
|
+
* „die Schwelle wurde gerissen" unterscheiden koennen, ohne stderr zu parsen.
|
|
8
|
+
* Genau dafuer sind die Codes belegt.
|
|
9
|
+
*
|
|
10
|
+
* BUILD_PLAN E4 gilt auch hier: {@link EXIT.unavailable} ist ein EIGENER Code,
|
|
11
|
+
* damit eine noch nicht gebaute Faehigkeit nie wie ein Betriebsfehler aussieht
|
|
12
|
+
* — und nie wie ein Erfolg.
|
|
13
|
+
*/
|
|
14
|
+
export const EXIT = {
|
|
15
|
+
/** Alles gut. */
|
|
16
|
+
ok: 0,
|
|
17
|
+
/** Betriebsfehler: Datei unlesbar, Konfiguration ungueltig, Adapter warf. */
|
|
18
|
+
operational: 1,
|
|
19
|
+
/** Aufruffehler: unbekannter Befehl, unbekannte Option, fehlendes Argument. */
|
|
20
|
+
usage: 2,
|
|
21
|
+
/** Die Faehigkeit ist noch nicht gebaut. Kein Fehler des Nutzers. */
|
|
22
|
+
unavailable: 3,
|
|
23
|
+
/** Die Umgebung ist nicht bereit: Ollama/Qdrant nicht erreichbar, kein Index. */
|
|
24
|
+
environment: 4,
|
|
25
|
+
/** Eine Schwelle wurde gerissen (Quality Gate). Die Analyse selbst lief. */
|
|
26
|
+
gate: 5,
|
|
27
|
+
/** Abgebrochen (SIGINT/SIGTERM). */
|
|
28
|
+
cancelled: 130,
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Ein Fehler, den die Oberflaeche selbst erzeugt hat.
|
|
32
|
+
*
|
|
33
|
+
* `nextStep` ist bewusst ein Pflichtfeld im Konstruktor jedes Untertyps, der
|
|
34
|
+
* es tragen kann: eine Fehlermeldung ohne naechsten Schritt laesst den Nutzer
|
|
35
|
+
* genau dort stehen, wo er nicht weiterkommt.
|
|
36
|
+
*/
|
|
37
|
+
export class CliError extends Error {
|
|
38
|
+
exitCode;
|
|
39
|
+
nextStep;
|
|
40
|
+
constructor(message, exitCode, nextStep, options) {
|
|
41
|
+
super(message, options === undefined ? undefined : { cause: options.cause });
|
|
42
|
+
this.name = "CliError";
|
|
43
|
+
this.exitCode = exitCode;
|
|
44
|
+
this.nextStep = nextStep;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/** Falsch aufgerufen — unbekannter Befehl, unbekannte Option, fehlender Wert. */
|
|
48
|
+
export class UsageError extends CliError {
|
|
49
|
+
constructor(message, nextStep) {
|
|
50
|
+
super(message, EXIT.usage, nextStep);
|
|
51
|
+
this.name = "UsageError";
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/** Etwas ist schiefgegangen, das schiefgehen darf. */
|
|
55
|
+
export class OperationalError extends CliError {
|
|
56
|
+
constructor(message, nextStep, options) {
|
|
57
|
+
super(message, EXIT.operational, nextStep, options);
|
|
58
|
+
this.name = "OperationalError";
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Die Faehigkeit ist noch nicht gebaut.
|
|
63
|
+
*
|
|
64
|
+
* `reason` sagt, WAS fehlt und WO es hingehoert — nicht „nicht implementiert",
|
|
65
|
+
* sondern die pruefbare Aussage. Ein Nutzer, der das liest, kann selbst
|
|
66
|
+
* nachsehen, ob es inzwischen anders ist.
|
|
67
|
+
*/
|
|
68
|
+
export class UnavailableError extends CliError {
|
|
69
|
+
constructor(message, nextStep) {
|
|
70
|
+
super(message, EXIT.unavailable, nextStep);
|
|
71
|
+
this.name = "UnavailableError";
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/** Die Umgebung ist nicht bereit. */
|
|
75
|
+
export class EnvironmentError extends CliError {
|
|
76
|
+
constructor(message, nextStep, options) {
|
|
77
|
+
super(message, EXIT.environment, nextStep, options);
|
|
78
|
+
this.name = "EnvironmentError";
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=exit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exit.js","sourceRoot":"","sources":["../../src/cli/exit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,iBAAiB;IACjB,EAAE,EAAE,CAAC;IACL,6EAA6E;IAC7E,WAAW,EAAE,CAAC;IACd,+EAA+E;IAC/E,KAAK,EAAE,CAAC;IACR,qEAAqE;IACrE,WAAW,EAAE,CAAC;IACd,iFAAiF;IACjF,WAAW,EAAE,CAAC;IACd,4EAA4E;IAC5E,IAAI,EAAE,CAAC;IACP,oCAAoC;IACpC,SAAS,EAAE,GAAG;CACN,CAAC;AAIX;;;;;;GAMG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,QAAQ,CAAW;IACnB,QAAQ,CAAqB;IAEtC,YACE,OAAe,EACf,QAAkB,EAClB,QAAiB,EACjB,OAA6B;QAE7B,KAAK,CAAC,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,iFAAiF;AACjF,MAAM,OAAO,UAAW,SAAQ,QAAQ;IACtC,YAAY,OAAe,EAAE,QAAiB;QAC5C,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,sDAAsD;AACtD,MAAM,OAAO,gBAAiB,SAAQ,QAAQ;IAC5C,YAAY,OAAe,EAAE,QAAiB,EAAE,OAA6B;QAC3E,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,gBAAiB,SAAQ,QAAQ;IAC5C,YAAY,OAAe,EAAE,QAAgB;QAC3C,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,qCAAqC;AACrC,MAAM,OAAO,gBAAiB,SAAQ,QAAQ;IAC5C,YAAY,OAAe,EAAE,QAAgB,EAAE,OAA6B;QAC1E,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Der LESEWEG zu den beiden Graphen — die Stelle, die `untangle graph` und
|
|
3
|
+
* `untangle flow` bisher gefehlt hat.
|
|
4
|
+
*
|
|
5
|
+
* `untangle index` baut Datei- und Symbolgraph und legt sie ueber den
|
|
6
|
+
* `GraphStore`-Port workspace- und generationsgebunden ab. Der zuletzt
|
|
7
|
+
* geschriebene, namespacete Symbolsnapshot ist zugleich der Publish-Marker
|
|
8
|
+
* fuer das zusammengehoerige Graphpaar. Dieses Modul holt beide zurueck.
|
|
9
|
+
*
|
|
10
|
+
* DREI ENTSCHEIDUNGEN:
|
|
11
|
+
*
|
|
12
|
+
* 1. DIE GENERATION WIRD NICHT GERATEN. Gelesen wird der workspace-spezifische
|
|
13
|
+
* Publish-Marker. Seine validierte `generationId` ist danach die Generation
|
|
14
|
+
* ALLER weiteren Lesevorgaenge — sonst mischte eine Abfrage Knoten aus zwei
|
|
15
|
+
* Laeufen, und niemand saehe es.
|
|
16
|
+
*
|
|
17
|
+
* 2. EIN LOECHRIGES ABBILD WIRD GEMELDET, NICHT GEGLAETTET. `readGraphSnapshot`
|
|
18
|
+
* gibt seine Befunde als Daten zurueck (fehlender Datei-Shard, fehlender
|
|
19
|
+
* Pfadindex, Zahlen, die nicht zusammenpassen). Sie landen in
|
|
20
|
+
* {@link LoadedGraphsV1.issues} und gehen auf stderr — ein Graph, dem
|
|
21
|
+
* unbemerkt Knoten fehlen, ist schlimmer als gar keiner (E4).
|
|
22
|
+
*
|
|
23
|
+
* 3. „KEIN INDEX" IST NICHT „KEIN ERGEBNIS". Fehlt der Graph, endet der Befehl
|
|
24
|
+
* mit Exit-Code 4 und dem naechsten Schritt — nie mit einer leeren Liste
|
|
25
|
+
* und Exit-Code 0. Das ist derselbe Fehler, der in Welle 4 in `query`
|
|
26
|
+
* gefunden wurde.
|
|
27
|
+
*/
|
|
28
|
+
import { type RestoredFileGraph, type SnapshotReadIssue } from "@untangle-code/file-graph";
|
|
29
|
+
import { type SymbolGraphV1 } from "@untangle-code/symbol-graph";
|
|
30
|
+
import { type WorkspaceView } from "./workspace.js";
|
|
31
|
+
/**
|
|
32
|
+
* Der Symbolgraph, wie er aus dem Shard zurueckkommt — samt expliziter Angabe,
|
|
33
|
+
* ob sein Skip-Ledger aus demselben Snapshot stammt.
|
|
34
|
+
*
|
|
35
|
+
* Das aktuelle persistierte Format schreibt den vollständigen Symbolsnapshot
|
|
36
|
+
* einschließlich Ledger und liefert deshalb `ledgerInShard: true`. Das Feld
|
|
37
|
+
* bleibt im Vertrag sichtbar: ein zukünftiger Kompatibilitätspfad darf ein
|
|
38
|
+
* fehlendes Ledger nicht als nachgewiesen leeres Ledger ausgeben (E4).
|
|
39
|
+
*/
|
|
40
|
+
export interface LoadedSymbolGraphV1 {
|
|
41
|
+
graph: SymbolGraphV1;
|
|
42
|
+
ledgerInShard: boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface LoadedGraphsV1 {
|
|
45
|
+
view: WorkspaceView;
|
|
46
|
+
/** Generation, aus der ALLE gelesenen Shards stammen. */
|
|
47
|
+
generationId: string;
|
|
48
|
+
fileGraph: RestoredFileGraph;
|
|
49
|
+
/** Befunde des Zurueckladens; leer heisst vollstaendig. */
|
|
50
|
+
issues: readonly SnapshotReadIssue[];
|
|
51
|
+
/** Null, wenn `untangle index` keinen Symbolgraphen abgelegt hat. */
|
|
52
|
+
symbolGraph: LoadedSymbolGraphV1 | null;
|
|
53
|
+
/** Pflicht, wenn `symbolGraph` null ist (E4). */
|
|
54
|
+
symbolGraphMissingReason?: string;
|
|
55
|
+
}
|
|
56
|
+
export interface LoadGraphsOptions {
|
|
57
|
+
cwd: string;
|
|
58
|
+
env: Readonly<Record<string, string | undefined>>;
|
|
59
|
+
signal: AbortSignal;
|
|
60
|
+
/** Projektverzeichnis aus `--root`, bereits aufgeloest. */
|
|
61
|
+
root?: string | undefined;
|
|
62
|
+
}
|
|
63
|
+
/** Laedt Datei- und Symbolgraph der neuesten vollstaendigen Generation. */
|
|
64
|
+
export declare function loadGraphs(options: LoadGraphsOptions): Promise<LoadedGraphsV1>;
|
|
65
|
+
//# sourceMappingURL=graphs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphs.d.ts","sourceRoot":"","sources":["../../src/cli/graphs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAA4C,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE9F;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,2DAA2D;IAC3D,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACrC,qEAAqE;IACrE,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACxC,iDAAiD;IACjD,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAClD,MAAM,EAAE,WAAW,CAAC;IACpB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,2EAA2E;AAC3E,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAsCpF"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Der LESEWEG zu den beiden Graphen — die Stelle, die `untangle graph` und
|
|
3
|
+
* `untangle flow` bisher gefehlt hat.
|
|
4
|
+
*
|
|
5
|
+
* `untangle index` baut Datei- und Symbolgraph und legt sie ueber den
|
|
6
|
+
* `GraphStore`-Port workspace- und generationsgebunden ab. Der zuletzt
|
|
7
|
+
* geschriebene, namespacete Symbolsnapshot ist zugleich der Publish-Marker
|
|
8
|
+
* fuer das zusammengehoerige Graphpaar. Dieses Modul holt beide zurueck.
|
|
9
|
+
*
|
|
10
|
+
* DREI ENTSCHEIDUNGEN:
|
|
11
|
+
*
|
|
12
|
+
* 1. DIE GENERATION WIRD NICHT GERATEN. Gelesen wird der workspace-spezifische
|
|
13
|
+
* Publish-Marker. Seine validierte `generationId` ist danach die Generation
|
|
14
|
+
* ALLER weiteren Lesevorgaenge — sonst mischte eine Abfrage Knoten aus zwei
|
|
15
|
+
* Laeufen, und niemand saehe es.
|
|
16
|
+
*
|
|
17
|
+
* 2. EIN LOECHRIGES ABBILD WIRD GEMELDET, NICHT GEGLAETTET. `readGraphSnapshot`
|
|
18
|
+
* gibt seine Befunde als Daten zurueck (fehlender Datei-Shard, fehlender
|
|
19
|
+
* Pfadindex, Zahlen, die nicht zusammenpassen). Sie landen in
|
|
20
|
+
* {@link LoadedGraphsV1.issues} und gehen auf stderr — ein Graph, dem
|
|
21
|
+
* unbemerkt Knoten fehlen, ist schlimmer als gar keiner (E4).
|
|
22
|
+
*
|
|
23
|
+
* 3. „KEIN INDEX" IST NICHT „KEIN ERGEBNIS". Fehlt der Graph, endet der Befehl
|
|
24
|
+
* mit Exit-Code 4 und dem naechsten Schritt — nie mit einer leeren Liste
|
|
25
|
+
* und Exit-Code 0. Das ist derselbe Fehler, der in Welle 4 in `query`
|
|
26
|
+
* gefunden wurde.
|
|
27
|
+
*/
|
|
28
|
+
import { readGraphSnapshot, restoreFileGraph, } from "@untangle-code/file-graph";
|
|
29
|
+
import { readSymbolGraphSnapshot, symbolGraphSnapshotShardId, } from "@untangle-code/symbol-graph";
|
|
30
|
+
import { EnvironmentError, OperationalError } from "./exit.js";
|
|
31
|
+
import { errorMessage, loadWorkspace, wireStorage } from "./workspace.js";
|
|
32
|
+
/** Laedt Datei- und Symbolgraph der neuesten vollstaendigen Generation. */
|
|
33
|
+
export async function loadGraphs(options) {
|
|
34
|
+
const view = loadWorkspace({
|
|
35
|
+
cwd: options.root ?? options.cwd,
|
|
36
|
+
env: options.env,
|
|
37
|
+
strict: true,
|
|
38
|
+
});
|
|
39
|
+
const storage = wireStorage(view, options.env);
|
|
40
|
+
const store = storage.storage.graphStore;
|
|
41
|
+
const generationId = await readPublishedGeneration(store, view.workspaceId, options.signal, storage.storeUrl);
|
|
42
|
+
const scope = { workspaceId: view.workspaceId, generationId };
|
|
43
|
+
const { snapshot, issues } = await readGraphSnapshot(store, scope, { signal: options.signal });
|
|
44
|
+
if (snapshot === null) {
|
|
45
|
+
throw new EnvironmentError(`Could not reload file-graph generation "${generationId}": ` +
|
|
46
|
+
issues.map((issue) => `${issue.kind}: ${issue.message}`).join("; "), "Rebuild the index with `untangle index`. Nothing was evaluated; this is not the same as an empty graph.");
|
|
47
|
+
}
|
|
48
|
+
const symbol = await readSymbolGraph(store, scope, options.signal);
|
|
49
|
+
return {
|
|
50
|
+
view,
|
|
51
|
+
generationId,
|
|
52
|
+
fileGraph: restoreFileGraph(snapshot),
|
|
53
|
+
issues,
|
|
54
|
+
symbolGraph: symbol.graph,
|
|
55
|
+
...(symbol.missingReason === undefined
|
|
56
|
+
? {}
|
|
57
|
+
: { symbolGraphMissingReason: symbol.missingReason }),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
async function readPublishedGeneration(store, workspaceId, signal, storeUrl) {
|
|
61
|
+
let shard;
|
|
62
|
+
try {
|
|
63
|
+
// Der namespacete Symbolgraph wird NACH dem Dateigraphen geschrieben und
|
|
64
|
+
// ist damit der Publish-Marker des zusammengehoerigen Graphpaares. Ein
|
|
65
|
+
// abgebrochener neuer Dateigraph kann diese Auswahl nicht verschieben.
|
|
66
|
+
shard = await store.readShard("graph_meta", symbolGraphSnapshotShardId(workspaceId), {
|
|
67
|
+
signal,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
signal.throwIfAborted();
|
|
72
|
+
throw new EnvironmentError(`The graph store at ${storeUrl} could not be read: ${errorMessage(error)}`, "Check the vector store with `untangle doctor`, then run `untangle index`.", { cause: error });
|
|
73
|
+
}
|
|
74
|
+
if (shard === null) {
|
|
75
|
+
throw new EnvironmentError(`In ${storeUrl} has no published graph pair for workspace "${workspaceId}". ` +
|
|
76
|
+
`Nothing was evaluated; this does not ` +
|
|
77
|
+
"mean there are no dependencies.", "Run `untangle index` to build and store file and symbol graphs.");
|
|
78
|
+
}
|
|
79
|
+
if (shard.generationId === "") {
|
|
80
|
+
throw new OperationalError("The workspace-graph publish shard has no generation.", "Rebuild the index with `untangle index`.");
|
|
81
|
+
}
|
|
82
|
+
if (shard.payload["workspaceId"] !== workspaceId ||
|
|
83
|
+
shard.payload["graphGeneration"] !== shard.generationId) {
|
|
84
|
+
throw new OperationalError("The workspace-graph publish shard conflicts with its workspace or generation scope.", "Rebuild the index with `untangle index`.");
|
|
85
|
+
}
|
|
86
|
+
return shard.generationId;
|
|
87
|
+
}
|
|
88
|
+
async function readSymbolGraph(store, scope, signal) {
|
|
89
|
+
let result;
|
|
90
|
+
try {
|
|
91
|
+
result = await readSymbolGraphSnapshot(store, scope, { signal });
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
signal.throwIfAborted();
|
|
95
|
+
return {
|
|
96
|
+
graph: null,
|
|
97
|
+
missingReason: `Could not read the symbol graph: ${errorMessage(error)}`,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
if (result.snapshot === null) {
|
|
101
|
+
return {
|
|
102
|
+
graph: null,
|
|
103
|
+
missingReason: result.issues.map((issue) => `${issue.kind}: ${issue.message}`).join("; "),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
return { graph: { graph: result.snapshot, ledgerInShard: true } };
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=graphs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphs.js","sourceRoot":"","sources":["../../src/cli/graphs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GAGjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAE3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAsB,MAAM,gBAAgB,CAAC;AAqC9F,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B;IACzD,MAAM,IAAI,GAAG,aAAa,CAAC;QACzB,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG;QAChC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAe,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;IAErD,MAAM,YAAY,GAAG,MAAM,uBAAuB,CAChD,KAAK,EACL,IAAI,CAAC,WAAW,EAChB,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,QAAQ,CACjB,CAAC;IACF,MAAM,KAAK,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,CAAC;IAE9D,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/F,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,gBAAgB,CACxB,2CAA2C,YAAY,KAAK;YAC1D,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EACrE,yGAAyG,CAC1G,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnE,OAAO;QACL,IAAI;QACJ,YAAY;QACZ,SAAS,EAAE,gBAAgB,CAAC,QAAQ,CAAC;QACrC,MAAM;QACN,WAAW,EAAE,MAAM,CAAC,KAAK;QACzB,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,wBAAwB,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,KAAiB,EACjB,WAAmB,EACnB,MAAmB,EACnB,QAAgB;IAEhB,IAAI,KAAK,CAAC;IACV,IAAI,CAAC;QACH,yEAAyE;QACzE,uEAAuE;QACvE,uEAAuE;QACvE,KAAK,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,0BAA0B,CAAC,WAAW,CAAC,EAAE;YACnF,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,IAAI,gBAAgB,CACxB,sBAAsB,QAAQ,uBAAuB,YAAY,CAAC,KAAK,CAAC,EAAE,EAC1E,2EAA2E,EAC3E,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,gBAAgB,CACxB,MAAM,QAAQ,+CAA+C,WAAW,KAAK;YAC3E,uCAAuC;YACvC,iCAAiC,EACnC,iEAAiE,CAClE,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,YAAY,KAAK,EAAE,EAAE,CAAC;QAC9B,MAAM,IAAI,gBAAgB,CACxB,sDAAsD,EACtD,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IACD,IACE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,WAAW;QAC5C,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,KAAK,CAAC,YAAY,EACvD,CAAC;QACD,MAAM,IAAI,gBAAgB,CACxB,qFAAqF,EACrF,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,YAAY,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,KAAiB,EACjB,KAAoD,EACpD,MAAmB;IAEnB,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,OAAO;YACL,KAAK,EAAE,IAAI;YACX,aAAa,EAAE,oCAAoC,YAAY,CAAC,KAAK,CAAC,EAAE;SACzE,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO;YACL,KAAK,EAAE,IAAI;YACX,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SAC1F,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;AACpE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type IndexFreshnessV1, type PortCallOptions } from "@untangle-code/domain";
|
|
2
|
+
import { type ResolvedTarget } from "../commands/index/target.js";
|
|
3
|
+
import type { FoundIndexState } from "./index-state.js";
|
|
4
|
+
import type { WorkspaceView } from "./workspace.js";
|
|
5
|
+
type FreshnessOptions = PortCallOptions & {
|
|
6
|
+
expectedRepoIds?: readonly string[];
|
|
7
|
+
expectedRefs?: readonly string[];
|
|
8
|
+
};
|
|
9
|
+
/** Bind source selection and chunk semantics; operational concurrency does not change the corpus. */
|
|
10
|
+
export declare function indexConfigFingerprint(view: WorkspaceView, target: ResolvedTarget): string;
|
|
11
|
+
export declare function inspectIndexFreshness(view: WorkspaceView, states: readonly FoundIndexState[], options?: FreshnessOptions): Promise<IndexFreshnessV1>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=index-freshness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-freshness.d.ts","sourceRoot":"","sources":["../../src/cli/index-freshness.ts"],"names":[],"mappings":"AAAA,OAAO,EAWL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAEhG,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,kBAAkB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD,KAAK,gBAAgB,GAAG,eAAe,GAAG;IACxC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC,CAAC;AAEF,qGAAqG;AACrG,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,CAc1F;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,CAY3B"}
|