@kawacode/mcp 5.0.4 → 5.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.
Files changed (81) hide show
  1. package/CLAUDE.md.example +101 -36
  2. package/README.md +54 -62
  3. package/build/index.js +24 -5
  4. package/build/index.js.map +1 -1
  5. package/build/prompts/intent-first-workflow.js +7 -8
  6. package/build/prompts/intent-first-workflow.js.map +1 -1
  7. package/build/resources/active-intent.js +2 -2
  8. package/build/resources/active-intent.js.map +1 -1
  9. package/build/services/muninn-ipc.d.ts +3 -1
  10. package/build/services/muninn-ipc.js +35 -5
  11. package/build/services/muninn-ipc.js.map +1 -1
  12. package/build/tools/activate-intent.d.ts +40 -0
  13. package/build/tools/activate-intent.js +52 -0
  14. package/build/tools/activate-intent.js.map +1 -0
  15. package/build/tools/check-active-intent.d.ts +0 -1
  16. package/build/tools/check-active-intent.js +3 -4
  17. package/build/tools/check-active-intent.js.map +1 -1
  18. package/build/tools/complete-intent.d.ts +18 -6
  19. package/build/tools/complete-intent.js +31 -2
  20. package/build/tools/complete-intent.js.map +1 -1
  21. package/build/tools/create-intent.d.ts +23 -1
  22. package/build/tools/create-intent.js +58 -5
  23. package/build/tools/create-intent.js.map +1 -1
  24. package/build/tools/detect-intent-conflicts.d.ts +22 -322
  25. package/build/tools/detect-intent-conflicts.js +35 -60
  26. package/build/tools/detect-intent-conflicts.js.map +1 -1
  27. package/build/tools/edit-session-decision.d.ts +4 -4
  28. package/build/tools/evolve-decisions.d.ts +0 -6
  29. package/build/tools/evolve-decisions.js +1 -3
  30. package/build/tools/evolve-decisions.js.map +1 -1
  31. package/build/tools/get-intents-for-file.js +1 -1
  32. package/build/tools/get-intents-for-file.js.map +1 -1
  33. package/build/tools/get-intents-for-lines.js +1 -1
  34. package/build/tools/get-intents-for-lines.js.map +1 -1
  35. package/build/tools/get-project-decisions.d.ts +1 -0
  36. package/build/tools/get-project-decisions.js +3 -2
  37. package/build/tools/get-project-decisions.js.map +1 -1
  38. package/build/tools/get-relevant-context.d.ts +1 -0
  39. package/build/tools/get-relevant-context.js +2 -1
  40. package/build/tools/get-relevant-context.js.map +1 -1
  41. package/build/tools/get-session-decisions.d.ts +2 -0
  42. package/build/tools/get-session-decisions.js +1 -0
  43. package/build/tools/get-session-decisions.js.map +1 -1
  44. package/build/tools/index.d.ts +54 -204
  45. package/build/tools/index.js +3 -3
  46. package/build/tools/index.js.map +1 -1
  47. package/build/tools/infer-history.d.ts +13 -16
  48. package/build/tools/infer-history.js +62 -29
  49. package/build/tools/infer-history.js.map +1 -1
  50. package/build/tools/list-team-intents.d.ts +30 -0
  51. package/build/tools/list-team-intents.js +39 -16
  52. package/build/tools/list-team-intents.js.map +1 -1
  53. package/build/tools/log-work.js +1 -1
  54. package/build/tools/log-work.js.map +1 -1
  55. package/build/tools/record-decision.d.ts +6 -0
  56. package/build/tools/record-decision.js +2 -0
  57. package/build/tools/record-decision.js.map +1 -1
  58. package/build/tools/resolve-origin.js +1 -0
  59. package/build/tools/resolve-origin.js.map +1 -1
  60. package/build/tools/update-intent.d.ts +95 -0
  61. package/build/tools/update-intent.js +94 -0
  62. package/build/tools/update-intent.js.map +1 -0
  63. package/package.json +1 -1
  64. package/build/services/active-intent-store.d.ts +0 -36
  65. package/build/services/active-intent-store.js +0 -45
  66. package/build/services/active-intent-store.js.map +0 -1
  67. package/build/services/kawa-api.d.ts +0 -131
  68. package/build/services/kawa-api.js +0 -239
  69. package/build/services/kawa-api.js.map +0 -1
  70. package/build/services/repo-encryption.d.ts +0 -46
  71. package/build/services/repo-encryption.js +0 -92
  72. package/build/services/repo-encryption.js.map +0 -1
  73. package/build/services/storage-decryption.d.ts +0 -52
  74. package/build/services/storage-decryption.js +0 -162
  75. package/build/services/storage-decryption.js.map +0 -1
  76. package/build/tools/assign-blocks.d.ts +0 -87
  77. package/build/tools/assign-blocks.js +0 -49
  78. package/build/tools/assign-blocks.js.map +0 -1
  79. package/build/tools/get-project-context.d.ts +0 -82
  80. package/build/tools/get-project-context.js +0 -73
  81. package/build/tools/get-project-context.js.map +0 -1
@@ -1,9 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  export declare const inferHistorySchema: z.ZodObject<{
3
3
  repoPath: z.ZodString;
4
- apiKey: z.ZodString;
5
- commits: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6
- tier: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4
+ commits: z.ZodOptional<z.ZodNumber>;
7
5
  contextIssues: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
8
6
  model: z.ZodDefault<z.ZodOptional<z.ZodString>>;
9
7
  maxStories: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
@@ -11,19 +9,15 @@ export declare const inferHistorySchema: z.ZodObject<{
11
9
  estimateOnly: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
12
10
  }, "strip", z.ZodTypeAny, {
13
11
  repoPath: string;
14
- apiKey: string;
15
- commits: number;
16
- tier: number;
17
12
  contextIssues: boolean;
18
13
  model: string;
19
14
  maxStories: number;
20
15
  allowCommitSplitting: boolean;
21
16
  estimateOnly: boolean;
17
+ commits?: number | undefined;
22
18
  }, {
23
19
  repoPath: string;
24
- apiKey: string;
25
20
  commits?: number | undefined;
26
- tier?: number | undefined;
27
21
  contextIssues?: boolean | undefined;
28
22
  model?: string | undefined;
29
23
  maxStories?: number | undefined;
@@ -31,6 +25,12 @@ export declare const inferHistorySchema: z.ZodObject<{
31
25
  estimateOnly?: boolean | undefined;
32
26
  }>;
33
27
  export type InferHistoryInput = z.infer<typeof inferHistorySchema>;
28
+ export type AutoMode = 'first-run' | 'resume' | 'head-equals-last' | 'fallback-rewritten' | 'fallback-no-remote' | 'fallback-error';
29
+ export interface AutoModeResolution {
30
+ commits: number;
31
+ mode: AutoMode;
32
+ lastSha?: string;
33
+ }
34
34
  export interface InferHistoryResponse {
35
35
  started?: boolean;
36
36
  estimate?: {
@@ -43,7 +43,10 @@ export interface InferHistoryResponse {
43
43
  est_stories: number;
44
44
  cost_usd: number;
45
45
  };
46
+ forge?: string;
47
+ forge_cli_available?: boolean;
46
48
  commit_count?: number;
49
+ autoMode?: AutoModeResolution;
47
50
  message: string;
48
51
  }
49
52
  export declare function inferHistory(input: InferHistoryInput): Promise<InferHistoryResponse>;
@@ -52,9 +55,7 @@ export declare const inferHistoryTool: {
52
55
  description: string;
53
56
  inputSchema: z.ZodObject<{
54
57
  repoPath: z.ZodString;
55
- apiKey: z.ZodString;
56
- commits: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
57
- tier: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
58
+ commits: z.ZodOptional<z.ZodNumber>;
58
59
  contextIssues: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
59
60
  model: z.ZodDefault<z.ZodOptional<z.ZodString>>;
60
61
  maxStories: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
@@ -62,19 +63,15 @@ export declare const inferHistoryTool: {
62
63
  estimateOnly: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
63
64
  }, "strip", z.ZodTypeAny, {
64
65
  repoPath: string;
65
- apiKey: string;
66
- commits: number;
67
- tier: number;
68
66
  contextIssues: boolean;
69
67
  model: string;
70
68
  maxStories: number;
71
69
  allowCommitSplitting: boolean;
72
70
  estimateOnly: boolean;
71
+ commits?: number | undefined;
73
72
  }, {
74
73
  repoPath: string;
75
- apiKey: string;
76
74
  commits?: number | undefined;
77
- tier?: number | undefined;
78
75
  contextIssues?: boolean | undefined;
79
76
  model?: string | undefined;
80
77
  maxStories?: number | undefined;
@@ -2,67 +2,100 @@ import { z } from 'zod';
2
2
  import { request } from '../services/muninn-ipc.js';
3
3
  export const inferHistorySchema = z.object({
4
4
  repoPath: z.string().describe('Local path to the repository root'),
5
- apiKey: z.string().describe('Anthropic API key for LLM calls (customer\'s own key)'),
6
- commits: z.number().optional().default(50).describe('Number of recent commits to analyze (default: 50)'),
7
- tier: z.number().optional().default(4).describe('Enrichment tier 1-5: 1=git log, 2=+PR descriptions, 3=+revert diffs, 4=+issue discussions, 5=+full diffs (default: 4)'),
8
- contextIssues: z.boolean().optional().default(false).describe('Include context issues from commit date range (Tier 4 only)'),
5
+ commits: z.number().optional().describe('Number of recent commits to analyze. If omitted, the server resumes from the last commit infer_history processed for this repo (or falls back to 50 on first run).'),
6
+ contextIssues: z.boolean().optional().default(false).describe('Include context issues from commit date range (requires gh/glab CLI)'),
9
7
  model: z.string().optional().default('claude-sonnet-4-20250514').describe('Anthropic model to use (default: claude-sonnet-4-20250514)'),
10
8
  maxStories: z.number().optional().default(0).describe('Maximum stories to analyze in Pass 2 (0 = unlimited)'),
11
9
  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)'),
12
- estimateOnly: z.boolean().optional().default(false).describe('If true, only estimate token cost without running the pipeline'),
10
+ 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.'),
13
11
  });
12
+ function describeAutoMode(am) {
13
+ const sha = am.lastSha ? ` (last_inferred_sha=${am.lastSha.slice(0, 7)})` : '';
14
+ switch (am.mode) {
15
+ case 'first-run':
16
+ return `\nℹ Auto-mode: first run for this repo — analyzing fallback of ${am.commits} most recent commits.`;
17
+ case 'resume':
18
+ return `\nℹ Auto-mode: resumed${sha} — ${am.commits} commits since last run.`;
19
+ case 'head-equals-last':
20
+ return `\nℹ Auto-mode: HEAD already matches last_inferred_sha${sha} — nothing new to analyze.`;
21
+ case 'fallback-rewritten':
22
+ return `\n⚠ Auto-mode: stored last_inferred_sha${sha} is no longer reachable (rebase/GC/branch switch). Falling back to ${am.commits} most recent commits.`;
23
+ case 'fallback-no-remote':
24
+ return `\n⚠ Auto-mode: no git remote 'origin' — cannot key resume state. Falling back to ${am.commits} most recent commits.`;
25
+ case 'fallback-error':
26
+ return `\n⚠ Auto-mode: failed to resolve resume state (see Muninn logs). Falling back to ${am.commits} most recent commits.`;
27
+ }
28
+ }
14
29
  export async function inferHistory(input) {
30
+ // Only forward `commits` when the caller explicitly provided one, so the
31
+ // server can fall back to last_inferred_sha tracking otherwise.
32
+ const inferencePayload = {
33
+ repoPath: input.repoPath,
34
+ contextIssues: input.contextIssues,
35
+ model: input.model,
36
+ };
37
+ if (input.commits !== undefined)
38
+ inferencePayload.commits = input.commits;
15
39
  if (input.estimateOnly) {
16
- const res = await request('inference', 'estimate', {
17
- repoPath: input.repoPath,
18
- apiKey: input.apiKey,
19
- commits: input.commits,
20
- tier: input.tier,
21
- contextIssues: input.contextIssues,
22
- model: input.model,
23
- });
40
+ const res = await request('inference', 'estimate', inferencePayload);
41
+ let forgeWarning = '';
42
+ if (!res.forge_cli_available) {
43
+ const forge = res.forge ?? 'Unknown';
44
+ if (forge === 'Unknown') {
45
+ forgeWarning = '\n⚠ Unrecognized git hosting platform. PR/MR descriptions and issue discussions will be skipped.';
46
+ }
47
+ else if (forge === 'GitHub') {
48
+ forgeWarning = '\n⚠ GitHub CLI (gh) not found or not authenticated. PR descriptions and issue discussions will be skipped. Run `gh auth login` to include them.';
49
+ }
50
+ else if (forge === 'GitLab') {
51
+ forgeWarning = '\n⚠ GitLab CLI (glab) not found or not authenticated. MR descriptions and issue discussions will be skipped. Run `glab auth login` to include them.';
52
+ }
53
+ }
54
+ const autoModeNote = res.autoMode ? describeAutoMode(res.autoMode) : '';
24
55
  return {
25
56
  estimate: res.estimate,
57
+ forge: res.forge,
58
+ forge_cli_available: res.forge_cli_available,
26
59
  commit_count: res.commit_count,
27
- message: `Estimated cost: $${res.estimate?.cost_usd ?? '?'} for ~${res.estimate?.est_stories ?? '?'} stories from ${res.commit_count ?? '?'} commits`
60
+ autoMode: res.autoMode,
61
+ message: `Estimated cost: $${res.estimate?.cost_usd ?? '?'} for ~${res.estimate?.est_stories ?? '?'} stories from ${res.commit_count ?? '?'} commits${autoModeNote}${forgeWarning}`
28
62
  };
29
63
  }
30
- const res = await request('inference', 'run', {
64
+ const runPayload = {
31
65
  repoPath: input.repoPath,
32
- apiKey: input.apiKey,
33
- commits: input.commits,
34
- tier: input.tier,
35
66
  contextIssues: input.contextIssues,
36
67
  model: input.model,
37
68
  maxStories: input.maxStories,
38
69
  allowCommitSplitting: input.allowCommitSplitting,
39
- });
70
+ };
71
+ if (input.commits !== undefined)
72
+ runPayload.commits = input.commits;
73
+ const res = await request('inference', 'run', runPayload);
74
+ const autoModeNote = res.autoMode ? describeAutoMode(res.autoMode) : '';
40
75
  return {
41
76
  started: res.started,
42
- message: res.message || 'Inference pipeline started. Progress updates will be sent as the pipeline runs.'
77
+ autoMode: res.autoMode,
78
+ message: (res.message || 'Inference pipeline started. Progress updates will be sent as the pipeline runs.') + autoModeNote
43
79
  };
44
80
  }
45
81
  export const inferHistoryTool = {
46
82
  name: 'infer_history',
47
- description: `Analyze git commit history to extract structured development knowledge (intents, decisions, lessons).
83
+ description: `Analyze git commit history to extract structured development knowledge (intents and decisions).
48
84
 
49
85
  Runs the full pipeline automatically: infer → evolve → persist.
50
86
 
51
87
  1. **Pass 1**: Groups commits into coherent development stories with value hints
52
- 2. **Pass 2**: Deep analysis of each story to extract architectural decisions and lessons
88
+ 2. **Pass 2**: Deep analysis of each story to extract architectural decisions
53
89
  3. **Evolution**: Curates decisions by finding relationships (supersedes, reinforces, contradicts, specializes)
54
- 4. **Persist**: Stores curated stories as intents with decisions and lessons (auto-syncs to cloud)
90
+ 4. **Persist**: Stores curated stories as intents with decisions (auto-syncs to cloud)
55
91
 
56
92
  Use \`estimateOnly: true\` first to preview token cost before running the full pipeline.
57
93
 
58
94
  The pipeline supports checkpointing — if interrupted, re-running resumes from where it left off.
59
95
 
60
- Enrichment tiers control how much context is gathered:
61
- - Tier 1: Git log only (fastest, cheapest)
62
- - Tier 2: + PR descriptions and review comments
63
- - Tier 3: + Diffs for revert commits
64
- - Tier 4: + GitHub issue discussions with decision-level content (recommended)
65
- - Tier 5: + Full diffs and code annotation extraction (most expensive)`,
96
+ Extraction includes: git log, file diffs, code annotations, revert detection, and optionally PR/MR descriptions + issue discussions (requires gh or glab CLI, auto-skipped if unavailable).
97
+
98
+ Supports GitHub (gh CLI) and GitLab (glab CLI). Forge is auto-detected from the remote origin.`,
66
99
  inputSchema: inferHistorySchema,
67
100
  handler: inferHistory
68
101
  };
@@ -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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"}
@@ -3,14 +3,29 @@ export declare const listTeamIntentsSchema: z.ZodObject<{
3
3
  repoOrigin: z.ZodOptional<z.ZodString>;
4
4
  repoPath: z.ZodString;
5
5
  status: z.ZodOptional<z.ZodEnum<["active", "committed", "pushed", "done", "abandoned"]>>;
6
+ author: z.ZodOptional<z.ZodString>;
7
+ since: z.ZodOptional<z.ZodString>;
8
+ until: z.ZodOptional<z.ZodString>;
9
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
10
+ offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6
11
  }, "strip", z.ZodTypeAny, {
7
12
  repoPath: string;
13
+ limit: number;
14
+ offset: number;
8
15
  repoOrigin?: string | undefined;
9
16
  status?: "active" | "committed" | "pushed" | "done" | "abandoned" | undefined;
17
+ author?: string | undefined;
18
+ since?: string | undefined;
19
+ until?: string | undefined;
10
20
  }, {
11
21
  repoPath: string;
12
22
  repoOrigin?: string | undefined;
13
23
  status?: "active" | "committed" | "pushed" | "done" | "abandoned" | undefined;
24
+ author?: string | undefined;
25
+ since?: string | undefined;
26
+ until?: string | undefined;
27
+ limit?: number | undefined;
28
+ offset?: number | undefined;
14
29
  }>;
15
30
  export type ListTeamIntentsInput = z.infer<typeof listTeamIntentsSchema>;
16
31
  export interface TeamIntent {
@@ -38,14 +53,29 @@ export declare const listTeamIntentsTool: {
38
53
  repoOrigin: z.ZodOptional<z.ZodString>;
39
54
  repoPath: z.ZodString;
40
55
  status: z.ZodOptional<z.ZodEnum<["active", "committed", "pushed", "done", "abandoned"]>>;
56
+ author: z.ZodOptional<z.ZodString>;
57
+ since: z.ZodOptional<z.ZodString>;
58
+ until: z.ZodOptional<z.ZodString>;
59
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
60
+ offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
41
61
  }, "strip", z.ZodTypeAny, {
42
62
  repoPath: string;
63
+ limit: number;
64
+ offset: number;
43
65
  repoOrigin?: string | undefined;
44
66
  status?: "active" | "committed" | "pushed" | "done" | "abandoned" | undefined;
67
+ author?: string | undefined;
68
+ since?: string | undefined;
69
+ until?: string | undefined;
45
70
  }, {
46
71
  repoPath: string;
47
72
  repoOrigin?: string | undefined;
48
73
  status?: "active" | "committed" | "pushed" | "done" | "abandoned" | undefined;
74
+ author?: string | undefined;
75
+ since?: string | undefined;
76
+ until?: string | undefined;
77
+ limit?: number | undefined;
78
+ offset?: number | undefined;
49
79
  }>;
50
80
  handler: typeof listTeamIntents;
51
81
  };
@@ -5,7 +5,12 @@ export const listTeamIntentsSchema = z.object({
5
5
  repoOrigin: z.string().optional().describe('Git remote origin URL. Auto-detected from repoPath via git if not provided.'),
6
6
  repoPath: z.string().describe('Local path to the repository root'),
7
7
  status: z.enum(['active', 'committed', 'pushed', 'done', 'abandoned']).optional()
8
- .describe('Filter by intent status')
8
+ .describe('Filter by intent status'),
9
+ author: z.string().optional().describe('Filter by author name or ID'),
10
+ since: z.string().optional().describe('Filter intents updated after this ISO8601 date (e.g. "2026-04-01")'),
11
+ until: z.string().optional().describe('Filter intents updated before this ISO8601 date'),
12
+ limit: z.number().optional().default(50).describe('Maximum number of intents to return (default: 50)'),
13
+ offset: z.number().optional().default(0).describe('Number of intents to skip for pagination (default: 0)'),
9
14
  });
10
15
  export async function listTeamIntents(input) {
11
16
  const actualOrigin = resolveOrigin(input.repoOrigin, input.repoPath);
@@ -13,8 +18,8 @@ export async function listTeamIntents(input) {
13
18
  repoOrigin: actualOrigin,
14
19
  status: input.status,
15
20
  });
16
- const intents = (res.intents || []).map((intent) => ({
17
- id: intent.id || intent._id || '',
21
+ let intents = (res.intents || []).map((intent) => ({
22
+ id: intent.id || '',
18
23
  title: intent.title || '',
19
24
  description: intent.description || '',
20
25
  author: intent.author || intent.author_name || intent.authorName || 'Unknown',
@@ -25,32 +30,50 @@ export async function listTeamIntents(input) {
25
30
  fileCount: intent.file_count || intent.fileCount || 0,
26
31
  updatedAt: intent.updated_at || intent.updatedAt || ''
27
32
  }));
28
- // Filter by status if provided (in case Muninn doesn't filter)
29
- const filteredIntents = input.status
30
- ? intents.filter(i => i.status === input.status)
31
- : intents;
32
- const activeCount = filteredIntents.filter(i => i.status === 'active').length;
33
- const summary = filteredIntents.length === 0
33
+ // Apply filters
34
+ if (input.status) {
35
+ intents = intents.filter(i => i.status === input.status);
36
+ }
37
+ if (input.author) {
38
+ const authorLower = input.author.toLowerCase();
39
+ intents = intents.filter(i => i.author.toLowerCase().includes(authorLower));
40
+ }
41
+ if (input.since) {
42
+ const sinceDate = new Date(input.since);
43
+ if (!isNaN(sinceDate.getTime())) {
44
+ intents = intents.filter(i => new Date(i.updatedAt) >= sinceDate);
45
+ }
46
+ }
47
+ if (input.until) {
48
+ const untilDate = new Date(input.until);
49
+ if (!isNaN(untilDate.getTime())) {
50
+ intents = intents.filter(i => new Date(i.updatedAt) <= untilDate);
51
+ }
52
+ }
53
+ const total = intents.length;
54
+ const offset = input.offset ?? 0;
55
+ const limit = input.limit ?? 50;
56
+ const paginated = intents.slice(offset, offset + limit);
57
+ const activeCount = paginated.filter(i => i.status === 'active').length;
58
+ const summary = total === 0
34
59
  ? 'No intents found'
35
- : input.status
36
- ? `${filteredIntents.length} ${input.status} intent(s)`
37
- : `${filteredIntents.length} intent(s), ${activeCount} active`;
60
+ : `${paginated.length} intent(s) returned (${total} total${offset > 0 ? `, offset ${offset}` : ''}), ${activeCount} active`;
38
61
  return {
39
- intents: filteredIntents,
40
- count: filteredIntents.length,
62
+ intents: paginated,
63
+ count: total,
41
64
  summary
42
65
  };
43
66
  }
44
67
  export const listTeamIntentsTool = {
45
68
  name: 'list_team_intents',
46
- description: `List all intents from team members for this repository.
69
+ description: `List intents from team members for this repository.
47
70
 
48
71
  Use this to:
49
72
  - See what your team is working on
50
73
  - Check for potential overlapping work before starting a new task
51
74
  - Review the status of various features/refactors in progress
52
75
 
53
- Optionally filter by status (active, committed, pushed, done, abandoned).`,
76
+ Supports filtering by status, author, and date range. Paginated (default: 50 per page).`,
54
77
  inputSchema: listTeamIntentsSchema,
55
78
  handler: listTeamIntents
56
79
  };
@@ -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":"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"}
@@ -23,7 +23,7 @@ export async function logWork(input) {
23
23
  }
24
24
  export const logWorkTool = {
25
25
  name: 'log_work',
26
- description: 'Lightweight single-call tool to log completed work without the full intent lifecycle. Use for quick fixes, doc updates, config changes — any task where create/assign/complete is overhead. Creates a completed intent record in one call. Does NOT set an active intent.',
26
+ description: 'DEPRECATED — trivial changes (typos, one-line fixes, obvious bugs, doc updates, config changes) should skip the intent workflow entirely: just make the change and commit, no intent needed. Do not call this tool. Kept available for backwards compatibility only and will be removed in a future release.',
27
27
  inputSchema: logWorkSchema,
28
28
  handler: logWork
29
29
  };
@@ -1 +1 @@
1
- {"version":3,"file":"log-work.js","sourceRoot":"","sources":["../../src/tools/log-work.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;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6EAA6E,CAAC;IACzH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACzE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;CAC9F,CAAC,CAAA;AAUF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAAmB;IAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IAE9D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE;QAC9C,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;KACzB,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAA;IAEnC,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,KAAK;QAC9B,QAAQ;QACR,OAAO,EAAE,YAAY,KAAK,CAAC,KAAK,GAAG;KACpC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,2QAA2Q;IACxR,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,OAAO;CACjB,CAAA"}
1
+ {"version":3,"file":"log-work.js","sourceRoot":"","sources":["../../src/tools/log-work.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;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6EAA6E,CAAC;IACzH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACzE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;CAC9F,CAAC,CAAA;AAUF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAAmB;IAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IAE9D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE;QAC9C,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;KACzB,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAA;IAEnC,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,KAAK;QAC9B,QAAQ;QACR,OAAO,EAAE,YAAY,KAAK,CAAC,KAAK,GAAG;KACpC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,8SAA8S;IAC3T,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,OAAO;CACjB,CAAA"}
@@ -9,6 +9,7 @@ export declare const recordDecisionSchema: z.ZodObject<{
9
9
  context: z.ZodOptional<z.ZodString>;
10
10
  alternatives: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
11
11
  consequences: z.ZodOptional<z.ZodString>;
12
+ symptom: z.ZodOptional<z.ZodString>;
12
13
  relatedFiles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
13
14
  constraintsChecked: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
14
15
  constraintViolations: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -34,6 +35,7 @@ export declare const recordDecisionSchema: z.ZodObject<{
34
35
  context?: string | undefined;
35
36
  alternatives?: string[] | undefined;
36
37
  consequences?: string | undefined;
38
+ symptom?: string | undefined;
37
39
  relatedFiles?: string[] | undefined;
38
40
  constraintsChecked?: string[] | undefined;
39
41
  constraintViolations?: {
@@ -51,6 +53,7 @@ export declare const recordDecisionSchema: z.ZodObject<{
51
53
  intentId?: string | undefined;
52
54
  alternatives?: string[] | undefined;
53
55
  consequences?: string | undefined;
56
+ symptom?: string | undefined;
54
57
  relatedFiles?: string[] | undefined;
55
58
  constraintsChecked?: string[] | undefined;
56
59
  constraintViolations?: {
@@ -78,6 +81,7 @@ export declare const recordDecisionTool: {
78
81
  context: z.ZodOptional<z.ZodString>;
79
82
  alternatives: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
80
83
  consequences: z.ZodOptional<z.ZodString>;
84
+ symptom: z.ZodOptional<z.ZodString>;
81
85
  relatedFiles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
82
86
  constraintsChecked: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
83
87
  constraintViolations: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -103,6 +107,7 @@ export declare const recordDecisionTool: {
103
107
  context?: string | undefined;
104
108
  alternatives?: string[] | undefined;
105
109
  consequences?: string | undefined;
110
+ symptom?: string | undefined;
106
111
  relatedFiles?: string[] | undefined;
107
112
  constraintsChecked?: string[] | undefined;
108
113
  constraintViolations?: {
@@ -120,6 +125,7 @@ export declare const recordDecisionTool: {
120
125
  intentId?: string | undefined;
121
126
  alternatives?: string[] | undefined;
122
127
  consequences?: string | undefined;
128
+ symptom?: string | undefined;
123
129
  relatedFiles?: string[] | undefined;
124
130
  constraintsChecked?: string[] | undefined;
125
131
  constraintViolations?: {
@@ -17,6 +17,7 @@ export const recordDecisionSchema = z.object({
17
17
  context: z.string().optional().describe('What we were trying to accomplish when this decision was made'),
18
18
  alternatives: z.array(z.string()).optional().describe('Other options that were considered'),
19
19
  consequences: z.string().optional().describe('Downstream implications of this decision'),
20
+ symptom: z.string().optional().describe('Observable symptom that indicates this decision is relevant (e.g., error messages, runtime panics, unexpected behavior). Useful for discovery and constraint decisions.'),
20
21
  relatedFiles: z.array(z.string()).optional().describe('File paths affected by this decision'),
21
22
  constraintsChecked: z.array(z.string()).optional().describe('Which architectural constraints were verified before this decision'),
22
23
  constraintViolations: z.array(constraintViolationSchema).optional()
@@ -33,6 +34,7 @@ export async function recordDecision(input) {
33
34
  context: input.context,
34
35
  alternatives: input.alternatives || [],
35
36
  consequences: input.consequences,
37
+ symptom: input.symptom,
36
38
  relatedFiles: input.relatedFiles || [],
37
39
  constraintsChecked: input.constraintsChecked || [],
38
40
  constraintViolations: input.constraintViolations || [],
@@ -1 +1 @@
1
- {"version":3,"file":"record-decision.js","sourceRoot":"","sources":["../../src/tools/record-decision.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;AAEnD,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACrE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IAC/F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;CAC3E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6EAA6E,CAAC;IACzH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;IACzF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,oIAAoI,CAAC;IAC1L,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;SACrF,QAAQ,CAAC,8OAA8O,CAAC;IAC3P,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IACvF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC5D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;IACxG,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IAC3F,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACxF,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IAC7F,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;IACjI,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE;SAChE,QAAQ,CAAC,8DAA8D,CAAC;CAC5E,CAAC,CAAA;AASF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAA0B;IAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC9D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE;QAC9C,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE;QACtC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE;QACtC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,EAAE;QAClD,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,IAAI,EAAE;KACvD,CAAC,CAAA;IAEF,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,OAAO,KAAK,KAAK;QAC/B,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE;KACjC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE;;;;;;;;;;;;;;;yGAe0F;IACvG,WAAW,EAAE,oBAAoB;IACjC,OAAO,EAAE,cAAc;CACxB,CAAA"}
1
+ {"version":3,"file":"record-decision.js","sourceRoot":"","sources":["../../src/tools/record-decision.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export function resolveOrigin(repoOrigin, repoPath) {
18
18
  cwd: repoPath,
19
19
  encoding: 'utf-8',
20
20
  timeout: 5000,
21
+ windowsHide: true,
21
22
  }).trim();
22
23
  if (origin)
23
24
  return origin;
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-origin.js","sourceRoot":"","sources":["../../src/tools/resolve-origin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,UAA8B,EAAE,QAAiB;IAC7E,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,oCAAoC,EAAE;gBAC5D,GAAG,EAAE,QAAQ;gBACb,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC,IAAI,EAAE,CAAA;YACT,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAA;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;QACxC,CAAC;IACH,CAAC;IACD,IAAI,UAAU;QAAE,OAAO,UAAU,CAAA;IACjC,MAAM,IAAI,KAAK,CACb,uHAAuH,CACxH,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"resolve-origin.js","sourceRoot":"","sources":["../../src/tools/resolve-origin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,UAA8B,EAAE,QAAiB;IAC7E,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,oCAAoC,EAAE;gBAC5D,GAAG,EAAE,QAAQ;gBACb,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC,IAAI,EAAE,CAAA;YACT,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAA;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;QACxC,CAAC;IACH,CAAC;IACD,IAAI,UAAU;QAAE,OAAO,UAAU,CAAA;IACjC,MAAM,IAAI,KAAK,CACb,uHAAuH,CACxH,CAAA;AACH,CAAC"}
@@ -0,0 +1,95 @@
1
+ import { z } from 'zod';
2
+ export declare const updateIntentSchema: z.ZodObject<{
3
+ repoOrigin: z.ZodOptional<z.ZodString>;
4
+ repoPath: z.ZodString;
5
+ intentId: z.ZodOptional<z.ZodString>;
6
+ title: z.ZodOptional<z.ZodString>;
7
+ description: z.ZodOptional<z.ZodString>;
8
+ constraints: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
+ scope: z.ZodOptional<z.ZodObject<{
10
+ type: z.ZodEnum<["repo", "folder", "files"]>;
11
+ paths: z.ZodArray<z.ZodString, "many">;
12
+ }, "strip", z.ZodTypeAny, {
13
+ type: "repo" | "files" | "folder";
14
+ paths: string[];
15
+ }, {
16
+ type: "repo" | "files" | "folder";
17
+ paths: string[];
18
+ }>>;
19
+ }, "strip", z.ZodTypeAny, {
20
+ repoPath: string;
21
+ repoOrigin?: string | undefined;
22
+ title?: string | undefined;
23
+ description?: string | undefined;
24
+ constraints?: string[] | undefined;
25
+ intentId?: string | undefined;
26
+ scope?: {
27
+ type: "repo" | "files" | "folder";
28
+ paths: string[];
29
+ } | undefined;
30
+ }, {
31
+ repoPath: string;
32
+ repoOrigin?: string | undefined;
33
+ title?: string | undefined;
34
+ description?: string | undefined;
35
+ constraints?: string[] | undefined;
36
+ intentId?: string | undefined;
37
+ scope?: {
38
+ type: "repo" | "files" | "folder";
39
+ paths: string[];
40
+ } | undefined;
41
+ }>;
42
+ export type UpdateIntentInput = z.infer<typeof updateIntentSchema>;
43
+ export interface UpdateIntentResponse {
44
+ success: boolean;
45
+ intentId: string;
46
+ message: string;
47
+ updatedFields: string[];
48
+ warning?: string;
49
+ }
50
+ export declare function updateIntent(input: UpdateIntentInput): Promise<UpdateIntentResponse>;
51
+ export declare const updateIntentTool: {
52
+ name: string;
53
+ description: string;
54
+ inputSchema: z.ZodObject<{
55
+ repoOrigin: z.ZodOptional<z.ZodString>;
56
+ repoPath: z.ZodString;
57
+ intentId: z.ZodOptional<z.ZodString>;
58
+ title: z.ZodOptional<z.ZodString>;
59
+ description: z.ZodOptional<z.ZodString>;
60
+ constraints: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
61
+ scope: z.ZodOptional<z.ZodObject<{
62
+ type: z.ZodEnum<["repo", "folder", "files"]>;
63
+ paths: z.ZodArray<z.ZodString, "many">;
64
+ }, "strip", z.ZodTypeAny, {
65
+ type: "repo" | "files" | "folder";
66
+ paths: string[];
67
+ }, {
68
+ type: "repo" | "files" | "folder";
69
+ paths: string[];
70
+ }>>;
71
+ }, "strip", z.ZodTypeAny, {
72
+ repoPath: string;
73
+ repoOrigin?: string | undefined;
74
+ title?: string | undefined;
75
+ description?: string | undefined;
76
+ constraints?: string[] | undefined;
77
+ intentId?: string | undefined;
78
+ scope?: {
79
+ type: "repo" | "files" | "folder";
80
+ paths: string[];
81
+ } | undefined;
82
+ }, {
83
+ repoPath: string;
84
+ repoOrigin?: string | undefined;
85
+ title?: string | undefined;
86
+ description?: string | undefined;
87
+ constraints?: string[] | undefined;
88
+ intentId?: string | undefined;
89
+ scope?: {
90
+ type: "repo" | "files" | "folder";
91
+ paths: string[];
92
+ } | undefined;
93
+ }>;
94
+ handler: typeof updateIntent;
95
+ };