@kawacode/mcp 6.1.2 → 6.6.1
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/CLAUDE.md.example +2 -0
- package/build/index.js +16 -1
- package/build/index.js.map +1 -1
- package/build/kawacode-on-pre-edit.d.ts +5 -0
- package/build/kawacode-on-pre-edit.js +45 -6
- package/build/kawacode-on-pre-edit.js.map +1 -1
- package/build/kawacode-on-stop.d.ts +49 -23
- package/build/kawacode-on-stop.js +233 -38
- package/build/kawacode-on-stop.js.map +1 -1
- package/build/services/muninn-ipc.d.ts +19 -1
- package/build/services/muninn-ipc.js +20 -2
- package/build/services/muninn-ipc.js.map +1 -1
- package/build/stop/uncompleted-commit.d.ts +45 -0
- package/build/stop/uncompleted-commit.js +117 -0
- package/build/stop/uncompleted-commit.js.map +1 -0
- package/build/stop/uncompleted-commit.test.d.ts +1 -0
- package/build/stop/uncompleted-commit.test.js +105 -0
- package/build/stop/uncompleted-commit.test.js.map +1 -0
- package/build/tools/activate-intent.d.ts +1 -14
- package/build/tools/activate-intent.js +17 -56
- package/build/tools/activate-intent.js.map +1 -1
- package/build/tools/arbiter-apply.d.ts +132 -0
- package/build/tools/arbiter-apply.js +59 -0
- package/build/tools/arbiter-apply.js.map +1 -0
- package/build/tools/arbiter-resolve.d.ts +132 -0
- package/build/tools/arbiter-resolve.js +58 -0
- package/build/tools/arbiter-resolve.js.map +1 -0
- package/build/tools/check-active-intent.d.ts +21 -12
- package/build/tools/check-active-intent.js +26 -13
- package/build/tools/check-active-intent.js.map +1 -1
- package/build/tools/complete-intent.d.ts +29 -0
- package/build/tools/complete-intent.js +26 -28
- package/build/tools/complete-intent.js.map +1 -1
- package/build/tools/create-intent.d.ts +1 -21
- package/build/tools/create-intent.js +18 -106
- package/build/tools/create-intent.js.map +1 -1
- package/build/tools/get-decision-detail.d.ts +109 -0
- package/build/tools/get-decision-detail.js +57 -0
- package/build/tools/get-decision-detail.js.map +1 -0
- package/build/tools/get-project-decisions.d.ts +0 -4
- package/build/tools/get-project-decisions.js +4 -6
- package/build/tools/get-project-decisions.js.map +1 -1
- package/build/tools/get-relevant-context.d.ts +0 -1
- package/build/tools/get-relevant-context.js +4 -2
- package/build/tools/get-relevant-context.js.map +1 -1
- package/build/tools/get-resolution-context.d.ts +154 -0
- package/build/tools/get-resolution-context.js +78 -0
- package/build/tools/get-resolution-context.js.map +1 -0
- package/build/tools/get-session-decisions.d.ts +0 -5
- package/build/tools/get-session-decisions.js +5 -5
- package/build/tools/get-session-decisions.js.map +1 -1
- package/build/tools/index.d.ts +225 -7
- package/build/tools/index.js +18 -3
- package/build/tools/index.js.map +1 -1
- package/build/tools/infer-history.d.ts +16 -0
- package/build/tools/infer-history.js +27 -0
- package/build/tools/infer-history.js.map +1 -1
- package/build/tools/list-team-intents.d.ts +6 -6
- package/build/tools/list-team-intents.js +21 -32
- package/build/tools/list-team-intents.js.map +1 -1
- package/build/tools/pre-edit-decision-check.js +2 -0
- package/build/tools/pre-edit-decision-check.js.map +1 -1
- package/build/tools/record-decision.d.ts +76 -0
- package/build/tools/record-decision.js +10 -0
- package/build/tools/record-decision.js.map +1 -1
- package/build/tools/update-features.d.ts +31 -0
- package/build/tools/update-features.js +51 -0
- package/build/tools/update-features.js.map +1 -0
- package/package.json +2 -2
package/build/tools/index.js
CHANGED
|
@@ -12,12 +12,17 @@ import { logWorkTool, logWork, logWorkSchema } from './log-work.js';
|
|
|
12
12
|
import { recordDecisionTool, recordDecision, recordDecisionSchema } from './record-decision.js';
|
|
13
13
|
import { getSessionDecisionsTool, getSessionDecisions, getSessionDecisionsSchema } from './get-session-decisions.js';
|
|
14
14
|
import { getProjectDecisionsTool, getProjectDecisions, getProjectDecisionsSchema } from './get-project-decisions.js';
|
|
15
|
+
import { getDecisionDetailTool, getDecisionDetail, getDecisionDetailSchema } from './get-decision-detail.js';
|
|
15
16
|
import { editSessionDecisionTool, editSessionDecision, editSessionDecisionSchema } from './edit-session-decision.js';
|
|
16
17
|
import { detectIntentConflictsTool, detectIntentConflicts, detectIntentConflictsSchema } from './detect-intent-conflicts.js';
|
|
17
18
|
import { inferHistoryTool, inferHistory, inferHistorySchema } from './infer-history.js';
|
|
18
19
|
import { evolveDecisionsTool, evolveDecisions, evolveDecisionsSchema } from './evolve-decisions.js';
|
|
20
|
+
import { updateFeaturesTool, updateFeatures, updateFeaturesSchema } from './update-features.js';
|
|
19
21
|
import { preEditDecisionCheckTool, preEditDecisionCheck, preEditDecisionCheckSchema } from './pre-edit-decision-check.js';
|
|
20
22
|
import { preEditAcknowledgeTool, preEditAcknowledge, preEditAcknowledgeSchema } from './pre-edit-acknowledge.js';
|
|
23
|
+
import { getResolutionContextTool, getResolutionContext, getResolutionContextSchema } from './get-resolution-context.js';
|
|
24
|
+
import { arbiterResolveTool, arbiterResolve, arbiterResolveSchema } from './arbiter-resolve.js';
|
|
25
|
+
import { arbiterApplyTool, arbiterApply, arbiterApplySchema } from './arbiter-apply.js';
|
|
21
26
|
// Re-export everything
|
|
22
27
|
export {
|
|
23
28
|
// Relevance-based context (call per request)
|
|
@@ -27,13 +32,15 @@ checkActiveIntentTool, checkActiveIntent, checkActiveIntentSchema, createAndActi
|
|
|
27
32
|
// Lightweight logging
|
|
28
33
|
logWorkTool, logWork, logWorkSchema,
|
|
29
34
|
// Decision recording tools
|
|
30
|
-
recordDecisionTool, recordDecision, recordDecisionSchema, getSessionDecisionsTool, getSessionDecisions, getSessionDecisionsSchema, getProjectDecisionsTool, getProjectDecisions, getProjectDecisionsSchema, editSessionDecisionTool, editSessionDecision, editSessionDecisionSchema,
|
|
35
|
+
recordDecisionTool, recordDecision, recordDecisionSchema, getSessionDecisionsTool, getSessionDecisions, getSessionDecisionsSchema, getProjectDecisionsTool, getProjectDecisions, getProjectDecisionsSchema, getDecisionDetailTool, getDecisionDetail, getDecisionDetailSchema, editSessionDecisionTool, editSessionDecision, editSessionDecisionSchema,
|
|
31
36
|
// Conflict detection
|
|
32
37
|
detectIntentConflictsTool, detectIntentConflicts, detectIntentConflictsSchema,
|
|
33
38
|
// Inference pipeline tools
|
|
34
39
|
inferHistoryTool, inferHistory, inferHistorySchema, evolveDecisionsTool, evolveDecisions, evolveDecisionsSchema,
|
|
40
|
+
// Feature catalog
|
|
41
|
+
updateFeaturesTool, updateFeatures, updateFeaturesSchema,
|
|
35
42
|
// Pre-edit decision check
|
|
36
|
-
preEditDecisionCheckTool, preEditDecisionCheck, preEditDecisionCheckSchema, preEditAcknowledgeTool, preEditAcknowledge, preEditAcknowledgeSchema };
|
|
43
|
+
preEditDecisionCheckTool, preEditDecisionCheck, preEditDecisionCheckSchema, preEditAcknowledgeTool, preEditAcknowledge, preEditAcknowledgeSchema, getResolutionContextTool, getResolutionContext, getResolutionContextSchema, arbiterResolveTool, arbiterResolve, arbiterResolveSchema, arbiterApplyTool, arbiterApply, arbiterApplySchema };
|
|
37
44
|
export const allTools = [
|
|
38
45
|
// Relevance-based context - CALL PER REQUEST
|
|
39
46
|
getRelevantContextTool,
|
|
@@ -53,14 +60,22 @@ export const allTools = [
|
|
|
53
60
|
recordDecisionTool,
|
|
54
61
|
getSessionDecisionsTool,
|
|
55
62
|
getProjectDecisionsTool,
|
|
63
|
+
getDecisionDetailTool,
|
|
56
64
|
editSessionDecisionTool,
|
|
57
65
|
// Conflict detection
|
|
58
66
|
detectIntentConflictsTool,
|
|
59
67
|
// Inference pipeline tools
|
|
60
68
|
inferHistoryTool,
|
|
61
69
|
evolveDecisionsTool,
|
|
70
|
+
// Feature catalog
|
|
71
|
+
updateFeaturesTool,
|
|
62
72
|
// Pre-edit decision check
|
|
63
73
|
preEditDecisionCheckTool,
|
|
64
|
-
preEditAcknowledgeTool
|
|
74
|
+
preEditAcknowledgeTool,
|
|
75
|
+
// Layer C conflict resolution
|
|
76
|
+
getResolutionContextTool,
|
|
77
|
+
// Arbiter v2 conflict resolution (resolve / apply)
|
|
78
|
+
arbiterResolveTool,
|
|
79
|
+
arbiterApplyTool
|
|
65
80
|
];
|
|
66
81
|
//# sourceMappingURL=index.js.map
|
package/build/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAC5G,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAChH,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAA;AACxH,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC/F,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAC7G,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACjH,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AACpG,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACxG,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvF,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC/F,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AACpH,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AACpH,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AACpH,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAA;AAC5H,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvF,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AACnG,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzH,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,10 @@ export declare const inferHistorySchema: z.ZodObject<{
|
|
|
8
8
|
maxStories: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
9
9
|
allowCommitSplitting: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
10
10
|
estimateOnly: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
11
|
+
force: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
11
12
|
}, "strip", z.ZodTypeAny, {
|
|
12
13
|
repoPath: string;
|
|
14
|
+
force: boolean;
|
|
13
15
|
contextIssues: boolean;
|
|
14
16
|
model: string;
|
|
15
17
|
maxStories: number;
|
|
@@ -19,6 +21,7 @@ export declare const inferHistorySchema: z.ZodObject<{
|
|
|
19
21
|
commitRange?: string | undefined;
|
|
20
22
|
}, {
|
|
21
23
|
repoPath: string;
|
|
24
|
+
force?: boolean | undefined;
|
|
22
25
|
commits?: number | undefined;
|
|
23
26
|
commitRange?: string | undefined;
|
|
24
27
|
contextIssues?: boolean | undefined;
|
|
@@ -34,8 +37,18 @@ export interface AutoModeResolution {
|
|
|
34
37
|
mode: AutoMode;
|
|
35
38
|
lastSha?: string;
|
|
36
39
|
}
|
|
40
|
+
/** Surfaced by the re-run guard when a run is stopped pending user confirmation. */
|
|
41
|
+
export interface GuardDecision {
|
|
42
|
+
reason: 'populated_repo_no_clean_resume' | 'non_default_branch';
|
|
43
|
+
intentCount: number;
|
|
44
|
+
lastSha?: string;
|
|
45
|
+
head: string;
|
|
46
|
+
isDefaultBranch: boolean;
|
|
47
|
+
}
|
|
37
48
|
export interface InferHistoryResponse {
|
|
38
49
|
started?: boolean;
|
|
50
|
+
/** Set when the re-run guard stopped the run; caller should confirm and re-call with force. */
|
|
51
|
+
needsDecision?: GuardDecision;
|
|
39
52
|
estimate?: {
|
|
40
53
|
pass1_input: number;
|
|
41
54
|
pass1_output: number;
|
|
@@ -65,8 +78,10 @@ export declare const inferHistoryTool: {
|
|
|
65
78
|
maxStories: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
66
79
|
allowCommitSplitting: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
67
80
|
estimateOnly: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
81
|
+
force: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
68
82
|
}, "strip", z.ZodTypeAny, {
|
|
69
83
|
repoPath: string;
|
|
84
|
+
force: boolean;
|
|
70
85
|
contextIssues: boolean;
|
|
71
86
|
model: string;
|
|
72
87
|
maxStories: number;
|
|
@@ -76,6 +91,7 @@ export declare const inferHistoryTool: {
|
|
|
76
91
|
commitRange?: string | undefined;
|
|
77
92
|
}, {
|
|
78
93
|
repoPath: string;
|
|
94
|
+
force?: boolean | undefined;
|
|
79
95
|
commits?: number | undefined;
|
|
80
96
|
commitRange?: string | undefined;
|
|
81
97
|
contextIssues?: boolean | undefined;
|
|
@@ -9,6 +9,7 @@ export const inferHistorySchema = z.object({
|
|
|
9
9
|
maxStories: z.number().optional().default(0).describe('Maximum number of stories to analyze in this run (0 = unlimited).'),
|
|
10
10
|
allowCommitSplitting: z.boolean().optional().default(false).describe('Allow splitting a single commit into multiple stories when it contains unrelated changes (recommended for repos with messy commit history)'),
|
|
11
11
|
estimateOnly: z.boolean().optional().default(true).describe('If true (default), only estimate token cost without running the pipeline. Set to false to run the full pipeline.'),
|
|
12
|
+
force: z.boolean().optional().default(false).describe('Override the re-run guard. When the repo already has intents and infer_history cannot cleanly resume (missing/unreachable cursor), or when HEAD is not on the default branch, the run is stopped and a confirmation is requested. Set `force: true` to proceed anyway, accepting the duplicate-intent risk. Exact-commit duplicates are still skipped automatically; overlapping re-groupings are not. A forced run on a non-default branch additionally does NOT advance the resume cursor. Does not override a hard failure such as the desktop app being unreachable.'),
|
|
12
13
|
});
|
|
13
14
|
function describeAutoMode(am) {
|
|
14
15
|
const sha = am.lastSha ? ` (last_inferred_sha=${am.lastSha.slice(0, 7)})` : '';
|
|
@@ -27,6 +28,22 @@ function describeAutoMode(am) {
|
|
|
27
28
|
return `\n⚠ Auto-mode: failed to resolve resume state (see Muninn logs). Falling back to ${am.commits} most recent commits.`;
|
|
28
29
|
}
|
|
29
30
|
}
|
|
31
|
+
/** Build the agent-facing message when the re-run guard stops a run. */
|
|
32
|
+
function describeGuardDecision(d) {
|
|
33
|
+
const head = d.head ? d.head.slice(0, 7) : '?';
|
|
34
|
+
if (d.reason === 'non_default_branch') {
|
|
35
|
+
return `infer_history stopped: HEAD (${head}) is not on the repository's default branch. ` +
|
|
36
|
+
`Inferring a feature branch risks creating intents that duplicate work once it is squash/rebase-merged into the default branch. ` +
|
|
37
|
+
`Recommended: switch to the default branch (main/master) and re-run. ` +
|
|
38
|
+
`To proceed here anyway, re-call infer_history with force: true — a forced non-default run will NOT advance the resume cursor.`;
|
|
39
|
+
}
|
|
40
|
+
// populated_repo_no_clean_resume
|
|
41
|
+
return `infer_history stopped: this repo already has ${d.intentCount} intent(s), but the run cannot cleanly resume ` +
|
|
42
|
+
`(${d.lastSha ? `stored cursor ${d.lastSha.slice(0, 7)} is no longer reachable — rebase/GC/branch switch` : 'no resume cursor is recorded'}). ` +
|
|
43
|
+
`Re-running could create duplicate intents for history that is already covered. ` +
|
|
44
|
+
`To proceed anyway, re-call infer_history with force: true. ` +
|
|
45
|
+
`Exact-commit duplicates are skipped automatically; overlapping re-groupings are not.`;
|
|
46
|
+
}
|
|
30
47
|
export async function inferHistory(input) {
|
|
31
48
|
// commits and commitRange are mutually exclusive. Catch in the MCP layer so
|
|
32
49
|
// the user gets a clear error instead of an opaque muninn-side rejection.
|
|
@@ -39,6 +56,7 @@ export async function inferHistory(input) {
|
|
|
39
56
|
repoPath: input.repoPath,
|
|
40
57
|
contextIssues: input.contextIssues,
|
|
41
58
|
model: input.model,
|
|
59
|
+
force: input.force,
|
|
42
60
|
};
|
|
43
61
|
if (input.commits !== undefined)
|
|
44
62
|
inferencePayload.commits = input.commits;
|
|
@@ -50,6 +68,9 @@ export async function inferHistory(input) {
|
|
|
50
68
|
// so the caller blocks until the server returns.
|
|
51
69
|
const ESTIMATE_TIMEOUT_MS = 180_000;
|
|
52
70
|
const res = await request('inference', 'estimate', inferencePayload, ESTIMATE_TIMEOUT_MS);
|
|
71
|
+
if (res.status === 'needs_decision') {
|
|
72
|
+
return { needsDecision: res.decision, message: describeGuardDecision(res.decision) };
|
|
73
|
+
}
|
|
53
74
|
let forgeWarning = '';
|
|
54
75
|
if (!res.forge_cli_available) {
|
|
55
76
|
const forge = res.forge ?? 'Unknown';
|
|
@@ -79,12 +100,16 @@ export async function inferHistory(input) {
|
|
|
79
100
|
model: input.model,
|
|
80
101
|
maxStories: input.maxStories,
|
|
81
102
|
allowCommitSplitting: input.allowCommitSplitting,
|
|
103
|
+
force: input.force,
|
|
82
104
|
};
|
|
83
105
|
if (input.commits !== undefined)
|
|
84
106
|
runPayload.commits = input.commits;
|
|
85
107
|
if (input.commitRange !== undefined)
|
|
86
108
|
runPayload.commitRange = input.commitRange;
|
|
87
109
|
const res = await request('inference', 'run', runPayload);
|
|
110
|
+
if (res.status === 'needs_decision') {
|
|
111
|
+
return { needsDecision: res.decision, message: describeGuardDecision(res.decision) };
|
|
112
|
+
}
|
|
88
113
|
const autoModeNote = res.autoMode ? describeAutoMode(res.autoMode) : '';
|
|
89
114
|
return {
|
|
90
115
|
started: res.started,
|
|
@@ -107,11 +132,13 @@ Inputs of note:
|
|
|
107
132
|
- \`contextIssues\`: include PR/MR descriptions and issue discussions when an authenticated forge CLI (\`gh\` or \`glab\`) is available; auto-skipped otherwise.
|
|
108
133
|
- \`allowCommitSplitting\`: enable when commit history is messy and a single commit may cover unrelated changes.
|
|
109
134
|
- \`model\`, \`maxStories\`: Anthropic model and per-run cap.
|
|
135
|
+
- \`force\` (default false): override the re-run guard (see Behavior).
|
|
110
136
|
|
|
111
137
|
Behavior:
|
|
112
138
|
- A run is asynchronous — returns immediately with a started/pending status; progress is reported separately.
|
|
113
139
|
- Results are persisted as intents and decisions for the repo on completion.
|
|
114
140
|
- If interrupted, re-running resumes from where it left off.
|
|
141
|
+
- Re-run guard: a clean incremental resume runs automatically. But if the repo already has intents and the run cannot cleanly resume (missing/unreachable cursor), or HEAD is not on the default branch, the call STOPS and returns \`needsDecision\` instead of running — re-running blind there risks duplicate intents. Present the reason to the user and, if they confirm, re-call with \`force: true\`. Run on the default branch (main/master) whenever possible; inferring a feature branch is what \`force\` is for.
|
|
115
142
|
- GitHub and GitLab are supported; the forge is detected from the remote origin.`,
|
|
116
143
|
inputSchema: inferHistorySchema,
|
|
117
144
|
handler: inferHistory
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infer-history.js","sourceRoot":"","sources":["../../src/tools/infer-history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAEnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAClE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2MAA2M,CAAC;IACpP,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kQAAkQ,CAAC;IAC/S,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,sEAAsE,CAAC;IACrI,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IACvI,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mEAAmE,CAAC;IAC1H,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,4IAA4I,CAAC;IAClN,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,kHAAkH,CAAC;
|
|
1
|
+
{"version":3,"file":"infer-history.js","sourceRoot":"","sources":["../../src/tools/infer-history.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ export declare const listTeamIntentsSchema: z.ZodObject<{
|
|
|
16
16
|
workspaceId: z.ZodOptional<z.ZodString>;
|
|
17
17
|
repoOrigin: z.ZodOptional<z.ZodString>;
|
|
18
18
|
repoPath: z.ZodString;
|
|
19
|
-
status: z.ZodOptional<z.ZodEnum<["active", "
|
|
19
|
+
status: z.ZodOptional<z.ZodEnum<["active", "committed", "pushed", "done", "abandoned"]>>;
|
|
20
20
|
author: z.ZodOptional<z.ZodString>;
|
|
21
21
|
since: z.ZodOptional<z.ZodString>;
|
|
22
22
|
until: z.ZodOptional<z.ZodString>;
|
|
@@ -26,7 +26,7 @@ export declare const listTeamIntentsSchema: z.ZodObject<{
|
|
|
26
26
|
repoPath: string;
|
|
27
27
|
limit: number;
|
|
28
28
|
offset: number;
|
|
29
|
-
status?: "
|
|
29
|
+
status?: "active" | "committed" | "pushed" | "done" | "abandoned" | undefined;
|
|
30
30
|
repoOrigin?: string | undefined;
|
|
31
31
|
forkAuthor?: {
|
|
32
32
|
platform: "github" | "gitlab";
|
|
@@ -39,7 +39,7 @@ export declare const listTeamIntentsSchema: z.ZodObject<{
|
|
|
39
39
|
until?: string | undefined;
|
|
40
40
|
}, {
|
|
41
41
|
repoPath: string;
|
|
42
|
-
status?: "
|
|
42
|
+
status?: "active" | "committed" | "pushed" | "done" | "abandoned" | undefined;
|
|
43
43
|
repoOrigin?: string | undefined;
|
|
44
44
|
forkAuthor?: {
|
|
45
45
|
platform: "github" | "gitlab";
|
|
@@ -92,7 +92,7 @@ export declare const listTeamIntentsTool: {
|
|
|
92
92
|
workspaceId: z.ZodOptional<z.ZodString>;
|
|
93
93
|
repoOrigin: z.ZodOptional<z.ZodString>;
|
|
94
94
|
repoPath: z.ZodString;
|
|
95
|
-
status: z.ZodOptional<z.ZodEnum<["active", "
|
|
95
|
+
status: z.ZodOptional<z.ZodEnum<["active", "committed", "pushed", "done", "abandoned"]>>;
|
|
96
96
|
author: z.ZodOptional<z.ZodString>;
|
|
97
97
|
since: z.ZodOptional<z.ZodString>;
|
|
98
98
|
until: z.ZodOptional<z.ZodString>;
|
|
@@ -102,7 +102,7 @@ export declare const listTeamIntentsTool: {
|
|
|
102
102
|
repoPath: string;
|
|
103
103
|
limit: number;
|
|
104
104
|
offset: number;
|
|
105
|
-
status?: "
|
|
105
|
+
status?: "active" | "committed" | "pushed" | "done" | "abandoned" | undefined;
|
|
106
106
|
repoOrigin?: string | undefined;
|
|
107
107
|
forkAuthor?: {
|
|
108
108
|
platform: "github" | "gitlab";
|
|
@@ -115,7 +115,7 @@ export declare const listTeamIntentsTool: {
|
|
|
115
115
|
until?: string | undefined;
|
|
116
116
|
}, {
|
|
117
117
|
repoPath: string;
|
|
118
|
-
status?: "
|
|
118
|
+
status?: "active" | "committed" | "pushed" | "done" | "abandoned" | undefined;
|
|
119
119
|
repoOrigin?: string | undefined;
|
|
120
120
|
forkAuthor?: {
|
|
121
121
|
platform: "github" | "gitlab";
|
|
@@ -5,8 +5,8 @@ import { forkFieldsExtensions, extractForkFields } from './_fork-fields.js';
|
|
|
5
5
|
export const listTeamIntentsSchema = z.object({
|
|
6
6
|
repoOrigin: z.string().optional().describe('Git remote origin URL. Auto-detected from repoPath via git if not provided.'),
|
|
7
7
|
repoPath: z.string().describe('Local path to the repository root'),
|
|
8
|
-
status: z.enum(['active', '
|
|
9
|
-
.describe('Filter by intent status.
|
|
8
|
+
status: z.enum(['active', 'committed', 'pushed', 'done', 'abandoned']).optional()
|
|
9
|
+
.describe('Filter by intent status.'),
|
|
10
10
|
author: z.string().optional().describe('Filter by author name or ID'),
|
|
11
11
|
since: z.string().optional().describe('Filter intents updated after this ISO8601 date (e.g. "2026-04-01")'),
|
|
12
12
|
until: z.string().optional().describe('Filter intents updated before this ISO8601 date'),
|
|
@@ -16,12 +16,23 @@ export const listTeamIntentsSchema = z.object({
|
|
|
16
16
|
});
|
|
17
17
|
export async function listTeamIntents(input) {
|
|
18
18
|
const actualOrigin = resolveOrigin(input.repoOrigin, input.repoPath);
|
|
19
|
-
const
|
|
19
|
+
const offset = input.offset ?? 0;
|
|
20
|
+
const limit = input.limit ?? 50;
|
|
21
|
+
// Server-side pagination + filtering via intent:list-paginated. The older
|
|
22
|
+
// intent:list handler hard-capped the API call at limit=50/offset=0, so
|
|
23
|
+
// pagination and filters could never see past the first 50 intents.
|
|
24
|
+
const res = await request('intent', 'list-paginated', {
|
|
20
25
|
repoOrigin: actualOrigin,
|
|
26
|
+
lang: 'en',
|
|
27
|
+
limit,
|
|
28
|
+
offset,
|
|
21
29
|
status: input.status,
|
|
30
|
+
author: input.author,
|
|
31
|
+
since: input.since,
|
|
32
|
+
until: input.until,
|
|
22
33
|
...extractForkFields(input),
|
|
23
34
|
});
|
|
24
|
-
|
|
35
|
+
const intents = (res.intents || []).map((intent) => ({
|
|
25
36
|
id: intent.id || '',
|
|
26
37
|
title: intent.title || '',
|
|
27
38
|
description: intent.description || '',
|
|
@@ -33,36 +44,14 @@ export async function listTeamIntents(input) {
|
|
|
33
44
|
fileCount: intent.file_count || intent.fileCount || 0,
|
|
34
45
|
updatedAt: intent.updated_at || intent.updatedAt || ''
|
|
35
46
|
}));
|
|
36
|
-
//
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
if (input.author) {
|
|
41
|
-
const authorLower = input.author.toLowerCase();
|
|
42
|
-
intents = intents.filter(i => i.author.toLowerCase().includes(authorLower));
|
|
43
|
-
}
|
|
44
|
-
if (input.since) {
|
|
45
|
-
const sinceDate = new Date(input.since);
|
|
46
|
-
if (!isNaN(sinceDate.getTime())) {
|
|
47
|
-
intents = intents.filter(i => new Date(i.updatedAt) >= sinceDate);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
if (input.until) {
|
|
51
|
-
const untilDate = new Date(input.until);
|
|
52
|
-
if (!isNaN(untilDate.getTime())) {
|
|
53
|
-
intents = intents.filter(i => new Date(i.updatedAt) <= untilDate);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
const total = intents.length;
|
|
57
|
-
const offset = input.offset ?? 0;
|
|
58
|
-
const limit = input.limit ?? 50;
|
|
59
|
-
const paginated = intents.slice(offset, offset + limit);
|
|
60
|
-
const activeCount = paginated.filter(i => i.status === 'active').length;
|
|
47
|
+
// totalCount is the full filtered result size on the server; intents is the page.
|
|
48
|
+
const total = typeof res.totalCount === 'number' ? res.totalCount : intents.length;
|
|
49
|
+
const activeCount = intents.filter(i => i.status === 'active').length;
|
|
61
50
|
const summary = total === 0
|
|
62
51
|
? 'No intents found'
|
|
63
|
-
: `${
|
|
52
|
+
: `${intents.length} intent(s) returned (${total} total${offset > 0 ? `, offset ${offset}` : ''}), ${activeCount} active`;
|
|
64
53
|
return {
|
|
65
|
-
intents
|
|
54
|
+
intents,
|
|
66
55
|
count: total,
|
|
67
56
|
summary
|
|
68
57
|
};
|
|
@@ -76,7 +65,7 @@ Use this to:
|
|
|
76
65
|
- Check for potential overlapping work before starting a new task
|
|
77
66
|
- Review the status of various features/refactors in progress
|
|
78
67
|
|
|
79
|
-
|
|
68
|
+
Filtering (status, author, date range) and pagination are applied server-side across the full result set (default: 50 per page; use limit/offset to page). \`count\` is the total number of matching intents, not just the returned page.`,
|
|
80
69
|
inputSchema: listTeamIntentsSchema,
|
|
81
70
|
handler: listTeamIntents
|
|
82
71
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-team-intents.js","sourceRoot":"","sources":["../../src/tools/list-team-intents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE3E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6EAA6E,CAAC;IACzH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAClE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"list-team-intents.js","sourceRoot":"","sources":["../../src/tools/list-team-intents.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,8 @@ Call this BEFORE editing code in a kawa-indexed repo. Surfaces:
|
|
|
63
63
|
- Tier 1a — overlapping intents whose blocks cover these lines (line-precise team coordination + intent-scoped decisions)
|
|
64
64
|
- Tier 1b — repo decisions whose relatedFiles include this file (file-coarse, catches infer_history-extracted constraints)
|
|
65
65
|
|
|
66
|
+
(Live-collaborator code-collision awareness is no longer reported here — it now arrives once per turn at the Stop hook. This tool is purely the semantic, decision-based check.)
|
|
67
|
+
|
|
66
68
|
Decisions already overridden via record_decision(supersedes=...) are filtered out automatically.
|
|
67
69
|
|
|
68
70
|
Recommendation maps to action:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-edit-decision-check.js","sourceRoot":"","sources":["../../src/tools/pre-edit-decision-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE3E;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,6EAA6E,CAAC;IAC1F,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CAAC,yFAAyF,CAAC;IACtG,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CAAC,sDAAsD,CAAC;IACnE,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,sDAAsD,CAAC;IACnE,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,oDAAoD,CAAC;IACjE,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gFAAgF,CAAC;IAC7F,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0MAA0M,CAAC;IACvN,GAAG,oBAAoB;CACxB,CAAC,CAAA;AA4BF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAgC;IAEhC,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IAClE,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAE3C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE,UAAU,EAAE;QACtD,UAAU;QACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,GAAG,UAAU;KACd,CAAC,CAAA;IAEF,OAAO,GAAmC,CAAA;AAC5C,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"pre-edit-decision-check.js","sourceRoot":"","sources":["../../src/tools/pre-edit-decision-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE3E;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,6EAA6E,CAAC;IAC1F,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CAAC,yFAAyF,CAAC;IACtG,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CAAC,sDAAsD,CAAC;IACnE,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,sDAAsD,CAAC;IACnE,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,oDAAoD,CAAC;IACjE,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gFAAgF,CAAC;IAC7F,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0MAA0M,CAAC;IACvN,GAAG,oBAAoB;CACxB,CAAC,CAAA;AA4BF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAgC;IAEhC,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IAClE,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAE3C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE,UAAU,EAAE;QACtD,UAAU;QACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,GAAG,UAAU;KACd,CAAC,CAAA;IAEF,OAAO,GAAmC,CAAA;AAC5C,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE;;;;;;;;;;;;;;;uJAewI;IACrJ,WAAW,EAAE,0BAA0B;IACvC,OAAO,EAAE,oBAAoB;CAC9B,CAAA"}
|
|
@@ -44,6 +44,28 @@ export declare const recordDecisionSchema: z.ZodObject<{
|
|
|
44
44
|
confidence: z.ZodOptional<z.ZodEnum<["high", "medium", "low"]>>;
|
|
45
45
|
sourceThoughtIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
46
46
|
appliesWhen: z.ZodOptional<z.ZodString>;
|
|
47
|
+
resolvedCollision: z.ZodOptional<z.ZodObject<{
|
|
48
|
+
peerUid: z.ZodString;
|
|
49
|
+
peerLabel: z.ZodOptional<z.ZodString>;
|
|
50
|
+
filePath: z.ZodString;
|
|
51
|
+
ranges: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
|
|
52
|
+
peerIntentId: z.ZodOptional<z.ZodString>;
|
|
53
|
+
baselineSha: z.ZodOptional<z.ZodString>;
|
|
54
|
+
}, "strip", z.ZodTypeAny, {
|
|
55
|
+
filePath: string;
|
|
56
|
+
peerUid: string;
|
|
57
|
+
ranges: number[][];
|
|
58
|
+
peerLabel?: string | undefined;
|
|
59
|
+
peerIntentId?: string | undefined;
|
|
60
|
+
baselineSha?: string | undefined;
|
|
61
|
+
}, {
|
|
62
|
+
filePath: string;
|
|
63
|
+
peerUid: string;
|
|
64
|
+
ranges: number[][];
|
|
65
|
+
peerLabel?: string | undefined;
|
|
66
|
+
peerIntentId?: string | undefined;
|
|
67
|
+
baselineSha?: string | undefined;
|
|
68
|
+
}>>;
|
|
47
69
|
}, "strip", z.ZodTypeAny, {
|
|
48
70
|
type: "abandoned" | "constraint" | "fork" | "discovery" | "tradeoff" | "dependency";
|
|
49
71
|
repoPath: string;
|
|
@@ -73,6 +95,14 @@ export declare const recordDecisionSchema: z.ZodObject<{
|
|
|
73
95
|
confidence?: "high" | "medium" | "low" | undefined;
|
|
74
96
|
sourceThoughtIds?: string[] | undefined;
|
|
75
97
|
appliesWhen?: string | undefined;
|
|
98
|
+
resolvedCollision?: {
|
|
99
|
+
filePath: string;
|
|
100
|
+
peerUid: string;
|
|
101
|
+
ranges: number[][];
|
|
102
|
+
peerLabel?: string | undefined;
|
|
103
|
+
peerIntentId?: string | undefined;
|
|
104
|
+
baselineSha?: string | undefined;
|
|
105
|
+
} | undefined;
|
|
76
106
|
}, {
|
|
77
107
|
type: "abandoned" | "constraint" | "fork" | "discovery" | "tradeoff" | "dependency";
|
|
78
108
|
repoPath: string;
|
|
@@ -102,6 +132,14 @@ export declare const recordDecisionSchema: z.ZodObject<{
|
|
|
102
132
|
confidence?: "high" | "medium" | "low" | undefined;
|
|
103
133
|
sourceThoughtIds?: string[] | undefined;
|
|
104
134
|
appliesWhen?: string | undefined;
|
|
135
|
+
resolvedCollision?: {
|
|
136
|
+
filePath: string;
|
|
137
|
+
peerUid: string;
|
|
138
|
+
ranges: number[][];
|
|
139
|
+
peerLabel?: string | undefined;
|
|
140
|
+
peerIntentId?: string | undefined;
|
|
141
|
+
baselineSha?: string | undefined;
|
|
142
|
+
} | undefined;
|
|
105
143
|
}>;
|
|
106
144
|
export type RecordDecisionInput = z.infer<typeof recordDecisionSchema>;
|
|
107
145
|
export interface RecordDecisionResponse {
|
|
@@ -157,6 +195,28 @@ export declare const recordDecisionTool: {
|
|
|
157
195
|
confidence: z.ZodOptional<z.ZodEnum<["high", "medium", "low"]>>;
|
|
158
196
|
sourceThoughtIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
159
197
|
appliesWhen: z.ZodOptional<z.ZodString>;
|
|
198
|
+
resolvedCollision: z.ZodOptional<z.ZodObject<{
|
|
199
|
+
peerUid: z.ZodString;
|
|
200
|
+
peerLabel: z.ZodOptional<z.ZodString>;
|
|
201
|
+
filePath: z.ZodString;
|
|
202
|
+
ranges: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
|
|
203
|
+
peerIntentId: z.ZodOptional<z.ZodString>;
|
|
204
|
+
baselineSha: z.ZodOptional<z.ZodString>;
|
|
205
|
+
}, "strip", z.ZodTypeAny, {
|
|
206
|
+
filePath: string;
|
|
207
|
+
peerUid: string;
|
|
208
|
+
ranges: number[][];
|
|
209
|
+
peerLabel?: string | undefined;
|
|
210
|
+
peerIntentId?: string | undefined;
|
|
211
|
+
baselineSha?: string | undefined;
|
|
212
|
+
}, {
|
|
213
|
+
filePath: string;
|
|
214
|
+
peerUid: string;
|
|
215
|
+
ranges: number[][];
|
|
216
|
+
peerLabel?: string | undefined;
|
|
217
|
+
peerIntentId?: string | undefined;
|
|
218
|
+
baselineSha?: string | undefined;
|
|
219
|
+
}>>;
|
|
160
220
|
}, "strip", z.ZodTypeAny, {
|
|
161
221
|
type: "abandoned" | "constraint" | "fork" | "discovery" | "tradeoff" | "dependency";
|
|
162
222
|
repoPath: string;
|
|
@@ -186,6 +246,14 @@ export declare const recordDecisionTool: {
|
|
|
186
246
|
confidence?: "high" | "medium" | "low" | undefined;
|
|
187
247
|
sourceThoughtIds?: string[] | undefined;
|
|
188
248
|
appliesWhen?: string | undefined;
|
|
249
|
+
resolvedCollision?: {
|
|
250
|
+
filePath: string;
|
|
251
|
+
peerUid: string;
|
|
252
|
+
ranges: number[][];
|
|
253
|
+
peerLabel?: string | undefined;
|
|
254
|
+
peerIntentId?: string | undefined;
|
|
255
|
+
baselineSha?: string | undefined;
|
|
256
|
+
} | undefined;
|
|
189
257
|
}, {
|
|
190
258
|
type: "abandoned" | "constraint" | "fork" | "discovery" | "tradeoff" | "dependency";
|
|
191
259
|
repoPath: string;
|
|
@@ -215,6 +283,14 @@ export declare const recordDecisionTool: {
|
|
|
215
283
|
confidence?: "high" | "medium" | "low" | undefined;
|
|
216
284
|
sourceThoughtIds?: string[] | undefined;
|
|
217
285
|
appliesWhen?: string | undefined;
|
|
286
|
+
resolvedCollision?: {
|
|
287
|
+
filePath: string;
|
|
288
|
+
peerUid: string;
|
|
289
|
+
ranges: number[][];
|
|
290
|
+
peerLabel?: string | undefined;
|
|
291
|
+
peerIntentId?: string | undefined;
|
|
292
|
+
baselineSha?: string | undefined;
|
|
293
|
+
} | undefined;
|
|
218
294
|
}>;
|
|
219
295
|
handler: typeof recordDecision;
|
|
220
296
|
};
|
|
@@ -32,6 +32,15 @@ export const recordDecisionSchema = z.object({
|
|
|
32
32
|
.describe('Thought-chain entry IDs this record was extracted from. Only set by the extractor path.'),
|
|
33
33
|
appliesWhen: z.string().optional()
|
|
34
34
|
.describe('Trigger condition / "How to apply" — populate ONLY when the decision is plainly conditional (e.g. "language is Go", "when running in production", "when working in module X", "when the error is ECONNRESET"). Skip when the rule has no clean activation condition or when the rationale already implies universality. Treat applies_when as load-bearing context the LLM uses at recall time to decide whether the decision is relevant — not a soft hint. Strong-signal-only.'),
|
|
35
|
+
resolvedCollision: z.object({
|
|
36
|
+
peerUid: z.string().describe('The colliding peer (HAI) uid — the collision.uid from the resolution_required response.'),
|
|
37
|
+
peerLabel: z.string().optional().describe('Human-readable peer label, if known.'),
|
|
38
|
+
filePath: z.string().describe('File where the overlap occurred (relative to repoPath).'),
|
|
39
|
+
ranges: z.array(z.array(z.number())).describe('The overlapping [start, end] line ranges you resolved.'),
|
|
40
|
+
peerIntentId: z.string().optional().describe("The peer's intent id, when resolvable (else omit)."),
|
|
41
|
+
baselineSha: z.string().optional().describe('The cSHA baseline the ranges are expressed in.'),
|
|
42
|
+
}).optional()
|
|
43
|
+
.describe('Layer C audit — set ONLY when this decision records how you resolved a completion-time code collision (i.e. after complete_intent returned resolution_required). Links the decision to the live peer you yielded to or overrode.'),
|
|
35
44
|
...forkFieldsExtensions,
|
|
36
45
|
});
|
|
37
46
|
export async function recordDecision(input) {
|
|
@@ -54,6 +63,7 @@ export async function recordDecision(input) {
|
|
|
54
63
|
confidence: input.confidence,
|
|
55
64
|
sourceThoughtIds: input.sourceThoughtIds || [],
|
|
56
65
|
appliesWhen: input.appliesWhen,
|
|
66
|
+
resolvedCollision: input.resolvedCollision,
|
|
57
67
|
...extractForkFields(input),
|
|
58
68
|
});
|
|
59
69
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-decision.js","sourceRoot":"","sources":["../../src/tools/record-decision.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"record-decision.js","sourceRoot":"","sources":["../../src/tools/record-decision.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const updateFeaturesSchema: z.ZodObject<{
|
|
3
|
+
repoPath: z.ZodString;
|
|
4
|
+
}, "strip", z.ZodTypeAny, {
|
|
5
|
+
repoPath: string;
|
|
6
|
+
}, {
|
|
7
|
+
repoPath: string;
|
|
8
|
+
}>;
|
|
9
|
+
export type UpdateFeaturesInput = z.infer<typeof updateFeaturesSchema>;
|
|
10
|
+
export interface UpdateFeaturesResponse {
|
|
11
|
+
success: boolean;
|
|
12
|
+
count?: number;
|
|
13
|
+
driftSpinoffs?: number;
|
|
14
|
+
forcedFallback?: number;
|
|
15
|
+
origin?: string;
|
|
16
|
+
error?: string;
|
|
17
|
+
message: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function updateFeatures(input: UpdateFeaturesInput): Promise<UpdateFeaturesResponse>;
|
|
20
|
+
export declare const updateFeaturesTool: {
|
|
21
|
+
name: string;
|
|
22
|
+
description: string;
|
|
23
|
+
inputSchema: z.ZodObject<{
|
|
24
|
+
repoPath: z.ZodString;
|
|
25
|
+
}, "strip", z.ZodTypeAny, {
|
|
26
|
+
repoPath: string;
|
|
27
|
+
}, {
|
|
28
|
+
repoPath: string;
|
|
29
|
+
}>;
|
|
30
|
+
handler: typeof updateFeatures;
|
|
31
|
+
};
|