kibi-cli 2.3.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli-json-command.d.ts +6 -0
- package/dist/cli-json-command.d.ts.map +1 -1
- package/dist/cli-json-command.js +39 -11
- package/dist/cli-operation-loader.d.ts.map +1 -1
- package/dist/cli-operation-loader.js +7 -0
- package/dist/cli-operation-metadata.d.ts +13 -5
- package/dist/cli-operation-metadata.d.ts.map +1 -1
- package/dist/cli-operation-metadata.js +15 -5
- package/dist/cli-protocol.d.ts +14 -0
- package/dist/cli-protocol.d.ts.map +1 -1
- package/dist/cli-protocol.js +31 -2
- package/dist/cli-register-maintenance.d.ts.map +1 -1
- package/dist/cli-register-maintenance.js +7 -0
- package/dist/cli-register-proof.d.ts.map +1 -1
- package/dist/cli-register-proof.js +13 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +11 -2
- package/dist/commands/discovery-shared.d.ts.map +1 -1
- package/dist/commands/discovery-shared.js +8 -2
- package/dist/commands/engine.d.ts.map +1 -1
- package/dist/commands/engine.js +4 -2
- package/dist/commands/gc.d.ts.map +1 -1
- package/dist/commands/gc.js +7 -0
- package/dist/commands/init-helpers.d.ts.map +1 -1
- package/dist/commands/init-helpers.js +0 -1
- package/dist/commands/merge-driver.d.ts +31 -0
- package/dist/commands/merge-driver.d.ts.map +1 -0
- package/dist/commands/merge-driver.js +268 -0
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +281 -14
- package/dist/commands/proof-compact.d.ts +9 -0
- package/dist/commands/proof-compact.d.ts.map +1 -0
- package/dist/commands/proof-compact.js +58 -0
- package/dist/commands/prove.d.ts +38 -0
- package/dist/commands/prove.d.ts.map +1 -1
- package/dist/commands/prove.js +222 -47
- package/dist/commands/sync/persistence.d.ts.map +1 -1
- package/dist/commands/sync/persistence.js +61 -16
- package/dist/commands/sync.d.ts +8 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +42 -16
- package/dist/diagnostics.js +1 -1
- package/dist/engine-limits.d.ts +74 -0
- package/dist/engine-limits.d.ts.map +1 -0
- package/dist/engine-limits.js +201 -0
- package/dist/engine.d.ts +10 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +57 -9
- package/dist/extractors/manifest.d.ts +8 -0
- package/dist/extractors/manifest.d.ts.map +1 -1
- package/dist/extractors/manifest.js +34 -5
- package/dist/extractors/markdown.d.ts +8 -0
- package/dist/extractors/markdown.d.ts.map +1 -1
- package/dist/extractors/markdown.js +57 -0
- package/dist/extractors/relationships.d.ts.map +1 -1
- package/dist/extractors/relationships.js +2 -0
- package/dist/intent-search.d.ts +4 -1
- package/dist/intent-search.d.ts.map +1 -1
- package/dist/intent-search.js +186 -33
- package/dist/operations/bootstrap/candidate-helpers.d.ts.map +1 -1
- package/dist/operations/bootstrap/candidate-helpers.js +8 -1
- package/dist/operations/bootstrap/candidates.d.ts.map +1 -1
- package/dist/operations/bootstrap/candidates.js +55 -39
- package/dist/operations/bootstrap/discovery.js +1 -1
- package/dist/operations/bootstrap/generate.d.ts +2 -0
- package/dist/operations/bootstrap/generate.d.ts.map +1 -1
- package/dist/operations/bootstrap/generate.js +107 -37
- package/dist/operations/bootstrap/guidance-actions.d.ts.map +1 -1
- package/dist/operations/bootstrap/guidance-actions.js +3 -0
- package/dist/operations/bootstrap/guidance.d.ts.map +1 -1
- package/dist/operations/bootstrap/guidance.js +7 -1
- package/dist/operations/bootstrap/intent-claims.d.ts +17 -0
- package/dist/operations/bootstrap/intent-claims.d.ts.map +1 -0
- package/dist/operations/bootstrap/intent-claims.js +103 -0
- package/dist/operations/bootstrap/markdown-candidates.d.ts +2 -0
- package/dist/operations/bootstrap/markdown-candidates.d.ts.map +1 -1
- package/dist/operations/bootstrap/markdown-candidates.js +32 -10
- package/dist/operations/bootstrap/presentation.d.ts +2 -0
- package/dist/operations/bootstrap/presentation.d.ts.map +1 -1
- package/dist/operations/bootstrap/presentation.js +66 -3
- package/dist/operations/bootstrap/requirement-claims.d.ts +1 -0
- package/dist/operations/bootstrap/requirement-claims.d.ts.map +1 -1
- package/dist/operations/bootstrap/requirement-claims.js +13 -1
- package/dist/operations/bootstrap/types.d.ts +28 -0
- package/dist/operations/bootstrap/types.d.ts.map +1 -1
- package/dist/operations/bootstrap/types.js +16 -0
- package/dist/operations/bootstrap/validation.d.ts +4 -0
- package/dist/operations/bootstrap/validation.d.ts.map +1 -0
- package/dist/operations/bootstrap/validation.js +20 -0
- package/dist/operations/migration/inventory-rederive.d.ts +81 -0
- package/dist/operations/migration/inventory-rederive.d.ts.map +1 -0
- package/dist/operations/migration/inventory-rederive.js +484 -0
- package/dist/operations/migration/kb-sources.d.ts +53 -0
- package/dist/operations/migration/kb-sources.d.ts.map +1 -0
- package/dist/operations/migration/kb-sources.js +233 -0
- package/dist/operations/migration/origin-backfill.d.ts +39 -0
- package/dist/operations/migration/origin-backfill.d.ts.map +1 -0
- package/dist/operations/migration/origin-backfill.js +164 -0
- package/dist/operations/migration/polarity-values.d.ts +10 -0
- package/dist/operations/migration/polarity-values.d.ts.map +1 -0
- package/dist/operations/migration/polarity-values.js +60 -0
- package/dist/operations/migration/schema6.d.ts +59 -0
- package/dist/operations/migration/schema6.d.ts.map +1 -0
- package/dist/operations/migration/schema6.js +379 -0
- package/dist/operations/migration/source-paths.d.ts +131 -0
- package/dist/operations/migration/source-paths.d.ts.map +1 -0
- package/dist/operations/migration/source-paths.js +308 -0
- package/dist/operations/migration/superseded-closure.d.ts +54 -0
- package/dist/operations/migration/superseded-closure.d.ts.map +1 -0
- package/dist/operations/migration/superseded-closure.js +187 -0
- package/dist/operations/modeling/logic-modeling.d.ts.map +1 -1
- package/dist/operations/modeling/logic-modeling.js +3 -5
- package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
- package/dist/operations/modeling/model-requirement.js +225 -67
- package/dist/operations/mutation/contradictions.d.ts +16 -0
- package/dist/operations/mutation/contradictions.d.ts.map +1 -1
- package/dist/operations/mutation/contradictions.js +32 -0
- package/dist/operations/mutation/delete.d.ts.map +1 -1
- package/dist/operations/mutation/delete.js +15 -7
- package/dist/operations/mutation/origin.d.ts +21 -0
- package/dist/operations/mutation/origin.d.ts.map +1 -0
- package/dist/operations/mutation/origin.js +78 -0
- package/dist/operations/mutation/plan-apply-journal.d.ts +182 -0
- package/dist/operations/mutation/plan-apply-journal.d.ts.map +1 -0
- package/dist/operations/mutation/plan-apply-journal.js +613 -0
- package/dist/operations/mutation/predicate-vocabulary-guard.d.ts +3 -1
- package/dist/operations/mutation/predicate-vocabulary-guard.d.ts.map +1 -1
- package/dist/operations/mutation/predicate-vocabulary-guard.js +13 -2
- package/dist/operations/mutation/relationships.d.ts +5 -5
- package/dist/operations/mutation/relationships.d.ts.map +1 -1
- package/dist/operations/mutation/relationships.js +31 -11
- package/dist/operations/mutation/serialization.d.ts.map +1 -1
- package/dist/operations/mutation/serialization.js +3 -1
- package/dist/operations/mutation/source-authoring.d.ts +6 -0
- package/dist/operations/mutation/source-authoring.d.ts.map +1 -1
- package/dist/operations/mutation/source-authoring.js +7 -1
- package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-refresh.js +4 -1
- package/dist/operations/mutation/types.d.ts +14 -0
- package/dist/operations/mutation/types.d.ts.map +1 -1
- package/dist/operations/mutation/upsert.d.ts +30 -3
- package/dist/operations/mutation/upsert.d.ts.map +1 -1
- package/dist/operations/mutation/upsert.js +105 -35
- package/dist/operations/mutation/validate-upsert.d.ts +6 -0
- package/dist/operations/mutation/validate-upsert.d.ts.map +1 -1
- package/dist/operations/mutation/validate-upsert.js +34 -30
- package/dist/operations/planning/apply-plan.d.ts.map +1 -1
- package/dist/operations/planning/apply-plan.js +751 -144
- package/dist/operations/planning/compile-intent.d.ts +34 -1
- package/dist/operations/planning/compile-intent.d.ts.map +1 -1
- package/dist/operations/planning/compile-intent.js +314 -98
- package/dist/operations/proof/code-scope.d.ts +28 -0
- package/dist/operations/proof/code-scope.d.ts.map +1 -1
- package/dist/operations/proof/code-scope.js +72 -0
- package/dist/operations/proof/compact-receipts.d.ts +49 -0
- package/dist/operations/proof/compact-receipts.d.ts.map +1 -0
- package/dist/operations/proof/compact-receipts.js +160 -0
- package/dist/operations/proof/ingest-proof.d.ts +2 -0
- package/dist/operations/proof/ingest-proof.d.ts.map +1 -1
- package/dist/operations/proof/ingest-proof.js +44 -23
- package/dist/operations/proof/prune-receipts.d.ts.map +1 -1
- package/dist/operations/proof/prune-receipts.js +5 -9
- package/dist/operations/proof/receipt-compaction.d.ts +48 -0
- package/dist/operations/proof/receipt-compaction.d.ts.map +1 -0
- package/dist/operations/proof/receipt-compaction.js +121 -0
- package/dist/operations/semantic-advisor/analysis-receipt.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/analysis-receipt.js +12 -1
- package/dist/operations/semantic-advisor/analyze-prose.d.ts +2 -1
- package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/analyze-prose.js +51 -5
- package/dist/operations/semantic-advisor/clauses.d.ts +1 -0
- package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/clauses.js +11 -1
- package/dist/operations/semantic-advisor/conditional-rules.d.ts +33 -0
- package/dist/operations/semantic-advisor/conditional-rules.d.ts.map +1 -0
- package/dist/operations/semantic-advisor/conditional-rules.js +262 -0
- package/dist/operations/semantic-advisor/ingestion-boundary.d.ts +3 -1
- package/dist/operations/semantic-advisor/ingestion-boundary.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/ingestion-boundary.js +14 -6
- package/dist/operations/semantic-advisor/plugin-orchestration.js +1 -1
- package/dist/prolog/codec.d.ts.map +1 -1
- package/dist/prolog/codec.js +2 -1
- package/dist/prolog.d.ts +9 -0
- package/dist/prolog.d.ts.map +1 -1
- package/dist/prolog.js +56 -10
- package/dist/proof/command-test-report.d.ts +74 -0
- package/dist/proof/command-test-report.d.ts.map +1 -0
- package/dist/proof/command-test-report.js +206 -0
- package/dist/public/branch-resolver.d.ts +1 -0
- package/dist/public/branch-resolver.d.ts.map +1 -1
- package/dist/public/branch-resolver.js +1 -0
- package/dist/public/diagnostic-usage.d.ts +14 -0
- package/dist/public/diagnostic-usage.d.ts.map +1 -1
- package/dist/public/diagnostic-usage.js +55 -1
- package/dist/public/entity-origin.d.ts +69 -0
- package/dist/public/entity-origin.d.ts.map +1 -0
- package/dist/public/entity-origin.js +142 -0
- package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
- package/dist/public/impact/full-kb-quality.js +1 -0
- package/dist/public/impact/requirement-quality.js +1 -1
- package/dist/public/operations/catalog.d.ts +203 -20
- package/dist/public/operations/catalog.d.ts.map +1 -1
- package/dist/public/operations/catalog.js +3 -0
- package/dist/public/operations/check-executor.d.ts.map +1 -1
- package/dist/public/operations/check-executor.js +8 -0
- package/dist/public/operations/contracts.d.ts +0 -5
- package/dist/public/operations/contracts.d.ts.map +1 -1
- package/dist/public/operations/contracts.js +63 -14
- package/dist/public/operations/discovery-entities.d.ts +15 -0
- package/dist/public/operations/discovery-entities.d.ts.map +1 -1
- package/dist/public/operations/discovery-entities.js +59 -0
- package/dist/public/operations/discovery-executors.d.ts +6 -1
- package/dist/public/operations/discovery-executors.d.ts.map +1 -1
- package/dist/public/operations/discovery-executors.js +65 -6
- package/dist/public/operations/index.d.ts +1 -0
- package/dist/public/operations/index.d.ts.map +1 -1
- package/dist/public/operations/index.js +1 -0
- package/dist/public/operations/migration-plan.d.ts +5 -0
- package/dist/public/operations/migration-plan.d.ts.map +1 -1
- package/dist/public/operations/migration-plan.js +26 -1
- package/dist/public/operations/node-ports.d.ts.map +1 -1
- package/dist/public/operations/node-ports.js +24 -3
- package/dist/public/operations/origin-review.d.ts +51 -0
- package/dist/public/operations/origin-review.d.ts.map +1 -0
- package/dist/public/operations/origin-review.js +307 -0
- package/dist/public/operations/predicate-schema-conformance.js +1 -1
- package/dist/public/operations/repair-plan.d.ts.map +1 -1
- package/dist/public/operations/repair-plan.js +4 -0
- package/dist/public/operations/result-envelope.d.ts.map +1 -1
- package/dist/public/operations/result-envelope.js +17 -5
- package/dist/public/operations/runtime-types.d.ts +9 -0
- package/dist/public/operations/runtime-types.d.ts.map +1 -1
- package/dist/public/operations/schema6-check-actions.d.ts +127 -0
- package/dist/public/operations/schema6-check-actions.d.ts.map +1 -0
- package/dist/public/operations/schema6-check-actions.js +575 -0
- package/dist/public/operations/source-path-dangling.d.ts +17 -0
- package/dist/public/operations/source-path-dangling.d.ts.map +1 -0
- package/dist/public/operations/source-path-dangling.js +66 -0
- package/dist/public/operations/specs/bootstrap.d.ts +73 -1
- package/dist/public/operations/specs/bootstrap.d.ts.map +1 -1
- package/dist/public/operations/specs/bootstrap.js +66 -1
- package/dist/public/operations/specs/check-rules.generated.d.ts +1 -1
- package/dist/public/operations/specs/check-rules.generated.d.ts.map +1 -1
- package/dist/public/operations/specs/check-rules.generated.js +15 -1
- package/dist/public/operations/specs/check.d.ts +2 -2
- package/dist/public/operations/specs/check.js +1 -1
- package/dist/public/operations/specs/composite.d.ts +351 -0
- package/dist/public/operations/specs/composite.d.ts.map +1 -0
- package/dist/public/operations/specs/composite.js +96 -0
- package/dist/public/operations/specs/discovery.d.ts +8 -3
- package/dist/public/operations/specs/discovery.d.ts.map +1 -1
- package/dist/public/operations/specs/discovery.js +8 -3
- package/dist/public/operations/specs/modeling.d.ts +2 -2
- package/dist/public/operations/specs/modeling.js +2 -2
- package/dist/public/operations/specs/mutation-schemas.d.ts +73 -8
- package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
- package/dist/public/operations/specs/mutation-schemas.js +43 -7
- package/dist/public/operations/specs/mutation.d.ts +1 -1
- package/dist/public/operations/specs/mutation.js +1 -1
- package/dist/public/operations/specs/planning.d.ts +2 -2
- package/dist/public/operations/specs/planning.js +4 -4
- package/dist/public/operations/specs/reporting.d.ts.map +1 -1
- package/dist/public/operations/specs/reporting.js +13 -26
- package/dist/public/operations/specs/upsert.d.ts +79 -9
- package/dist/public/operations/specs/upsert.d.ts.map +1 -1
- package/dist/public/operations/specs/upsert.js +6 -1
- package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -1
- package/dist/public/operations/symbol-repair-plan.js +3 -1
- package/dist/public/operations/types.d.ts +1 -1
- package/dist/public/operations/types.d.ts.map +1 -1
- package/dist/public/proof-receipt.d.ts +1 -0
- package/dist/public/proof-receipt.d.ts.map +1 -1
- package/dist/public/schemas/entity.d.ts.map +1 -1
- package/dist/public/schemas/entity.js +52 -0
- package/dist/public/schemas/relationship.d.ts.map +1 -1
- package/dist/public/schemas/relationship.js +2 -0
- package/dist/public/skills/kibi-bootstrap/SKILL.md +52 -11
- package/dist/public/skills/kibi-bootstrap/resources/bootstrap.md +12 -1
- package/dist/public/skills/kibi-usage/SKILL.md +82 -18
- package/dist/public/skills/kibi-usage/resources/fact-lanes.md +5 -5
- package/dist/public/skills/kibi-usage/resources/kb-improvement.md +1 -1
- package/dist/public/skills/kibi-usage/resources/logic-ir.md +2 -2
- package/dist/public/skills/kibi-usage/resources/operation-access.md +29 -1
- package/dist/public/skills/kibi-usage/resources/ui-requirements.md +4 -4
- package/dist/public/skills/kibi-usage/resources/workflows.md +42 -25
- package/dist/public/telemetry-acceptance.d.ts +64 -0
- package/dist/public/telemetry-acceptance.d.ts.map +1 -1
- package/dist/public/telemetry-acceptance.js +143 -7
- package/dist/public/telemetry-remediation.d.ts.map +1 -1
- package/dist/public/telemetry-remediation.js +26 -10
- package/dist/relationships/shards.d.ts +13 -0
- package/dist/relationships/shards.d.ts.map +1 -1
- package/dist/relationships/shards.js +54 -28
- package/dist/runtime/cli-runtime.d.ts.map +1 -1
- package/dist/runtime/cli-runtime.js +44 -3
- package/dist/runtime/detached-snapshot.d.ts +38 -0
- package/dist/runtime/detached-snapshot.d.ts.map +1 -0
- package/dist/runtime/detached-snapshot.js +92 -0
- package/dist/schemas/entity.schema.json +122 -0
- package/dist/search-answer.d.ts +157 -0
- package/dist/search-answer.d.ts.map +1 -0
- package/dist/search-answer.js +846 -0
- package/dist/traceability/impact-knowledge.d.ts.map +1 -1
- package/dist/traceability/impact-knowledge.js +7 -0
- package/dist/traceability/symbol-extract.js +3 -3
- package/dist/traceability/temp-kb.d.ts.map +1 -1
- package/dist/traceability/temp-kb.js +12 -0
- package/dist/types/entities.d.ts +13 -0
- package/dist/types/entities.d.ts.map +1 -1
- package/dist/types/relationships.d.ts +1 -1
- package/dist/types/relationships.d.ts.map +1 -1
- package/dist/utils/branch-resolver.d.ts +37 -1
- package/dist/utils/branch-resolver.d.ts.map +1 -1
- package/dist/utils/branch-resolver.js +130 -3
- package/dist/utils/repo-relative-path.d.ts +18 -0
- package/dist/utils/repo-relative-path.d.ts.map +1 -0
- package/dist/utils/repo-relative-path.js +58 -0
- package/dist/utils/rule-registry.generated.d.ts +75 -3
- package/dist/utils/rule-registry.generated.d.ts.map +1 -1
- package/dist/utils/rule-registry.generated.js +89 -3
- package/dist/utils/schema-version.d.ts +1 -1
- package/dist/utils/schema-version.d.ts.map +1 -1
- package/dist/utils/schema-version.js +4 -3
- package/dist/utils/strict-modeling.d.ts +1 -1
- package/dist/utils/strict-modeling.d.ts.map +1 -1
- package/dist/utils/strict-modeling.js +23 -3
- package/package.json +3 -3
- package/schema/entities.pl +22 -0
- package/schema/relationships.pl +14 -0
- package/schema/validation.pl +45 -1
- package/src/public/branch-resolver.ts +1 -0
- package/src/public/diagnostic-usage.ts +59 -1
- package/src/public/entity-origin.ts +175 -0
- package/src/public/impact/full-kb-quality.ts +1 -0
- package/src/public/impact/requirement-quality.ts +1 -1
- package/src/public/operations/catalog.ts +3 -0
- package/src/public/operations/check-executor.ts +15 -0
- package/src/public/operations/contracts.ts +75 -15
- package/src/public/operations/discovery-entities.ts +74 -0
- package/src/public/operations/discovery-executors.ts +88 -10
- package/src/public/operations/index.ts +1 -0
- package/src/public/operations/migration-plan.ts +30 -1
- package/src/public/operations/node-ports.ts +24 -3
- package/src/public/operations/origin-review.ts +375 -0
- package/src/public/operations/predicate-schema-conformance.ts +1 -1
- package/src/public/operations/repair-plan.ts +4 -0
- package/src/public/operations/result-envelope.ts +18 -6
- package/src/public/operations/runtime-types.ts +9 -0
- package/src/public/operations/schema6-check-actions.ts +699 -0
- package/src/public/operations/source-path-dangling.ts +81 -0
- package/src/public/operations/specs/bootstrap.ts +78 -4
- package/src/public/operations/specs/check-rules.generated.ts +15 -1
- package/src/public/operations/specs/check.ts +1 -1
- package/src/public/operations/specs/composite.ts +141 -0
- package/src/public/operations/specs/discovery.ts +9 -3
- package/src/public/operations/specs/modeling.ts +2 -2
- package/src/public/operations/specs/mutation-schemas.ts +49 -7
- package/src/public/operations/specs/mutation.ts +1 -1
- package/src/public/operations/specs/planning.ts +4 -4
- package/src/public/operations/specs/reporting.ts +13 -38
- package/src/public/operations/specs/upsert.ts +7 -1
- package/src/public/operations/symbol-repair-plan.ts +3 -1
- package/src/public/operations/types.ts +2 -0
- package/src/public/proof-receipt.ts +1 -0
- package/src/public/schemas/entity.ts +57 -0
- package/src/public/schemas/relationship.ts +2 -0
- package/src/public/skills/kibi-bootstrap/SKILL.md +52 -11
- package/src/public/skills/kibi-bootstrap/resources/bootstrap.md +12 -1
- package/src/public/skills/kibi-usage/SKILL.md +82 -18
- package/src/public/skills/kibi-usage/resources/fact-lanes.md +5 -5
- package/src/public/skills/kibi-usage/resources/kb-improvement.md +1 -1
- package/src/public/skills/kibi-usage/resources/logic-ir.md +2 -2
- package/src/public/skills/kibi-usage/resources/operation-access.md +29 -1
- package/src/public/skills/kibi-usage/resources/ui-requirements.md +4 -4
- package/src/public/skills/kibi-usage/resources/workflows.md +42 -25
- package/src/public/telemetry-acceptance-types.d.ts +4 -1
- package/src/public/telemetry-acceptance.ts +210 -7
- package/src/public/telemetry-remediation.ts +39 -10
- package/src/schemas/entity.schema.json +122 -0
- package/src/schemas/relationship.schema.json +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/public/operations/catalog.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/public/operations/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { OPERATION_DATA_SCHEMAS, declaredEffects, } from "./contracts.js";
|
|
2
2
|
import { planBootstrapSpec } from "./specs/bootstrap.js";
|
|
3
3
|
import { checkSpec } from "./specs/check.js";
|
|
4
|
+
import { modelSpec, skillsSpec } from "./specs/composite.js";
|
|
4
5
|
import { querySpec, searchSpec, statusSpec } from "./specs/discovery.js";
|
|
5
6
|
import { prepareImpactReviewSpec } from "./specs/impact-review-preparation.js";
|
|
6
7
|
import { modelRequirementSpec, suggestPredicatesSpec, } from "./specs/modeling.js";
|
|
@@ -15,6 +16,7 @@ export const OPERATION_CATALOG = [
|
|
|
15
16
|
skillsListSpec,
|
|
16
17
|
skillsLoadSpec,
|
|
17
18
|
skillsReadSpec,
|
|
19
|
+
skillsSpec,
|
|
18
20
|
querySpec,
|
|
19
21
|
searchSpec,
|
|
20
22
|
statusSpec,
|
|
@@ -24,6 +26,7 @@ export const OPERATION_CATALOG = [
|
|
|
24
26
|
semanticAdvisorSpec,
|
|
25
27
|
modelRequirementSpec,
|
|
26
28
|
suggestPredicatesSpec,
|
|
29
|
+
modelSpec,
|
|
27
30
|
planBootstrapSpec,
|
|
28
31
|
validateUpsertSpec,
|
|
29
32
|
upsertSpec,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-executor.d.ts","sourceRoot":"","sources":["../../../src/public/operations/check-executor.ts"],"names":[],"mappings":"AAoBA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,sBAAsB,EACtB,YAAY,EACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAGL,iBAAiB,EAGjB,iBAAiB,EAElB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"check-executor.d.ts","sourceRoot":"","sources":["../../../src/public/operations/check-executor.ts"],"names":[],"mappings":"AAoBA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,sBAAsB,EACtB,YAAY,EACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAGL,iBAAiB,EAGjB,iBAAiB,EAElB,MAAM,oBAAoB,CAAC;AAS5B,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,oBAAoB,CAAC;AAMvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAClD,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,GAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,6CAA6C,CAAC,EAAE,OAAO,CAAC;CAClE,CAAC;AAqDF,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAsKxC"}
|
|
@@ -4,7 +4,9 @@ import { buildStructuredContent, buildSummary, } from "./check-format-shared.js"
|
|
|
4
4
|
import { analyzeKbCheckImpact, collectQueryPlanSafetyViolations, getEffectiveRules, partitionCheckFindings, qualityDiagnosticsFromImpact, resolveCheckRules, stagedEntityIdStyleDiagnostics, } from "./check-helpers.js";
|
|
5
5
|
import { executeStatus } from "./discovery-executors.js";
|
|
6
6
|
import { buildActionsFromCheck, buildMigrationPlan, mergeMigrationPlans, } from "./migration-plan.js";
|
|
7
|
+
import { collectOriginReviewViolations } from "./origin-review.js";
|
|
7
8
|
import { collectPredicateSchemaConformanceViolations } from "./predicate-schema-conformance.js";
|
|
9
|
+
import { SOURCE_PATH_DANGLING_RULE, collectSourcePathDanglingViolations, } from "./source-path-dangling.js";
|
|
8
10
|
import { collectSourceRelationshipParityViolations } from "./source-relationship-parity.js";
|
|
9
11
|
import { readWorkspaceSnapshot } from "./workspace-snapshot.js";
|
|
10
12
|
export { buildStructuredContent, buildSummary, getEffectiveRules, resolveCheckRules, };
|
|
@@ -116,11 +118,17 @@ export async function executeCheck(args, context, options = {}) {
|
|
|
116
118
|
const predicateConformanceFindings = rulesAllowlist.has("predicate-schema-conformance")
|
|
117
119
|
? await collectPredicateSchemaConformanceViolations(prolog)
|
|
118
120
|
: [];
|
|
121
|
+
const sourcePathFindings = rulesAllowlist.has(SOURCE_PATH_DANGLING_RULE)
|
|
122
|
+
? collectSourcePathDanglingViolations(workspaceRoot)
|
|
123
|
+
: [];
|
|
124
|
+
const originReviewFindings = await collectOriginReviewViolations(prolog, rulesAllowlist, workspaceRoot);
|
|
119
125
|
const partitioned = partitionCheckFindings([
|
|
120
126
|
...aggregatedFindings,
|
|
121
127
|
...queryPlanViolations,
|
|
122
128
|
...sourceRelationshipParityViolations,
|
|
129
|
+
...sourcePathFindings,
|
|
123
130
|
...predicateConformanceFindings,
|
|
131
|
+
...originReviewFindings,
|
|
124
132
|
]);
|
|
125
133
|
const violations = partitioned.violations;
|
|
126
134
|
const diagnostics = violations.map((v) => ({
|
|
@@ -5,11 +5,6 @@ export type OperationJsonSchema = Readonly<Record<string, unknown>>;
|
|
|
5
5
|
* generated consumer contract. Using a `type` union keeps the catalog
|
|
6
6
|
* readable and lets the MCP bridge round-trip the same wire schema. */
|
|
7
7
|
export declare function nullableJsonSchema(schema: OperationJsonSchema): OperationJsonSchema;
|
|
8
|
-
/**
|
|
9
|
-
* The data contract is deliberately maintained separately from the operation
|
|
10
|
-
* implementations. Every catalog entry therefore has a concrete payload
|
|
11
|
-
* shape, while nested domain records can still evolve independently.
|
|
12
|
-
*/
|
|
13
8
|
export declare const OPERATION_DATA_SCHEMAS: Readonly<Record<OperationName, OperationJsonSchema>>;
|
|
14
9
|
export declare function assertUniqueEffectKinds(operation: string, declarations: readonly {
|
|
15
10
|
readonly kind: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/public/operations/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,0BAA0B,EAC1B,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,oEAAoE;AACpE,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAsZpE;;uEAEuE;AACvE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,mBAAmB,GAC1B,mBAAmB,CAMrB;
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/public/operations/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,0BAA0B,EAC1B,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,oEAAoE;AACpE,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAsZpE;;uEAEuE;AACvE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,mBAAmB,GAC1B,mBAAmB,CAMrB;AAsVD,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAa3C,CAAC;AAmDF,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAClD,YAAY,EAAE,MAAM,GACnB,IAAI,CAIN;AAED,wBAAgB,eAAe,CAC7B,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,SAAS,eAAe,EAAE,GAClC,SAAS,0BAA0B,EAAE,CAoBvC"}
|
|
@@ -335,7 +335,7 @@ export function nullableJsonSchema(schema) {
|
|
|
335
335
|
* implementations. Every catalog entry therefore has a concrete payload
|
|
336
336
|
* shape, while nested domain records can still evolve independently.
|
|
337
337
|
*/
|
|
338
|
-
|
|
338
|
+
const BASE_DATA_SCHEMAS = {
|
|
339
339
|
kb_skills_list: objectData({ skills: valueArray }, ["skills"]),
|
|
340
340
|
kb_skills_load: objectData({
|
|
341
341
|
metadata: recordValue,
|
|
@@ -349,7 +349,13 @@ export const OPERATION_DATA_SCHEMAS = {
|
|
|
349
349
|
"entities",
|
|
350
350
|
"count",
|
|
351
351
|
]),
|
|
352
|
-
kb_search: objectData({
|
|
352
|
+
kb_search: objectData({
|
|
353
|
+
results: valueArray,
|
|
354
|
+
count: integerValue,
|
|
355
|
+
truncated: booleanValue,
|
|
356
|
+
queryAnalysis: recordValue,
|
|
357
|
+
answer: recordValue,
|
|
358
|
+
}, ["results", "count"]),
|
|
353
359
|
kb_status: objectData({
|
|
354
360
|
branch: stringValue,
|
|
355
361
|
snapshotId: stringValue,
|
|
@@ -496,18 +502,32 @@ export const OPERATION_DATA_SCHEMAS = {
|
|
|
496
502
|
semanticAdvisor: nullableJsonSchema(recordValue),
|
|
497
503
|
normalizedPreview: nullableJsonSchema(recordValue),
|
|
498
504
|
}),
|
|
499
|
-
kb_upsert:
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
505
|
+
kb_upsert: {
|
|
506
|
+
description: "Committed upsert payload, or the validation preview when dryRun:true wrote nothing.",
|
|
507
|
+
anyOf: [
|
|
508
|
+
objectData({
|
|
509
|
+
created: integerValue,
|
|
510
|
+
updated: integerValue,
|
|
511
|
+
relationships_created: integerValue,
|
|
512
|
+
warnings: valueArray,
|
|
513
|
+
semanticAdvisor: recordValue,
|
|
514
|
+
status: stringValue,
|
|
515
|
+
effectFailures: recordArray,
|
|
516
|
+
nextActions: recordArray,
|
|
517
|
+
sourceWrites: recordArray,
|
|
518
|
+
contradictionCheck: recordValue,
|
|
519
|
+
}),
|
|
520
|
+
objectData({
|
|
521
|
+
valid: booleanValue,
|
|
522
|
+
errors: valueArray,
|
|
523
|
+
warnings: valueArray,
|
|
524
|
+
semanticAdvisor: nullableJsonSchema(recordValue),
|
|
525
|
+
normalizedPreview: nullableJsonSchema(recordValue),
|
|
526
|
+
dryRun: { const: true },
|
|
527
|
+
skippedEffects: stringArray,
|
|
528
|
+
}, ["valid", "dryRun", "skippedEffects"]),
|
|
529
|
+
],
|
|
530
|
+
},
|
|
511
531
|
kb_delete: objectData({
|
|
512
532
|
deleted: integerValue,
|
|
513
533
|
relationships_deleted: integerValue,
|
|
@@ -612,10 +632,38 @@ export const OPERATION_DATA_SCHEMAS = {
|
|
|
612
632
|
nextActions: recordArray,
|
|
613
633
|
}),
|
|
614
634
|
};
|
|
635
|
+
/** A composite operation returns the routed operation's payload plus the
|
|
636
|
+
* selector that chose it. */
|
|
637
|
+
function compositeData(selector, routes) {
|
|
638
|
+
return {
|
|
639
|
+
anyOf: Object.entries(routes).map(([choice, schema]) => ({
|
|
640
|
+
...schema,
|
|
641
|
+
required: [selector, ...(schema.required ?? [])],
|
|
642
|
+
properties: {
|
|
643
|
+
[selector]: { const: choice },
|
|
644
|
+
...schema.properties,
|
|
645
|
+
},
|
|
646
|
+
})),
|
|
647
|
+
};
|
|
648
|
+
}
|
|
649
|
+
export const OPERATION_DATA_SCHEMAS = {
|
|
650
|
+
...BASE_DATA_SCHEMAS,
|
|
651
|
+
kb_skills: compositeData("action", {
|
|
652
|
+
list: BASE_DATA_SCHEMAS.kb_skills_list,
|
|
653
|
+
load: BASE_DATA_SCHEMAS.kb_skills_load,
|
|
654
|
+
read: BASE_DATA_SCHEMAS.kb_skills_read,
|
|
655
|
+
}),
|
|
656
|
+
kb_model: compositeData("mode", {
|
|
657
|
+
analyze: BASE_DATA_SCHEMAS.kb_semantic_advisor,
|
|
658
|
+
requirement: BASE_DATA_SCHEMAS.kb_model_requirement,
|
|
659
|
+
predicates: BASE_DATA_SCHEMAS.kb_suggest_predicates,
|
|
660
|
+
}),
|
|
661
|
+
};
|
|
615
662
|
const EFFECT_OVERRIDES = {
|
|
616
663
|
kb_skills_list: {},
|
|
617
664
|
kb_skills_load: {},
|
|
618
665
|
kb_skills_read: {},
|
|
666
|
+
kb_skills: {},
|
|
619
667
|
kb_query: {},
|
|
620
668
|
kb_search: {},
|
|
621
669
|
kb_status: {},
|
|
@@ -626,6 +674,7 @@ const EFFECT_OVERRIDES = {
|
|
|
626
674
|
kb_semantic_advisor: {},
|
|
627
675
|
kb_model_requirement: {},
|
|
628
676
|
kb_suggest_predicates: {},
|
|
677
|
+
kb_model: {},
|
|
629
678
|
kb_plan_bootstrap: {},
|
|
630
679
|
kb_validate_upsert: {},
|
|
631
680
|
kb_upsert: {
|
|
@@ -57,6 +57,21 @@ export declare function queryEntityChunks(readChunk: (input: PrologEntityQueryIn
|
|
|
57
57
|
export declare function queryEntitiesViaQuery(prolog: Pick<PrologPort, "query">, input: PrologEntityQueryInput, signal?: AbortSignal): Promise<PrologEntityQueryResult>;
|
|
58
58
|
/** Every entity id, without materializing entity properties. */
|
|
59
59
|
export declare function loadEntityIds(prolog: Pick<PrologPort, "query">): Promise<string[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Properties a projected entity row keeps: what intent ranking, result
|
|
62
|
+
* summaries and the search answer layer read. Large structured properties
|
|
63
|
+
* (receipt histories, proof contracts, semantic inventories, rule IR) are
|
|
64
|
+
* left in the store, as for search candidate rows.
|
|
65
|
+
*/
|
|
66
|
+
export declare const ENTITY_ROW_KEYS: readonly ["id", "title", "status", "priority", "severity", "owner", "tags", "source", "sourceFile", "sourceLine", "sourceColumn", "sourceEndLine", "sourceEndColumn", "source_line", "source_end_line", "updated_at", "created_at", "semantic_text", "text_ref", "fact_kind", "expects", "approved_by", "approval_ref"];
|
|
67
|
+
/** Upper bound on ids per batched row query, so one answer stays bounded. */
|
|
68
|
+
export declare const ENTITY_ROW_BATCH_LIMIT = 200;
|
|
69
|
+
export declare function entityRowsGoal(ids: readonly string[], keys?: readonly string[]): string;
|
|
70
|
+
/**
|
|
71
|
+
* Projected rows for several entities in one Prolog query, in place of one
|
|
72
|
+
* `loadEntities({ id })` round trip per entity. Unknown ids are skipped.
|
|
73
|
+
*/
|
|
74
|
+
export declare function loadEntityRows(prolog: Pick<PrologPort, "query">, ids: readonly string[], keys?: readonly string[]): Promise<Record<string, unknown>[]>;
|
|
60
75
|
/**
|
|
61
76
|
* Replace projected search candidates with complete entities, one bounded
|
|
62
77
|
* query per entity. Used only for the final result page when a caller asks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery-entities.d.ts","sourceRoot":"","sources":["../../../src/public/operations/discovery-entities.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"discovery-entities.d.ts","sourceRoot":"","sources":["../../../src/public/operations/discovery-entities.ts"],"names":[],"mappings":"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"}
|
|
@@ -269,6 +269,65 @@ export async function loadEntityIds(prolog) {
|
|
|
269
269
|
}
|
|
270
270
|
return parseAtomList(result.bindings.Ids ?? "[]").map(normalizeEntityId);
|
|
271
271
|
}
|
|
272
|
+
/**
|
|
273
|
+
* Properties a projected entity row keeps: what intent ranking, result
|
|
274
|
+
* summaries and the search answer layer read. Large structured properties
|
|
275
|
+
* (receipt histories, proof contracts, semantic inventories, rule IR) are
|
|
276
|
+
* left in the store, as for search candidate rows.
|
|
277
|
+
*/
|
|
278
|
+
// implements REQ-kibi-search-answer-layer-v2
|
|
279
|
+
export const ENTITY_ROW_KEYS = [
|
|
280
|
+
"id",
|
|
281
|
+
"title",
|
|
282
|
+
"status",
|
|
283
|
+
"priority",
|
|
284
|
+
"severity",
|
|
285
|
+
"owner",
|
|
286
|
+
"tags",
|
|
287
|
+
"source",
|
|
288
|
+
"sourceFile",
|
|
289
|
+
"sourceLine",
|
|
290
|
+
"sourceColumn",
|
|
291
|
+
"sourceEndLine",
|
|
292
|
+
"sourceEndColumn",
|
|
293
|
+
"source_line",
|
|
294
|
+
"source_end_line",
|
|
295
|
+
"updated_at",
|
|
296
|
+
"created_at",
|
|
297
|
+
"semantic_text",
|
|
298
|
+
"text_ref",
|
|
299
|
+
"fact_kind",
|
|
300
|
+
"expects",
|
|
301
|
+
"approved_by",
|
|
302
|
+
"approval_ref",
|
|
303
|
+
];
|
|
304
|
+
/** Upper bound on ids per batched row query, so one answer stays bounded. */
|
|
305
|
+
// implements REQ-kibi-search-answer-layer-v2
|
|
306
|
+
export const ENTITY_ROW_BATCH_LIMIT = 200;
|
|
307
|
+
// implements REQ-mcp-search-discovery, REQ-kibi-search-answer-layer-v2
|
|
308
|
+
export function entityRowsGoal(ids, keys = ENTITY_ROW_KEYS) {
|
|
309
|
+
const idList = ids.map((id) => `'${escapeAtomContent(id)}'`).join(",");
|
|
310
|
+
const keyList = keys.map((key) => `'${escapeAtomContent(key)}'`).join(",");
|
|
311
|
+
return `findall([Id,Type,Row], (member(Id, [${idList}]), kb_entity(Id, Type, Props), findall(Key=Value, (member(Key=Value, Props), memberchk(Key, [${keyList}])), Row)), Results)`;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Projected rows for several entities in one Prolog query, in place of one
|
|
315
|
+
* `loadEntities({ id })` round trip per entity. Unknown ids are skipped.
|
|
316
|
+
*/
|
|
317
|
+
// implements REQ-mcp-search-discovery, REQ-kibi-search-answer-layer-v2
|
|
318
|
+
export async function loadEntityRows(prolog, ids, keys = ENTITY_ROW_KEYS) {
|
|
319
|
+
const unique = [...new Set(ids.filter((id) => id.length > 0))];
|
|
320
|
+
const rows = [];
|
|
321
|
+
for (let start = 0; start < unique.length; start += ENTITY_ROW_BATCH_LIMIT) {
|
|
322
|
+
const batch = unique.slice(start, start + ENTITY_ROW_BATCH_LIMIT);
|
|
323
|
+
const result = await prolog.query(entityRowsGoal(batch, keys));
|
|
324
|
+
if (!result.success) {
|
|
325
|
+
throw new Error(result.error || "Entity row query failed");
|
|
326
|
+
}
|
|
327
|
+
rows.push(...parseListOfLists(result.bindings.Results ?? "[]").map(parseEntityFromList));
|
|
328
|
+
}
|
|
329
|
+
return dedupeEntities(rows);
|
|
330
|
+
}
|
|
272
331
|
/**
|
|
273
332
|
* Replace projected search candidates with complete entities, one bounded
|
|
274
333
|
* query per entity. Used only for the final result page when a caller asks
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type IntentSearchAnalysis, type IntentSearchFacets, type IntentSearchMatch, type SourceLocation } from "../../intent-search.js";
|
|
2
|
+
import { type SearchAnswer } from "../../search-answer.js";
|
|
2
3
|
import type { SearchMatch } from "../../search-ranking.js";
|
|
3
4
|
import { type BranchStoreInspection } from "../../utils/branch-store.js";
|
|
4
5
|
import { type MigrationConfigStatus, type MigrationPlan } from "./migration-plan.js";
|
|
@@ -26,11 +27,14 @@ export type SearchInput = {
|
|
|
26
27
|
readonly sourceLocations?: readonly SourceLocation[];
|
|
27
28
|
readonly minScore?: number;
|
|
28
29
|
readonly fields?: "summary" | "full";
|
|
30
|
+
readonly answer?: boolean;
|
|
29
31
|
};
|
|
30
32
|
export type SearchPayload = {
|
|
31
33
|
readonly results: readonly (SearchMatch | IntentSearchMatch)[];
|
|
32
34
|
readonly count: number;
|
|
35
|
+
readonly truncated?: boolean;
|
|
33
36
|
readonly queryAnalysis?: IntentSearchAnalysis;
|
|
37
|
+
readonly answer?: SearchAnswer;
|
|
34
38
|
};
|
|
35
39
|
export type StatusInput = Readonly<Record<string, never>>;
|
|
36
40
|
export type StatusPayload = {
|
|
@@ -53,7 +57,7 @@ export type StatusPayload = {
|
|
|
53
57
|
readonly branchAttachment?: {
|
|
54
58
|
readonly gitBranch: string;
|
|
55
59
|
readonly kbBranch: string;
|
|
56
|
-
readonly kind: "exact" | "explicit_override" | "legacy_compat";
|
|
60
|
+
readonly kind: "exact" | "explicit_override" | "legacy_compat" | "detached_snapshot";
|
|
57
61
|
readonly migrationRequired: boolean;
|
|
58
62
|
};
|
|
59
63
|
readonly proofSnapshotChanges?: readonly Record<string, unknown>[];
|
|
@@ -69,6 +73,7 @@ export type StatusPayload = {
|
|
|
69
73
|
readonly schemaStatus?: MigrationConfigStatus;
|
|
70
74
|
readonly migrationPlan?: MigrationPlan;
|
|
71
75
|
readonly bootstrap?: {
|
|
76
|
+
readonly incompleteApplications?: readonly Readonly<Record<string, unknown>>[];
|
|
72
77
|
readonly activationState: string;
|
|
73
78
|
readonly activationMode: string;
|
|
74
79
|
readonly planEligible: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery-executors.d.ts","sourceRoot":"","sources":["../../../src/public/operations/discovery-executors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"discovery-executors.d.ts","sourceRoot":"","sources":["../../../src/public/operations/discovery-executors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import path from "node:path";
|
|
1
2
|
import { compilerFingerprintReason } from "../../commands/sync/cache.js";
|
|
2
3
|
import { EngineClient } from "../../engine.js";
|
|
3
4
|
import { executeIntentSearch, validateIntentSearchInput, } from "../../intent-search.js";
|
|
4
5
|
import { classifyActivation } from "../../operations/bootstrap/activation.js";
|
|
6
|
+
import { SwiplResolutionError } from "../../prolog/swipl-resolver.js";
|
|
7
|
+
import { buildSearchAnswer } from "../../search-answer.js";
|
|
5
8
|
import { rankEntities } from "../../search-ranking.js";
|
|
6
9
|
import { resolveBranchAttachment } from "../../utils/branch-resolver.js";
|
|
7
10
|
import { branchStoreReason, inspectBranchStore, storeLockJournalReason, } from "../../utils/branch-store.js";
|
|
@@ -107,7 +110,7 @@ async function projectMatches(prolog, matches, fields) {
|
|
|
107
110
|
}
|
|
108
111
|
export async function executeSearch(input, context) {
|
|
109
112
|
// implements REQ-kibi-operation-interface-parity, REQ-mcp-search-discovery
|
|
110
|
-
const { query, type, limit = 20, offset = 0, rankingMode = "
|
|
113
|
+
const { query, type, limit = 20, offset = 0, rankingMode = "intent-v1", semanticFacets, sourceLocations, minScore, fields = "summary", answer, } = input;
|
|
111
114
|
const trimmedQuery = query.trim();
|
|
112
115
|
if (!trimmedQuery) {
|
|
113
116
|
throw new Error("Search execution failed: query must be a non-empty string");
|
|
@@ -129,17 +132,30 @@ export async function executeSearch(input, context) {
|
|
|
129
132
|
validateIntentSearchInput(intentInput);
|
|
130
133
|
const intentResult = await executeIntentSearch(intentInput, prolog, context.workspaceRoot);
|
|
131
134
|
const paginated = paginateResults(intentResult.matches, limit, offset);
|
|
135
|
+
// The answer layer summarizes the whole ranking, so it belongs to the
|
|
136
|
+
// first page only.
|
|
137
|
+
const answerLayer = (answer ?? true) && offset === 0 && intentResult.matches.length > 0
|
|
138
|
+
? await buildSearchAnswer(prolog, intentResult.matches, {
|
|
139
|
+
workspaceRoot: context.workspaceRoot,
|
|
140
|
+
branch: context.branchAttachment?.kbBranch ?? null,
|
|
141
|
+
})
|
|
142
|
+
: undefined;
|
|
143
|
+
// The structured payload carries every row; the text is a short
|
|
144
|
+
// human-readable digest instead of a second copy of the results.
|
|
132
145
|
const text = intentResult.matches.length === 0
|
|
133
146
|
? `No intent search results for '${trimmedQuery}' (abstained).`
|
|
134
|
-
: `Found ${intentResult.matches.length} intent search results for '${trimmedQuery}'
|
|
135
|
-
.
|
|
136
|
-
.
|
|
147
|
+
: `Found ${intentResult.matches.length} intent search results for '${trimmedQuery}'${intentResult.analysis.ambiguous ? " (top matches are close; confirm before relying on one)" : ""}. Top: ${paginated
|
|
148
|
+
.slice(0, 5)
|
|
149
|
+
.map((match) => String(match.entity.id ?? ""))
|
|
150
|
+
.join(", ")}${answerLayer ? `. Governing: ${answerLayer.governing.map((req) => req.id).join(", ") || "none found"}` : ""}.`;
|
|
137
151
|
return {
|
|
138
152
|
content: [{ type: "text", text }],
|
|
139
153
|
structuredContent: {
|
|
140
154
|
results: await projectMatches(prolog, paginated, fields),
|
|
141
155
|
count: intentResult.matches.length,
|
|
156
|
+
truncated: offset + paginated.length < intentResult.matches.length,
|
|
142
157
|
queryAnalysis: intentResult.analysis,
|
|
158
|
+
...(answerLayer ? { answer: answerLayer } : {}),
|
|
143
159
|
},
|
|
144
160
|
};
|
|
145
161
|
}
|
|
@@ -162,6 +178,7 @@ export async function executeSearch(input, context) {
|
|
|
162
178
|
structuredContent: {
|
|
163
179
|
results: await projectMatches(prolog, paginated, fields),
|
|
164
180
|
count: matches.length,
|
|
181
|
+
truncated: offset + paginated.length < matches.length,
|
|
165
182
|
},
|
|
166
183
|
};
|
|
167
184
|
}
|
|
@@ -232,7 +249,9 @@ export async function executeStatus(_input, context) {
|
|
|
232
249
|
state: "unavailable",
|
|
233
250
|
errorCode: error instanceof OperationJsonDecodeError
|
|
234
251
|
? error.code
|
|
235
|
-
:
|
|
252
|
+
: error instanceof SwiplResolutionError
|
|
253
|
+
? error.code
|
|
254
|
+
: "engine_status_unavailable",
|
|
236
255
|
detail: message,
|
|
237
256
|
recoveryRequired: false,
|
|
238
257
|
};
|
|
@@ -264,8 +283,13 @@ export async function executeStatus(_input, context) {
|
|
|
264
283
|
entityIds: [],
|
|
265
284
|
detail: engineStatus.detail ??
|
|
266
285
|
"The branch store is structurally readable but the engine status response is unavailable.",
|
|
286
|
+
// implements REQ-prolog-doctor-runtime-report
|
|
287
|
+
// A missing or unusable SWI-Prolog is not fixed by restarting the
|
|
288
|
+
// engine; point at the diagnostic that reports the resolution.
|
|
267
289
|
remediation: {
|
|
268
|
-
command_argv:
|
|
290
|
+
command_argv: engineStatus.errorCode?.startsWith("swipl_")
|
|
291
|
+
? ["kibi", "doctor"]
|
|
292
|
+
: ["kibi", "engine", "stop"],
|
|
269
293
|
applyRequired: false,
|
|
270
294
|
},
|
|
271
295
|
}
|
|
@@ -333,11 +357,46 @@ export async function executeStatus(_input, context) {
|
|
|
333
357
|
: [];
|
|
334
358
|
const bootstrapSourceFiles = Array.isArray(listed) ? listed : [];
|
|
335
359
|
const bootstrapActivation = await classifyActivation(context, bootstrapSourceFiles);
|
|
360
|
+
const incompleteApplications = [];
|
|
361
|
+
if (context.fs?.glob) {
|
|
362
|
+
// Scope the scan to recovery itself: workspace globs intentionally exclude
|
|
363
|
+
// compiled and recovery internals from source discovery.
|
|
364
|
+
const recoveryRoot = path.join(context.workspaceRoot, ".kb", "recovery");
|
|
365
|
+
const journals = await context.fs.glob(["bootstrap-*.json"], {
|
|
366
|
+
cwd: recoveryRoot,
|
|
367
|
+
});
|
|
368
|
+
for (const journalPath of journals) {
|
|
369
|
+
try {
|
|
370
|
+
const journal = JSON.parse(await context.fs.readFile(path.resolve(recoveryRoot, journalPath)));
|
|
371
|
+
if (journal.kind === "bootstrap" &&
|
|
372
|
+
["rejected", "repair_required", "applying"].includes(journal.state))
|
|
373
|
+
incompleteApplications.push({
|
|
374
|
+
journalId: path.basename(journalPath, ".json"),
|
|
375
|
+
state: journal.state,
|
|
376
|
+
appliedActions: (journal.results ?? []).filter((row) => row.outcome === "applied").length,
|
|
377
|
+
failedActions: (journal.results ?? []).filter((row) => row.outcome === "failed"),
|
|
378
|
+
nextOperation: journal.state === "rejected"
|
|
379
|
+
? "kb_plan_bootstrap"
|
|
380
|
+
: "kb_apply_plan",
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
catch (error) {
|
|
384
|
+
incompleteApplications.push({
|
|
385
|
+
journalId: path.basename(journalPath, ".json"),
|
|
386
|
+
state: "unreadable",
|
|
387
|
+
detail: error instanceof Error ? error.message : String(error),
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
}
|
|
336
392
|
const statusWithPlan = {
|
|
337
393
|
...enrichedPayload,
|
|
338
394
|
schemaStatus,
|
|
339
395
|
migrationPlan,
|
|
340
396
|
bootstrap: {
|
|
397
|
+
...(incompleteApplications.length > 0
|
|
398
|
+
? { incompleteApplications }
|
|
399
|
+
: {}),
|
|
341
400
|
activationState: bootstrapActivation.activationState,
|
|
342
401
|
activationMode: bootstrapActivation.activationMode,
|
|
343
402
|
planEligible: bootstrapActivation.activationState === "root_active_thin" &&
|
|
@@ -11,6 +11,7 @@ export * from "./migration-plan.js";
|
|
|
11
11
|
export * from "./symbol-repair-plan.js";
|
|
12
12
|
export * from "./specs/bootstrap.js";
|
|
13
13
|
export * from "./specs/check.js";
|
|
14
|
+
export * from "./specs/composite.js";
|
|
14
15
|
export * from "./specs/impact-review-preparation.js";
|
|
15
16
|
export * from "./specs/discovery.js";
|
|
16
17
|
export * from "./specs/modeling.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/public/operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sCAAsC,CAAC;AACrD,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,mBAAmB,qCAAqC,CAAC;AACzD,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/public/operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sCAAsC,CAAC;AACrD,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,mBAAmB,qCAAqC,CAAC;AACzD,cAAc,mBAAmB,CAAC"}
|
|
@@ -11,6 +11,7 @@ export * from "./migration-plan.js";
|
|
|
11
11
|
export * from "./symbol-repair-plan.js";
|
|
12
12
|
export * from "./specs/bootstrap.js";
|
|
13
13
|
export * from "./specs/check.js";
|
|
14
|
+
export * from "./specs/composite.js";
|
|
14
15
|
export * from "./specs/impact-review-preparation.js";
|
|
15
16
|
export * from "./specs/discovery.js";
|
|
16
17
|
export * from "./specs/modeling.js";
|
|
@@ -69,6 +69,11 @@ export declare function migrationPlanHash(value: unknown): string;
|
|
|
69
69
|
export declare function compareReadyActionIds(left: string, right: string, byId: ReadonlyMap<string, MigrationAction>): number;
|
|
70
70
|
export declare function buildMigrationPlan(input?: PlanInput): MigrationPlan;
|
|
71
71
|
export declare function mergeMigrationPlans(plans: readonly MigrationPlan[]): MigrationPlan;
|
|
72
|
+
/**
|
|
73
|
+
* The same plan without the actions whose code another planner owns, e.g.
|
|
74
|
+
* lifecycle repairs `kibi migrate` plans from authored sources.
|
|
75
|
+
*/
|
|
76
|
+
export declare function withoutActionCodes(plan: MigrationPlan, codes: ReadonlySet<string>): MigrationPlan;
|
|
72
77
|
export declare function migrationAction(input: Partial<MigrationAction> & Pick<MigrationAction, "id" | "code">): MigrationAction;
|
|
73
78
|
/** Migration code for mechanical predicate namespace/alias repairs. */
|
|
74
79
|
export declare const PREDICATE_SCHEMA_ALIGNMENT_CODE = "predicate_schema_alignment";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-plan.d.ts","sourceRoot":"","sources":["../../../src/public/operations/migration-plan.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migration-plan.d.ts","sourceRoot":"","sources":["../../../src/public/operations/migration-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import * as path from "node:path";
|
|
|
4
4
|
import { legacyConfigExists } from "../../utils/config.js";
|
|
5
5
|
import { readKbManifestStatus } from "../../utils/kb-manifest.js";
|
|
6
6
|
import { getSchemaVersionStatus, normalizeSchemaVersion, } from "../../utils/schema-version.js";
|
|
7
|
+
import { lifecycleActionsFromViolations, schema6ReviewActionsFromCheck, } from "./schema6-check-actions.js";
|
|
7
8
|
export const MIGRATION_PLAN_VERSION = "kibi.migration-plan.v2";
|
|
8
9
|
function isRecord(value) {
|
|
9
10
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
@@ -168,6 +169,22 @@ export function mergeMigrationPlans(plans) {
|
|
|
168
169
|
diagnostics: [...diagnostics],
|
|
169
170
|
});
|
|
170
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* The same plan without the actions whose code another planner owns, e.g.
|
|
174
|
+
* lifecycle repairs `kibi migrate` plans from authored sources.
|
|
175
|
+
*/
|
|
176
|
+
// implements REQ-agent-guided-migration-orchestration
|
|
177
|
+
export function withoutActionCodes(plan, codes) {
|
|
178
|
+
if (!plan.actions.some((action) => codes.has(action.code)))
|
|
179
|
+
return plan;
|
|
180
|
+
return buildMigrationPlan({
|
|
181
|
+
expected: plan.expected,
|
|
182
|
+
evaluatedDomains: plan.scope.evaluatedDomains,
|
|
183
|
+
incompleteDomains: plan.scope.incompleteDomains,
|
|
184
|
+
actions: plan.actions.filter((action) => !codes.has(action.code)),
|
|
185
|
+
diagnostics: plan.diagnostics,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
171
188
|
function actionDefaults(input) {
|
|
172
189
|
return {
|
|
173
190
|
id: input.id ?? "migration-action-unknown",
|
|
@@ -241,10 +258,14 @@ function predicateSchemaAlignmentAction(diagnostic) {
|
|
|
241
258
|
}
|
|
242
259
|
/** Migration code for mechanical predicate namespace/alias repairs. */
|
|
243
260
|
export const PREDICATE_SCHEMA_ALIGNMENT_CODE = "predicate_schema_alignment";
|
|
244
|
-
// implements REQ-agent-guided-migration-orchestration, REQ-kibi-predicate-vocabulary-migration
|
|
261
|
+
// implements REQ-agent-guided-migration-orchestration, REQ-kibi-predicate-vocabulary-migration, REQ-cli-schema-migration
|
|
245
262
|
export function buildActionsFromCheck(input) {
|
|
246
263
|
const actions = [];
|
|
264
|
+
const lifecycle = lifecycleActionsFromViolations(input.violations ?? []);
|
|
265
|
+
actions.push(...lifecycle.actions.map(migrationAction));
|
|
247
266
|
for (const [index, violation] of (input.violations ?? []).entries()) {
|
|
267
|
+
if (lifecycle.consumed.has(index))
|
|
268
|
+
continue;
|
|
248
269
|
const rule = typeof violation.rule === "string" ? violation.rule : "check";
|
|
249
270
|
const entityId = typeof violation.entityId === "string" ? violation.entityId : "";
|
|
250
271
|
const suggestion = typeof violation.suggestion === "string"
|
|
@@ -263,7 +284,11 @@ export function buildActionsFromCheck(input) {
|
|
|
263
284
|
dispositionRequired: false,
|
|
264
285
|
}));
|
|
265
286
|
}
|
|
287
|
+
const reviews = schema6ReviewActionsFromCheck(input.qualityDiagnostics ?? []);
|
|
288
|
+
actions.push(...reviews.actions.map(migrationAction));
|
|
266
289
|
for (const [index, diagnostic] of (input.qualityDiagnostics ?? []).entries()) {
|
|
290
|
+
if (reviews.consumed.has(index))
|
|
291
|
+
continue;
|
|
267
292
|
const id = typeof diagnostic.id === "string" ? diagnostic.id : "quality";
|
|
268
293
|
const entityId = typeof diagnostic.entityId === "string" ? diagnostic.entityId : "";
|
|
269
294
|
const suggestion = typeof diagnostic.suggestion === "string"
|