@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.
Files changed (69) hide show
  1. package/CLAUDE.md.example +2 -0
  2. package/build/index.js +16 -1
  3. package/build/index.js.map +1 -1
  4. package/build/kawacode-on-pre-edit.d.ts +5 -0
  5. package/build/kawacode-on-pre-edit.js +45 -6
  6. package/build/kawacode-on-pre-edit.js.map +1 -1
  7. package/build/kawacode-on-stop.d.ts +49 -23
  8. package/build/kawacode-on-stop.js +233 -38
  9. package/build/kawacode-on-stop.js.map +1 -1
  10. package/build/services/muninn-ipc.d.ts +19 -1
  11. package/build/services/muninn-ipc.js +20 -2
  12. package/build/services/muninn-ipc.js.map +1 -1
  13. package/build/stop/uncompleted-commit.d.ts +45 -0
  14. package/build/stop/uncompleted-commit.js +117 -0
  15. package/build/stop/uncompleted-commit.js.map +1 -0
  16. package/build/stop/uncompleted-commit.test.d.ts +1 -0
  17. package/build/stop/uncompleted-commit.test.js +105 -0
  18. package/build/stop/uncompleted-commit.test.js.map +1 -0
  19. package/build/tools/activate-intent.d.ts +1 -14
  20. package/build/tools/activate-intent.js +17 -56
  21. package/build/tools/activate-intent.js.map +1 -1
  22. package/build/tools/arbiter-apply.d.ts +132 -0
  23. package/build/tools/arbiter-apply.js +59 -0
  24. package/build/tools/arbiter-apply.js.map +1 -0
  25. package/build/tools/arbiter-resolve.d.ts +132 -0
  26. package/build/tools/arbiter-resolve.js +58 -0
  27. package/build/tools/arbiter-resolve.js.map +1 -0
  28. package/build/tools/check-active-intent.d.ts +21 -12
  29. package/build/tools/check-active-intent.js +26 -13
  30. package/build/tools/check-active-intent.js.map +1 -1
  31. package/build/tools/complete-intent.d.ts +29 -0
  32. package/build/tools/complete-intent.js +26 -28
  33. package/build/tools/complete-intent.js.map +1 -1
  34. package/build/tools/create-intent.d.ts +1 -21
  35. package/build/tools/create-intent.js +18 -106
  36. package/build/tools/create-intent.js.map +1 -1
  37. package/build/tools/get-decision-detail.d.ts +109 -0
  38. package/build/tools/get-decision-detail.js +57 -0
  39. package/build/tools/get-decision-detail.js.map +1 -0
  40. package/build/tools/get-project-decisions.d.ts +0 -4
  41. package/build/tools/get-project-decisions.js +4 -6
  42. package/build/tools/get-project-decisions.js.map +1 -1
  43. package/build/tools/get-relevant-context.d.ts +0 -1
  44. package/build/tools/get-relevant-context.js +4 -2
  45. package/build/tools/get-relevant-context.js.map +1 -1
  46. package/build/tools/get-resolution-context.d.ts +154 -0
  47. package/build/tools/get-resolution-context.js +78 -0
  48. package/build/tools/get-resolution-context.js.map +1 -0
  49. package/build/tools/get-session-decisions.d.ts +0 -5
  50. package/build/tools/get-session-decisions.js +5 -5
  51. package/build/tools/get-session-decisions.js.map +1 -1
  52. package/build/tools/index.d.ts +225 -7
  53. package/build/tools/index.js +18 -3
  54. package/build/tools/index.js.map +1 -1
  55. package/build/tools/infer-history.d.ts +16 -0
  56. package/build/tools/infer-history.js +27 -0
  57. package/build/tools/infer-history.js.map +1 -1
  58. package/build/tools/list-team-intents.d.ts +6 -6
  59. package/build/tools/list-team-intents.js +21 -32
  60. package/build/tools/list-team-intents.js.map +1 -1
  61. package/build/tools/pre-edit-decision-check.js +2 -0
  62. package/build/tools/pre-edit-decision-check.js.map +1 -1
  63. package/build/tools/record-decision.d.ts +76 -0
  64. package/build/tools/record-decision.js +10 -0
  65. package/build/tools/record-decision.js.map +1 -1
  66. package/build/tools/update-features.d.ts +31 -0
  67. package/build/tools/update-features.js +51 -0
  68. package/build/tools/update-features.js.map +1 -0
  69. package/package.json +2 -2
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
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":"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"}
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", "pending", "committed", "pushed", "done", "abandoned"]>>;
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?: "pending" | "active" | "committed" | "pushed" | "done" | "abandoned" | undefined;
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?: "pending" | "active" | "committed" | "pushed" | "done" | "abandoned" | undefined;
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", "pending", "committed", "pushed", "done", "abandoned"]>>;
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?: "pending" | "active" | "committed" | "pushed" | "done" | "abandoned" | undefined;
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?: "pending" | "active" | "committed" | "pushed" | "done" | "abandoned" | undefined;
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', 'pending', 'committed', 'pushed', 'done', 'abandoned']).optional()
9
- .describe('Filter by intent status. "pending" surfaces intents auto-finalized by the sweeper or blocked at completion by conflicts — these are resumable via activate_intent.'),
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 res = await request('intent', 'list', {
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
- let intents = (res.intents || []).map((intent) => ({
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
- // Apply filters
37
- if (input.status) {
38
- intents = intents.filter(i => i.status === input.status);
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
- : `${paginated.length} intent(s) returned (${total} total${offset > 0 ? `, offset ${offset}` : ''}), ${activeCount} active`;
52
+ : `${intents.length} intent(s) returned (${total} total${offset > 0 ? `, offset ${offset}` : ''}), ${activeCount} active`;
64
53
  return {
65
- intents: paginated,
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
- Supports filtering by status, author, and date range. Paginated (default: 50 per page).`,
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":"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"}
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,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC9E,QAAQ,CAAC,0BAA0B,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACrE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;IAC3G,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;IACxF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IACtG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IAC1G,GAAG,oBAAoB;CACxB,CAAC,CAAA;AAuBF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAA2B;IAC/D,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IAEpE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAA;IAChC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAA;IAE/B,0EAA0E;IAC1E,wEAAwE;IACxE,oEAAoE;IACpE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,gBAAgB,EAAE;QACpD,UAAU,EAAE,YAAY;QACxB,IAAI,EAAE,IAAI;QACV,KAAK;QACL,MAAM;QACN,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,iBAAiB,CAAC,KAAK,CAAC;KAC5B,CAAC,CAAA;IAEF,MAAM,OAAO,GAAiB,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,CAAC;QACtE,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;QACrC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,UAAU,IAAI,SAAS;QAC7E,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ;QACjC,YAAY,EAAE,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,YAAY,IAAI,SAAS;QACtE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,UAAU,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,UAAU;QACnD,SAAS,EAAE,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC;QACrD,SAAS,EAAE,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE;KACvD,CAAC,CAAC,CAAA;IAEH,kFAAkF;IAClF,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAA;IAClF,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAA;IACrE,MAAM,OAAO,GAAG,KAAK,KAAK,CAAC;QACzB,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,wBAAwB,KAAK,SAAS,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,WAAW,SAAS,CAAA;IAE3H,OAAO;QACL,OAAO;QACP,KAAK,EAAE,KAAK;QACZ,OAAO;KACR,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE;;;;;;;0OAO2N;IACxO,WAAW,EAAE,qBAAqB;IAClC,OAAO,EAAE,eAAe;CACzB,CAAA"}
@@ -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;;;;;;;;;;;;;uJAawI;IACrJ,WAAW,EAAE,0BAA0B;IACvC,OAAO,EAAE,oBAAoB;CAC9B,CAAA"}
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
+ };