kibi-cli 2.2.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli-json-command.d.ts.map +1 -1
- package/dist/cli-json-command.js +2 -2
- package/dist/cli-operation-loader.d.ts.map +1 -1
- package/dist/cli-operation-loader.js +3 -0
- package/dist/cli-operation-metadata.d.ts +5 -1
- package/dist/cli-operation-metadata.d.ts.map +1 -1
- package/dist/cli-operation-metadata.js +6 -1
- package/dist/cli-register-maintenance.d.ts.map +1 -1
- package/dist/cli-register-maintenance.js +7 -0
- package/dist/cli-register-reporting.d.ts.map +1 -1
- package/dist/cli-register-reporting.js +4 -0
- package/dist/commands/check-diff.d.ts +5 -0
- package/dist/commands/check-diff.d.ts.map +1 -0
- package/dist/commands/check-diff.js +62 -0
- package/dist/commands/check-generated.d.ts.map +1 -1
- package/dist/commands/check-generated.js +41 -18
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +210 -73
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +63 -29
- package/dist/commands/github-init.d.ts.map +1 -1
- package/dist/commands/github-init.js +9 -2
- 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/sync/manifest.d.ts.map +1 -1
- package/dist/commands/sync/manifest.js +3 -1
- package/dist/engine.d.ts +15 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +252 -52
- package/dist/extractors/symbols-coordinator.d.ts +7 -0
- package/dist/extractors/symbols-coordinator.d.ts.map +1 -1
- package/dist/extractors/symbols-coordinator.js +75 -39
- package/dist/operations/bootstrap/candidates.js +1 -1
- package/dist/operations/bootstrap/discovery.js +1 -1
- package/dist/operations/bootstrap/generate.d.ts.map +1 -1
- package/dist/operations/bootstrap/generate.js +21 -5
- 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 +95 -0
- 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 +60 -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/modeling/predicate-inference-1.js +1 -1
- package/dist/operations/mutation/source-authoring.d.ts.map +1 -1
- package/dist/operations/mutation/source-authoring.js +175 -53
- package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-refresh.js +4 -1
- package/dist/operations/mutation/upsert.d.ts.map +1 -1
- package/dist/operations/mutation/upsert.js +5 -7
- package/dist/operations/planning/apply-plan.d.ts.map +1 -1
- package/dist/operations/planning/apply-plan.js +5 -9
- package/dist/operations/proof/ingest-proof.d.ts.map +1 -1
- package/dist/operations/proof/ingest-proof.js +1 -0
- package/dist/operations/semantic-advisor/analysis-receipt.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/analysis-receipt.js +7 -1
- package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
- package/dist/operations/semantic-advisor/analyze-prose.js +26 -4
- 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 +7 -1
- package/dist/performance-trace.d.ts +17 -0
- package/dist/performance-trace.d.ts.map +1 -0
- package/dist/performance-trace.js +134 -0
- package/dist/plugins/approved-source-analyzers.d.ts +13 -0
- package/dist/plugins/approved-source-analyzers.d.ts.map +1 -0
- package/dist/plugins/approved-source-analyzers.generated.d.ts +71 -0
- package/dist/plugins/approved-source-analyzers.generated.d.ts.map +1 -0
- package/dist/plugins/approved-source-analyzers.generated.js +77 -0
- package/dist/plugins/approved-source-analyzers.js +3 -0
- package/dist/plugins/maintenance-source-analysis.d.ts +14 -0
- package/dist/plugins/maintenance-source-analysis.d.ts.map +1 -0
- package/dist/plugins/maintenance-source-analysis.js +191 -0
- package/dist/plugins/registry.d.ts +2 -1
- package/dist/plugins/registry.d.ts.map +1 -1
- package/dist/plugins/registry.js +6 -1
- package/dist/plugins/source-analysis-service.d.ts +36 -1
- package/dist/plugins/source-analysis-service.d.ts.map +1 -1
- package/dist/plugins/source-analysis-service.js +184 -27
- package/dist/plugins/source-change-analysis.d.ts +15 -0
- package/dist/plugins/source-change-analysis.d.ts.map +1 -0
- package/dist/plugins/source-change-analysis.js +54 -0
- package/dist/plugins/source-classification.d.ts +41 -0
- package/dist/plugins/source-classification.d.ts.map +1 -0
- package/dist/plugins/source-classification.js +490 -0
- package/dist/prolog/swipl-resolver.d.ts +88 -0
- package/dist/prolog/swipl-resolver.d.ts.map +1 -0
- package/dist/prolog/swipl-resolver.js +446 -0
- package/dist/prolog.d.ts +15 -1
- package/dist/prolog.d.ts.map +1 -1
- package/dist/prolog.js +67 -6
- 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/impact/analyzer.d.ts.map +1 -1
- package/dist/public/impact/analyzer.js +56 -5
- package/dist/public/impact/diagnostics.d.ts.map +1 -1
- package/dist/public/impact/diagnostics.js +3 -1
- package/dist/public/impact/manifest.d.ts.map +1 -1
- package/dist/public/impact/manifest.js +15 -1
- package/dist/public/impact/source-changes.d.ts.map +1 -1
- package/dist/public/impact/source-changes.js +35 -27
- package/dist/public/impact/types.d.ts +2 -0
- package/dist/public/impact/types.d.ts.map +1 -1
- package/dist/public/operations/catalog.d.ts +117 -1
- package/dist/public/operations/catalog.d.ts.map +1 -1
- package/dist/public/operations/catalog.js +2 -0
- package/dist/public/operations/contracts.d.ts.map +1 -1
- package/dist/public/operations/contracts.js +309 -8
- package/dist/public/operations/impact-review-preparation.d.ts +14 -0
- package/dist/public/operations/impact-review-preparation.d.ts.map +1 -0
- package/dist/public/operations/impact-review-preparation.js +379 -0
- package/dist/public/operations/index.d.ts +2 -0
- package/dist/public/operations/index.d.ts.map +1 -1
- package/dist/public/operations/index.js +2 -0
- package/dist/public/operations/node-ports.d.ts.map +1 -1
- package/dist/public/operations/node-ports.js +1 -35
- package/dist/public/operations/proof-receipt-projection.d.ts +5 -0
- package/dist/public/operations/proof-receipt-projection.d.ts.map +1 -0
- package/dist/public/operations/proof-receipt-projection.js +36 -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/impact-review-preparation.d.ts +47 -0
- package/dist/public/operations/specs/impact-review-preparation.d.ts.map +1 -0
- package/dist/public/operations/specs/impact-review-preparation.js +43 -0
- 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/skills/kibi-bootstrap/SKILL.md +47 -11
- package/dist/public/skills/kibi-bootstrap/resources/bootstrap.md +6 -1
- package/dist/public/skills/kibi-usage/SKILL.md +14 -0
- package/dist/public/skills/kibi-usage/resources/operation-access.md +5 -0
- package/dist/public/telemetry-acceptance.d.ts +8 -0
- package/dist/public/telemetry-acceptance.d.ts.map +1 -1
- package/dist/public/telemetry-acceptance.js +10 -0
- package/dist/traceability/analysis-gate.d.ts +39 -0
- package/dist/traceability/analysis-gate.d.ts.map +1 -0
- package/dist/traceability/analysis-gate.js +51 -0
- package/dist/traceability/git-change-snapshot.d.ts +27 -0
- package/dist/traceability/git-change-snapshot.d.ts.map +1 -0
- package/dist/traceability/git-change-snapshot.js +411 -0
- package/dist/traceability/git-staged.d.ts +5 -1
- package/dist/traceability/git-staged.d.ts.map +1 -1
- package/dist/traceability/git-staged.js +16 -11
- package/dist/traceability/impact-evaluator.d.ts +54 -0
- package/dist/traceability/impact-evaluator.d.ts.map +1 -0
- package/dist/traceability/impact-evaluator.js +270 -0
- package/dist/traceability/impact-git-tree.d.ts +12 -0
- package/dist/traceability/impact-git-tree.d.ts.map +1 -0
- package/dist/traceability/impact-git-tree.js +46 -0
- package/dist/traceability/impact-knowledge.d.ts +16 -0
- package/dist/traceability/impact-knowledge.d.ts.map +1 -0
- package/dist/traceability/impact-knowledge.js +165 -0
- package/dist/traceability/impact-policy.d.ts +15 -0
- package/dist/traceability/impact-policy.d.ts.map +1 -0
- package/dist/traceability/impact-policy.js +48 -0
- package/dist/traceability/impact-policy.v1.schema.json +48 -0
- package/dist/traceability/impact-pr-diff.d.ts +5 -0
- package/dist/traceability/impact-pr-diff.d.ts.map +1 -0
- package/dist/traceability/impact-pr-diff.js +83 -0
- package/dist/traceability/impact-record-validation.d.ts +9 -0
- package/dist/traceability/impact-record-validation.d.ts.map +1 -0
- package/dist/traceability/impact-record-validation.js +113 -0
- package/dist/traceability/impact-review.d.ts +148 -0
- package/dist/traceability/impact-review.d.ts.map +1 -0
- package/dist/traceability/impact-review.js +494 -0
- package/dist/traceability/impact-review.schema.json +365 -0
- package/dist/traceability/impact-side-evidence.d.ts +13 -0
- package/dist/traceability/impact-side-evidence.d.ts.map +1 -0
- package/dist/traceability/impact-side-evidence.js +240 -0
- package/dist/traceability/reviewed-coordinate-refresh.d.ts +10 -0
- package/dist/traceability/reviewed-coordinate-refresh.d.ts.map +1 -0
- package/dist/traceability/reviewed-coordinate-refresh.js +49 -0
- package/dist/traceability/snapshot-knowledge.d.ts +4 -0
- package/dist/traceability/snapshot-knowledge.d.ts.map +1 -0
- package/dist/traceability/snapshot-knowledge.js +98 -0
- package/dist/traceability/staged-file-coverage.d.ts +23 -0
- package/dist/traceability/staged-file-coverage.d.ts.map +1 -1
- package/dist/traceability/staged-impact-contract.d.ts.map +1 -1
- package/dist/traceability/staged-impact-contract.js +2 -16
- package/dist/traceability/staged-symbols-manifest.d.ts +4 -0
- package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
- package/dist/traceability/staged-symbols-manifest.js +17 -6
- package/dist/traceability/symbol-extract.d.ts +3 -5
- package/dist/traceability/symbol-extract.d.ts.map +1 -1
- package/dist/traceability/symbol-extract.js +49 -34
- package/dist/traceability/temp-kb.d.ts +1 -1
- package/dist/traceability/temp-kb.d.ts.map +1 -1
- package/dist/traceability/temp-kb.js +49 -13
- package/dist/traceability/trusted-pr-event.d.ts +13 -0
- package/dist/traceability/trusted-pr-event.d.ts.map +1 -0
- package/dist/traceability/trusted-pr-event.js +105 -0
- package/dist/utils/canonical-path.d.ts +3 -0
- package/dist/utils/canonical-path.d.ts.map +1 -0
- package/dist/utils/canonical-path.js +33 -0
- package/package.json +14 -5
- package/src/public/diagnostic-usage.ts +59 -1
- package/src/public/impact/analyzer.ts +88 -5
- package/src/public/impact/diagnostics.ts +7 -5
- package/src/public/impact/manifest.ts +14 -1
- package/src/public/impact/source-changes.ts +39 -34
- package/src/public/impact/types.ts +5 -0
- package/src/public/operations/catalog.ts +2 -0
- package/src/public/operations/contracts.ts +385 -9
- package/src/public/operations/impact-review-preparation.ts +548 -0
- package/src/public/operations/index.ts +2 -0
- package/src/public/operations/node-ports.ts +1 -39
- package/src/public/operations/proof-receipt-projection.ts +39 -0
- package/src/public/operations/specs/bootstrap.ts +78 -4
- package/src/public/operations/specs/impact-review-preparation.ts +46 -0
- package/src/public/operations/symbol-repair-plan.ts +3 -1
- package/src/public/operations/types.ts +1 -0
- package/src/public/skills/kibi-bootstrap/SKILL.md +47 -11
- package/src/public/skills/kibi-bootstrap/resources/bootstrap.md +6 -1
- package/src/public/skills/kibi-usage/SKILL.md +14 -0
- package/src/public/skills/kibi-usage/resources/operation-access.md +5 -0
- package/src/public/telemetry-acceptance.ts +9 -0
- package/src/traceability/impact-policy.v1.schema.json +48 -0
- package/src/traceability/impact-review.schema.json +365 -0
- package/templates/github/kibi-badge.yml +0 -4
- package/templates/github/kibi-report.yml +0 -4
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { executePlanBootstrap } from "../../../operations/bootstrap/generate.js";
|
|
2
|
+
import { KNOWLEDGE_SOURCE_AUTHORITIES, KNOWLEDGE_SOURCE_KINDS, } from "../../../operations/bootstrap/types.js";
|
|
2
3
|
export { executePlanBootstrap } from "../../../operations/bootstrap/generate.js";
|
|
3
4
|
// implements REQ-KIBI-BOOTSTRAP-PLAN
|
|
4
5
|
export const planBootstrapSpec = {
|
|
5
6
|
name: "kb_plan_bootstrap",
|
|
6
7
|
cliName: "plan-bootstrap",
|
|
7
|
-
description: "Generate a deterministic, snapshot-bound kibi.bootstrap-plan.v1 for repository onboarding. Read-only analysis returns evidence, bounded context questions, exact dependency-ordered actions, a canonical plan hash, and no mutation side effects.",
|
|
8
|
+
description: "Generate a deterministic, snapshot-bound kibi.bootstrap-plan.v1 for repository onboarding. Read-only analysis of the repository plus any declared knowledge sources and cited intent claims returns evidence, bounded context questions, exact dependency-ordered actions, a canonical plan hash, and no mutation side effects.",
|
|
8
9
|
businessInputSchema: {
|
|
9
10
|
type: "object",
|
|
10
11
|
properties: {
|
|
@@ -63,6 +64,70 @@ export const planBootstrapSpec = {
|
|
|
63
64
|
items: { type: "string" },
|
|
64
65
|
description: "Optional verification commands, documents, or checkpoints to reference in the output.",
|
|
65
66
|
},
|
|
67
|
+
knowledgeSources: {
|
|
68
|
+
type: "array",
|
|
69
|
+
maxItems: 50,
|
|
70
|
+
description: "Knowledge sources outside the code that the human confirmed during the bootstrap interview (issue trackers, wikis, specs, decision logs). Kibi never contacts them; the agent reads them through its own connectors and cites them from intentClaims. Bound into the plan hash.",
|
|
71
|
+
items: {
|
|
72
|
+
type: "object",
|
|
73
|
+
required: ["id", "kind", "title", "locator", "authority"],
|
|
74
|
+
additionalProperties: false,
|
|
75
|
+
properties: {
|
|
76
|
+
id: {
|
|
77
|
+
type: "string",
|
|
78
|
+
pattern: "^[a-z0-9][a-z0-9-]*$",
|
|
79
|
+
description: "Stable kebab-case handle that intentClaims cite, for example jira-payments.",
|
|
80
|
+
},
|
|
81
|
+
kind: { type: "string", enum: [...KNOWLEDGE_SOURCE_KINDS] },
|
|
82
|
+
title: { type: "string", minLength: 1 },
|
|
83
|
+
locator: {
|
|
84
|
+
type: "string",
|
|
85
|
+
minLength: 1,
|
|
86
|
+
description: "Where the source lives: a URL, project key, space name, or repo-relative path.",
|
|
87
|
+
},
|
|
88
|
+
authority: {
|
|
89
|
+
type: "string",
|
|
90
|
+
enum: [...KNOWLEDGE_SOURCE_AUTHORITIES],
|
|
91
|
+
description: "The human's call: authoritative claims become higher-confidence candidates, supporting claims lower ones, and stale sources are cited but never produce candidates.",
|
|
92
|
+
},
|
|
93
|
+
connector: {
|
|
94
|
+
type: "string",
|
|
95
|
+
description: "Optional name of the MCP server or tool the agent used to read the source.",
|
|
96
|
+
},
|
|
97
|
+
notes: { type: "string" },
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
intentClaims: {
|
|
102
|
+
type: "array",
|
|
103
|
+
maxItems: 200,
|
|
104
|
+
description: "Statements of product intent the agent harvested from knowledgeSources, each citing its source. Normative claims the strict modeler can ground become cited req candidates; the rest become explicit authoring follow-ups. Bound into the plan hash.",
|
|
105
|
+
items: {
|
|
106
|
+
type: "object",
|
|
107
|
+
required: ["statement", "sourceId", "reference"],
|
|
108
|
+
additionalProperties: false,
|
|
109
|
+
properties: {
|
|
110
|
+
statement: {
|
|
111
|
+
type: "string",
|
|
112
|
+
minLength: 1,
|
|
113
|
+
description: "One normative statement in the source's meaning, for example 'Refunds must not exceed the original charge.'",
|
|
114
|
+
},
|
|
115
|
+
sourceId: {
|
|
116
|
+
type: "string",
|
|
117
|
+
description: "The id of a declared knowledge source.",
|
|
118
|
+
},
|
|
119
|
+
reference: {
|
|
120
|
+
type: "string",
|
|
121
|
+
minLength: 1,
|
|
122
|
+
description: "Exact citation inside the source: a ticket key, page URL, or section anchor.",
|
|
123
|
+
},
|
|
124
|
+
excerpt: {
|
|
125
|
+
type: "string",
|
|
126
|
+
description: "Optional short quote supporting the claim.",
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
},
|
|
66
131
|
},
|
|
67
132
|
},
|
|
68
133
|
},
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { executePrepareImpactReview } from "../impact-review-preparation.js";
|
|
2
|
+
export declare const prepareImpactReviewSpec: {
|
|
3
|
+
readonly name: "kb_prepare_impact_review";
|
|
4
|
+
readonly cliName: "prepare-impact-review";
|
|
5
|
+
readonly description: "Prepare complete content-bound impact-review authoring inputs from the current staged snapshot or explicitly selected immutable Git commits. Returns strict reviewer schemas and an unauthored template; it does not decide, approve, sign, stage, or prove the review.";
|
|
6
|
+
readonly businessInputSchema: {
|
|
7
|
+
readonly type: "object";
|
|
8
|
+
readonly additionalProperties: false;
|
|
9
|
+
readonly required: readonly ["scope"];
|
|
10
|
+
readonly properties: {
|
|
11
|
+
readonly scope: {
|
|
12
|
+
readonly oneOf: readonly [{
|
|
13
|
+
readonly type: "object";
|
|
14
|
+
readonly additionalProperties: false;
|
|
15
|
+
readonly required: readonly ["kind"];
|
|
16
|
+
readonly properties: {
|
|
17
|
+
readonly kind: {
|
|
18
|
+
readonly const: "staged";
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
}, {
|
|
22
|
+
readonly type: "object";
|
|
23
|
+
readonly additionalProperties: false;
|
|
24
|
+
readonly required: readonly ["kind", "baseCommit", "headCommit"];
|
|
25
|
+
readonly properties: {
|
|
26
|
+
readonly kind: {
|
|
27
|
+
readonly const: "diff";
|
|
28
|
+
};
|
|
29
|
+
readonly baseCommit: {
|
|
30
|
+
readonly type: "string";
|
|
31
|
+
readonly pattern: "^(?:[a-f0-9]{40}|[a-f0-9]{64})$";
|
|
32
|
+
};
|
|
33
|
+
readonly headCommit: {
|
|
34
|
+
readonly type: "string";
|
|
35
|
+
readonly pattern: "^(?:[a-f0-9]{40}|[a-f0-9]{64})$";
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
}];
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
readonly requiresProlog: false;
|
|
43
|
+
readonly effects: readonly ["workspace-read", "kb-read"];
|
|
44
|
+
readonly agentVisibleStructuredData: true;
|
|
45
|
+
readonly execute: typeof executePrepareImpactReview;
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=impact-review-preparation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"impact-review-preparation.d.ts","sourceRoot":"","sources":["../../../../src/public/operations/specs/impact-review-preparation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAG7E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CF,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { executePrepareImpactReview } from "../impact-review-preparation.js";
|
|
2
|
+
export const prepareImpactReviewSpec = {
|
|
3
|
+
name: "kb_prepare_impact_review",
|
|
4
|
+
cliName: "prepare-impact-review",
|
|
5
|
+
description: "Prepare complete content-bound impact-review authoring inputs from the current staged snapshot or explicitly selected immutable Git commits. Returns strict reviewer schemas and an unauthored template; it does not decide, approve, sign, stage, or prove the review.",
|
|
6
|
+
businessInputSchema: {
|
|
7
|
+
type: "object",
|
|
8
|
+
additionalProperties: false,
|
|
9
|
+
required: ["scope"],
|
|
10
|
+
properties: {
|
|
11
|
+
scope: {
|
|
12
|
+
oneOf: [
|
|
13
|
+
{
|
|
14
|
+
type: "object",
|
|
15
|
+
additionalProperties: false,
|
|
16
|
+
required: ["kind"],
|
|
17
|
+
properties: { kind: { const: "staged" } },
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
type: "object",
|
|
21
|
+
additionalProperties: false,
|
|
22
|
+
required: ["kind", "baseCommit", "headCommit"],
|
|
23
|
+
properties: {
|
|
24
|
+
kind: { const: "diff" },
|
|
25
|
+
baseCommit: {
|
|
26
|
+
type: "string",
|
|
27
|
+
pattern: "^(?:[a-f0-9]{40}|[a-f0-9]{64})$",
|
|
28
|
+
},
|
|
29
|
+
headCommit: {
|
|
30
|
+
type: "string",
|
|
31
|
+
pattern: "^(?:[a-f0-9]{40}|[a-f0-9]{64})$",
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
requiresProlog: false,
|
|
40
|
+
effects: ["workspace-read", "kb-read"],
|
|
41
|
+
agentVisibleStructuredData: true,
|
|
42
|
+
execute: executePrepareImpactReview,
|
|
43
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol-repair-plan.d.ts","sourceRoot":"","sources":["../../../src/public/operations/symbol-repair-plan.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,eAAO,MAAM,0BAA0B,EAAG,4BAAqC,CAAC;AAEhF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,OAAO,0BAA0B,CAAC;IAC3C,QAAQ,EAAE,IAAI,CAAC;IACf,cAAc,EAAE,KAAK,CAAC;IACtB,OAAO,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;CACvD,CAAC,CAAC;AAoBH,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EACF,aAAa,GACb,eAAe,GACf,gBAAgB,GAChB,oBAAoB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,gFAAgF;AAChF,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,EACrD,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"symbol-repair-plan.d.ts","sourceRoot":"","sources":["../../../src/public/operations/symbol-repair-plan.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,eAAO,MAAM,0BAA0B,EAAG,4BAAqC,CAAC;AAEhF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,OAAO,0BAA0B,CAAC;IAC3C,QAAQ,EAAE,IAAI,CAAC;IACf,cAAc,EAAE,KAAK,CAAC;IACtB,OAAO,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;CACvD,CAAC,CAAC;AAoBH,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EACF,aAAa,GACb,eAAe,GACf,gBAAgB,GAChB,oBAAoB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,gFAAgF;AAChF,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,EACrD,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CA6DhD;AAED,kFAAkF;AAClF,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,EAClD,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CA+DvD;AAwCD,sEAAsE;AACtE,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,EAClD,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAmGvC"}
|
|
@@ -35,7 +35,9 @@ export async function inspectCoordinateRepairs(symbols, workspaceRoot) {
|
|
|
35
35
|
: {}),
|
|
36
36
|
};
|
|
37
37
|
});
|
|
38
|
-
const enriched = await enrichSymbolCoordinates(entries, workspaceRoot
|
|
38
|
+
const enriched = await enrichSymbolCoordinates(entries, workspaceRoot, {
|
|
39
|
+
allowPythonDecoratorCoordinates: true,
|
|
40
|
+
});
|
|
39
41
|
return new Map(entries.map((entry, index) => {
|
|
40
42
|
const sourceFile = entry.sourceFile ?? null;
|
|
41
43
|
let source = null;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { OperationContext } from "./runtime-types.js";
|
|
2
2
|
export type { OperationContext };
|
|
3
|
-
export type OperationName = "kb_query" | "kb_search" | "kb_status" | "kb_skills_list" | "kb_skills_load" | "kb_skills_read" | "kb_find_gaps" | "kb_coverage" | "kb_graph" | "kb_sparql_remote" | "kb_semantic_advisor" | "kb_upsert" | "kb_validate_upsert" | "kb_delete" | "kb_check" | "kb_model_requirement" | "kb_suggest_predicates" | "kb_plan_bootstrap" | "kb_compile_intent" | "kb_apply_plan" | "kb_ingest_proof";
|
|
3
|
+
export type OperationName = "kb_query" | "kb_search" | "kb_status" | "kb_skills_list" | "kb_skills_load" | "kb_skills_read" | "kb_find_gaps" | "kb_coverage" | "kb_graph" | "kb_sparql_remote" | "kb_semantic_advisor" | "kb_upsert" | "kb_validate_upsert" | "kb_delete" | "kb_check" | "kb_prepare_impact_review" | "kb_model_requirement" | "kb_suggest_predicates" | "kb_plan_bootstrap" | "kb_compile_intent" | "kb_apply_plan" | "kb_ingest_proof";
|
|
4
4
|
export type OperationEffect = "local-read" | "kb-read" | "workspace-read" | "network-read" | "kb-write" | "workspace-write";
|
|
5
5
|
export type OperationEffectDeclaration = Readonly<{
|
|
6
6
|
kind: OperationEffect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/public/operations/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/public/operations/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,gBAAgB,EAAE,CAAC;AACjC,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,WAAW,GACX,WAAW,GACX,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,aAAa,GACb,UAAU,GACV,kBAAkB,GAClB,qBAAqB,GACrB,WAAW,GACX,oBAAoB,GACpB,WAAW,GACX,UAAU,GACV,0BAA0B,GAC1B,sBAAsB,GACtB,uBAAuB,GACvB,mBAAmB,GACnB,mBAAmB,GACnB,eAAe,GACf,iBAAiB,CAAC;AAEtB,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ,SAAS,GACT,gBAAgB,GAChB,cAAc,GACd,UAAU,GACV,iBAAiB,CAAC;AAEtB,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC;IAChD,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;CAChC;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,wBAAwB,GAAG,OAAO,CAAC;AAE9E,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,IAAI;IACpC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,OAAO,EAAE,SAAS;QACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,gBAAgB,CAAC;QAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;KAC7B,EAAE,CAAC;IACJ,QAAQ,CAAC,WAAW,EAAE,SAAS;QAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;QACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;KAC3B,EAAE,CAAC;IACJ,QAAQ,CAAC,WAAW,EAAE,SAAS;QAC7B,QAAQ,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,CAAC;QAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;KAC5B,EAAE,CAAC;IACJ,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;KAC5B,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,aAAa,CAC5B,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACrC,CAAC,GAAG,OAAO;IAEX,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAC9C,uEAAuE;IACvE,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,0BAA0B,EAAE,CAAC;IACjE,sEAAsE;IACtE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,wDAAwD;IACxD,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,OAAO,EAAE;QAChB,cAAc,CACZ,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;KAChC,CAAC,gBAAgB,CAAC,CAAC;CACrB;AAED,6EAA6E;AAC7E,MAAM,MAAM,qBAAqB,CAC/B,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACrC,CAAC,GAAG,OAAO,IACT,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IACxB,QAAQ,CAAC,eAAe,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAChE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC1D,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: kibi-bootstrap
|
|
3
3
|
name: kibi-bootstrap
|
|
4
|
-
description: Bootstrap Kibi from the current Git checkout with
|
|
5
|
-
version: 3.
|
|
4
|
+
description: Bootstrap Kibi from the current Git checkout and the project's existing knowledge sources, with a source interview, cited intent claims, preview approval, source-first writes, and repair-safe completion.
|
|
5
|
+
version: 3.1.0
|
|
6
6
|
kibiCompatibility: ">=1.0.0"
|
|
7
7
|
tags:
|
|
8
8
|
- kibi
|
|
@@ -18,20 +18,56 @@ resources:
|
|
|
18
18
|
## Goal
|
|
19
19
|
|
|
20
20
|
Seed branch-local Kibi knowledge for an attached but thin repository without
|
|
21
|
-
creating a parallel human-maintained ticket system.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
creating a parallel human-maintained ticket system. Code shows what the
|
|
22
|
+
system does, not why; intent usually lives elsewhere (issue trackers, wikis,
|
|
23
|
+
specs, decision logs). Lead a short interview to find those sources, harvest
|
|
24
|
+
cited intent from them, and let the planner consolidate it with repository
|
|
25
|
+
evidence. Agents own reading and translation; humans name the sources,
|
|
26
|
+
judge their authority, and resolve genuine ambiguity. A seeded repository
|
|
27
|
+
hands off to the normal Kibi workflow.
|
|
25
28
|
|
|
26
29
|
## Interface and preview
|
|
27
30
|
|
|
28
31
|
Use the visible approved MCP surface or the trusted project-local CLI as equal
|
|
29
|
-
peer interfaces. If neither is available, stop.
|
|
30
|
-
|
|
32
|
+
peer interfaces. If neither is available, stop. Interview first, then plan,
|
|
33
|
+
then preview the exact plan for approval.
|
|
34
|
+
|
|
35
|
+
## Interview first
|
|
36
|
+
|
|
37
|
+
Before planning:
|
|
38
|
+
|
|
39
|
+
1. Inventory what you can already read: your own MCP connectors and tools
|
|
40
|
+
(issue trackers such as Jira, YouTrack, Linear, or GitHub Issues; wikis such
|
|
41
|
+
as Confluence or Notion; drives and design tools), and in-repo docs, ADRs,
|
|
42
|
+
and specs.
|
|
43
|
+
2. Ask the human, in one message: what the repository is for; which of those
|
|
44
|
+
sources hold product intent; which are authoritative, supporting, or stale;
|
|
45
|
+
what is missing; and which product areas matter first. If an important
|
|
46
|
+
source has no connector, say which one and suggest connecting it, then
|
|
47
|
+
continue with what is reachable. Never invent access you lack.
|
|
48
|
+
3. Read the confirmed, non-stale sources through your connectors. Harvest one
|
|
49
|
+
normative statement per behavior, each citing its source and an exact
|
|
50
|
+
reference (ticket key, page URL, or section anchor). Keep the source's
|
|
51
|
+
meaning; do not merge, generalize, or resolve conflicts yourself.
|
|
52
|
+
|
|
53
|
+
Declare the result in `bootstrapContext`: `projectSummary`,
|
|
54
|
+
`knowledgeSources` (id, kind, title, locator, authority, optional connector),
|
|
55
|
+
and `intentClaims` (statement, sourceId, reference, optional excerpt). Kibi
|
|
56
|
+
never contacts those sources; it binds what you declare into the plan hash.
|
|
57
|
+
|
|
58
|
+
## Plan and approval
|
|
59
|
+
|
|
60
|
+
Run `kb_plan_bootstrap` (or `plan-bootstrap --input`) read-only with that
|
|
61
|
+
context. Grounded authoritative or supporting claims become cited `req`
|
|
62
|
+
candidates; claims the strict modeler cannot ground come back as authoring
|
|
63
|
+
follow-ups; stale sources produce no candidates; undeclared sources are
|
|
64
|
+
reported in diagnostics. If the plan returns `needs_context`, ask only its
|
|
31
65
|
bounded questions (never more than four), then rerun the planner. Show the
|
|
32
|
-
complete returned `structuredContent.plan`, including its canonical hash
|
|
33
|
-
|
|
34
|
-
`kb_apply_plan`; do not reconstruct
|
|
66
|
+
complete returned `structuredContent.plan`, including its canonical hash and
|
|
67
|
+
which candidates cite which sources, and get explicit approval before any
|
|
68
|
+
write. Pass that plan object unchanged to `kb_apply_plan`; do not reconstruct
|
|
69
|
+
it from preview fields. When a claim contradicts the code or another claim,
|
|
70
|
+
put it to the human instead of choosing.
|
|
35
71
|
|
|
36
72
|
For CLI JSON, use the trusted route with `--input` (for example
|
|
37
73
|
`printf '%s\n' '{}' | kibi status --input -`); MCP and CLI are semantic peers.
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# Bootstrap resource
|
|
2
2
|
|
|
3
|
-
`kb_plan_bootstrap` is read-only and returns `kibi.bootstrap-plan.v1`.
|
|
3
|
+
`kb_plan_bootstrap` is read-only and returns `kibi.bootstrap-plan.v1`. Declared
|
|
4
|
+
`knowledgeSources` and cited `intentClaims` are part of `declaredContext` and
|
|
5
|
+
therefore of the plan hash; a candidate built from a claim has `sourceKind:
|
|
6
|
+
intent_claim` and evidence rows `intent_claim:<sourceId>:<reference>`,
|
|
7
|
+
`knowledge_source:<kind>:<locator>`, and `source_authority:<authority>`. Its
|
|
8
|
+
requirement keeps the citation as `text_ref: <sourceId>:<reference>`. Review
|
|
4
9
|
candidate evidence, exact actions, dependencies, expected snapshots, source
|
|
5
10
|
hashes, bounded questions, diagnostics, and the canonical `planHash` before
|
|
6
11
|
approving. A preview does not authorize source edits. After approval, pass the
|
|
@@ -56,6 +56,20 @@ printf '%s\n' '{"query":"checkout","limit":10}' | npx --no-install kibi search -
|
|
|
56
56
|
Read `resources/operation-access.md` for the route, result version, effects,
|
|
57
57
|
mutability, and Prolog requirements of each operation.
|
|
58
58
|
|
|
59
|
+
## Working in a git worktree or another directory
|
|
60
|
+
|
|
61
|
+
Kibi MCP servers start in one project and answer from its knowledge base.
|
|
62
|
+
Every Kibi MCP tool accepts `workspaceRoot`: when your working directory is not
|
|
63
|
+
the project the server started in (a git worktree, a sibling checkout), pass
|
|
64
|
+
your working directory as `workspaceRoot` on every call. Host plugins with
|
|
65
|
+
pre-tool hooks add it for you. The server answers from that workspace when it
|
|
66
|
+
is a worktree of the same repository or lies under the client's MCP roots.
|
|
67
|
+
|
|
68
|
+
If a result carries a `workspace_mismatch` diagnostic, the answer came from a
|
|
69
|
+
different workspace than the one you asked for; its `detail.reason` says why.
|
|
70
|
+
Use the CLI from your working directory instead: `npx --no-install kibi ...`
|
|
71
|
+
runs where you are and needs no `workspaceRoot`.
|
|
72
|
+
|
|
59
73
|
## Safe workflow
|
|
60
74
|
|
|
61
75
|
1. Always discover before you mutate: start with `kb_search`, then exact-filter with `kb_query`. Use
|
|
@@ -23,6 +23,7 @@ per operation. Effects are authoritative for mutability and adapter annotations.
|
|
|
23
23
|
| `kb_upsert` | `upsert` | --input JSON | write | yes | kb-write, workspace-write | peer; capability-selected | kibi.kb_upsert.v1 | yes | unsafe | no | yes |
|
|
24
24
|
| `kb_delete` | `delete` | --input JSON | write | yes | kb-write, workspace-write | peer; capability-selected | kibi.kb_delete.v1 | yes | unsafe | no | yes |
|
|
25
25
|
| `kb_check` | `check` | --input JSON or flags | read | yes | kb-read, workspace-read | peer; capability-selected | kibi.kb_check.v1 | no | safe | no | yes |
|
|
26
|
+
| `kb_prepare_impact_review` | `prepare-impact-review` | --input JSON | read | no | workspace-read, kb-read | peer; capability-selected | kibi.kb_prepare_impact_review.v1 | no | safe | no | yes |
|
|
26
27
|
| `kb_sparql_remote` | `sparql-remote` | --input JSON | read | no | network-read | peer; capability-selected | kibi.kb_sparql_remote.v1 | no | safe | yes | yes |
|
|
27
28
|
| `kb_compile_intent` | `compile-intent` | --input JSON | read | yes | kb-read, workspace-read | peer; capability-selected | kibi.kb_compile_intent.v1 | no | safe | no | yes |
|
|
28
29
|
| `kb_apply_plan` | `apply-plan` | --input JSON | write | yes | kb-read, kb-write, workspace-read, workspace-write | peer; capability-selected | kibi.kb_apply_plan.v1 | yes | unsafe | no | yes |
|
|
@@ -40,3 +41,7 @@ printf '%s\n' '{"query":"authentication","limit":10}' | npx --no-install kibi se
|
|
|
40
41
|
`_diagnostic_telemetry` is adapter metadata, not business input. Never copy it
|
|
41
42
|
into entity properties. On `committed_with_repairs`, follow typed required
|
|
42
43
|
`nextActions` and do not retry the original mutation.
|
|
44
|
+
|
|
45
|
+
`workspaceRoot` is an MCP-only routing argument naming the directory a call is
|
|
46
|
+
about (see the kibi-usage skill). The CLI JSON routes do not accept it; they
|
|
47
|
+
always run in the current directory.
|
|
@@ -15,6 +15,14 @@ export declare const DEFAULT_TELEMETRY_ACCEPTANCE_POLICY: {
|
|
|
15
15
|
readonly advisorMaxAgeSeconds: number;
|
|
16
16
|
readonly repeatedMutationFailureThreshold: 3;
|
|
17
17
|
};
|
|
18
|
+
/**
|
|
19
|
+
* Parse Kibi operation events from `.kb/usage.log`.
|
|
20
|
+
*
|
|
21
|
+
* Host plugin hooks share the log and tag their rows `interface: "hook"`.
|
|
22
|
+
* Those rows describe agent activity around Kibi calls, not Kibi operations,
|
|
23
|
+
* so they are dropped here: otherwise a busy editing session would push every
|
|
24
|
+
* operation out of the bounded acceptance window.
|
|
25
|
+
*/
|
|
18
26
|
export declare function parseTelemetryUsageLog(contents: string): TelemetryUsageEvent[];
|
|
19
27
|
export declare function thresholdStatus(actual: number | undefined, operator: ">=" | "<=" | "<", expected: number): TelemetryMetricStatus;
|
|
20
28
|
export declare function analyzeTelemetryAcceptance(events: readonly TelemetryUsageEvent[], now?: Date, policy?: TelemetryAcceptancePolicy): TelemetryAcceptanceReport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-acceptance.d.ts","sourceRoot":"","sources":["../../src/public/telemetry-acceptance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAEV,yBAAyB,EACzB,yBAAyB,EAGzB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAEzC,YAAY,EACV,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AAEzC,eAAO,MAAM,4BAA4B,EACvC,8BAAuC,CAAC;AAE1C,eAAO,MAAM,mCAAmC;;;;;;;;;;;;CAYF,CAAC;AAgB/C,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,GACf,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"telemetry-acceptance.d.ts","sourceRoot":"","sources":["../../src/public/telemetry-acceptance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAEV,yBAAyB,EACzB,yBAAyB,EAGzB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAEzC,YAAY,EACV,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AAEzC,eAAO,MAAM,4BAA4B,EACvC,8BAAuC,CAAC;AAE1C,eAAO,MAAM,mCAAmC;;;;;;;;;;;;CAYF,CAAC;AAgB/C;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,GACf,mBAAmB,EAAE,CAuBvB;AA0DD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,EAC3B,QAAQ,EAAE,MAAM,GACf,qBAAqB,CAKvB;AA0dD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,mBAAmB,EAAE,EACtC,GAAG,GAAE,IAAiB,EACtB,MAAM,GAAE,yBAA+D,GACtE,yBAAyB,CA6D3B;AA+DD,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,yBAAyB,GAChC,SAAS,iBAAiB,EAAE,CA+E9B"}
|
|
@@ -15,6 +15,14 @@ export const DEFAULT_TELEMETRY_ACCEPTANCE_POLICY = {
|
|
|
15
15
|
function isRecord(value) {
|
|
16
16
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Parse Kibi operation events from `.kb/usage.log`.
|
|
20
|
+
*
|
|
21
|
+
* Host plugin hooks share the log and tag their rows `interface: "hook"`.
|
|
22
|
+
* Those rows describe agent activity around Kibi calls, not Kibi operations,
|
|
23
|
+
* so they are dropped here: otherwise a busy editing session would push every
|
|
24
|
+
* operation out of the bounded acceptance window.
|
|
25
|
+
*/
|
|
18
26
|
export function parseTelemetryUsageLog(contents) {
|
|
19
27
|
const events = [];
|
|
20
28
|
for (const [index, line] of contents.split(/\r?\n/).entries()) {
|
|
@@ -32,6 +40,8 @@ export function parseTelemetryUsageLog(contents) {
|
|
|
32
40
|
if (!isRecord(parsed)) {
|
|
33
41
|
throw new Error(`Failed to parse .kb/usage.log line ${index + 1}: expected object`);
|
|
34
42
|
}
|
|
43
|
+
if (parsed.interface === "hook")
|
|
44
|
+
continue;
|
|
35
45
|
events.push(parsed);
|
|
36
46
|
}
|
|
37
47
|
return events;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { HunkRange } from "./git-staged.js";
|
|
2
|
+
type LineRange = Readonly<{
|
|
3
|
+
startLine: number;
|
|
4
|
+
endLine: number;
|
|
5
|
+
}>;
|
|
6
|
+
export type GateAnalysis<Range extends LineRange> = Readonly<{
|
|
7
|
+
status: "ok" | "partial" | "unsupported" | "failed";
|
|
8
|
+
diagnosticCodes: readonly string[];
|
|
9
|
+
uncoveredRanges: readonly (Range & Readonly<{
|
|
10
|
+
reason: string;
|
|
11
|
+
}>)[];
|
|
12
|
+
}>;
|
|
13
|
+
/** What one side of a changed file needs before it can pass. */
|
|
14
|
+
type AnalysisObligation<Range extends LineRange> = Readonly<{
|
|
15
|
+
kind: "none";
|
|
16
|
+
}> | Readonly<{
|
|
17
|
+
kind: "blocked";
|
|
18
|
+
reason: string;
|
|
19
|
+
}> | Readonly<{
|
|
20
|
+
kind: "unsupported_review";
|
|
21
|
+
}> | Readonly<{
|
|
22
|
+
kind: "partial_review";
|
|
23
|
+
ranges: readonly Range[];
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* The single rule for when incomplete source analysis blocks a change.
|
|
27
|
+
*
|
|
28
|
+
* - The before side is historical and cannot be corrected by the author, so it
|
|
29
|
+
* is informational and never blocks or needs review.
|
|
30
|
+
* - On the after side, failed analysis and non-local gaps (syntax, parse,
|
|
31
|
+
* timeout, integrity) always block.
|
|
32
|
+
* - A local gap (a macro, decorator or other declared limitation) matters only
|
|
33
|
+
* where it overlaps the changed lines; elsewhere the file was already in that
|
|
34
|
+
* state and this change did not touch it.
|
|
35
|
+
* - Unsupported after-side analysis needs one whole-file review.
|
|
36
|
+
*/
|
|
37
|
+
export declare function analysisObligation<Range extends LineRange>(side: "before" | "after", analysis: GateAnalysis<Range> | null | undefined, newHunkRanges: readonly HunkRange[]): AnalysisObligation<Range>;
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=analysis-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysis-gate.d.ts","sourceRoot":"","sources":["../../src/traceability/analysis-gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAUjD,KAAK,SAAS,GAAG,QAAQ,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAGlE,MAAM,MAAM,YAAY,CAAC,KAAK,SAAS,SAAS,IAAI,QAAQ,CAAC;IAC3D,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,QAAQ,CAAC;IACpD,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,eAAe,EAAE,SAAS,CAAC,KAAK,GAAG,QAAQ,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,EAAE,CAAC;CACpE,CAAC,CAAC;AAEH,gEAAgE;AAChE,KAAK,kBAAkB,CAAC,KAAK,SAAS,SAAS,IAC3C,QAAQ,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1B,QAAQ,CAAC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAC7C,QAAQ,CAAC;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,CAAC,GACxC,QAAQ,CAAC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAA;CAAE,CAAC,CAAC;AAuBnE;;;;;;;;;;;GAWG;AAEH,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,SAAS,EACxD,IAAI,EAAE,QAAQ,GAAG,OAAO,EACxB,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,SAAS,EAChD,aAAa,EAAE,SAAS,SAAS,EAAE,GAClC,kBAAkB,CAAC,KAAK,CAAC,CAqB3B"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diagnostics that make the whole parse unreliable rather than one region.
|
|
3
|
+
* A deleted brace can surface as a syntax error far from the edited lines, so
|
|
4
|
+
* these never narrow to the changed hunks and never accept a residual review.
|
|
5
|
+
*/
|
|
6
|
+
const NON_LOCAL_ANALYSIS_MARKER = /(?:syntax|parse|timeout|timed[\s_-]*out|integrity|checksum|failed|failure|error|input[\s_-]*limit)/i;
|
|
7
|
+
function hasNonLocalAnalysisGap(analysis) {
|
|
8
|
+
return NON_LOCAL_ANALYSIS_MARKER.test([
|
|
9
|
+
...analysis.diagnosticCodes,
|
|
10
|
+
...analysis.uncoveredRanges.map((range) => range.reason),
|
|
11
|
+
].join("\n"));
|
|
12
|
+
}
|
|
13
|
+
/** Uncovered ranges that overlap a changed line of the after side. */
|
|
14
|
+
function rangesTouchingHunks(ranges, hunks) {
|
|
15
|
+
return ranges.filter((range) => hunks.some((hunk) => range.startLine <= hunk.end && hunk.start <= range.endLine));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* The single rule for when incomplete source analysis blocks a change.
|
|
19
|
+
*
|
|
20
|
+
* - The before side is historical and cannot be corrected by the author, so it
|
|
21
|
+
* is informational and never blocks or needs review.
|
|
22
|
+
* - On the after side, failed analysis and non-local gaps (syntax, parse,
|
|
23
|
+
* timeout, integrity) always block.
|
|
24
|
+
* - A local gap (a macro, decorator or other declared limitation) matters only
|
|
25
|
+
* where it overlaps the changed lines; elsewhere the file was already in that
|
|
26
|
+
* state and this change did not touch it.
|
|
27
|
+
* - Unsupported after-side analysis needs one whole-file review.
|
|
28
|
+
*/
|
|
29
|
+
// implements REQ-source-analysis-v2
|
|
30
|
+
export function analysisObligation(side, analysis, newHunkRanges) {
|
|
31
|
+
if (side === "before" || !analysis || analysis.status === "ok")
|
|
32
|
+
return { kind: "none" };
|
|
33
|
+
if (analysis.status === "failed")
|
|
34
|
+
return { kind: "blocked", reason: "source analysis failed" };
|
|
35
|
+
if (analysis.status === "unsupported")
|
|
36
|
+
return { kind: "unsupported_review" };
|
|
37
|
+
if (analysis.uncoveredRanges.length === 0)
|
|
38
|
+
return {
|
|
39
|
+
kind: "blocked",
|
|
40
|
+
reason: "partial analysis did not report which ranges it left uncovered",
|
|
41
|
+
};
|
|
42
|
+
if (hasNonLocalAnalysisGap(analysis))
|
|
43
|
+
return {
|
|
44
|
+
kind: "blocked",
|
|
45
|
+
reason: "a parser, syntax, timeout or integrity diagnostic affects the whole file",
|
|
46
|
+
};
|
|
47
|
+
const ranges = rangesTouchingHunks(analysis.uncoveredRanges, newHunkRanges);
|
|
48
|
+
return ranges.length === 0
|
|
49
|
+
? { kind: "none" }
|
|
50
|
+
: { kind: "partial_review", ranges };
|
|
51
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { StagedPath } from "./git-staged.js";
|
|
2
|
+
export type SnapshotGitReader = (args: readonly string[]) => Buffer;
|
|
3
|
+
export interface GitChangeSnapshot {
|
|
4
|
+
/** Tree at the captured base commit, or the canonical empty tree when unborn. */
|
|
5
|
+
baseTree: string;
|
|
6
|
+
/** The single tree written from the captured index (staged snapshots). */
|
|
7
|
+
headTree: string;
|
|
8
|
+
/** Captured base commit, or null for an unborn repository. */
|
|
9
|
+
headCommit: string | null;
|
|
10
|
+
/** Run a Git command against immutable captured trees/blobs. */
|
|
11
|
+
readGit(args: readonly string[]): Buffer;
|
|
12
|
+
/** Read immutable object IDs in one process; no working-tree reads. */
|
|
13
|
+
readBlobs(oids: readonly string[]): ReadonlyMap<string, Buffer>;
|
|
14
|
+
/** Reject a changed HEAD or index tree after staged analysis. */
|
|
15
|
+
assertUnchanged(): void;
|
|
16
|
+
inventory: StagedPath[];
|
|
17
|
+
}
|
|
18
|
+
/** Capture one immutable tree from the index and inventory only Git objects. */
|
|
19
|
+
export declare function captureStagedSnapshot(workspaceRoot: string): GitChangeSnapshot;
|
|
20
|
+
/**
|
|
21
|
+
* Capture changes between explicit revisions. The caller chooses `base`; for
|
|
22
|
+
* merge-impact analysis this is commonly the merge base computed with
|
|
23
|
+
* `git merge-base target head`. This helper resolves each input once and does
|
|
24
|
+
* not silently choose a merge base of its own.
|
|
25
|
+
*/
|
|
26
|
+
export declare function captureDiffSnapshot(workspaceRoot: string, base: string, head: string): GitChangeSnapshot;
|
|
27
|
+
//# sourceMappingURL=git-change-snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-change-snapshot.d.ts","sourceRoot":"","sources":["../../src/traceability/git-change-snapshot.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAIV,UAAU,EAEX,MAAM,iBAAiB,CAAC;AAKzB,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,CAAC;AAGpE,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gEAAgE;IAChE,OAAO,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC;IACzC,uEAAuE;IACvE,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChE,iEAAiE;IACjE,eAAe,IAAI,IAAI,CAAC;IACxB,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB;AA4cD,gFAAgF;AAEhF,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,GACpB,iBAAiB,CAuBnB;AAED;;;;;GAKG;AAEH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,iBAAiB,CAyBnB"}
|