kibi-cli 2.3.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-metadata.d.ts +1 -1
- package/dist/cli-operation-metadata.js +1 -1
- package/dist/cli-register-maintenance.d.ts.map +1 -1
- package/dist/cli-register-maintenance.js +7 -0
- 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/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/mutation/symbol-refresh.d.ts.map +1 -1
- package/dist/operations/mutation/symbol-refresh.js +4 -1
- 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/operations/catalog.d.ts +73 -1
- package/dist/public/operations/catalog.d.ts.map +1 -1
- 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/symbol-repair-plan.d.ts.map +1 -1
- package/dist/public/operations/symbol-repair-plan.js +3 -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 +4 -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/package.json +1 -1
- package/src/public/diagnostic-usage.ts +59 -1
- package/src/public/operations/specs/bootstrap.ts +78 -4
- package/src/public/operations/symbol-repair-plan.ts +3 -1
- 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 +4 -0
- package/src/public/telemetry-acceptance.ts +9 -0
|
@@ -1,18 +1,74 @@
|
|
|
1
1
|
import { buildGuidance } from "./guidance.js";
|
|
2
|
-
import { bootstrapPlanHash } from "./types.js";
|
|
2
|
+
import { KNOWLEDGE_SOURCE_AUTHORITIES, KNOWLEDGE_SOURCE_KINDS, bootstrapPlanHash, } from "./types.js";
|
|
3
3
|
function strings(values) {
|
|
4
4
|
return [
|
|
5
5
|
...new Set((values ?? []).map((value) => value.trim()).filter(Boolean)),
|
|
6
6
|
];
|
|
7
7
|
}
|
|
8
|
+
function knowledgeSources(values) {
|
|
9
|
+
const seen = new Set();
|
|
10
|
+
const result = [];
|
|
11
|
+
for (const value of values ?? []) {
|
|
12
|
+
const id = value.id?.trim();
|
|
13
|
+
const title = value.title?.trim();
|
|
14
|
+
const locator = value.locator?.trim();
|
|
15
|
+
if (!id ||
|
|
16
|
+
!title ||
|
|
17
|
+
!locator ||
|
|
18
|
+
seen.has(id) ||
|
|
19
|
+
!KNOWLEDGE_SOURCE_KINDS.includes(value.kind) ||
|
|
20
|
+
!KNOWLEDGE_SOURCE_AUTHORITIES.includes(value.authority))
|
|
21
|
+
continue;
|
|
22
|
+
seen.add(id);
|
|
23
|
+
const connector = value.connector?.trim();
|
|
24
|
+
const notes = value.notes?.trim();
|
|
25
|
+
result.push({
|
|
26
|
+
id,
|
|
27
|
+
kind: value.kind,
|
|
28
|
+
title,
|
|
29
|
+
locator,
|
|
30
|
+
authority: value.authority,
|
|
31
|
+
...(connector ? { connector } : {}),
|
|
32
|
+
...(notes ? { notes } : {}),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
function intentClaims(values) {
|
|
38
|
+
const seen = new Set();
|
|
39
|
+
const result = [];
|
|
40
|
+
for (const value of values ?? []) {
|
|
41
|
+
const statement = value.statement?.trim().replace(/\s+/g, " ");
|
|
42
|
+
const sourceId = value.sourceId?.trim();
|
|
43
|
+
const reference = value.reference?.trim();
|
|
44
|
+
if (!statement || !sourceId || !reference)
|
|
45
|
+
continue;
|
|
46
|
+
const key = `${sourceId}\u0000${reference}\u0000${statement}`;
|
|
47
|
+
if (seen.has(key))
|
|
48
|
+
continue;
|
|
49
|
+
seen.add(key);
|
|
50
|
+
const excerpt = value.excerpt?.trim();
|
|
51
|
+
result.push({
|
|
52
|
+
statement,
|
|
53
|
+
sourceId,
|
|
54
|
+
reference,
|
|
55
|
+
...(excerpt ? { excerpt } : {}),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
8
60
|
export function normalizeBootstrapContext(input) {
|
|
9
61
|
const projectSummary = input?.projectSummary?.trim();
|
|
62
|
+
const sources = knowledgeSources(input?.knowledgeSources);
|
|
63
|
+
const claims = intentClaims(input?.intentClaims);
|
|
10
64
|
return {
|
|
11
65
|
...(projectSummary ? { projectSummary } : {}),
|
|
12
66
|
sourceOfTruthPaths: strings(input?.sourceOfTruthPaths),
|
|
13
67
|
sourceOfTruthNotes: strings(input?.sourceOfTruthNotes),
|
|
14
68
|
priorityRoots: strings(input?.priorityRoots),
|
|
15
69
|
verificationAnchors: strings(input?.verificationAnchors),
|
|
70
|
+
...(sources.length > 0 ? { knowledgeSources: sources } : {}),
|
|
71
|
+
...(claims.length > 0 ? { intentClaims: claims } : {}),
|
|
16
72
|
};
|
|
17
73
|
}
|
|
18
74
|
function payoff(candidates) {
|
|
@@ -99,6 +155,8 @@ export function presentBootstrap(input) {
|
|
|
99
155
|
if (status === "needs_context") {
|
|
100
156
|
if (!declaredContext.projectSummary)
|
|
101
157
|
contextQuestions.push("What is the one-sentence purpose of this repository?");
|
|
158
|
+
if (!declaredContext.knowledgeSources)
|
|
159
|
+
contextQuestions.push("Which knowledge sources outside the code (issue trackers, wikis, specs, decision logs) describe product intent, and which of them are authoritative?");
|
|
102
160
|
if (declaredContext.sourceOfTruthPaths.length === 0)
|
|
103
161
|
contextQuestions.push("Which repository paths are authoritative for product intent?");
|
|
104
162
|
if (input.sourceOnlySignals.length > 0)
|
|
@@ -112,6 +170,7 @@ export function presentBootstrap(input) {
|
|
|
112
170
|
...(input.migrationWarning ? [input.migrationWarning] : []),
|
|
113
171
|
...input.discoverySummary.scanWarnings,
|
|
114
172
|
...bindingDiagnostics,
|
|
173
|
+
...strings(input.contextDiagnostics),
|
|
115
174
|
];
|
|
116
175
|
const planBody = {
|
|
117
176
|
version: "kibi.bootstrap-plan.v1",
|
|
@@ -6,12 +6,38 @@ export declare function bootstrapEmptyKbSnapshotId(input: {
|
|
|
6
6
|
readonly workspaceSnapshot: string;
|
|
7
7
|
readonly sourceHashes: Readonly<Record<string, string | null>>;
|
|
8
8
|
}): string;
|
|
9
|
+
export declare const KNOWLEDGE_SOURCE_KINDS: readonly ["issue_tracker", "wiki", "specification", "design", "decision_log", "support", "chat", "repository_docs", "other"];
|
|
10
|
+
export declare const KNOWLEDGE_SOURCE_AUTHORITIES: readonly ["authoritative", "supporting", "stale"];
|
|
11
|
+
/**
|
|
12
|
+
* A knowledge source the agent and human agreed on during the bootstrap
|
|
13
|
+
* interview: an issue tracker, wiki, spec, or other place where product intent
|
|
14
|
+
* lives outside the code. Kibi never reads it; the agent does, through the
|
|
15
|
+
* connectors it has, and cites it from intent claims.
|
|
16
|
+
*/
|
|
17
|
+
export type BootstrapKnowledgeSource = {
|
|
18
|
+
readonly id: string;
|
|
19
|
+
readonly kind: (typeof KNOWLEDGE_SOURCE_KINDS)[number];
|
|
20
|
+
readonly title: string;
|
|
21
|
+
readonly locator: string;
|
|
22
|
+
readonly authority: (typeof KNOWLEDGE_SOURCE_AUTHORITIES)[number];
|
|
23
|
+
readonly connector?: string;
|
|
24
|
+
readonly notes?: string;
|
|
25
|
+
};
|
|
26
|
+
/** One statement of intent the agent harvested from a declared source. */
|
|
27
|
+
export type BootstrapIntentClaim = {
|
|
28
|
+
readonly statement: string;
|
|
29
|
+
readonly sourceId: string;
|
|
30
|
+
readonly reference: string;
|
|
31
|
+
readonly excerpt?: string;
|
|
32
|
+
};
|
|
9
33
|
export type BootstrapContext = {
|
|
10
34
|
readonly projectSummary?: string;
|
|
11
35
|
readonly sourceOfTruthPaths?: readonly string[];
|
|
12
36
|
readonly sourceOfTruthNotes?: readonly string[];
|
|
13
37
|
readonly priorityRoots?: readonly string[];
|
|
14
38
|
readonly verificationAnchors?: readonly string[];
|
|
39
|
+
readonly knowledgeSources?: readonly BootstrapKnowledgeSource[];
|
|
40
|
+
readonly intentClaims?: readonly BootstrapIntentClaim[];
|
|
15
41
|
};
|
|
16
42
|
export type PlanBootstrapArgs = {
|
|
17
43
|
readonly includeGenericMarkdown?: boolean;
|
|
@@ -38,6 +64,8 @@ export type BootstrapDeclaredContext = {
|
|
|
38
64
|
readonly sourceOfTruthNotes: readonly string[];
|
|
39
65
|
readonly priorityRoots: readonly string[];
|
|
40
66
|
readonly verificationAnchors: readonly string[];
|
|
67
|
+
readonly knowledgeSources?: readonly BootstrapKnowledgeSource[];
|
|
68
|
+
readonly intentClaims?: readonly BootstrapIntentClaim[];
|
|
41
69
|
};
|
|
42
70
|
export type ActivationState = "root_uninitialized" | "root_partial" | "vendored_only" | "root_active_thin" | "root_active_seeded";
|
|
43
71
|
export type ActivationMode = "cold_start_bootstrap" | "repair_bootstrap" | "attached_thin_bootstrap" | "attached_thin_handoff" | "attached_seeded_handoff" | "vendored_blocked";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/operations/bootstrap/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxE,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACtC,MAAM,CAGR;AAED,mFAAmF;AACnF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;CAChE,GAAG,MAAM,CAWT;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/operations/bootstrap/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,22 @@ export function bootstrapEmptyKbSnapshotId(input) {
|
|
|
15
15
|
}))
|
|
16
16
|
.digest("hex")}`;
|
|
17
17
|
}
|
|
18
|
+
export const KNOWLEDGE_SOURCE_KINDS = [
|
|
19
|
+
"issue_tracker",
|
|
20
|
+
"wiki",
|
|
21
|
+
"specification",
|
|
22
|
+
"design",
|
|
23
|
+
"decision_log",
|
|
24
|
+
"support",
|
|
25
|
+
"chat",
|
|
26
|
+
"repository_docs",
|
|
27
|
+
"other",
|
|
28
|
+
];
|
|
29
|
+
export const KNOWLEDGE_SOURCE_AUTHORITIES = [
|
|
30
|
+
"authoritative",
|
|
31
|
+
"supporting",
|
|
32
|
+
"stale",
|
|
33
|
+
];
|
|
18
34
|
export const BOOTSTRAP_PROVIDER_ORDER = [
|
|
19
35
|
"typed_kibi_docs",
|
|
20
36
|
"generic_repo_docs",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol-refresh.d.ts","sourceRoot":"","sources":["../../../src/operations/mutation/symbol-refresh.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAgBjF,MAAM,MAAM,sBAAsB,GAC9B,SAAS,GACT,WAAW,GACX,SAAS,GACT,WAAW,CAAC;AAGhB,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,0BAA0B,CAAC;CACnD,CAAC;AAGF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,IAAI,IAAI,CAAC;CAClB,CAAC;AAEF,KAAK,qBAAqB,GAAG,CAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,aAAa,CAAC,CAAC;AAsD5B,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,IAAI,CAMN;
|
|
1
|
+
{"version":3,"file":"symbol-refresh.d.ts","sourceRoot":"","sources":["../../../src/operations/mutation/symbol-refresh.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAgBjF,MAAM,MAAM,sBAAsB,GAC9B,SAAS,GACT,WAAW,GACX,SAAS,GACT,WAAW,CAAC;AAGhB,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,0BAA0B,CAAC;CACnD,CAAC;AAGF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,IAAI,IAAI,CAAC;CAClB,CAAC;AAEF,KAAK,qBAAqB,GAAG,CAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,aAAa,CAAC,CAAC;AAsD5B,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,IAAI,CAMN;AAiPD,4EAA4E;AAC5E,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,aAAa,CAAC,CASxB;AAED,yEAAyE;AAEzE,wBAAsB,gCAAgC,CACpD,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,aAAa,CAAC,CAGxB;AAED;;;GAGG;AAEH,wBAAsB,mCAAmC,CACvD,QAAQ,EAAE,MAAM,EAChB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,aAAa,CAAC,CAOxB;AAGD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,qBAAqB,GAAG,SAAS,GACzC,IAAI,CAEN"}
|
|
@@ -165,7 +165,10 @@ async function refreshUnlocked(symbolId, context, options = {}) {
|
|
|
165
165
|
}
|
|
166
166
|
const sourceFile = typeof entry.sourceFile === "string" ? entry.sourceFile : "";
|
|
167
167
|
const title = typeof entry.title === "string" ? entry.title : "";
|
|
168
|
-
|
|
168
|
+
// Targeted refresh publishes coordinates only, like
|
|
169
|
+
// `kibi sync --refresh-symbol-coordinates`, so decorated Python may bind
|
|
170
|
+
// explicit declarations while the analysis itself stays partial.
|
|
171
|
+
const [enriched] = await enrichSymbolCoordinates([{ ...entry, id: symbolId, title, sourceFile }], context.workspaceRoot, { allowPythonDecoratorCoordinates: true });
|
|
169
172
|
let next = coordinate(enriched);
|
|
170
173
|
let sourceText = next === null ? sourceTextFor(sourceFile, context.workspaceRoot) : null;
|
|
171
174
|
if (next === null &&
|
|
@@ -13,5 +13,19 @@ export interface DiagnosticUsageInput {
|
|
|
13
13
|
}
|
|
14
14
|
export declare function diagnosticMutationFingerprint(args: Readonly<Record<string, unknown>>): string;
|
|
15
15
|
export declare function deriveDiagnosticUsageFields(tool: string, args: Readonly<Record<string, unknown>>, telemetry: Readonly<Record<string, unknown>> | null, result: unknown): Record<string, unknown>;
|
|
16
|
+
/**
|
|
17
|
+
* Whether the operator opted into usage telemetry through the environment.
|
|
18
|
+
*
|
|
19
|
+
* `KIBI_DIAGNOSTIC_MODE` is the one opt-in shared with the MCP server, so a
|
|
20
|
+
* single setting covers both peer surfaces. `KIBI_CLI_DIAGNOSTIC_MODE` is the
|
|
21
|
+
* older CLI-only spelling and keeps working.
|
|
22
|
+
*/
|
|
23
|
+
export declare function diagnosticEnvOptIn(env?: NodeJS.ProcessEnv): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* The host that ran this CLI call. Hosts that launch Kibi set `KIBI_HOST`;
|
|
26
|
+
* Claude Code marks every shell it runs with `CLAUDECODE=1`, which is the
|
|
27
|
+
* only ambient signal trusted here. Anything else stays `unknown`.
|
|
28
|
+
*/
|
|
29
|
+
export declare function diagnosticCliHost(env?: NodeJS.ProcessEnv): string;
|
|
16
30
|
export declare function appendCliDiagnosticUsage(input: DiagnosticUsageInput): void;
|
|
17
31
|
//# sourceMappingURL=diagnostic-usage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic-usage.d.ts","sourceRoot":"","sources":["../../src/public/diagnostic-usage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"diagnostic-usage.d.ts","sourceRoot":"","sources":["../../src/public/diagnostic-usage.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAC7D,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAuBD,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACtC,MAAM,CAIR;AAkHD,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACvC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,EACnD,MAAM,EAAE,OAAO,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwEzB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAKT;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAIR;AA2BD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAmC1E"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createHash, randomUUID } from "node:crypto";
|
|
2
|
-
import { appendFileSync, mkdirSync } from "node:fs";
|
|
2
|
+
import { appendFileSync, existsSync, mkdirSync, readFileSync } from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
4
5
|
import { appendPayloadCountField, normalizeResultPayload, } from "./operations/result-envelope.js";
|
|
5
6
|
function isRecord(value) {
|
|
6
7
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
@@ -177,6 +178,56 @@ export function deriveDiagnosticUsageFields(tool, args, telemetry, result) {
|
|
|
177
178
|
fields.result_summary = `${tool} completed`;
|
|
178
179
|
return fields;
|
|
179
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* Whether the operator opted into usage telemetry through the environment.
|
|
183
|
+
*
|
|
184
|
+
* `KIBI_DIAGNOSTIC_MODE` is the one opt-in shared with the MCP server, so a
|
|
185
|
+
* single setting covers both peer surfaces. `KIBI_CLI_DIAGNOSTIC_MODE` is the
|
|
186
|
+
* older CLI-only spelling and keeps working.
|
|
187
|
+
*/
|
|
188
|
+
export function diagnosticEnvOptIn(env = process.env) {
|
|
189
|
+
return ["KIBI_DIAGNOSTIC_MODE", "KIBI_CLI_DIAGNOSTIC_MODE"].some((key) => {
|
|
190
|
+
const value = env[key]?.trim().toLowerCase();
|
|
191
|
+
return value === "1" || value === "true";
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* The host that ran this CLI call. Hosts that launch Kibi set `KIBI_HOST`;
|
|
196
|
+
* Claude Code marks every shell it runs with `CLAUDECODE=1`, which is the
|
|
197
|
+
* only ambient signal trusted here. Anything else stays `unknown`.
|
|
198
|
+
*/
|
|
199
|
+
export function diagnosticCliHost(env = process.env) {
|
|
200
|
+
const explicit = env.KIBI_HOST?.trim() || env.KIBI_MCP_HOST?.trim();
|
|
201
|
+
if (explicit)
|
|
202
|
+
return explicit;
|
|
203
|
+
return env.CLAUDECODE === "1" ? "claude-code" : "unknown";
|
|
204
|
+
}
|
|
205
|
+
let cachedCliPackageVersion;
|
|
206
|
+
function cliPackageVersion() {
|
|
207
|
+
if (cachedCliPackageVersion !== undefined)
|
|
208
|
+
return cachedCliPackageVersion;
|
|
209
|
+
cachedCliPackageVersion = null;
|
|
210
|
+
let current = path.dirname(fileURLToPath(import.meta.url));
|
|
211
|
+
while (true) {
|
|
212
|
+
const candidate = path.join(current, "package.json");
|
|
213
|
+
if (existsSync(candidate)) {
|
|
214
|
+
try {
|
|
215
|
+
const parsed = JSON.parse(readFileSync(candidate, "utf8"));
|
|
216
|
+
if (isRecord(parsed) && typeof parsed.version === "string") {
|
|
217
|
+
cachedCliPackageVersion = parsed.version;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
catch {
|
|
221
|
+
// An unreadable manifest leaves the version unknown.
|
|
222
|
+
}
|
|
223
|
+
return cachedCliPackageVersion;
|
|
224
|
+
}
|
|
225
|
+
const parent = path.dirname(current);
|
|
226
|
+
if (parent === current)
|
|
227
|
+
return null;
|
|
228
|
+
current = parent;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
180
231
|
export function appendCliDiagnosticUsage(input) {
|
|
181
232
|
const finishedAt = input.finishedAt ?? new Date();
|
|
182
233
|
const requestId = input.requestId ?? `cli-${randomUUID()}`;
|
|
@@ -189,6 +240,9 @@ export function appendCliDiagnosticUsage(input) {
|
|
|
189
240
|
request_id: requestId,
|
|
190
241
|
tool: input.tool,
|
|
191
242
|
interface: "cli_json",
|
|
243
|
+
host: diagnosticCliHost(),
|
|
244
|
+
package_version: cliPackageVersion(),
|
|
245
|
+
workspace_root: input.workspaceRoot,
|
|
192
246
|
telemetry: input.telemetry,
|
|
193
247
|
business_args: input.businessArgs,
|
|
194
248
|
status: input.status,
|
|
@@ -646,7 +646,7 @@ export declare const OPERATION_CATALOG: readonly [{
|
|
|
646
646
|
}, {
|
|
647
647
|
readonly name: "kb_plan_bootstrap";
|
|
648
648
|
readonly cliName: "plan-bootstrap";
|
|
649
|
-
readonly 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.";
|
|
649
|
+
readonly 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.";
|
|
650
650
|
readonly businessInputSchema: {
|
|
651
651
|
readonly type: "object";
|
|
652
652
|
readonly properties: {
|
|
@@ -713,6 +713,78 @@ export declare const OPERATION_CATALOG: readonly [{
|
|
|
713
713
|
};
|
|
714
714
|
readonly description: "Optional verification commands, documents, or checkpoints to reference in the output.";
|
|
715
715
|
};
|
|
716
|
+
readonly knowledgeSources: {
|
|
717
|
+
readonly type: "array";
|
|
718
|
+
readonly maxItems: 50;
|
|
719
|
+
readonly 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.";
|
|
720
|
+
readonly items: {
|
|
721
|
+
readonly type: "object";
|
|
722
|
+
readonly required: readonly ["id", "kind", "title", "locator", "authority"];
|
|
723
|
+
readonly additionalProperties: false;
|
|
724
|
+
readonly properties: {
|
|
725
|
+
readonly id: {
|
|
726
|
+
readonly type: "string";
|
|
727
|
+
readonly pattern: "^[a-z0-9][a-z0-9-]*$";
|
|
728
|
+
readonly description: "Stable kebab-case handle that intentClaims cite, for example jira-payments.";
|
|
729
|
+
};
|
|
730
|
+
readonly kind: {
|
|
731
|
+
readonly type: "string";
|
|
732
|
+
readonly enum: readonly ["issue_tracker", "wiki", "specification", "design", "decision_log", "support", "chat", "repository_docs", "other"];
|
|
733
|
+
};
|
|
734
|
+
readonly title: {
|
|
735
|
+
readonly type: "string";
|
|
736
|
+
readonly minLength: 1;
|
|
737
|
+
};
|
|
738
|
+
readonly locator: {
|
|
739
|
+
readonly type: "string";
|
|
740
|
+
readonly minLength: 1;
|
|
741
|
+
readonly description: "Where the source lives: a URL, project key, space name, or repo-relative path.";
|
|
742
|
+
};
|
|
743
|
+
readonly authority: {
|
|
744
|
+
readonly type: "string";
|
|
745
|
+
readonly enum: readonly ["authoritative", "supporting", "stale"];
|
|
746
|
+
readonly description: "The human's call: authoritative claims become higher-confidence candidates, supporting claims lower ones, and stale sources are cited but never produce candidates.";
|
|
747
|
+
};
|
|
748
|
+
readonly connector: {
|
|
749
|
+
readonly type: "string";
|
|
750
|
+
readonly description: "Optional name of the MCP server or tool the agent used to read the source.";
|
|
751
|
+
};
|
|
752
|
+
readonly notes: {
|
|
753
|
+
readonly type: "string";
|
|
754
|
+
};
|
|
755
|
+
};
|
|
756
|
+
};
|
|
757
|
+
};
|
|
758
|
+
readonly intentClaims: {
|
|
759
|
+
readonly type: "array";
|
|
760
|
+
readonly maxItems: 200;
|
|
761
|
+
readonly 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.";
|
|
762
|
+
readonly items: {
|
|
763
|
+
readonly type: "object";
|
|
764
|
+
readonly required: readonly ["statement", "sourceId", "reference"];
|
|
765
|
+
readonly additionalProperties: false;
|
|
766
|
+
readonly properties: {
|
|
767
|
+
readonly statement: {
|
|
768
|
+
readonly type: "string";
|
|
769
|
+
readonly minLength: 1;
|
|
770
|
+
readonly description: "One normative statement in the source's meaning, for example 'Refunds must not exceed the original charge.'";
|
|
771
|
+
};
|
|
772
|
+
readonly sourceId: {
|
|
773
|
+
readonly type: "string";
|
|
774
|
+
readonly description: "The id of a declared knowledge source.";
|
|
775
|
+
};
|
|
776
|
+
readonly reference: {
|
|
777
|
+
readonly type: "string";
|
|
778
|
+
readonly minLength: 1;
|
|
779
|
+
readonly description: "Exact citation inside the source: a ticket key, page URL, or section anchor.";
|
|
780
|
+
};
|
|
781
|
+
readonly excerpt: {
|
|
782
|
+
readonly type: "string";
|
|
783
|
+
readonly description: "Optional short quote supporting the claim.";
|
|
784
|
+
};
|
|
785
|
+
};
|
|
786
|
+
};
|
|
787
|
+
};
|
|
716
788
|
};
|
|
717
789
|
};
|
|
718
790
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/public/operations/catalog.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/public/operations/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ export { executePlanBootstrap } from "../../../operations/bootstrap/generate.js"
|
|
|
4
4
|
export declare const planBootstrapSpec: {
|
|
5
5
|
readonly name: "kb_plan_bootstrap";
|
|
6
6
|
readonly cliName: "plan-bootstrap";
|
|
7
|
-
readonly 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.";
|
|
7
|
+
readonly 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
8
|
readonly businessInputSchema: {
|
|
9
9
|
readonly type: "object";
|
|
10
10
|
readonly properties: {
|
|
@@ -71,6 +71,78 @@ export declare const planBootstrapSpec: {
|
|
|
71
71
|
};
|
|
72
72
|
readonly description: "Optional verification commands, documents, or checkpoints to reference in the output.";
|
|
73
73
|
};
|
|
74
|
+
readonly knowledgeSources: {
|
|
75
|
+
readonly type: "array";
|
|
76
|
+
readonly maxItems: 50;
|
|
77
|
+
readonly 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.";
|
|
78
|
+
readonly items: {
|
|
79
|
+
readonly type: "object";
|
|
80
|
+
readonly required: readonly ["id", "kind", "title", "locator", "authority"];
|
|
81
|
+
readonly additionalProperties: false;
|
|
82
|
+
readonly properties: {
|
|
83
|
+
readonly id: {
|
|
84
|
+
readonly type: "string";
|
|
85
|
+
readonly pattern: "^[a-z0-9][a-z0-9-]*$";
|
|
86
|
+
readonly description: "Stable kebab-case handle that intentClaims cite, for example jira-payments.";
|
|
87
|
+
};
|
|
88
|
+
readonly kind: {
|
|
89
|
+
readonly type: "string";
|
|
90
|
+
readonly enum: readonly ["issue_tracker", "wiki", "specification", "design", "decision_log", "support", "chat", "repository_docs", "other"];
|
|
91
|
+
};
|
|
92
|
+
readonly title: {
|
|
93
|
+
readonly type: "string";
|
|
94
|
+
readonly minLength: 1;
|
|
95
|
+
};
|
|
96
|
+
readonly locator: {
|
|
97
|
+
readonly type: "string";
|
|
98
|
+
readonly minLength: 1;
|
|
99
|
+
readonly description: "Where the source lives: a URL, project key, space name, or repo-relative path.";
|
|
100
|
+
};
|
|
101
|
+
readonly authority: {
|
|
102
|
+
readonly type: "string";
|
|
103
|
+
readonly enum: readonly ["authoritative", "supporting", "stale"];
|
|
104
|
+
readonly description: "The human's call: authoritative claims become higher-confidence candidates, supporting claims lower ones, and stale sources are cited but never produce candidates.";
|
|
105
|
+
};
|
|
106
|
+
readonly connector: {
|
|
107
|
+
readonly type: "string";
|
|
108
|
+
readonly description: "Optional name of the MCP server or tool the agent used to read the source.";
|
|
109
|
+
};
|
|
110
|
+
readonly notes: {
|
|
111
|
+
readonly type: "string";
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
readonly intentClaims: {
|
|
117
|
+
readonly type: "array";
|
|
118
|
+
readonly maxItems: 200;
|
|
119
|
+
readonly 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.";
|
|
120
|
+
readonly items: {
|
|
121
|
+
readonly type: "object";
|
|
122
|
+
readonly required: readonly ["statement", "sourceId", "reference"];
|
|
123
|
+
readonly additionalProperties: false;
|
|
124
|
+
readonly properties: {
|
|
125
|
+
readonly statement: {
|
|
126
|
+
readonly type: "string";
|
|
127
|
+
readonly minLength: 1;
|
|
128
|
+
readonly description: "One normative statement in the source's meaning, for example 'Refunds must not exceed the original charge.'";
|
|
129
|
+
};
|
|
130
|
+
readonly sourceId: {
|
|
131
|
+
readonly type: "string";
|
|
132
|
+
readonly description: "The id of a declared knowledge source.";
|
|
133
|
+
};
|
|
134
|
+
readonly reference: {
|
|
135
|
+
readonly type: "string";
|
|
136
|
+
readonly minLength: 1;
|
|
137
|
+
readonly description: "Exact citation inside the source: a ticket key, page URL, or section anchor.";
|
|
138
|
+
};
|
|
139
|
+
readonly excerpt: {
|
|
140
|
+
readonly type: "string";
|
|
141
|
+
readonly description: "Optional short quote supporting the claim.";
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
};
|
|
74
146
|
};
|
|
75
147
|
};
|
|
76
148
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/public/operations/specs/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/public/operations/specs/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AASjF,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAGjF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2J7B,CAAC"}
|
|
@@ -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
|
},
|
|
@@ -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;
|