@planu/cli 5.3.67 → 5.3.69
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/CHANGELOG.md +92 -0
- package/dist/.planu-build.json +1 -1
- package/dist/cli/commands/install.d.ts +2 -15
- package/dist/config/release-policy.json +2 -2
- package/dist/core/shared/fs.d.ts +11 -0
- package/dist/core/shared/fs.js +90 -0
- package/dist/core/shared/strings.d.ts +3 -0
- package/dist/core/shared/strings.js +13 -0
- package/dist/engine/actuals/git-analyzer.js +1 -1
- package/dist/engine/actuals/progress-parser.js +1 -3
- package/dist/engine/agent-handoff-store.js +1 -0
- package/dist/engine/agent-squad/dispatcher.js +1 -0
- package/dist/engine/agent-telemetry.js +1 -0
- package/dist/engine/auth/config.js +1 -0
- package/dist/engine/auto-updater/atomic-upgrade.js +1 -0
- package/dist/engine/auto-updater/index.js +1 -0
- package/dist/engine/autopilot/action-registry.js +20 -0
- package/dist/engine/autopilot/audit-logger.js +1 -0
- package/dist/engine/autopilot/bootstrap.js +9 -2
- package/dist/engine/autopilot/complete-loop.js +4 -0
- package/dist/engine/autopilot/crash-shield-rate-limiter.js +1 -0
- package/dist/engine/autopilot/event-bus.js +1 -0
- package/dist/engine/autopilot/state-updater.js +6 -0
- package/dist/engine/browser-validator.js +1 -3
- package/dist/engine/build-tool-detector.js +1 -8
- package/dist/engine/bundle-installer.js +2 -10
- package/dist/engine/cascade-hooks/core/append-releases.js +1 -0
- package/dist/engine/cascade-hooks/core/write-session-json.js +2 -2
- package/dist/engine/cascade-hooks/hooks/dispatch-hook-event.hook.d.ts +3 -1
- package/dist/engine/cascade-hooks/hooks/dispatch-hook-event.hook.js +12 -3
- package/dist/engine/cascade-hooks/hooks/estimate-calibration.hook.js +1 -0
- package/dist/engine/cascade-hooks/hooks/housekeeping-on-done.hook.js +2 -0
- package/dist/engine/cascade-hooks/hooks/implementing-kickoff.hook.js +5 -1
- package/dist/engine/cascade-hooks/hooks/lesson-drift.hook.js +1 -0
- package/dist/engine/cascade-hooks/hooks/orchestration-plan.hook.js +1 -0
- package/dist/engine/cascade-hooks/hooks/session-context.hook.js +4 -2
- package/dist/engine/cascade-hooks/hooks/slack-notify.hook.js +1 -0
- package/dist/engine/cascade-hooks/hooks/status-json.hook.js +2 -0
- package/dist/engine/cascade-hooks/hooks/velocity-profile.hook.js +2 -0
- package/dist/engine/cascade-hooks/runner.js +2 -0
- package/dist/engine/cascade-hooks/state-drift-detector.js +2 -0
- package/dist/engine/checkpoint/checkpoint-manager.js +2 -0
- package/dist/engine/checkpoint/policy-engine.js +1 -0
- package/dist/engine/ci-generator/stack-detector.js +2 -10
- package/dist/engine/clarification-gate/token-store.js +1 -0
- package/dist/engine/claude-config-auditor/claudemd-auditor.js +2 -10
- package/dist/engine/claude-config-auditor/settings-auditor.js +2 -10
- package/dist/engine/client-detection.js +2 -10
- package/dist/engine/compliance/auto-remediator.js +1 -0
- package/dist/engine/compliance/evidence-builder.d.ts +2 -2
- package/dist/engine/compliance/framework-catalog.d.ts +6 -6
- package/dist/engine/compliance/gap-analyzer.d.ts +2 -2
- package/dist/engine/config-health/build-tool-checker.js +1 -9
- package/dist/engine/config-health/ci-commands-collector.d.ts +2 -1
- package/dist/engine/config-health/ci-commands-collector.js +2 -9
- package/dist/engine/config-health/go-checker.js +1 -9
- package/dist/engine/config-health/mcp-config-checker.js +2 -10
- package/dist/engine/config-health/python-checker.js +1 -9
- package/dist/engine/config-health/rust-checker.js +1 -9
- package/dist/engine/config-health/ts-checker-scripts.js +1 -9
- package/dist/engine/config-health/ts-checker.js +1 -9
- package/dist/engine/context-artifacts/store.js +1 -0
- package/dist/engine/context-md-generator.js +1 -0
- package/dist/engine/context-orchestrator/index.js +2 -0
- package/dist/engine/convention-scanner/convention-parser.js +2 -9
- package/dist/engine/cost-guardrails.js +1 -0
- package/dist/engine/cost-tracking/ledger.js +1 -0
- package/dist/engine/criterion-identity.js +1 -1
- package/dist/engine/dashboard/data-loader.js +1 -0
- package/dist/engine/dashboard/drift-score.js +2 -0
- package/dist/engine/dashboard/spec-updater.d.ts +3 -1
- package/dist/engine/dashboard/spec-updater.js +9 -2
- package/dist/engine/dashboard/templates-layout.d.ts +2 -2
- package/dist/engine/dashboard/templates-layout.js +2 -9
- package/dist/engine/data-projects-gc/gc-runner.js +2 -4
- package/dist/engine/deleter/audit-logger.js +1 -0
- package/dist/engine/deleter/core.js +6 -0
- package/dist/engine/deleter/trash-manager.js +1 -0
- package/dist/engine/desktop-detector.js +1 -9
- package/dist/engine/detection-utils.d.ts +2 -1
- package/dist/engine/detection-utils.js +3 -10
- package/dist/engine/detectors/advanced-framework-detector/helpers.d.ts +3 -2
- package/dist/engine/detectors/advanced-framework-detector/helpers.js +3 -17
- package/dist/engine/detectors/cicd-detector.js +2 -10
- package/dist/engine/detectors/css-framework-detector.js +2 -10
- package/dist/engine/detectors/deployment-detector.js +3 -12
- package/dist/engine/detectors/frontend-perf-detector.js +2 -10
- package/dist/engine/detectors/gitops-detector.js +3 -11
- package/dist/engine/detectors/idp-detector.js +1 -3
- package/dist/engine/detectors/k3s-detector.js +3 -11
- package/dist/engine/detectors/llm-detector/file-readers.d.ts +2 -1
- package/dist/engine/detectors/llm-detector/file-readers.js +2 -9
- package/dist/engine/detectors/mfe-detector.js +5 -13
- package/dist/engine/detectors/monitoring-detector.js +2 -11
- package/dist/engine/detectors/monorepo-detector.d.ts +1 -0
- package/dist/engine/detectors/monorepo-detector.js +1 -10
- package/dist/engine/detectors/nomad-detector.js +3 -11
- package/dist/engine/detectors/otel-ecosystem-detectors.d.ts +2 -1
- package/dist/engine/detectors/otel-ecosystem-detectors.js +2 -10
- package/dist/engine/doc-generator/executive-summary/html-template.js +1 -7
- package/dist/engine/doc-generator/executive-summary/section-builders.js +1 -7
- package/dist/engine/doc-generator/per-spec-report/mermaid-renderer.js +1 -7
- package/dist/engine/doc-generator/per-spec-report/spec-section-builders.js +1 -7
- package/dist/engine/doc-generator/per-spec-report/technical-report.js +1 -7
- package/dist/engine/doc-generator/portal/analytics-page.js +1 -7
- package/dist/engine/doc-generator/portal/architecture-page.js +1 -7
- package/dist/engine/doc-generator/portal/changelog-page.js +1 -7
- package/dist/engine/doc-generator/portal/decision-page.js +1 -7
- package/dist/engine/doc-generator/portal/decision-timeline-builder.js +1 -7
- package/dist/engine/doc-generator/portal/kanban-view-builder.js +1 -7
- package/dist/engine/doc-generator/portal/portal-breadcrumbs.js +1 -7
- package/dist/engine/doc-generator/portal/portal-landing-cards.js +1 -7
- package/dist/engine/doc-generator/portal/portal-navbar.js +1 -7
- package/dist/engine/doc-generator/portal/portal-page-detector.d.ts +3 -0
- package/dist/engine/doc-generator/portal/portal-page-detector.js +1 -10
- package/dist/engine/doc-generator/portal/portal-regenerator.js +2 -0
- package/dist/engine/doc-generator/portal/risk-matrix-svg.js +1 -7
- package/dist/engine/doc-generator/portal/risk-page.js +1 -7
- package/dist/engine/doc-generator/portal/roadmap-page.js +1 -7
- package/dist/engine/doc-generator/proposal/proposal-gantt-builder.js +1 -7
- package/dist/engine/doc-generator/proposal/proposal-kpi-builder.js +1 -7
- package/dist/engine/doc-generator/proposal/proposal-section-builders-advanced.js +2 -8
- package/dist/engine/doc-generator/proposal/proposal-section-builders.js +1 -7
- package/dist/engine/docs-site-generator/html-templates.js +1 -7
- package/dist/engine/docs-site-generator/markdown-renderer.js +1 -7
- package/dist/engine/drift/violation-resolver.js +2 -0
- package/dist/engine/dynamic-knowledge/knowledge-cache.js +1 -0
- package/dist/engine/ecosystem-absorber/knowledge-cache.js +1 -0
- package/dist/engine/edge-db-detector.js +1 -10
- package/dist/engine/escalator/retry-counter.js +1 -0
- package/dist/engine/evidence-gates/artifact-reader.js +1 -0
- package/dist/engine/evidence-gates/evidence-autofill.js +1 -0
- package/dist/engine/evidence-gates/evidence-skeletons.js +1 -0
- package/dist/engine/evidence-gates/reconciliation-freshness.js +1 -0
- package/dist/engine/execution/durable-job-heartbeat-runtime.js +1 -0
- package/dist/engine/execution/job-runtime.js +2 -0
- package/dist/engine/execution/validate-job-executor.d.ts +1 -1
- package/dist/engine/execution/validate-job-executor.js +3 -0
- package/dist/engine/execution/validate-job-payload.js +1 -0
- package/dist/engine/execution/validate-worker-thread.js +1 -0
- package/dist/engine/facilitate/context-loader.js +1 -0
- package/dist/engine/figma/change-detector.d.ts +1 -8
- package/dist/engine/figma/code-connect-fetcher.d.ts +1 -7
- package/dist/engine/figma/design-enricher.d.ts +1 -17
- package/dist/engine/figma/design-enricher.js +0 -1
- package/dist/engine/figma/e2e-generator.d.ts +1 -23
- package/dist/engine/figma/flow-analyzer.d.ts +1 -11
- package/dist/engine/figma/frame-extractor.d.ts +1 -11
- package/dist/engine/figma/frame-extractor.js +3 -0
- package/dist/engine/figma/multi-file-manager.d.ts +1 -6
- package/dist/engine/figma/spec-generator.js +2 -0
- package/dist/engine/figma/thumbnail-fetcher.d.ts +1 -1
- package/dist/engine/figma/token-extractor.d.ts +1 -6
- package/dist/engine/figma/token-extractor.js +0 -1
- package/dist/engine/figma/version-tracker.d.ts +1 -7
- package/dist/engine/figma/version-tracker.js +0 -1
- package/dist/engine/figma/visual-qa.d.ts +5 -19
- package/dist/engine/figma/visual-qa.js +1 -2
- package/dist/engine/figma/webhook-manager.d.ts +1 -7
- package/dist/engine/frontmatter-sha/reseal.js +1 -0
- package/dist/engine/frontmatter-sha/verify-terminal.js +1 -0
- package/dist/engine/git-hook-injector.js +2 -10
- package/dist/engine/github/quality-dimensions.js +1 -3
- package/dist/engine/global-rules-manager.js +2 -3
- package/dist/engine/handoff-artifacts/implementation-review-reader.js +1 -0
- package/dist/engine/handoff-artifacts/io.js +2 -0
- package/dist/engine/handoff-packager.js +2 -1
- package/dist/engine/health/auto-fixer.js +1 -0
- package/dist/engine/hooks/context-injector.js +1 -0
- package/dist/engine/hooks-reconciler.js +1 -8
- package/dist/engine/impact-detector/index.js +2 -9
- package/dist/engine/implementation-contract/common.js +1 -3
- package/dist/engine/implementation-contract/evaluator.js +1 -3
- package/dist/engine/keyword-matcher/boundary.d.ts +2 -7
- package/dist/engine/keyword-matcher/boundary.js +2 -14
- package/dist/engine/lifecycle-reconciliation-io.js +1 -0
- package/dist/engine/lifecycle-reconciliation.js +3 -0
- package/dist/engine/local-first/detector.js +1 -9
- package/dist/engine/marketplace-fetcher/cache.js +2 -0
- package/dist/engine/marketplace-fetcher/index.js +1 -0
- package/dist/engine/mcp-config/mcp-config-writer.js +2 -10
- package/dist/engine/migrations/remove-commercial-state.js +2 -0
- package/dist/engine/mobile-detector-shared.d.ts +1 -1
- package/dist/engine/mobile-detector-shared.js +2 -9
- package/dist/engine/multi-channel-notifier.js +1 -0
- package/dist/engine/multi-teammate-review/disagreement-counter.js +1 -0
- package/dist/engine/multi-teammate-review/panel-orchestrator.js +1 -0
- package/dist/engine/onboarding-engine.js +1 -9
- package/dist/engine/permissions-merger/stack-detectors.js +2 -10
- package/dist/engine/pii-detector/core.js +1 -3
- package/dist/engine/platform-engineering/dx-analyzer.js +1 -10
- package/dist/engine/platform-engineering/idp-detector.js +2 -10
- package/dist/engine/project-dna/ai-tool-detector.js +2 -10
- package/dist/engine/project-dna/stack-detector.js +2 -10
- package/dist/engine/project-graph/builder.js +11 -2
- package/dist/engine/project-graph/cache.d.ts +5 -2
- package/dist/engine/project-graph/cache.js +174 -34
- package/dist/engine/project-graph/extractors/decision-store-extractor.js +1 -0
- package/dist/engine/project-graph/freshness-projection.js +3 -0
- package/dist/engine/project-graph/query.js +14 -11
- package/dist/engine/project-health-checker.js +2 -6
- package/dist/engine/provider-adapters/shared/spec-loader.js +1 -0
- package/dist/engine/quality-gates/gate-evaluator.js +1 -3
- package/dist/engine/react-detector.js +6 -14
- package/dist/engine/reconcile/apply-changes.js +1 -3
- package/dist/engine/registry/core.js +1 -0
- package/dist/engine/registry/loader.js +2 -0
- package/dist/engine/release/postmortem-generator.js +1 -0
- package/dist/engine/release/rollback-runner.d.ts +2 -2
- package/dist/engine/release/stuck-spec-detector.js +7 -0
- package/dist/engine/release-pipeline/release-spec-closer.js +3 -0
- package/dist/engine/rules-reconciler.d.ts +1 -1
- package/dist/engine/rules-reconciler.js +2 -9
- package/dist/engine/safety/atomic-writer.js +1 -0
- package/dist/engine/safety/cross-process-lock.js +2 -0
- package/dist/engine/safety/file-mutex.js +1 -0
- package/dist/engine/safety/lock-lease-store.js +1 -0
- package/dist/engine/safety/lock-scavenger.js +2 -0
- package/dist/engine/saga/transition-cascade.js +3 -0
- package/dist/engine/scan-project/index.js +1 -0
- package/dist/engine/scan-project/module-discoverer.js +1 -9
- package/dist/engine/schema-parity-auditor/handler-checker.js +1 -3
- package/dist/engine/schema-parity-auditor/index.js +1 -3
- package/dist/engine/schema-parity-auditor/type-checker.js +1 -3
- package/dist/engine/self-healing/strategies/coverage-fix.js +2 -10
- package/dist/engine/session-context-generator.d.ts +8 -0
- package/dist/engine/session-context-generator.js +33 -23
- package/dist/engine/session-state/session-artifact-refresher.d.ts +7 -0
- package/dist/engine/session-state/session-artifact-refresher.js +140 -0
- package/dist/engine/session-state/writer.d.ts +3 -0
- package/dist/engine/session-state/writer.js +35 -17
- package/dist/engine/shared-agent-memory.js +1 -0
- package/dist/engine/skill-adapter/index.js +3 -0
- package/dist/engine/skill-bootstrap/registry-fetcher.js +1 -0
- package/dist/engine/skill-bootstrap/skill-writer.js +2 -9
- package/dist/engine/skill-bootstrap/stack-matcher.js +1 -9
- package/dist/engine/skill-discovery/multi-agent-writer.d.ts +1 -0
- package/dist/engine/skill-discovery/multi-agent-writer.js +1 -9
- package/dist/engine/skill-generator/workflow-skill-generator.js +1 -0
- package/dist/engine/skill-registry/ttl-refresh.js +2 -0
- package/dist/engine/spec-audit/index.js +2 -0
- package/dist/engine/spec-audit/report-writer.js +1 -0
- package/dist/engine/spec-coverage/core.js +1 -0
- package/dist/engine/spec-decomposer/analyzer.js +1 -11
- package/dist/engine/spec-dependency-graph/dot-exporter.d.ts +1 -1
- package/dist/engine/spec-dependency-graph/graph-builder.d.ts +1 -20
- package/dist/engine/spec-dependency-graph/superseded-set.d.ts +1 -1
- package/dist/engine/spec-diff-engine.js +1 -7
- package/dist/engine/spec-format/read-technical-section.js +1 -3
- package/dist/engine/spec-format/replace-section.js +1 -3
- package/dist/engine/spec-format/spec-id.d.ts +9 -1
- package/dist/engine/spec-format/spec-id.js +24 -3
- package/dist/engine/spec-format/unified-spec-builder.js +1 -3
- package/dist/engine/spec-migrator/canonical-deduplicator.js +2 -0
- package/dist/engine/spec-observability/tracker.js +1 -0
- package/dist/engine/spec-registry/adapter.js +2 -10
- package/dist/engine/spec-registry/validator.d.ts +1 -0
- package/dist/engine/spec-registry/validator.js +1 -9
- package/dist/engine/spec-state-machine/transition-spec.js +1 -0
- package/dist/engine/spec-templates/custom-loader.js +1 -0
- package/dist/engine/stack-auditor/build-tool-auditor.js +1 -9
- package/dist/engine/staleness/stale-implementing.js +5 -14
- package/dist/engine/status-reconciler/index.js +4 -1
- package/dist/engine/structural-memory/helpers.js +1 -0
- package/dist/engine/supply-chain/slsa-checker.js +1 -9
- package/dist/engine/tdd-enforcer/stub-artifact-path.js +1 -0
- package/dist/engine/telemetry/health-checker.js +1 -0
- package/dist/engine/telemetry/telemetry-store.js +1 -0
- package/dist/engine/token-optimizer/response-cache.js +1 -3
- package/dist/engine/tool-groups/group-manager.js +2 -0
- package/dist/engine/update-notifier.js +1 -0
- package/dist/engine/validation/approved-spec-portability.js +1 -0
- package/dist/engine/validation/durable-validation.js +1 -0
- package/dist/engine/validation/validation-freshness.js +2 -0
- package/dist/engine/validation/validation-receipt.js +1 -0
- package/dist/engine/validation/validation-submission.d.ts +1 -1
- package/dist/engine/validation-evidence-ledger.js +1 -0
- package/dist/engine/validator/deep-code-checker.js +1 -3
- package/dist/engine/validator/executable-evidence.d.ts +1 -14
- package/dist/engine/validator/scope-resolver.d.ts +2 -2
- package/dist/engine/validator/spec-compliance-runner.d.ts +1 -31
- package/dist/engine/validator/validation-report-writer.js +1 -1
- package/dist/engine/validator.d.ts +1 -1
- package/dist/engine/validator.js +1 -0
- package/dist/engine/velocity/measure-velocity.js +2 -0
- package/dist/engine/version-resolver.js +1 -0
- package/dist/engine/workers/handlers/auto-drift.js +3 -0
- package/dist/engine/workspace-manager.js +4 -0
- package/dist/hosts/gemini/config-scaffold.js +2 -10
- package/dist/storage/approval-operation-lock.js +1 -0
- package/dist/storage/auto-promoter-config-store.js +1 -0
- package/dist/storage/autopilot-log-store.js +1 -0
- package/dist/storage/base-store.js +1 -0
- package/dist/storage/checkpoint-store.js +1 -0
- package/dist/storage/feedback-remote.js +1 -0
- package/dist/storage/gaps-log.js +1 -0
- package/dist/storage/global-projects-store.d.ts +17 -0
- package/dist/storage/global-projects-store.js +47 -0
- package/dist/storage/global-store.js +1 -0
- package/dist/storage/knowledge-store/sessions.js +2 -0
- package/dist/storage/migrations/canonical-storage.js +42 -18
- package/dist/storage/project-drift-store.js +1 -0
- package/dist/storage/project-identity.d.ts +27 -0
- package/dist/storage/project-identity.js +132 -2
- package/dist/storage/project-resolver.js +1 -17
- package/dist/storage/runtime-db.d.ts +2 -20
- package/dist/storage/runtime-db.js +2 -9
- package/dist/storage/semantic-index-store.js +1 -0
- package/dist/storage/sentry-store.js +1 -0
- package/dist/storage/session-state-store.js +1 -0
- package/dist/storage/spec-store.d.ts +31 -3
- package/dist/storage/spec-store.js +146 -5
- package/dist/storage/status-store/atomic-status-write.js +1 -0
- package/dist/storage/status-store/file-lock.js +1 -0
- package/dist/storage/status-store/self-healing.js +1 -0
- package/dist/storage/storage-bundle.d.ts +12 -2
- package/dist/storage/supabase-store.js +1 -0
- package/dist/storage/technology-selection-store.js +1 -0
- package/dist/storage/trash-store.d.ts +2 -4
- package/dist/storage/trash-store.js +2 -15
- package/dist/storage/vector-store/json-fallback.js +1 -0
- package/dist/storage/vector-store/migrator.js +1 -0
- package/dist/storage/vector-store/sqlite-adapter.js +1 -0
- package/dist/tools/audit-claude-config.js +1 -10
- package/dist/tools/challenge-spec-helpers.d.ts +1 -1
- package/dist/tools/challenge-spec-helpers.js +7 -2
- package/dist/tools/challenge-spec.js +11 -6
- package/dist/tools/check-readiness.js +121 -24
- package/dist/tools/clarify-requirements/multiple-choice.d.ts +3 -3
- package/dist/tools/configure-oauth-handler.js +1 -0
- package/dist/tools/create-spec-helpers.d.ts +1 -3
- package/dist/tools/create-spec-helpers.js +1 -8
- package/dist/tools/create-spec.js +1 -13
- package/dist/tools/dashboard.js +5 -0
- package/dist/tools/generate-execution-plan.js +10 -6
- package/dist/tools/github-pr-handler.js +1 -0
- package/dist/tools/github-release-handler.d.ts +1 -0
- package/dist/tools/github-release-handler.js +4 -3
- package/dist/tools/graph-specs.d.ts +1 -1
- package/dist/tools/heal-spec-docs.js +1 -3
- package/dist/tools/init-project/git-setup.d.ts +2 -2
- package/dist/tools/init-project/host-assets-writer.js +2 -10
- package/dist/tools/init-project/lifecycle-helpers.d.ts +2 -2
- package/dist/tools/init-project/lint-scaffolder.js +2 -10
- package/dist/tools/init-project/stack-detector.d.ts +2 -2
- package/dist/tools/reconcile-interactive-question-hooks.d.ts +2 -2
- package/dist/tools/register-sdd-tools.js +1 -0
- package/dist/tools/safe-handler.js +1 -0
- package/dist/tools/schemas/spec-id.d.ts +1 -6
- package/dist/tools/schemas/spec-id.js +1 -16
- package/dist/tools/tool-entry.d.ts +2 -2
- package/dist/tools/tool-entry.js +1 -1
- package/dist/tools/tool-registry/core-tools.d.ts +2 -2
- package/dist/tools/tool-registry/deprecated-stubs.d.ts +3 -3
- package/dist/tools/tool-registry/deprecated-stubs.js +1 -1
- package/dist/tools/triage-request.d.ts +2 -2
- package/dist/tools/update-status/approval-gates.d.ts +2 -2
- package/dist/tools/update-status/approval-gates.js +1 -0
- package/dist/tools/update-status/dod-gates.d.ts +1 -1
- package/dist/tools/update-status/done-receipt-verifier.d.ts +1 -1
- package/dist/tools/update-status/evidence-gate.js +5 -5
- package/dist/tools/update-status/file-sync.js +11 -39
- package/dist/tools/update-status/index.js +1 -1
- package/dist/tools/update-status/side-effects.js +5 -0
- package/dist/tools/update-status/transition-guard.d.ts +1 -1
- package/dist/tools/update-status/transition-guard.js +40 -8
- package/dist/tools/update-status-actions.js +28 -40
- package/dist/tools/validate-graph-coverage.js +14 -2
- package/dist/tools/validate.js +2 -0
- package/dist/transports/middleware/types.d.ts +3 -3
- package/dist/types/atomic-upgrade.d.ts +1 -1
- package/dist/types/cascade-hooks.d.ts +3 -0
- package/dist/types/cross-repo-search.d.ts +2 -0
- package/dist/types/dashboard.d.ts +4 -1
- package/dist/types/durable-job.d.ts +20 -0
- package/dist/types/durable-job.js +9 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +2 -0
- package/dist/types/installation.d.ts +16 -0
- package/dist/types/installation.js +2 -0
- package/dist/types/project-knowledge-graph.d.ts +11 -0
- package/dist/types/session-checkpoint.d.ts +16 -0
- package/dist/types/spec-dependency-graph.d.ts +21 -0
- package/dist/types/spec-dependency-graph.js +2 -0
- package/dist/types/validation-evidence.d.ts +45 -0
- package/package.json +2 -2
- package/planu-plugin.json +1 -1
- package/dist/types/storage-bundle.d.ts +0 -13
- package/dist/types/storage-bundle.js +0 -2
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
2
|
import { lstat, readFile } from 'node:fs/promises';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
+
// eslint-disable-next-line no-restricted-imports -- grandfathered layer violation, remediation SPEC-1661 SPEC-1662 SPEC-1663
|
|
4
5
|
import { projectDataDir } from '../storage/base-store.js';
|
|
6
|
+
// eslint-disable-next-line no-restricted-imports -- grandfathered layer violation, remediation SPEC-1661 SPEC-1662 SPEC-1663
|
|
5
7
|
import { specStore } from '../storage/index.js';
|
|
6
8
|
import { ValidationReportV1Schema } from './handoff-artifacts/schemas.js';
|
|
7
9
|
import { AUTOMATED_VALIDATOR_AGENT } from './validator/validation-report-writer.js';
|
|
8
10
|
import { rollbackTransitionSpec, transitionSpec, } from './spec-state-machine/transition-spec.js';
|
|
9
11
|
import { acquireLock, releaseLock } from './safety/cross-process-lock.js';
|
|
12
|
+
// eslint-disable-next-line no-restricted-imports -- grandfathered layer violation, remediation SPEC-1661 SPEC-1662 SPEC-1663
|
|
10
13
|
import { appendTransitionEvent, readTransitionLog } from '../storage/transition-log.js';
|
|
11
14
|
import { collectSupersededReconciliationArtifacts, readCommittedReconciliationReceipts, readReconciliationReceipt, reconciliationDigest as digest, safeReceiptPath, writeReconciliationReceipt, } from './lifecycle-reconciliation-io.js';
|
|
12
15
|
const REQUEST_ID = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/u;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// engine/local-first/detector.ts — SPEC-047
|
|
2
2
|
// Detects CRDT libraries, sync backends, local storage, and offline signals.
|
|
3
|
-
import { readFile } from 'node:fs/promises';
|
|
4
3
|
import { join } from 'node:path';
|
|
5
4
|
import { glob } from 'glob';
|
|
5
|
+
import { readFileOrNull } from '../../core/shared/fs.js';
|
|
6
6
|
// === CRDT library package names ===
|
|
7
7
|
const CRDT_PACKAGES = new Map([
|
|
8
8
|
['yjs', 'yjs'],
|
|
@@ -45,14 +45,6 @@ const OFFLINE_FILES = ['sw.js', 'service-worker.js', 'sw.ts', 'service-worker.ts
|
|
|
45
45
|
const INDEXEDDB_PACKAGES = ['idb', 'idb-keyval', 'dexie', 'localforage', 'rxdb', 'pouchdb'];
|
|
46
46
|
// === LevelDB additional packages ===
|
|
47
47
|
const LEVELDB_PACKAGES = ['abstract-level', 'memory-level', 'classic-level'];
|
|
48
|
-
async function readFileOrNull(filePath) {
|
|
49
|
-
try {
|
|
50
|
-
return await readFile(filePath, 'utf-8');
|
|
51
|
-
}
|
|
52
|
-
catch {
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
48
|
async function readPackageJson(projectPath) {
|
|
57
49
|
const content = await readFileOrNull(join(projectPath, 'package.json'));
|
|
58
50
|
if (!content) {
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
// Reads/writes to .planu/skill-cache/{source}/{skillName}.md (NOT planu/ — internal cache).
|
|
3
3
|
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
4
4
|
import { dirname, join } from 'node:path';
|
|
5
|
+
// eslint-disable-next-line no-restricted-imports -- grandfathered layer violation, remediation SPEC-1661 SPEC-1662 SPEC-1663
|
|
5
6
|
import { hashProjectPath } from '../../storage/base-store.js';
|
|
7
|
+
// eslint-disable-next-line no-restricted-imports -- grandfathered layer violation, remediation SPEC-1661 SPEC-1662 SPEC-1663
|
|
6
8
|
import { resolveStorageLayout } from '../../storage/storage-layout.js';
|
|
7
9
|
// ---------------------------------------------------------------------------
|
|
8
10
|
// Constants — single exported location (no per-call literals)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// engine/marketplace-fetcher/index.ts — SPEC-681: Orchestrate skill fetching from all sources
|
|
2
2
|
// Fetches skills from Superpowers, Anthropic, local ~/.claude/skills/, and community registry.
|
|
3
3
|
// Per-source failures are isolated via Promise.allSettled — never throws.
|
|
4
|
+
// eslint-disable-next-line no-restricted-imports -- grandfathered layer violation, remediation SPEC-1661 SPEC-1662 SPEC-1663
|
|
4
5
|
import { writeSkillRegistryEntry } from '../../storage/skill-registry-storage.js';
|
|
5
6
|
import { DEFAULT_CACHE_TTL_MS } from './cache.js';
|
|
6
7
|
import { appendToEvolutionLog } from './evolution-log.js';
|
|
@@ -5,6 +5,7 @@ import { readFile, writeFile } from 'node:fs/promises';
|
|
|
5
5
|
import { join } from 'node:path';
|
|
6
6
|
import { homedir } from 'node:os';
|
|
7
7
|
import { buildPinnedEntry } from '../auto-updater/config-patcher.js';
|
|
8
|
+
import { fileExistsByRead } from '../../core/shared/fs.js';
|
|
8
9
|
// ---------------------------------------------------------------------------
|
|
9
10
|
// Constants
|
|
10
11
|
// ---------------------------------------------------------------------------
|
|
@@ -26,15 +27,6 @@ async function readJsonFile(filePath) {
|
|
|
26
27
|
return {};
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
|
-
async function fileExists(filePath) {
|
|
30
|
-
try {
|
|
31
|
-
await readFile(filePath, 'utf-8');
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
30
|
// ---------------------------------------------------------------------------
|
|
39
31
|
// Public API
|
|
40
32
|
// ---------------------------------------------------------------------------
|
|
@@ -53,7 +45,7 @@ export async function findMcpConfigPath(projectPath) {
|
|
|
53
45
|
join(projectPath, '.claude.json'),
|
|
54
46
|
];
|
|
55
47
|
for (const candidate of candidates) {
|
|
56
|
-
if (await
|
|
48
|
+
if (await fileExistsByRead(candidate)) {
|
|
57
49
|
return candidate;
|
|
58
50
|
}
|
|
59
51
|
}
|
|
@@ -6,7 +6,9 @@ import { atomicWriteFile } from '../safety/atomic-write-file.js';
|
|
|
6
6
|
import { withUpgradeLock } from '../auto-updater/upgrade-lock.js';
|
|
7
7
|
import { deleteSecretField } from '../../security/secret-field.js';
|
|
8
8
|
import { isSecretReference, parseSecretReference } from '../../security/secret-provider.js';
|
|
9
|
+
// eslint-disable-next-line no-restricted-imports -- grandfathered layer violation, remediation SPEC-1661 SPEC-1662 SPEC-1663
|
|
9
10
|
import { globalDataDir } from '../../storage/base-store.js';
|
|
11
|
+
// eslint-disable-next-line no-restricted-imports -- grandfathered layer violation, remediation SPEC-1661 SPEC-1662 SPEC-1663
|
|
10
12
|
import { resolveStorageLayout } from '../../storage/storage-layout.js';
|
|
11
13
|
const TOP_LEVEL_USAGE_KEYS = [
|
|
12
14
|
'trialState',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { readFileOrNull as safeReadFile } from '../core/shared/fs.js';
|
|
2
2
|
export declare function safeReaddir(p: string): Promise<string[]>;
|
|
3
3
|
export declare function walkForExt(dir: string, ext: string, results: string[], limit: number, depth: number): Promise<void>;
|
|
4
4
|
//# sourceMappingURL=mobile-detector-shared.d.ts.map
|
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
// Planu — Shared helpers for mobile detection (SPEC-013)
|
|
2
|
-
import {
|
|
2
|
+
import { readdir } from 'node:fs/promises';
|
|
3
3
|
import { join, extname } from 'node:path';
|
|
4
|
+
export { readFileOrNull as safeReadFile } from '../core/shared/fs.js';
|
|
4
5
|
const SKIP_DIRS = new Set(['node_modules', '.git', 'Pods', 'build', 'DerivedData']);
|
|
5
|
-
export async function safeReadFile(p) {
|
|
6
|
-
try {
|
|
7
|
-
return await readFile(p, 'utf-8');
|
|
8
|
-
}
|
|
9
|
-
catch {
|
|
10
|
-
return null;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
6
|
export async function safeReaddir(p) {
|
|
14
7
|
try {
|
|
15
8
|
return await readdir(p);
|
|
@@ -26,6 +26,7 @@ async function notifySlackChannel(message, projectPath) {
|
|
|
26
26
|
}
|
|
27
27
|
try {
|
|
28
28
|
const { buildManualPayload, dispatchToSlack } = await import('./slack-dispatcher.js');
|
|
29
|
+
// eslint-disable-next-line no-restricted-syntax -- grandfathered layer violation, remediation SPEC-1661 SPEC-1662 SPEC-1663
|
|
29
30
|
const { getSlackConfig } = await import('../storage/slack-store.js');
|
|
30
31
|
const config = await getSlackConfig(projectPath);
|
|
31
32
|
if (!config?.webhookUrl || !config.enabled) {
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import { readFile } from 'node:fs/promises';
|
|
5
5
|
import { atomicWriteFile } from '../safety/atomic-write-file.js';
|
|
6
|
+
// eslint-disable-next-line no-restricted-imports -- grandfathered layer violation, remediation SPEC-1661 SPEC-1662 SPEC-1663
|
|
6
7
|
import { projectDataDir } from '../../storage/base-store.js';
|
|
7
8
|
// ---------------------------------------------------------------------------
|
|
8
9
|
// Constants
|
|
@@ -12,6 +12,7 @@ import { checkHeterogeneity } from './heterogeneity-gate.js';
|
|
|
12
12
|
import { markDisagreement } from './disagreement-counter.js';
|
|
13
13
|
import { runArbitrator, ArbitratorOutputInvalid } from './arbitrator-runner.js';
|
|
14
14
|
import { atomicWriteFile } from '../safety/atomic-write-file.js';
|
|
15
|
+
// eslint-disable-next-line no-restricted-imports -- grandfathered layer violation, remediation SPEC-1661 SPEC-1662 SPEC-1663
|
|
15
16
|
import { appendTransitionEvent } from '../../storage/transition-log.js';
|
|
16
17
|
import { withEscalation } from '../escalator/with-escalation.js';
|
|
17
18
|
// ---------------------------------------------------------------------------
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// engine/onboarding-engine.ts — SPEC-360: Interactive Onboarding & Guided Tours
|
|
2
2
|
import * as fs from 'node:fs/promises';
|
|
3
3
|
import * as path from 'node:path';
|
|
4
|
+
import { fileExists } from '../core/shared/fs.js';
|
|
4
5
|
// ---------------------------------------------------------------------------
|
|
5
6
|
// Recommendations
|
|
6
7
|
// ---------------------------------------------------------------------------
|
|
@@ -551,15 +552,6 @@ export async function buildProgressSummary(projectPath, config) {
|
|
|
551
552
|
// ---------------------------------------------------------------------------
|
|
552
553
|
// Helpers
|
|
553
554
|
// ---------------------------------------------------------------------------
|
|
554
|
-
async function fileExists(filePath) {
|
|
555
|
-
try {
|
|
556
|
-
await fs.access(filePath);
|
|
557
|
-
return true;
|
|
558
|
-
}
|
|
559
|
-
catch {
|
|
560
|
-
return false;
|
|
561
|
-
}
|
|
562
|
-
}
|
|
563
555
|
async function dirHasContents(dirPath) {
|
|
564
556
|
try {
|
|
565
557
|
const entries = await fs.readdir(dirPath);
|
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
// Registry-driven: reads deny rules plus the validated technology authority.
|
|
5
5
|
// as the sources of truth. Zero hardcoded framework/deploy-target names in this file.
|
|
6
6
|
// Adding a new stack = edit the JSON registries, never this file.
|
|
7
|
-
import {
|
|
7
|
+
import { readFile } from 'node:fs/promises';
|
|
8
8
|
import { fileURLToPath } from 'node:url';
|
|
9
9
|
import { dirname, join, resolve as pathResolve } from 'node:path';
|
|
10
10
|
import { detectStack } from '../project-dna/stack-detector.js';
|
|
11
11
|
import { loadTechnologyRegistry } from '../technology-registry.js';
|
|
12
|
+
import { fileExists } from '../../core/shared/fs.js';
|
|
12
13
|
let denyRegistryCache = null;
|
|
13
14
|
let signalsRegistryCache = null;
|
|
14
15
|
function registryDir() {
|
|
@@ -37,15 +38,6 @@ export function resetStackDetectorCaches() {
|
|
|
37
38
|
denyRegistryCache = null;
|
|
38
39
|
signalsRegistryCache = null;
|
|
39
40
|
}
|
|
40
|
-
async function fileExists(filePath) {
|
|
41
|
-
try {
|
|
42
|
-
await access(filePath);
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
catch {
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
41
|
/**
|
|
50
42
|
* Detect deploy-target / database / container tokens from filesystem markers,
|
|
51
43
|
* driven by the signals registry. Does NOT know framework names — only follows
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// pii-detector/core.ts — PII detection in spec text (SPEC-030)
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { stripNonContractText } from '../text-signal-boundaries.js';
|
|
4
|
+
import { escapeRegex as escapeRegexLiteral } from '../../core/shared/strings.js';
|
|
4
5
|
const require = createRequire(import.meta.url);
|
|
5
6
|
export const patterns = require('../../config/pii-patterns.json');
|
|
6
7
|
// ---------------------------------------------------------------------------
|
|
@@ -60,9 +61,6 @@ function hasFieldCue(contextWindow) {
|
|
|
60
61
|
return /\b(field|fields|column|columns|property|properties|attribute|schema|model|entity|table|class|interface)\b/i.test(contextWindow);
|
|
61
62
|
}
|
|
62
63
|
const COLLECTION_CUE_SUFFIXES = '(?:e|es|ed|ing|ion|ies|ied|ying|y|s)?';
|
|
63
|
-
function escapeRegexLiteral(value) {
|
|
64
|
-
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
65
|
-
}
|
|
66
64
|
function toCollectionCueBase(verb) {
|
|
67
65
|
return verb.endsWith('e') ? verb.slice(0, -1) : verb;
|
|
68
66
|
}
|
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
// engine/platform-engineering/dx-analyzer.ts — SPEC-048
|
|
2
2
|
// Analyzes Developer Experience gaps and generates audit findings for platform engineering.
|
|
3
3
|
// Detects missing CODEOWNERS, SECURITY.md, and reproducible dev environments.
|
|
4
|
-
import { access } from 'node:fs/promises';
|
|
5
4
|
import { join } from 'node:path';
|
|
6
|
-
|
|
7
|
-
try {
|
|
8
|
-
await access(path);
|
|
9
|
-
return true;
|
|
10
|
-
}
|
|
11
|
-
catch {
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
5
|
+
import { fileExists } from '../../core/shared/fs.js';
|
|
15
6
|
/**
|
|
16
7
|
* Checks for CODEOWNERS file in standard locations.
|
|
17
8
|
*/
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { technologyValue } from '../technology-registry.js';
|
|
2
|
+
import { fileExists } from '../../core/shared/fs.js';
|
|
2
3
|
// engine/platform-engineering/idp-detector.ts — SPEC-048
|
|
3
4
|
// Detects signals of Internal Developer Platform need and calculates DX score.
|
|
4
|
-
import {
|
|
5
|
+
import { readFile } from 'node:fs/promises';
|
|
5
6
|
import { join } from 'node:path';
|
|
6
7
|
// DX score weights (total = 10)
|
|
7
8
|
const DX_WEIGHTS = {
|
|
@@ -22,15 +23,6 @@ const IAC_FILES = [
|
|
|
22
23
|
'serverless.yml',
|
|
23
24
|
'serverless.yaml',
|
|
24
25
|
];
|
|
25
|
-
async function fileExists(path) {
|
|
26
|
-
try {
|
|
27
|
-
await access(path);
|
|
28
|
-
return true;
|
|
29
|
-
}
|
|
30
|
-
catch {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
26
|
/**
|
|
35
27
|
* Counts monorepo subdirectories at the given project path.
|
|
36
28
|
* Returns the count of matching top-level MONOREPO_DIRS that have subdirectories.
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// @crash-shield-ignore-file — config/cache reader for Planu-controlled JSON; writer is this codebase, shape guaranteed by build/seed.
|
|
2
2
|
// Planu — project-dna/ai-tool-detector.ts
|
|
3
3
|
// Detects which AI tool is active in a project by checking detection files.
|
|
4
|
-
import {
|
|
4
|
+
import { readFile } from 'node:fs/promises';
|
|
5
5
|
import { join, dirname } from 'node:path';
|
|
6
6
|
import { fileURLToPath } from 'node:url';
|
|
7
|
+
import { pathExists } from '../../core/shared/fs.js';
|
|
7
8
|
const REGISTRY_PATH = join(dirname(fileURLToPath(import.meta.url)), '../../config/ai-tool-registry.json');
|
|
8
9
|
let cachedRegistry = null;
|
|
9
10
|
async function loadRegistry() {
|
|
@@ -30,15 +31,6 @@ const DETECTION_ORDER = [
|
|
|
30
31
|
// ---------------------------------------------------------------------------
|
|
31
32
|
// Helpers
|
|
32
33
|
// ---------------------------------------------------------------------------
|
|
33
|
-
async function pathExists(filePath) {
|
|
34
|
-
try {
|
|
35
|
-
await access(filePath);
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
catch {
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
34
|
async function anyDetectionFileExists(projectPath, detectionFiles) {
|
|
43
35
|
for (const f of detectionFiles) {
|
|
44
36
|
if (await pathExists(join(projectPath, f))) {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// @crash-shield-ignore-file — config/cache reader for Planu-controlled JSON; writer is this codebase, shape guaranteed by build/seed.
|
|
2
2
|
// Planu — project-dna/stack-detector.ts
|
|
3
3
|
// Detects project stack by reading manifest files.
|
|
4
|
-
import { readFile
|
|
4
|
+
import { readFile } from 'node:fs/promises';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
6
|
import { loadTechnologyRegistry, technologyValue } from '../technology-registry.js';
|
|
7
|
+
import { fileExists } from '../../core/shared/fs.js';
|
|
7
8
|
// ---------------------------------------------------------------------------
|
|
8
9
|
// Registry loader (readFileSync — not intercepted by test mocks of fs/promises)
|
|
9
10
|
// ---------------------------------------------------------------------------
|
|
@@ -18,15 +19,6 @@ function loadSignals() {
|
|
|
18
19
|
// ---------------------------------------------------------------------------
|
|
19
20
|
// Helpers
|
|
20
21
|
// ---------------------------------------------------------------------------
|
|
21
|
-
async function fileExists(filePath) {
|
|
22
|
-
try {
|
|
23
|
-
await access(filePath);
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
catch {
|
|
27
|
-
return false;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
22
|
async function readFileIfExists(filePath) {
|
|
31
23
|
try {
|
|
32
24
|
return await readFile(filePath, 'utf-8');
|
|
@@ -179,13 +179,15 @@ async function buildProjectKnowledgeGraphUnlocked(args) {
|
|
|
179
179
|
const cacheResult = await readProjectGraphCache(args.projectId, args.policy);
|
|
180
180
|
const previousCache = cacheResult.cache;
|
|
181
181
|
const previousRecords = previousCache?.records ?? {};
|
|
182
|
-
|
|
182
|
+
const collected = await collectProjectGraphSources({
|
|
183
183
|
projectId: args.projectId,
|
|
184
184
|
projectPath: args.projectPath,
|
|
185
185
|
policy: args.policy,
|
|
186
186
|
previous: previousRecords,
|
|
187
187
|
nativeCoreVersion,
|
|
188
188
|
});
|
|
189
|
+
let sources = collected.sources;
|
|
190
|
+
const oversizedSources = collected.oversizedSources;
|
|
189
191
|
let diff = diffSourceHashes(sources, previousRecords, nativeCoreVersion, {
|
|
190
192
|
fragments: previousCache?.fragments,
|
|
191
193
|
knownSourceIds: cacheResult.knownSourceIds,
|
|
@@ -208,13 +210,17 @@ async function buildProjectKnowledgeGraphUnlocked(args) {
|
|
|
208
210
|
Array.isArray(existingGraph.nodes) &&
|
|
209
211
|
Array.isArray(existingGraph.edges);
|
|
210
212
|
if (hasConsistentExistingGraph && diff.changed.length === 0 && diff.removed.length === 0) {
|
|
213
|
+
const graphWithCurrentOversizedSources = {
|
|
214
|
+
...existingGraph,
|
|
215
|
+
oversizedSources,
|
|
216
|
+
};
|
|
211
217
|
publishFreshProjectGraphProjection({
|
|
212
218
|
projectId: args.projectId,
|
|
213
219
|
generatedAt: existingGraph.generatedAt,
|
|
214
220
|
generation: existingGraph.generation,
|
|
215
221
|
});
|
|
216
222
|
return {
|
|
217
|
-
graph:
|
|
223
|
+
graph: graphWithCurrentOversizedSources,
|
|
218
224
|
generation: existingGraph.generation,
|
|
219
225
|
graphPath: projectGraphPath(args.projectId, args.policy),
|
|
220
226
|
cachePath: projectGraphCachePath(args.projectId, args.policy),
|
|
@@ -222,6 +228,7 @@ async function buildProjectKnowledgeGraphUnlocked(args) {
|
|
|
222
228
|
removedSources: [],
|
|
223
229
|
skippedSources: diff.skipped,
|
|
224
230
|
usedCache: true,
|
|
231
|
+
oversizedSources,
|
|
225
232
|
};
|
|
226
233
|
}
|
|
227
234
|
const changedIds = new Set(diff.changed);
|
|
@@ -272,6 +279,7 @@ async function buildProjectKnowledgeGraphUnlocked(args) {
|
|
|
272
279
|
},
|
|
273
280
|
nodes,
|
|
274
281
|
edges,
|
|
282
|
+
oversizedSources,
|
|
275
283
|
};
|
|
276
284
|
const cache = {
|
|
277
285
|
version: 2,
|
|
@@ -299,6 +307,7 @@ async function buildProjectKnowledgeGraphUnlocked(args) {
|
|
|
299
307
|
removedSources: diff.removed,
|
|
300
308
|
skippedSources: diff.skipped,
|
|
301
309
|
usedCache: false,
|
|
310
|
+
oversizedSources,
|
|
302
311
|
};
|
|
303
312
|
}
|
|
304
313
|
export async function buildProjectKnowledgeGraph(args) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ProjectGraphCacheEnvelope, ProjectGraphCacheReadResult, ProjectGraphFreshness, ProjectGraphPolicy, ProjectGraphSource, ProjectGraphSourceCacheRecord, ProjectGraphSourceFragment, ProjectKnowledgeGraph } from '../../types/project-knowledge-graph.js';
|
|
1
|
+
import type { OversizedSourceRecord, ProjectGraphCacheEnvelope, ProjectGraphCacheReadResult, ProjectGraphFreshness, ProjectGraphPolicy, ProjectGraphSource, ProjectGraphSourceCacheRecord, ProjectGraphSourceFragment, ProjectKnowledgeGraph } from '../../types/project-knowledge-graph.js';
|
|
2
2
|
export declare function loadProjectGraphPolicy(): Promise<ProjectGraphPolicy>;
|
|
3
3
|
export declare function hashText(text: string): string;
|
|
4
4
|
export declare function projectGraphExtractorVersion(kind: string): string;
|
|
@@ -35,7 +35,10 @@ export declare function collectProjectGraphSources(args: {
|
|
|
35
35
|
policy: ProjectGraphPolicy;
|
|
36
36
|
previous?: Record<string, ProjectGraphSourceCacheRecord>;
|
|
37
37
|
nativeCoreVersion?: string;
|
|
38
|
-
}): Promise<
|
|
38
|
+
}): Promise<{
|
|
39
|
+
sources: ProjectGraphSource[];
|
|
40
|
+
oversizedSources: OversizedSourceRecord[];
|
|
41
|
+
}>;
|
|
39
42
|
export declare function getProjectGraphFreshness(args: {
|
|
40
43
|
projectId: string;
|
|
41
44
|
projectPath: string;
|