@oscharko-dev/keiko-contracts 0.2.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/.tsbuildinfo +1 -0
- package/dist/bff-wire.d.ts +661 -0
- package/dist/bff-wire.d.ts.map +1 -0
- package/dist/bff-wire.js +102 -0
- package/dist/bug-investigation-events.d.ts +92 -0
- package/dist/bug-investigation-events.d.ts.map +1 -0
- package/dist/bug-investigation-events.js +18 -0
- package/dist/coding-context.d.ts +76 -0
- package/dist/coding-context.d.ts.map +1 -0
- package/dist/coding-context.js +158 -0
- package/dist/connected-context.d.ts +174 -0
- package/dist/connected-context.d.ts.map +1 -0
- package/dist/connected-context.js +636 -0
- package/dist/conversation-budget.d.ts +37 -0
- package/dist/conversation-budget.d.ts.map +1 -0
- package/dist/conversation-budget.js +97 -0
- package/dist/editor-agent.d.ts +131 -0
- package/dist/editor-agent.d.ts.map +1 -0
- package/dist/editor-agent.js +197 -0
- package/dist/editor-completion.d.ts +62 -0
- package/dist/editor-completion.d.ts.map +1 -0
- package/dist/editor-completion.js +147 -0
- package/dist/editor-dirty-close.d.ts +17 -0
- package/dist/editor-dirty-close.d.ts.map +1 -0
- package/dist/editor-dirty-close.js +8 -0
- package/dist/editor-hot-exit.d.ts +18 -0
- package/dist/editor-hot-exit.d.ts.map +1 -0
- package/dist/editor-hot-exit.js +42 -0
- package/dist/editor-inline-completion.d.ts +70 -0
- package/dist/editor-inline-completion.d.ts.map +1 -0
- package/dist/editor-inline-completion.js +215 -0
- package/dist/editor-layout.d.ts +105 -0
- package/dist/editor-layout.d.ts.map +1 -0
- package/dist/editor-layout.js +479 -0
- package/dist/editor-patch-apply.d.ts +77 -0
- package/dist/editor-patch-apply.d.ts.map +1 -0
- package/dist/editor-patch-apply.js +122 -0
- package/dist/editor-session.d.ts +31 -0
- package/dist/editor-session.d.ts.map +1 -0
- package/dist/editor-session.js +75 -0
- package/dist/editor-test-generation.d.ts +104 -0
- package/dist/editor-test-generation.d.ts.map +1 -0
- package/dist/editor-test-generation.js +211 -0
- package/dist/evaluations.d.ts +75 -0
- package/dist/evaluations.d.ts.map +1 -0
- package/dist/evaluations.js +16 -0
- package/dist/evidence.d.ts +297 -0
- package/dist/evidence.d.ts.map +1 -0
- package/dist/evidence.js +9 -0
- package/dist/gateway.d.ts +129 -0
- package/dist/gateway.d.ts.map +1 -0
- package/dist/gateway.js +66 -0
- package/dist/harness.d.ts +274 -0
- package/dist/harness.d.ts.map +1 -0
- package/dist/harness.js +38 -0
- package/dist/index.d.ts +101 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +83 -0
- package/dist/language-service.d.ts +145 -0
- package/dist/language-service.d.ts.map +1 -0
- package/dist/language-service.js +161 -0
- package/dist/local-knowledge-large-document-validation.d.ts +7 -0
- package/dist/local-knowledge-large-document-validation.d.ts.map +1 -0
- package/dist/local-knowledge-large-document-validation.js +161 -0
- package/dist/local-knowledge-large-document.d.ts +113 -0
- package/dist/local-knowledge-large-document.d.ts.map +1 -0
- package/dist/local-knowledge-large-document.js +142 -0
- package/dist/local-knowledge-paths.d.ts +3 -0
- package/dist/local-knowledge-paths.d.ts.map +1 -0
- package/dist/local-knowledge-paths.js +65 -0
- package/dist/local-knowledge-records.d.ts +190 -0
- package/dist/local-knowledge-records.d.ts.map +1 -0
- package/dist/local-knowledge-records.js +36 -0
- package/dist/local-knowledge-schema-validation.d.ts +19 -0
- package/dist/local-knowledge-schema-validation.d.ts.map +1 -0
- package/dist/local-knowledge-schema-validation.js +115 -0
- package/dist/local-knowledge-schema.d.ts +14 -0
- package/dist/local-knowledge-schema.d.ts.map +1 -0
- package/dist/local-knowledge-schema.js +715 -0
- package/dist/local-knowledge-validation.d.ts +20 -0
- package/dist/local-knowledge-validation.d.ts.map +1 -0
- package/dist/local-knowledge-validation.js +487 -0
- package/dist/local-knowledge.d.ts +158 -0
- package/dist/local-knowledge.d.ts.map +1 -0
- package/dist/local-knowledge.js +63 -0
- package/dist/memory-audit-events.d.ts +73 -0
- package/dist/memory-audit-events.d.ts.map +1 -0
- package/dist/memory-audit-events.js +44 -0
- package/dist/memory-audit-validation.d.ts +4 -0
- package/dist/memory-audit-validation.d.ts.map +1 -0
- package/dist/memory-audit-validation.js +151 -0
- package/dist/memory-barrel.d.ts +15 -0
- package/dist/memory-barrel.d.ts.map +1 -0
- package/dist/memory-barrel.js +20 -0
- package/dist/memory-internal.d.ts +26 -0
- package/dist/memory-internal.d.ts.map +1 -0
- package/dist/memory-internal.js +104 -0
- package/dist/memory-operations-validation.d.ts +12 -0
- package/dist/memory-operations-validation.d.ts.map +1 -0
- package/dist/memory-operations-validation.js +267 -0
- package/dist/memory-operations.d.ts +156 -0
- package/dist/memory-operations.d.ts.map +1 -0
- package/dist/memory-operations.js +29 -0
- package/dist/memory-record-validation.d.ts +10 -0
- package/dist/memory-record-validation.d.ts.map +1 -0
- package/dist/memory-record-validation.js +101 -0
- package/dist/memory-records.d.ts +66 -0
- package/dist/memory-records.d.ts.map +1 -0
- package/dist/memory-records.js +22 -0
- package/dist/memory-retrieval-validation.d.ts +6 -0
- package/dist/memory-retrieval-validation.d.ts.map +1 -0
- package/dist/memory-retrieval-validation.js +108 -0
- package/dist/memory-validation.d.ts +31 -0
- package/dist/memory-validation.d.ts.map +1 -0
- package/dist/memory-validation.js +318 -0
- package/dist/memory-workflow-port.d.ts +26 -0
- package/dist/memory-workflow-port.d.ts.map +1 -0
- package/dist/memory-workflow-port.js +13 -0
- package/dist/memory.d.ts +81 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +104 -0
- package/dist/prompt-enhancer-analyzer.d.ts +7 -0
- package/dist/prompt-enhancer-analyzer.d.ts.map +1 -0
- package/dist/prompt-enhancer-analyzer.js +745 -0
- package/dist/prompt-enhancer-bff.d.ts +67 -0
- package/dist/prompt-enhancer-bff.d.ts.map +1 -0
- package/dist/prompt-enhancer-bff.js +156 -0
- package/dist/prompt-enhancer-critic.d.ts +46 -0
- package/dist/prompt-enhancer-critic.d.ts.map +1 -0
- package/dist/prompt-enhancer-critic.js +35 -0
- package/dist/prompt-enhancer-grounding.d.ts +19 -0
- package/dist/prompt-enhancer-grounding.d.ts.map +1 -0
- package/dist/prompt-enhancer-grounding.js +235 -0
- package/dist/prompt-enhancer-safety.d.ts +66 -0
- package/dist/prompt-enhancer-safety.d.ts.map +1 -0
- package/dist/prompt-enhancer-safety.js +446 -0
- package/dist/prompt-enhancer-validation.d.ts +28 -0
- package/dist/prompt-enhancer-validation.d.ts.map +1 -0
- package/dist/prompt-enhancer-validation.js +931 -0
- package/dist/prompt-enhancer.d.ts +184 -0
- package/dist/prompt-enhancer.d.ts.map +1 -0
- package/dist/prompt-enhancer.js +350 -0
- package/dist/qualityIntelligence/assertNever.d.ts +2 -0
- package/dist/qualityIntelligence/assertNever.d.ts.map +1 -0
- package/dist/qualityIntelligence/assertNever.js +7 -0
- package/dist/qualityIntelligence/auditSummary.d.ts +25 -0
- package/dist/qualityIntelligence/auditSummary.d.ts.map +1 -0
- package/dist/qualityIntelligence/auditSummary.js +7 -0
- package/dist/qualityIntelligence/bffWire.d.ts +356 -0
- package/dist/qualityIntelligence/bffWire.d.ts.map +1 -0
- package/dist/qualityIntelligence/bffWire.js +22 -0
- package/dist/qualityIntelligence/coverageMap.d.ts +21 -0
- package/dist/qualityIntelligence/coverageMap.d.ts.map +1 -0
- package/dist/qualityIntelligence/coverageMap.js +29 -0
- package/dist/qualityIntelligence/editableRevision.d.ts +21 -0
- package/dist/qualityIntelligence/editableRevision.d.ts.map +1 -0
- package/dist/qualityIntelligence/editableRevision.js +8 -0
- package/dist/qualityIntelligence/evidenceAtom.d.ts +35 -0
- package/dist/qualityIntelligence/evidenceAtom.d.ts.map +1 -0
- package/dist/qualityIntelligence/evidenceAtom.js +29 -0
- package/dist/qualityIntelligence/exportBundle.d.ts +28 -0
- package/dist/qualityIntelligence/exportBundle.d.ts.map +1 -0
- package/dist/qualityIntelligence/exportBundle.js +46 -0
- package/dist/qualityIntelligence/handoffEnvelope.d.ts +23 -0
- package/dist/qualityIntelligence/handoffEnvelope.d.ts.map +1 -0
- package/dist/qualityIntelligence/handoffEnvelope.js +8 -0
- package/dist/qualityIntelligence/ids.d.ts +58 -0
- package/dist/qualityIntelligence/ids.d.ts.map +1 -0
- package/dist/qualityIntelligence/ids.js +93 -0
- package/dist/qualityIntelligence/index.d.ts +29 -0
- package/dist/qualityIntelligence/index.d.ts.map +1 -0
- package/dist/qualityIntelligence/index.js +20 -0
- package/dist/qualityIntelligence/reviewRecord.d.ts +19 -0
- package/dist/qualityIntelligence/reviewRecord.d.ts.map +1 -0
- package/dist/qualityIntelligence/reviewRecord.js +20 -0
- package/dist/qualityIntelligence/runPlanAndEvents.d.ts +84 -0
- package/dist/qualityIntelligence/runPlanAndEvents.d.ts.map +1 -0
- package/dist/qualityIntelligence/runPlanAndEvents.js +51 -0
- package/dist/qualityIntelligence/sourceEnvelope.d.ts +77 -0
- package/dist/qualityIntelligence/sourceEnvelope.d.ts.map +1 -0
- package/dist/qualityIntelligence/sourceEnvelope.js +118 -0
- package/dist/qualityIntelligence/testCaseCandidate.d.ts +21 -0
- package/dist/qualityIntelligence/testCaseCandidate.d.ts.map +1 -0
- package/dist/qualityIntelligence/testCaseCandidate.js +21 -0
- package/dist/qualityIntelligence/testQualityRubric.d.ts +17 -0
- package/dist/qualityIntelligence/testQualityRubric.d.ts.map +1 -0
- package/dist/qualityIntelligence/testQualityRubric.js +32 -0
- package/dist/qualityIntelligence/validationFinding.d.ts +48 -0
- package/dist/qualityIntelligence/validationFinding.d.ts.map +1 -0
- package/dist/qualityIntelligence/validationFinding.js +36 -0
- package/dist/relationships-validation.d.ts +13 -0
- package/dist/relationships-validation.d.ts.map +1 -0
- package/dist/relationships-validation.js +422 -0
- package/dist/relationships.d.ts +79 -0
- package/dist/relationships.d.ts.map +1 -0
- package/dist/relationships.js +307 -0
- package/dist/text-safety.d.ts +7 -0
- package/dist/text-safety.d.ts.map +1 -0
- package/dist/text-safety.js +58 -0
- package/dist/tools.d.ts +153 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +118 -0
- package/dist/unit-test-events.d.ts +87 -0
- package/dist/unit-test-events.d.ts.map +1 -0
- package/dist/unit-test-events.js +14 -0
- package/dist/verification-summary.d.ts +38 -0
- package/dist/verification-summary.d.ts.map +1 -0
- package/dist/verification-summary.js +5 -0
- package/dist/verification.d.ts +64 -0
- package/dist/verification.d.ts.map +1 -0
- package/dist/verification.js +13 -0
- package/dist/workflow-descriptor.d.ts +21 -0
- package/dist/workflow-descriptor.d.ts.map +1 -0
- package/dist/workflow-descriptor.js +8 -0
- package/dist/workflow-handoff.d.ts +69 -0
- package/dist/workflow-handoff.d.ts.map +1 -0
- package/dist/workflow-handoff.js +381 -0
- package/dist/workspace-descriptors.d.ts +21 -0
- package/dist/workspace-descriptors.d.ts.map +1 -0
- package/dist/workspace-descriptors.js +180 -0
- package/dist/workspace-ui.d.ts +119 -0
- package/dist/workspace-ui.d.ts.map +1 -0
- package/dist/workspace-ui.js +105 -0
- package/dist/workspace.d.ts +104 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +27 -0
- package/package.json +71 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bff-wire.d.ts","sourceRoot":"","sources":["../src/bff-wire.ts"],"names":[],"mappings":"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"}
|
package/dist/bff-wire.js
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
// Wire-safe entity types for the BFF (Back-For-Frontend) layer (ADR-0013 D4). These types
|
|
2
|
+
// travel over the HTTP wire between the BFF and the React UI. The DI port interfaces
|
|
3
|
+
// (UiStore, UiStoreFactoryOptions) remain in src/ui/store/types.ts to avoid a contracts→ui
|
|
4
|
+
// circular dependency.
|
|
5
|
+
// GroundedAnswerContextPackSummary projects the connected-context pack into a counts-only,
|
|
6
|
+
// browser-safe shape (Issue #187 / ADR-0022). The connected-context module is a pure-data
|
|
7
|
+
// peer; importing it does not pull in any IO or redaction code.
|
|
8
|
+
import { CANDIDATE_OMISSION_REASONS, CONNECTED_CONTEXT_SCHEMA_VERSION, } from "./connected-context.js";
|
|
9
|
+
export const DEFAULT_GROUNDING_LIMITS = {
|
|
10
|
+
maxConnectedSources: 16,
|
|
11
|
+
maxLocalKnowledgeSources: 16,
|
|
12
|
+
maxPromptReferences: 8,
|
|
13
|
+
maxExcerptChars: 900,
|
|
14
|
+
referenceBudget: 10,
|
|
15
|
+
hybridMaxCandidates: 24,
|
|
16
|
+
hybridMaxExcerptBytes: 131_072,
|
|
17
|
+
};
|
|
18
|
+
// Hard safety ceilings: an operator config may TUNE a limit but never raise it past these
|
|
19
|
+
// (preserves the original DoS-bounding intent of the fan-out caps).
|
|
20
|
+
export const GROUNDING_LIMIT_CEILINGS = {
|
|
21
|
+
maxConnectedSources: 64,
|
|
22
|
+
maxLocalKnowledgeSources: 64,
|
|
23
|
+
maxPromptReferences: 64,
|
|
24
|
+
maxExcerptChars: 20_000,
|
|
25
|
+
referenceBudget: 256,
|
|
26
|
+
hybridMaxCandidates: 256,
|
|
27
|
+
hybridMaxExcerptBytes: 524_288,
|
|
28
|
+
};
|
|
29
|
+
// Pure resolver: fill each field from `partial` when it is a positive integer, else the default;
|
|
30
|
+
// then clamp to the ceiling. Invalid (non-positive / non-integer) present fields fall back to the
|
|
31
|
+
// default here (the gateway parse layer is responsible for REJECTING malformed config explicitly).
|
|
32
|
+
export function resolveGroundingLimits(partial) {
|
|
33
|
+
const pick = (key) => {
|
|
34
|
+
const supplied = partial?.[key];
|
|
35
|
+
const resolved = supplied !== undefined && Number.isInteger(supplied) && supplied >= 1
|
|
36
|
+
? supplied
|
|
37
|
+
: DEFAULT_GROUNDING_LIMITS[key];
|
|
38
|
+
return Math.min(resolved, GROUNDING_LIMIT_CEILINGS[key]);
|
|
39
|
+
};
|
|
40
|
+
return {
|
|
41
|
+
maxConnectedSources: pick("maxConnectedSources"),
|
|
42
|
+
maxLocalKnowledgeSources: pick("maxLocalKnowledgeSources"),
|
|
43
|
+
maxPromptReferences: pick("maxPromptReferences"),
|
|
44
|
+
maxExcerptChars: pick("maxExcerptChars"),
|
|
45
|
+
referenceBudget: pick("referenceBudget"),
|
|
46
|
+
hybridMaxCandidates: pick("hybridMaxCandidates"),
|
|
47
|
+
hybridMaxExcerptBytes: pick("hybridMaxExcerptBytes"),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
// Epic #532 — a sane cap on the number of folders/files one chat may connect at once. The BFF
|
|
51
|
+
// rejects PATCHes whose connectedScopes list exceeds this; the store enforces the same as a
|
|
52
|
+
// defense-in-depth subset. Bounds retrieval fan-out cost (each source runs an independent,
|
|
53
|
+
// budget-split retrieval pass), so total work stays bounded regardless of N.
|
|
54
|
+
// Kept for back-compat; new code should read from a resolved GroundingLimits instance instead.
|
|
55
|
+
export const MAX_CONNECTED_SOURCES = DEFAULT_GROUNDING_LIMITS.maxConnectedSources;
|
|
56
|
+
// Epic #189 — sibling of MAX_CONNECTED_SOURCES for the local-knowledge (connector) source list. A
|
|
57
|
+
// chat may bind multiple capsules/capsule-sets at once; the BFF rejects PATCHes whose
|
|
58
|
+
// localKnowledgeScopes list exceeds this, and the store enforces the same as a defense-in-depth
|
|
59
|
+
// subset. Bounds the connector fan-out cost in the hybrid grounded path (Slice 2).
|
|
60
|
+
// Kept for back-compat; new code should read from a resolved GroundingLimits instance instead.
|
|
61
|
+
export const MAX_LOCAL_KNOWLEDGE_SOURCES = DEFAULT_GROUNDING_LIMITS.maxLocalKnowledgeSources;
|
|
62
|
+
function buildOmittedCounts(pack) {
|
|
63
|
+
const counts = {};
|
|
64
|
+
for (const reason of CANDIDATE_OMISSION_REASONS) {
|
|
65
|
+
counts[reason] = 0;
|
|
66
|
+
}
|
|
67
|
+
for (const entry of pack.omitted) {
|
|
68
|
+
counts[entry.reason] += 1;
|
|
69
|
+
}
|
|
70
|
+
return counts;
|
|
71
|
+
}
|
|
72
|
+
function hashString32(value) {
|
|
73
|
+
let hash = 0x811c9dc5;
|
|
74
|
+
for (let i = 0; i < value.length; i += 1) {
|
|
75
|
+
hash ^= value.charCodeAt(i);
|
|
76
|
+
hash = Math.imul(hash, 0x01000193);
|
|
77
|
+
}
|
|
78
|
+
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
79
|
+
}
|
|
80
|
+
function displayScopeId(scopeId) {
|
|
81
|
+
return `scope-${hashString32(scopeId)}`;
|
|
82
|
+
}
|
|
83
|
+
// Pure builder: derives a GroundedAnswerContextPackSummary from the source pack plus the
|
|
84
|
+
// BFF-computed citation count and total elapsed wall time. No IO, no redaction (the only
|
|
85
|
+
// scope-derived string carried is a deterministic display fingerprint); allocates one fresh object.
|
|
86
|
+
export function buildGroundedAnswerContextPackSummary(pack, citationCount, elapsedMs) {
|
|
87
|
+
return {
|
|
88
|
+
schemaVersion: CONNECTED_CONTEXT_SCHEMA_VERSION,
|
|
89
|
+
scopeId: displayScopeId(pack.scope.scopeId),
|
|
90
|
+
scopeKind: pack.scope.kind,
|
|
91
|
+
fileCount: pack.scope.kind === "workspace-root" ? -1 : pack.scope.relativePaths.length,
|
|
92
|
+
queryKind: pack.query.kind,
|
|
93
|
+
usage: pack.usage,
|
|
94
|
+
budget: pack.budget,
|
|
95
|
+
citationCount,
|
|
96
|
+
omittedCount: pack.omitted.length,
|
|
97
|
+
omittedCounts: buildOmittedCounts(pack),
|
|
98
|
+
uncertaintyCount: pack.uncertainty.length,
|
|
99
|
+
elapsedMs,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
export { PROMPT_ENHANCEMENT_LOCALE_MAX_CHARS, PROMPT_ENHANCEMENT_MODEL_ID_MAX_CHARS, PROMPT_ENHANCEMENT_DEFAULT_CANDIDATE_COUNT, PROMPT_ENHANCEMENT_MAX_CANDIDATE_COUNT, PROMPT_ENHANCEMENT_MODEL_AVAILABILITIES, validatePromptEnhancementWireRequest, } from "./prompt-enhancer-bff.js";
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { VerificationStatus } from "./verification.js";
|
|
2
|
+
export type BugWorkflowStatus = "fix-applied" | "fix-proposed" | "investigation-only" | "rejected" | "cancelled" | "failed";
|
|
3
|
+
export interface BugWorkflowLimits {
|
|
4
|
+
readonly maxModelCalls: number;
|
|
5
|
+
readonly maxRetries: number;
|
|
6
|
+
readonly contextBudgetBytes: number;
|
|
7
|
+
readonly maxBytesPerFile: number;
|
|
8
|
+
readonly maxFilesChanged: number;
|
|
9
|
+
readonly maxChangedLines: number;
|
|
10
|
+
readonly maxPatchBytes: number;
|
|
11
|
+
}
|
|
12
|
+
export declare const DEFAULT_BUG_WORKFLOW_LIMITS: BugWorkflowLimits;
|
|
13
|
+
interface BaseBugEvent {
|
|
14
|
+
readonly schemaVersion: "1";
|
|
15
|
+
readonly runId: string;
|
|
16
|
+
readonly fingerprint: string;
|
|
17
|
+
readonly seq: number;
|
|
18
|
+
readonly ts: number;
|
|
19
|
+
}
|
|
20
|
+
export interface BugInvestigationStartedEvent extends BaseBugEvent {
|
|
21
|
+
readonly type: "bug:started";
|
|
22
|
+
readonly workflowId: "bug-investigation";
|
|
23
|
+
readonly modelId: string;
|
|
24
|
+
readonly applyEnabled: boolean;
|
|
25
|
+
readonly limits: BugWorkflowLimits;
|
|
26
|
+
}
|
|
27
|
+
export interface FailureParsedEvent extends BaseBugEvent {
|
|
28
|
+
readonly type: "bug:failure:parsed";
|
|
29
|
+
readonly frameCount: number;
|
|
30
|
+
readonly messageCount: number;
|
|
31
|
+
}
|
|
32
|
+
export interface BugContextSelectedEvent extends BaseBugEvent {
|
|
33
|
+
readonly type: "bug:context:selected";
|
|
34
|
+
readonly entryCount: number;
|
|
35
|
+
readonly usedBytes: number;
|
|
36
|
+
readonly budgetBytes: number;
|
|
37
|
+
readonly droppedForBudget: number;
|
|
38
|
+
}
|
|
39
|
+
export interface BugModelCallStartedEvent extends BaseBugEvent {
|
|
40
|
+
readonly type: "bug:model:call:started";
|
|
41
|
+
readonly attempt: number;
|
|
42
|
+
readonly contextBytes: number;
|
|
43
|
+
}
|
|
44
|
+
export interface BugModelCallCompletedEvent extends BaseBugEvent {
|
|
45
|
+
readonly type: "bug:model:call:completed";
|
|
46
|
+
readonly attempt: number;
|
|
47
|
+
readonly finishReason: string;
|
|
48
|
+
readonly promptTokens: number;
|
|
49
|
+
readonly completionTokens: number;
|
|
50
|
+
readonly latencyMs: number;
|
|
51
|
+
}
|
|
52
|
+
export interface RootCauseProposedEvent extends BaseBugEvent {
|
|
53
|
+
readonly type: "bug:rootcause:proposed";
|
|
54
|
+
readonly hasPatch: boolean;
|
|
55
|
+
readonly confidence?: "low" | "medium" | "high" | undefined;
|
|
56
|
+
}
|
|
57
|
+
export interface BugPatchValidatedEvent extends BaseBugEvent {
|
|
58
|
+
readonly type: "bug:patch:validated";
|
|
59
|
+
readonly ok: boolean;
|
|
60
|
+
readonly patchBytes: number;
|
|
61
|
+
readonly filesChanged: number;
|
|
62
|
+
readonly rejectionCode?: string | undefined;
|
|
63
|
+
}
|
|
64
|
+
export interface BugPatchAppliedEvent extends BaseBugEvent {
|
|
65
|
+
readonly type: "bug:patch:applied";
|
|
66
|
+
readonly changedFiles: number;
|
|
67
|
+
readonly created: number;
|
|
68
|
+
readonly deleted: number;
|
|
69
|
+
}
|
|
70
|
+
export interface BugVerificationResultEvent extends BaseBugEvent {
|
|
71
|
+
readonly type: "bug:verification:result";
|
|
72
|
+
readonly overallStatus: VerificationStatus;
|
|
73
|
+
readonly stepCount: number;
|
|
74
|
+
readonly passedCount: number;
|
|
75
|
+
readonly durationMs: number;
|
|
76
|
+
}
|
|
77
|
+
export interface BugInvestigationCompletedEvent extends BaseBugEvent {
|
|
78
|
+
readonly type: "bug:completed";
|
|
79
|
+
readonly status: BugWorkflowStatus;
|
|
80
|
+
readonly durationMs: number;
|
|
81
|
+
}
|
|
82
|
+
export interface BugInvestigationFailedEvent extends BaseBugEvent {
|
|
83
|
+
readonly type: "bug:failed";
|
|
84
|
+
readonly errorCode: string;
|
|
85
|
+
readonly message: string;
|
|
86
|
+
}
|
|
87
|
+
export type BugInvestigationEvent = BugInvestigationStartedEvent | FailureParsedEvent | BugContextSelectedEvent | BugModelCallStartedEvent | BugModelCallCompletedEvent | RootCauseProposedEvent | BugPatchValidatedEvent | BugPatchAppliedEvent | BugVerificationResultEvent | BugInvestigationCompletedEvent | BugInvestigationFailedEvent;
|
|
88
|
+
export interface BugWorkflowEventSink {
|
|
89
|
+
readonly emit: (event: BugInvestigationEvent) => void;
|
|
90
|
+
}
|
|
91
|
+
export {};
|
|
92
|
+
//# sourceMappingURL=bug-investigation-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bug-investigation-events.d.ts","sourceRoot":"","sources":["../src/bug-investigation-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// The BugInvestigationEvent discriminated union and its BugWorkflowEventSink (ADR-0009 D5) plus
|
|
2
|
+
// the sibling status / limits names the event types reference. The envelope reuses the harness
|
|
3
|
+
// BaseEvent field shape ({ schemaVersion, runId, fingerprint, seq, ts }) by STRUCTURAL convention
|
|
4
|
+
// — NOT a TypeScript import — so the #10 audit ledger and #13 UI can narrow these events with the
|
|
5
|
+
// same envelope logic they apply to HarnessEvent. This union is SEPARATE from both HarnessEvent and
|
|
6
|
+
// the unit-test WorkflowEvent. Every member name is DISTINCT from the unit-test workflow's
|
|
7
|
+
// (ADR-0009 D5) so the package-root re-export does not collide. No runtime logic lives here beyond
|
|
8
|
+
// the frozen DEFAULT_BUG_WORKFLOW_LIMITS table. Members carry COUNTS/FLAGS only — never prose,
|
|
9
|
+
// diff, or raw paths; the one SENSITIVE field (failure message) is redacted before emit.
|
|
10
|
+
export const DEFAULT_BUG_WORKFLOW_LIMITS = {
|
|
11
|
+
maxModelCalls: 3,
|
|
12
|
+
maxRetries: 2,
|
|
13
|
+
contextBudgetBytes: 65_536,
|
|
14
|
+
maxBytesPerFile: 8_192,
|
|
15
|
+
maxFilesChanged: 10,
|
|
16
|
+
maxChangedLines: 300,
|
|
17
|
+
maxPatchBytes: 65_536,
|
|
18
|
+
};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
export declare const CODING_CONTEXT_SCHEMA_VERSION: "1";
|
|
2
|
+
export type CodingContextPurpose = "inline" | "completion" | "test-generation" | "explain" | "diagnostic";
|
|
3
|
+
export declare const CODING_CONTEXT_PURPOSES: readonly CodingContextPurpose[];
|
|
4
|
+
export type CodingContextSourceKind = "repo-search" | "connected-context" | "local-knowledge" | "memory" | "quality-intelligence" | "workflow-context" | "files-focus";
|
|
5
|
+
export declare const CODING_CONTEXT_SOURCE_KINDS: readonly CodingContextSourceKind[];
|
|
6
|
+
export type CodingContextSourceTier = "first-party-workspace" | "indexed-knowledge" | "retained-memory" | "derived-evidence";
|
|
7
|
+
export declare const CODING_CONTEXT_SOURCE_TIERS: readonly CodingContextSourceTier[];
|
|
8
|
+
export declare const CODING_CONTEXT_SOURCE_TIER_BY_KIND: Readonly<Record<CodingContextSourceKind, CodingContextSourceTier>>;
|
|
9
|
+
export type CodingContextOmissionReason = "unavailable" | "not-ready" | "denied" | "too-expensive" | "out-of-budget";
|
|
10
|
+
export declare const CODING_CONTEXT_OMISSION_REASONS: readonly CodingContextOmissionReason[];
|
|
11
|
+
export interface CodingContextOmission {
|
|
12
|
+
readonly sourceKind: CodingContextSourceKind;
|
|
13
|
+
readonly reason: CodingContextOmissionReason;
|
|
14
|
+
}
|
|
15
|
+
export interface CodingContextCitation {
|
|
16
|
+
readonly sourceKind: CodingContextSourceKind;
|
|
17
|
+
readonly sourceTier: CodingContextSourceTier;
|
|
18
|
+
readonly id: string;
|
|
19
|
+
readonly score: number;
|
|
20
|
+
readonly rank: number;
|
|
21
|
+
readonly citationRef: string | undefined;
|
|
22
|
+
readonly byteCount: number;
|
|
23
|
+
readonly truncated: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface CodingContextExcerpt {
|
|
26
|
+
readonly citation: CodingContextCitation;
|
|
27
|
+
readonly text: string;
|
|
28
|
+
}
|
|
29
|
+
export interface CodingContextPack {
|
|
30
|
+
readonly schemaVersion: typeof CODING_CONTEXT_SCHEMA_VERSION;
|
|
31
|
+
readonly purpose: CodingContextPurpose;
|
|
32
|
+
readonly excerpts: readonly CodingContextExcerpt[];
|
|
33
|
+
readonly usedBytes: number;
|
|
34
|
+
readonly budgetBytes: number;
|
|
35
|
+
readonly droppedForBudget: number;
|
|
36
|
+
readonly omissions: readonly CodingContextOmission[];
|
|
37
|
+
}
|
|
38
|
+
export interface CodingContextWirePack {
|
|
39
|
+
readonly schemaVersion: typeof CODING_CONTEXT_SCHEMA_VERSION;
|
|
40
|
+
readonly purpose: CodingContextPurpose;
|
|
41
|
+
readonly entries: readonly CodingContextCitation[];
|
|
42
|
+
readonly usedBytes: number;
|
|
43
|
+
readonly budgetBytes: number;
|
|
44
|
+
readonly droppedForBudget: number;
|
|
45
|
+
readonly omissions: readonly CodingContextOmission[];
|
|
46
|
+
}
|
|
47
|
+
export interface CodingContextBudget {
|
|
48
|
+
readonly budgetBytes: number;
|
|
49
|
+
readonly maxBytesPerSource: number;
|
|
50
|
+
readonly allowEmbeddingProviders: boolean;
|
|
51
|
+
}
|
|
52
|
+
export declare const CODING_CONTEXT_BUDGETS: Readonly<Record<CodingContextPurpose, CodingContextBudget>>;
|
|
53
|
+
export type CodingContextScopeKind = "file" | "symbol" | "selection" | "changed-set";
|
|
54
|
+
export interface CodingContextRequest {
|
|
55
|
+
readonly schemaVersion: typeof CODING_CONTEXT_SCHEMA_VERSION;
|
|
56
|
+
readonly purpose: CodingContextPurpose;
|
|
57
|
+
readonly documentPath: string;
|
|
58
|
+
readonly symbol: string | undefined;
|
|
59
|
+
readonly queryText: string | undefined;
|
|
60
|
+
readonly changedFiles: readonly string[] | undefined;
|
|
61
|
+
readonly capsuleId: string | undefined;
|
|
62
|
+
readonly capsuleSetId: string | undefined;
|
|
63
|
+
}
|
|
64
|
+
export type CodingContextValidationResult = {
|
|
65
|
+
readonly ok: true;
|
|
66
|
+
} | {
|
|
67
|
+
readonly ok: false;
|
|
68
|
+
readonly reasons: readonly string[];
|
|
69
|
+
};
|
|
70
|
+
export declare function isCodingContextPurpose(value: unknown): value is CodingContextPurpose;
|
|
71
|
+
export declare function tierForCodingContextSource(kind: CodingContextSourceKind): CodingContextSourceTier;
|
|
72
|
+
export declare function embeddingProvidersAllowed(purpose: CodingContextPurpose): boolean;
|
|
73
|
+
export declare function isCodingContextCitation(value: unknown): value is CodingContextCitation;
|
|
74
|
+
export declare function toCodingContextWirePack(pack: CodingContextPack): CodingContextWirePack;
|
|
75
|
+
export declare function validateCodingContextRequest(value: unknown): CodingContextValidationResult;
|
|
76
|
+
//# sourceMappingURL=coding-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coding-context.d.ts","sourceRoot":"","sources":["../src/coding-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
// Governed coding-context retrieval contracts (Issue #1211, ADR-0042 D6). The server-side retrieval
|
|
2
|
+
// service assembles bounded, redacted coding context for editor-originated requests (completion,
|
|
3
|
+
// inline ghost text, test generation, explanation, diagnostics) by reusing the existing retrieval
|
|
4
|
+
// substrate — repository search, Local Knowledge query-only retrieval, and memory retrieval — not a
|
|
5
|
+
// new editor-only collector. Two pack shapes are defined and the distinction is load-bearing:
|
|
6
|
+
//
|
|
7
|
+
// - CodingContextPack: SERVER-INTERNAL, content-bearing (redacted excerpts). Fed to a governed
|
|
8
|
+
// model or the harness in-process. It is never serialized to the browser and never persisted
|
|
9
|
+
// raw to evidence.
|
|
10
|
+
// - CodingContextWirePack: content-free. The BFF response to the host and the evidence/audit
|
|
11
|
+
// projection. It carries only citations (provenance pointers + accounting), never excerpt text,
|
|
12
|
+
// raw queries, prompts, workspace roots, or secrets.
|
|
13
|
+
//
|
|
14
|
+
// Retrieved repository text, Local Knowledge chunks, and memory are UNTRUSTED model input (OWASP
|
|
15
|
+
// LLM08:2025 vector and embedding weaknesses; indirect LLM01:2025 prompt injection). Every citation
|
|
16
|
+
// and excerpt carries a source trust tier so a consumer can audit cross-tier/cross-tenant flow, and
|
|
17
|
+
// no retrieved content may grant tool authority or a model-privileged outcome — the consuming task
|
|
18
|
+
// (e.g. generate-unit-tests with allowsTools=false) and the explicit-acceptance gate remain the only
|
|
19
|
+
// authorities. The source-kind vocabulary mirrors the browser-side EditorContextSourceKind owned by
|
|
20
|
+
// @oscharko-dev/keiko-editor so a host maps these server citations onto the editor context port 1:1
|
|
21
|
+
// without a translation table; this package never imports the editor package (wrong tier direction).
|
|
22
|
+
export const CODING_CONTEXT_SCHEMA_VERSION = "1";
|
|
23
|
+
export const CODING_CONTEXT_PURPOSES = [
|
|
24
|
+
"inline",
|
|
25
|
+
"completion",
|
|
26
|
+
"test-generation",
|
|
27
|
+
"explain",
|
|
28
|
+
"diagnostic",
|
|
29
|
+
];
|
|
30
|
+
export const CODING_CONTEXT_SOURCE_KINDS = [
|
|
31
|
+
"repo-search",
|
|
32
|
+
"connected-context",
|
|
33
|
+
"local-knowledge",
|
|
34
|
+
"memory",
|
|
35
|
+
"quality-intelligence",
|
|
36
|
+
"workflow-context",
|
|
37
|
+
"files-focus",
|
|
38
|
+
];
|
|
39
|
+
export const CODING_CONTEXT_SOURCE_TIERS = [
|
|
40
|
+
"first-party-workspace",
|
|
41
|
+
"indexed-knowledge",
|
|
42
|
+
"retained-memory",
|
|
43
|
+
"derived-evidence",
|
|
44
|
+
];
|
|
45
|
+
// Fixed source-kind -> tier mapping. Centralised so every provider tags identically and a test can
|
|
46
|
+
// assert no source-kind is left untiered.
|
|
47
|
+
export const CODING_CONTEXT_SOURCE_TIER_BY_KIND = {
|
|
48
|
+
"repo-search": "first-party-workspace",
|
|
49
|
+
"files-focus": "first-party-workspace",
|
|
50
|
+
"connected-context": "first-party-workspace",
|
|
51
|
+
"local-knowledge": "indexed-knowledge",
|
|
52
|
+
memory: "retained-memory",
|
|
53
|
+
"quality-intelligence": "derived-evidence",
|
|
54
|
+
"workflow-context": "derived-evidence",
|
|
55
|
+
};
|
|
56
|
+
export const CODING_CONTEXT_OMISSION_REASONS = [
|
|
57
|
+
"unavailable",
|
|
58
|
+
"not-ready",
|
|
59
|
+
"denied",
|
|
60
|
+
"too-expensive",
|
|
61
|
+
"out-of-budget",
|
|
62
|
+
];
|
|
63
|
+
export const CODING_CONTEXT_BUDGETS = {
|
|
64
|
+
inline: { budgetBytes: 8_192, maxBytesPerSource: 2_048, allowEmbeddingProviders: false },
|
|
65
|
+
completion: { budgetBytes: 32_768, maxBytesPerSource: 8_192, allowEmbeddingProviders: true },
|
|
66
|
+
"test-generation": {
|
|
67
|
+
budgetBytes: 65_536,
|
|
68
|
+
maxBytesPerSource: 16_384,
|
|
69
|
+
allowEmbeddingProviders: true,
|
|
70
|
+
},
|
|
71
|
+
explain: { budgetBytes: 49_152, maxBytesPerSource: 12_288, allowEmbeddingProviders: true },
|
|
72
|
+
diagnostic: { budgetBytes: 16_384, maxBytesPerSource: 4_096, allowEmbeddingProviders: false },
|
|
73
|
+
};
|
|
74
|
+
// ─── Helpers ────────────────────────────────────────────────────────────────────
|
|
75
|
+
function isRecord(value) {
|
|
76
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
77
|
+
}
|
|
78
|
+
function isNonEmptyString(value) {
|
|
79
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
80
|
+
}
|
|
81
|
+
function isOptionalString(value) {
|
|
82
|
+
return value === undefined || typeof value === "string";
|
|
83
|
+
}
|
|
84
|
+
function isOptionalStringArray(value) {
|
|
85
|
+
return value === undefined || (Array.isArray(value) && value.every((v) => typeof v === "string"));
|
|
86
|
+
}
|
|
87
|
+
export function isCodingContextPurpose(value) {
|
|
88
|
+
return (typeof value === "string" && CODING_CONTEXT_PURPOSES.includes(value));
|
|
89
|
+
}
|
|
90
|
+
// Returns the trust tier for a source kind. Total over the source-kind union.
|
|
91
|
+
export function tierForCodingContextSource(kind) {
|
|
92
|
+
return CODING_CONTEXT_SOURCE_TIER_BY_KIND[kind];
|
|
93
|
+
}
|
|
94
|
+
// Whether embedding-cost providers (Local Knowledge, memory) may run for this purpose. The single
|
|
95
|
+
// authority for the per-keystroke exclusion rule (Issue #1211 AC3).
|
|
96
|
+
export function embeddingProvidersAllowed(purpose) {
|
|
97
|
+
return CODING_CONTEXT_BUDGETS[purpose].allowEmbeddingProviders;
|
|
98
|
+
}
|
|
99
|
+
// Structural content-free check: a value is a wire-safe citation only if it has no excerpt/content/
|
|
100
|
+
// text/raw fields. Used as a defense-in-depth guard before a citation reaches the browser or an
|
|
101
|
+
// evidence record.
|
|
102
|
+
function citationShapeValid(value) {
|
|
103
|
+
return [
|
|
104
|
+
CODING_CONTEXT_SOURCE_KINDS.includes(value.sourceKind),
|
|
105
|
+
CODING_CONTEXT_SOURCE_TIERS.includes(value.sourceTier),
|
|
106
|
+
typeof value.id === "string",
|
|
107
|
+
typeof value.score === "number",
|
|
108
|
+
typeof value.rank === "number",
|
|
109
|
+
typeof value.byteCount === "number",
|
|
110
|
+
typeof value.truncated === "boolean",
|
|
111
|
+
isOptionalString(value.citationRef),
|
|
112
|
+
].every(Boolean);
|
|
113
|
+
}
|
|
114
|
+
export function isCodingContextCitation(value) {
|
|
115
|
+
if (!isRecord(value)) {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
if ("text" in value || "excerpt" in value || "content" in value) {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
return citationShapeValid(value);
|
|
122
|
+
}
|
|
123
|
+
// Projects a content-bearing pack to its content-free wire/evidence form by dropping excerpt text.
|
|
124
|
+
// Pure: the same pack always yields the same wire pack.
|
|
125
|
+
export function toCodingContextWirePack(pack) {
|
|
126
|
+
return {
|
|
127
|
+
schemaVersion: pack.schemaVersion,
|
|
128
|
+
purpose: pack.purpose,
|
|
129
|
+
entries: pack.excerpts.map((excerpt) => excerpt.citation),
|
|
130
|
+
usedBytes: pack.usedBytes,
|
|
131
|
+
budgetBytes: pack.budgetBytes,
|
|
132
|
+
droppedForBudget: pack.droppedForBudget,
|
|
133
|
+
omissions: pack.omissions,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
// Validates a coding-context request parsed from the BFF wire. `documentPath` must be present and
|
|
137
|
+
// relative; absolute/escaping containment is enforced separately at the route layer (realpath gate).
|
|
138
|
+
export function validateCodingContextRequest(value) {
|
|
139
|
+
if (!isRecord(value)) {
|
|
140
|
+
return { ok: false, reasons: ["request invalid"] };
|
|
141
|
+
}
|
|
142
|
+
const checks = [
|
|
143
|
+
[value.schemaVersion === CODING_CONTEXT_SCHEMA_VERSION, "request.schemaVersion invalid"],
|
|
144
|
+
[isCodingContextPurpose(value.purpose), "request.purpose invalid"],
|
|
145
|
+
[isNonEmptyString(value.documentPath), "request.documentPath empty"],
|
|
146
|
+
[isOptionalString(value.symbol), "request.symbol invalid"],
|
|
147
|
+
[isOptionalString(value.queryText), "request.queryText invalid"],
|
|
148
|
+
[isOptionalStringArray(value.changedFiles), "request.changedFiles invalid"],
|
|
149
|
+
[isOptionalString(value.capsuleId), "request.capsuleId invalid"],
|
|
150
|
+
[isOptionalString(value.capsuleSetId), "request.capsuleSetId invalid"],
|
|
151
|
+
[
|
|
152
|
+
!(typeof value.capsuleId === "string" && typeof value.capsuleSetId === "string"),
|
|
153
|
+
"request.localKnowledgeScope ambiguous",
|
|
154
|
+
],
|
|
155
|
+
];
|
|
156
|
+
const reasons = checks.filter(([ok]) => !ok).map(([, reason]) => reason);
|
|
157
|
+
return reasons.length === 0 ? { ok: true } : { ok: false, reasons };
|
|
158
|
+
}
|