gitmem-mcp 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +47 -0
- package/CLAUDE.md.template +65 -0
- package/LICENSE +21 -0
- package/README.md +221 -0
- package/bin/gitmem.js +383 -0
- package/dist/commands/check.d.ts +33 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +492 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/constants/closing-questions.d.ts +40 -0
- package/dist/constants/closing-questions.d.ts.map +1 -0
- package/dist/constants/closing-questions.js +107 -0
- package/dist/constants/closing-questions.js.map +1 -0
- package/dist/diagnostics/anonymizer.d.ts +55 -0
- package/dist/diagnostics/anonymizer.d.ts.map +1 -0
- package/dist/diagnostics/anonymizer.js +191 -0
- package/dist/diagnostics/anonymizer.js.map +1 -0
- package/dist/diagnostics/channels.d.ts +132 -0
- package/dist/diagnostics/channels.d.ts.map +1 -0
- package/dist/diagnostics/channels.js +150 -0
- package/dist/diagnostics/channels.js.map +1 -0
- package/dist/diagnostics/collector.d.ts +183 -0
- package/dist/diagnostics/collector.d.ts.map +1 -0
- package/dist/diagnostics/collector.js +227 -0
- package/dist/diagnostics/collector.js.map +1 -0
- package/dist/diagnostics/index.d.ts +28 -0
- package/dist/diagnostics/index.d.ts.map +1 -0
- package/dist/diagnostics/index.js +31 -0
- package/dist/diagnostics/index.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/absorb-observations.d.ts +63 -0
- package/dist/schemas/absorb-observations.d.ts.map +1 -0
- package/dist/schemas/absorb-observations.js +25 -0
- package/dist/schemas/absorb-observations.js.map +1 -0
- package/dist/schemas/active-sessions.d.ts +71 -0
- package/dist/schemas/active-sessions.d.ts.map +1 -0
- package/dist/schemas/active-sessions.js +19 -0
- package/dist/schemas/active-sessions.js.map +1 -0
- package/dist/schemas/analyze.d.ts +38 -0
- package/dist/schemas/analyze.d.ts.map +1 -0
- package/dist/schemas/analyze.js +30 -0
- package/dist/schemas/analyze.js.map +1 -0
- package/dist/schemas/common.d.ts +55 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +65 -0
- package/dist/schemas/common.js.map +1 -0
- package/dist/schemas/create-decision.d.ts +48 -0
- package/dist/schemas/create-decision.d.ts.map +1 -0
- package/dist/schemas/create-decision.js +31 -0
- package/dist/schemas/create-decision.js.map +1 -0
- package/dist/schemas/create-learning.d.ts +107 -0
- package/dist/schemas/create-learning.d.ts.map +1 -0
- package/dist/schemas/create-learning.js +64 -0
- package/dist/schemas/create-learning.js.map +1 -0
- package/dist/schemas/get-transcript.d.ts +24 -0
- package/dist/schemas/get-transcript.d.ts.map +1 -0
- package/dist/schemas/get-transcript.js +22 -0
- package/dist/schemas/get-transcript.js.map +1 -0
- package/dist/schemas/index.d.ts +23 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +23 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/log.d.ts +36 -0
- package/dist/schemas/log.d.ts.map +1 -0
- package/dist/schemas/log.js +27 -0
- package/dist/schemas/log.js.map +1 -0
- package/dist/schemas/prepare-context.d.ts +41 -0
- package/dist/schemas/prepare-context.d.ts.map +1 -0
- package/dist/schemas/prepare-context.js +31 -0
- package/dist/schemas/prepare-context.js.map +1 -0
- package/dist/schemas/recall.d.ts +41 -0
- package/dist/schemas/recall.d.ts.map +1 -0
- package/dist/schemas/recall.js +47 -0
- package/dist/schemas/recall.js.map +1 -0
- package/dist/schemas/record-scar-usage-batch.d.ts +82 -0
- package/dist/schemas/record-scar-usage-batch.d.ts.map +1 -0
- package/dist/schemas/record-scar-usage-batch.js +25 -0
- package/dist/schemas/record-scar-usage-batch.js.map +1 -0
- package/dist/schemas/record-scar-usage.d.ts +51 -0
- package/dist/schemas/record-scar-usage.d.ts.map +1 -0
- package/dist/schemas/record-scar-usage.js +32 -0
- package/dist/schemas/record-scar-usage.js.map +1 -0
- package/dist/schemas/save-transcript.d.ts +38 -0
- package/dist/schemas/save-transcript.d.ts.map +1 -0
- package/dist/schemas/save-transcript.js +30 -0
- package/dist/schemas/save-transcript.js.map +1 -0
- package/dist/schemas/search.d.ts +36 -0
- package/dist/schemas/search.d.ts.map +1 -0
- package/dist/schemas/search.js +27 -0
- package/dist/schemas/search.js.map +1 -0
- package/dist/schemas/session-close.d.ts +371 -0
- package/dist/schemas/session-close.d.ts.map +1 -0
- package/dist/schemas/session-close.js +95 -0
- package/dist/schemas/session-close.js.map +1 -0
- package/dist/schemas/session-start.d.ts +46 -0
- package/dist/schemas/session-start.d.ts.map +1 -0
- package/dist/schemas/session-start.js +33 -0
- package/dist/schemas/session-start.js.map +1 -0
- package/dist/schemas/thread.d.ts +72 -0
- package/dist/schemas/thread.d.ts.map +1 -0
- package/dist/schemas/thread.js +39 -0
- package/dist/schemas/thread.js.map +1 -0
- package/dist/server.d.ts +22 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +313 -0
- package/dist/server.js.map +1 -0
- package/dist/services/active-sessions.d.ts +66 -0
- package/dist/services/active-sessions.d.ts.map +1 -0
- package/dist/services/active-sessions.js +311 -0
- package/dist/services/active-sessions.js.map +1 -0
- package/dist/services/agent-detection.d.ts +25 -0
- package/dist/services/agent-detection.d.ts.map +1 -0
- package/dist/services/agent-detection.js +93 -0
- package/dist/services/agent-detection.js.map +1 -0
- package/dist/services/analytics.d.ts +201 -0
- package/dist/services/analytics.d.ts.map +1 -0
- package/dist/services/analytics.js +483 -0
- package/dist/services/analytics.js.map +1 -0
- package/dist/services/cache.d.ts +148 -0
- package/dist/services/cache.d.ts.map +1 -0
- package/dist/services/cache.js +384 -0
- package/dist/services/cache.js.map +1 -0
- package/dist/services/cache.test.d.ts +8 -0
- package/dist/services/cache.test.d.ts.map +1 -0
- package/dist/services/cache.test.js +267 -0
- package/dist/services/cache.test.js.map +1 -0
- package/dist/services/compliance-validator.d.ts +30 -0
- package/dist/services/compliance-validator.d.ts.map +1 -0
- package/dist/services/compliance-validator.js +257 -0
- package/dist/services/compliance-validator.js.map +1 -0
- package/dist/services/config.d.ts +48 -0
- package/dist/services/config.d.ts.map +1 -0
- package/dist/services/config.js +128 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/embedding.d.ts +58 -0
- package/dist/services/embedding.d.ts.map +1 -0
- package/dist/services/embedding.js +243 -0
- package/dist/services/embedding.js.map +1 -0
- package/dist/services/gitmem-dir.d.ts +38 -0
- package/dist/services/gitmem-dir.d.ts.map +1 -0
- package/dist/services/gitmem-dir.js +84 -0
- package/dist/services/gitmem-dir.js.map +1 -0
- package/dist/services/local-file-storage.d.ts +56 -0
- package/dist/services/local-file-storage.d.ts.map +1 -0
- package/dist/services/local-file-storage.js +213 -0
- package/dist/services/local-file-storage.js.map +1 -0
- package/dist/services/local-vector-search.d.ts +137 -0
- package/dist/services/local-vector-search.d.ts.map +1 -0
- package/dist/services/local-vector-search.js +311 -0
- package/dist/services/local-vector-search.js.map +1 -0
- package/dist/services/metrics.d.ts +104 -0
- package/dist/services/metrics.d.ts.map +1 -0
- package/dist/services/metrics.js +264 -0
- package/dist/services/metrics.js.map +1 -0
- package/dist/services/session-state.d.ts +113 -0
- package/dist/services/session-state.d.ts.map +1 -0
- package/dist/services/session-state.js +203 -0
- package/dist/services/session-state.js.map +1 -0
- package/dist/services/startup.d.ts +112 -0
- package/dist/services/startup.d.ts.map +1 -0
- package/dist/services/startup.js +436 -0
- package/dist/services/startup.js.map +1 -0
- package/dist/services/storage.d.ts +43 -0
- package/dist/services/storage.d.ts.map +1 -0
- package/dist/services/storage.js +92 -0
- package/dist/services/storage.js.map +1 -0
- package/dist/services/supabase-client.d.ts +163 -0
- package/dist/services/supabase-client.d.ts.map +1 -0
- package/dist/services/supabase-client.js +510 -0
- package/dist/services/supabase-client.js.map +1 -0
- package/dist/services/thread-dedup.d.ts +44 -0
- package/dist/services/thread-dedup.d.ts.map +1 -0
- package/dist/services/thread-dedup.js +113 -0
- package/dist/services/thread-dedup.js.map +1 -0
- package/dist/services/thread-manager.d.ts +77 -0
- package/dist/services/thread-manager.d.ts.map +1 -0
- package/dist/services/thread-manager.js +250 -0
- package/dist/services/thread-manager.js.map +1 -0
- package/dist/services/thread-suggestions.d.ts +66 -0
- package/dist/services/thread-suggestions.d.ts.map +1 -0
- package/dist/services/thread-suggestions.js +243 -0
- package/dist/services/thread-suggestions.js.map +1 -0
- package/dist/services/thread-supabase.d.ts +111 -0
- package/dist/services/thread-supabase.d.ts.map +1 -0
- package/dist/services/thread-supabase.js +459 -0
- package/dist/services/thread-supabase.js.map +1 -0
- package/dist/services/thread-vitality.d.ts +65 -0
- package/dist/services/thread-vitality.d.ts.map +1 -0
- package/dist/services/thread-vitality.js +143 -0
- package/dist/services/thread-vitality.js.map +1 -0
- package/dist/services/tier.d.ts +52 -0
- package/dist/services/tier.d.ts.map +1 -0
- package/dist/services/tier.js +109 -0
- package/dist/services/tier.js.map +1 -0
- package/dist/services/timezone.d.ts +37 -0
- package/dist/services/timezone.d.ts.map +1 -0
- package/dist/services/timezone.js +147 -0
- package/dist/services/timezone.js.map +1 -0
- package/dist/services/transcript-chunker.d.ts +18 -0
- package/dist/services/transcript-chunker.d.ts.map +1 -0
- package/dist/services/transcript-chunker.js +237 -0
- package/dist/services/transcript-chunker.js.map +1 -0
- package/dist/services/triple-writer.d.ts +128 -0
- package/dist/services/triple-writer.d.ts.map +1 -0
- package/dist/services/triple-writer.js +338 -0
- package/dist/services/triple-writer.js.map +1 -0
- package/dist/services/variant-assignment.d.ts +92 -0
- package/dist/services/variant-assignment.d.ts.map +1 -0
- package/dist/services/variant-assignment.js +196 -0
- package/dist/services/variant-assignment.js.map +1 -0
- package/dist/tools/absorb-observations.d.ts +16 -0
- package/dist/tools/absorb-observations.d.ts.map +1 -0
- package/dist/tools/absorb-observations.js +82 -0
- package/dist/tools/absorb-observations.js.map +1 -0
- package/dist/tools/analyze.d.ts +55 -0
- package/dist/tools/analyze.d.ts.map +1 -0
- package/dist/tools/analyze.js +139 -0
- package/dist/tools/analyze.js.map +1 -0
- package/dist/tools/cleanup-threads.d.ts +47 -0
- package/dist/tools/cleanup-threads.d.ts.map +1 -0
- package/dist/tools/cleanup-threads.js +127 -0
- package/dist/tools/cleanup-threads.js.map +1 -0
- package/dist/tools/confirm-scars.d.ts +23 -0
- package/dist/tools/confirm-scars.d.ts.map +1 -0
- package/dist/tools/confirm-scars.js +209 -0
- package/dist/tools/confirm-scars.js.map +1 -0
- package/dist/tools/create-decision.d.ts +15 -0
- package/dist/tools/create-decision.d.ts.map +1 -0
- package/dist/tools/create-decision.js +138 -0
- package/dist/tools/create-decision.js.map +1 -0
- package/dist/tools/create-learning.d.ts +15 -0
- package/dist/tools/create-learning.d.ts.map +1 -0
- package/dist/tools/create-learning.js +226 -0
- package/dist/tools/create-learning.js.map +1 -0
- package/dist/tools/create-thread.d.ts +42 -0
- package/dist/tools/create-thread.d.ts.map +1 -0
- package/dist/tools/create-thread.js +180 -0
- package/dist/tools/create-thread.js.map +1 -0
- package/dist/tools/definitions.d.ts +5013 -0
- package/dist/tools/definitions.d.ts.map +1 -0
- package/dist/tools/definitions.js +2017 -0
- package/dist/tools/definitions.js.map +1 -0
- package/dist/tools/dismiss-suggestion.d.ts +20 -0
- package/dist/tools/dismiss-suggestion.d.ts.map +1 -0
- package/dist/tools/dismiss-suggestion.js +40 -0
- package/dist/tools/dismiss-suggestion.js.map +1 -0
- package/dist/tools/get-transcript.d.ts +24 -0
- package/dist/tools/get-transcript.d.ts.map +1 -0
- package/dist/tools/get-transcript.js +52 -0
- package/dist/tools/get-transcript.js.map +1 -0
- package/dist/tools/graph-traverse.d.ts +83 -0
- package/dist/tools/graph-traverse.d.ts.map +1 -0
- package/dist/tools/graph-traverse.js +394 -0
- package/dist/tools/graph-traverse.js.map +1 -0
- package/dist/tools/list-threads.d.ts +15 -0
- package/dist/tools/list-threads.d.ts.map +1 -0
- package/dist/tools/list-threads.js +114 -0
- package/dist/tools/list-threads.js.map +1 -0
- package/dist/tools/log.d.ts +43 -0
- package/dist/tools/log.d.ts.map +1 -0
- package/dist/tools/log.js +157 -0
- package/dist/tools/log.js.map +1 -0
- package/dist/tools/prepare-context.d.ts +36 -0
- package/dist/tools/prepare-context.d.ts.map +1 -0
- package/dist/tools/prepare-context.js +353 -0
- package/dist/tools/prepare-context.js.map +1 -0
- package/dist/tools/promote-suggestion.d.ts +25 -0
- package/dist/tools/promote-suggestion.d.ts.map +1 -0
- package/dist/tools/promote-suggestion.js +60 -0
- package/dist/tools/promote-suggestion.js.map +1 -0
- package/dist/tools/recall.d.ts +77 -0
- package/dist/tools/recall.d.ts.map +1 -0
- package/dist/tools/recall.js +423 -0
- package/dist/tools/recall.js.map +1 -0
- package/dist/tools/recall.test.d.ts +5 -0
- package/dist/tools/recall.test.d.ts.map +1 -0
- package/dist/tools/recall.test.js +155 -0
- package/dist/tools/recall.test.js.map +1 -0
- package/dist/tools/record-scar-usage-batch.d.ts +10 -0
- package/dist/tools/record-scar-usage-batch.d.ts.map +1 -0
- package/dist/tools/record-scar-usage-batch.js +153 -0
- package/dist/tools/record-scar-usage-batch.js.map +1 -0
- package/dist/tools/record-scar-usage.d.ts +14 -0
- package/dist/tools/record-scar-usage.d.ts.map +1 -0
- package/dist/tools/record-scar-usage.js +94 -0
- package/dist/tools/record-scar-usage.js.map +1 -0
- package/dist/tools/resolve-thread.d.ts +16 -0
- package/dist/tools/resolve-thread.d.ts.map +1 -0
- package/dist/tools/resolve-thread.js +102 -0
- package/dist/tools/resolve-thread.js.map +1 -0
- package/dist/tools/save-transcript.d.ts +29 -0
- package/dist/tools/save-transcript.d.ts.map +1 -0
- package/dist/tools/save-transcript.js +97 -0
- package/dist/tools/save-transcript.js.map +1 -0
- package/dist/tools/search.d.ts +46 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +186 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/session-close.d.ts +14 -0
- package/dist/tools/session-close.d.ts.map +1 -0
- package/dist/tools/session-close.js +881 -0
- package/dist/tools/session-close.js.map +1 -0
- package/dist/tools/session-start.d.ts +38 -0
- package/dist/tools/session-start.d.ts.map +1 -0
- package/dist/tools/session-start.js +1104 -0
- package/dist/tools/session-start.js.map +1 -0
- package/dist/types/index.d.ts +456 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +76 -0
- package/schema/setup.sql +193 -0
- package/schema/starter-scars.json +206 -0
|
@@ -0,0 +1,2017 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool Definitions
|
|
3
|
+
*
|
|
4
|
+
* All tool registrations (names, descriptions, JSON schemas) for the GitMem MCP server.
|
|
5
|
+
* Extracted from server.ts for maintainability.
|
|
6
|
+
*/
|
|
7
|
+
import { hasBatchOperations, hasTranscripts, hasCacheManagement, hasSupabase, } from "../services/tier.js";
|
|
8
|
+
/**
|
|
9
|
+
* Tool definitions for MCP
|
|
10
|
+
*/
|
|
11
|
+
export const TOOLS = [
|
|
12
|
+
{
|
|
13
|
+
name: "recall",
|
|
14
|
+
description: "Check institutional memory for relevant scars before taking action. Returns matching scars and their lessons. OD-525: Integrates variant assignment when issue_id provided.",
|
|
15
|
+
inputSchema: {
|
|
16
|
+
type: "object",
|
|
17
|
+
properties: {
|
|
18
|
+
plan: {
|
|
19
|
+
type: "string",
|
|
20
|
+
description: "What you're about to do (e.g., 'implement auth layer', 'deploy to production')",
|
|
21
|
+
},
|
|
22
|
+
project: {
|
|
23
|
+
type: "string",
|
|
24
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
25
|
+
description: "Project scope (default: orchestra_dev)",
|
|
26
|
+
},
|
|
27
|
+
match_count: {
|
|
28
|
+
type: "number",
|
|
29
|
+
description: "Number of scars to return (default: 3)",
|
|
30
|
+
},
|
|
31
|
+
issue_id: {
|
|
32
|
+
type: "string",
|
|
33
|
+
description: "Linear issue identifier for variant assignment (e.g., 'OD-525'). When provided, scars with variants will be randomly assigned and formatted accordingly.",
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
required: ["plan"],
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: "confirm_scars",
|
|
41
|
+
description: "Confirm surfaced scars with APPLYING/N_A/REFUTED decisions and evidence. REQUIRED after recall() before consequential actions. Each recalled scar must be addressed. APPLYING: past-tense evidence of compliance. N_A: explain why scar doesn't apply. REFUTED: acknowledge risk of overriding.",
|
|
42
|
+
inputSchema: {
|
|
43
|
+
type: "object",
|
|
44
|
+
properties: {
|
|
45
|
+
confirmations: {
|
|
46
|
+
type: "array",
|
|
47
|
+
items: {
|
|
48
|
+
type: "object",
|
|
49
|
+
properties: {
|
|
50
|
+
scar_id: {
|
|
51
|
+
type: "string",
|
|
52
|
+
description: "UUID of the surfaced scar (from recall result)",
|
|
53
|
+
},
|
|
54
|
+
decision: {
|
|
55
|
+
type: "string",
|
|
56
|
+
enum: ["APPLYING", "N_A", "REFUTED"],
|
|
57
|
+
description: "APPLYING: scar is relevant, evidence of compliance. N_A: scar doesn't apply, explain why. REFUTED: overriding scar, acknowledge risk.",
|
|
58
|
+
},
|
|
59
|
+
evidence: {
|
|
60
|
+
type: "string",
|
|
61
|
+
description: "Past-tense evidence (APPLYING), scenario comparison (N_A), or risk acknowledgment (REFUTED). Minimum 50 characters.",
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
required: ["scar_id", "decision", "evidence"],
|
|
65
|
+
},
|
|
66
|
+
description: "One confirmation per recalled scar. All recalled scars must be addressed.",
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
required: ["confirmations"],
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: "session_start",
|
|
74
|
+
description: "Initialize session, detect agent, load institutional context (last session, relevant scars, recent decisions). DISPLAY: The result includes a pre-formatted 'display' field. Echo it verbatim to the user instead of formatting your own session summary.",
|
|
75
|
+
inputSchema: {
|
|
76
|
+
type: "object",
|
|
77
|
+
properties: {
|
|
78
|
+
agent_identity: {
|
|
79
|
+
type: "string",
|
|
80
|
+
enum: ["CLI", "DAC", "CODA-1", "Brain_Local", "Brain_Cloud"],
|
|
81
|
+
description: "Override agent identity (auto-detects if not provided)",
|
|
82
|
+
},
|
|
83
|
+
linear_issue: {
|
|
84
|
+
type: "string",
|
|
85
|
+
description: "Current Linear issue identifier (e.g., OD-XXX)",
|
|
86
|
+
},
|
|
87
|
+
issue_title: {
|
|
88
|
+
type: "string",
|
|
89
|
+
description: "Issue title for scar context",
|
|
90
|
+
},
|
|
91
|
+
issue_description: {
|
|
92
|
+
type: "string",
|
|
93
|
+
description: "Issue description for scar context",
|
|
94
|
+
},
|
|
95
|
+
issue_labels: {
|
|
96
|
+
type: "array",
|
|
97
|
+
items: { type: "string" },
|
|
98
|
+
description: "Issue labels for scar context",
|
|
99
|
+
},
|
|
100
|
+
project: {
|
|
101
|
+
type: "string",
|
|
102
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
103
|
+
description: "Project scope (default: orchestra_dev)",
|
|
104
|
+
},
|
|
105
|
+
force: {
|
|
106
|
+
type: "boolean",
|
|
107
|
+
description: "Force create new session even if one already exists (OD-558)",
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
name: "session_refresh",
|
|
114
|
+
description: "Re-surface institutional context (scars, threads, decisions, wins) for the current active session without creating a new session. Use mid-session when you need to remember where you left off, after context compaction, or after a long gap. DISPLAY: The result includes a pre-formatted 'display' field. Echo it verbatim to the user instead of formatting your own session summary.",
|
|
115
|
+
inputSchema: {
|
|
116
|
+
type: "object",
|
|
117
|
+
properties: {
|
|
118
|
+
project: {
|
|
119
|
+
type: "string",
|
|
120
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
121
|
+
description: "Project scope (default: from active session)",
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: "session_close",
|
|
128
|
+
description: "Persist session with compliance validation. IMPORTANT: Before calling this tool, write all heavy payload data (closing_reflection, task_completion, human_corrections, scars_to_record, open_threads, decisions, learnings_created) to .gitmem/closing-payload.json using your file write tool. Then call this tool with ONLY session_id and close_type. The tool reads the payload file automatically and deletes it after processing. DISPLAY: The result includes a pre-formatted 'display' field. Echo it verbatim to the user instead of formatting your own close summary.",
|
|
129
|
+
inputSchema: {
|
|
130
|
+
type: "object",
|
|
131
|
+
properties: {
|
|
132
|
+
session_id: {
|
|
133
|
+
type: "string",
|
|
134
|
+
description: "Session ID from session_start",
|
|
135
|
+
},
|
|
136
|
+
close_type: {
|
|
137
|
+
type: "string",
|
|
138
|
+
enum: ["standard", "quick", "autonomous"],
|
|
139
|
+
description: "Type of close (standard requires full reflection)",
|
|
140
|
+
},
|
|
141
|
+
linear_issue: {
|
|
142
|
+
type: "string",
|
|
143
|
+
description: "Associated Linear issue",
|
|
144
|
+
},
|
|
145
|
+
ceremony_duration_ms: {
|
|
146
|
+
type: "number",
|
|
147
|
+
description: "End-to-end ceremony duration from agent perspective (in milliseconds)",
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
required: ["session_id", "close_type"],
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
name: "create_learning",
|
|
155
|
+
description: "Create scar, win, or pattern entry in institutional memory",
|
|
156
|
+
inputSchema: {
|
|
157
|
+
type: "object",
|
|
158
|
+
properties: {
|
|
159
|
+
learning_type: {
|
|
160
|
+
type: "string",
|
|
161
|
+
enum: ["scar", "win", "pattern", "anti_pattern"],
|
|
162
|
+
description: "Type of learning",
|
|
163
|
+
},
|
|
164
|
+
title: {
|
|
165
|
+
type: "string",
|
|
166
|
+
description: "Learning title",
|
|
167
|
+
},
|
|
168
|
+
description: {
|
|
169
|
+
type: "string",
|
|
170
|
+
description: "Detailed description",
|
|
171
|
+
},
|
|
172
|
+
severity: {
|
|
173
|
+
type: "string",
|
|
174
|
+
enum: ["critical", "high", "medium", "low"],
|
|
175
|
+
description: "Severity level (required for scars)",
|
|
176
|
+
},
|
|
177
|
+
scar_type: {
|
|
178
|
+
type: "string",
|
|
179
|
+
enum: ["process", "incident", "context"],
|
|
180
|
+
description: "Scar type (process, incident, or context). Defaults to 'process'.",
|
|
181
|
+
},
|
|
182
|
+
counter_arguments: {
|
|
183
|
+
type: "array",
|
|
184
|
+
items: { type: "string" },
|
|
185
|
+
description: "Counter-arguments for scars (min 2 required)",
|
|
186
|
+
},
|
|
187
|
+
problem_context: {
|
|
188
|
+
type: "string",
|
|
189
|
+
description: "Problem context (for wins)",
|
|
190
|
+
},
|
|
191
|
+
solution_approach: {
|
|
192
|
+
type: "string",
|
|
193
|
+
description: "Solution approach (for wins)",
|
|
194
|
+
},
|
|
195
|
+
applies_when: {
|
|
196
|
+
type: "array",
|
|
197
|
+
items: { type: "string" },
|
|
198
|
+
description: "When this pattern applies",
|
|
199
|
+
},
|
|
200
|
+
domain: {
|
|
201
|
+
type: "array",
|
|
202
|
+
items: { type: "string" },
|
|
203
|
+
description: "Domain tags",
|
|
204
|
+
},
|
|
205
|
+
keywords: {
|
|
206
|
+
type: "array",
|
|
207
|
+
items: { type: "string" },
|
|
208
|
+
description: "Search keywords",
|
|
209
|
+
},
|
|
210
|
+
source_linear_issue: {
|
|
211
|
+
type: "string",
|
|
212
|
+
description: "Source Linear issue",
|
|
213
|
+
},
|
|
214
|
+
project: {
|
|
215
|
+
type: "string",
|
|
216
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
217
|
+
description: "Project scope",
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
required: ["learning_type", "title", "description"],
|
|
221
|
+
},
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
name: "create_decision",
|
|
225
|
+
description: "Log architectural/operational decision to institutional memory",
|
|
226
|
+
inputSchema: {
|
|
227
|
+
type: "object",
|
|
228
|
+
properties: {
|
|
229
|
+
title: {
|
|
230
|
+
type: "string",
|
|
231
|
+
description: "Decision title",
|
|
232
|
+
},
|
|
233
|
+
decision: {
|
|
234
|
+
type: "string",
|
|
235
|
+
description: "What was decided",
|
|
236
|
+
},
|
|
237
|
+
rationale: {
|
|
238
|
+
type: "string",
|
|
239
|
+
description: "Why this decision was made",
|
|
240
|
+
},
|
|
241
|
+
alternatives_considered: {
|
|
242
|
+
type: "array",
|
|
243
|
+
items: { type: "string" },
|
|
244
|
+
description: "Alternatives that were rejected",
|
|
245
|
+
},
|
|
246
|
+
personas_involved: {
|
|
247
|
+
type: "array",
|
|
248
|
+
items: { type: "string" },
|
|
249
|
+
description: "Personas involved in decision",
|
|
250
|
+
},
|
|
251
|
+
docs_affected: {
|
|
252
|
+
type: "array",
|
|
253
|
+
items: { type: "string" },
|
|
254
|
+
description: "Docs/files affected by this decision (relative paths from repo root)",
|
|
255
|
+
},
|
|
256
|
+
linear_issue: {
|
|
257
|
+
type: "string",
|
|
258
|
+
description: "Associated Linear issue",
|
|
259
|
+
},
|
|
260
|
+
session_id: {
|
|
261
|
+
type: "string",
|
|
262
|
+
description: "Current session ID",
|
|
263
|
+
},
|
|
264
|
+
project: {
|
|
265
|
+
type: "string",
|
|
266
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
267
|
+
description: "Project scope",
|
|
268
|
+
},
|
|
269
|
+
},
|
|
270
|
+
required: ["title", "decision", "rationale"],
|
|
271
|
+
},
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
name: "record_scar_usage",
|
|
275
|
+
description: "Track scar application for effectiveness measurement",
|
|
276
|
+
inputSchema: {
|
|
277
|
+
type: "object",
|
|
278
|
+
properties: {
|
|
279
|
+
scar_id: {
|
|
280
|
+
type: "string",
|
|
281
|
+
description: "UUID of the scar from orchestra_learnings",
|
|
282
|
+
},
|
|
283
|
+
issue_id: {
|
|
284
|
+
type: "string",
|
|
285
|
+
description: "Linear issue UUID",
|
|
286
|
+
},
|
|
287
|
+
issue_identifier: {
|
|
288
|
+
type: "string",
|
|
289
|
+
description: "Linear issue identifier (e.g., OD-XXX)",
|
|
290
|
+
},
|
|
291
|
+
surfaced_at: {
|
|
292
|
+
type: "string",
|
|
293
|
+
description: "ISO timestamp when scar was retrieved",
|
|
294
|
+
},
|
|
295
|
+
acknowledged_at: {
|
|
296
|
+
type: "string",
|
|
297
|
+
description: "ISO timestamp when scar was acknowledged",
|
|
298
|
+
},
|
|
299
|
+
reference_type: {
|
|
300
|
+
type: "string",
|
|
301
|
+
enum: ["explicit", "implicit", "acknowledged", "refuted", "none"],
|
|
302
|
+
description: "How the scar was referenced",
|
|
303
|
+
},
|
|
304
|
+
reference_context: {
|
|
305
|
+
type: "string",
|
|
306
|
+
description: "How the scar was applied (1-2 sentences)",
|
|
307
|
+
},
|
|
308
|
+
execution_successful: {
|
|
309
|
+
type: "boolean",
|
|
310
|
+
description: "Whether the task succeeded after applying scar",
|
|
311
|
+
},
|
|
312
|
+
session_id: {
|
|
313
|
+
type: "string",
|
|
314
|
+
description: "GitMem session UUID (for non-issue session tracking)",
|
|
315
|
+
},
|
|
316
|
+
agent: {
|
|
317
|
+
type: "string",
|
|
318
|
+
description: "Agent identity (CLI, DAC, CODA-1, etc.)",
|
|
319
|
+
},
|
|
320
|
+
},
|
|
321
|
+
required: ["scar_id", "surfaced_at", "reference_type", "reference_context"],
|
|
322
|
+
},
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
name: "record_scar_usage_batch",
|
|
326
|
+
description: "Track multiple scar applications in a single batch operation (reduces session close latency)",
|
|
327
|
+
inputSchema: {
|
|
328
|
+
type: "object",
|
|
329
|
+
properties: {
|
|
330
|
+
scars: {
|
|
331
|
+
type: "array",
|
|
332
|
+
items: {
|
|
333
|
+
type: "object",
|
|
334
|
+
properties: {
|
|
335
|
+
scar_identifier: {
|
|
336
|
+
type: "string",
|
|
337
|
+
description: "UUID or title/description of scar (tool resolves to UUID)",
|
|
338
|
+
},
|
|
339
|
+
issue_id: {
|
|
340
|
+
type: "string",
|
|
341
|
+
description: "Linear issue UUID",
|
|
342
|
+
},
|
|
343
|
+
issue_identifier: {
|
|
344
|
+
type: "string",
|
|
345
|
+
description: "Linear issue identifier (e.g., OD-XXX)",
|
|
346
|
+
},
|
|
347
|
+
surfaced_at: {
|
|
348
|
+
type: "string",
|
|
349
|
+
description: "ISO timestamp when scar was retrieved",
|
|
350
|
+
},
|
|
351
|
+
acknowledged_at: {
|
|
352
|
+
type: "string",
|
|
353
|
+
description: "ISO timestamp when scar was acknowledged",
|
|
354
|
+
},
|
|
355
|
+
reference_type: {
|
|
356
|
+
type: "string",
|
|
357
|
+
enum: ["explicit", "implicit", "acknowledged", "refuted", "none"],
|
|
358
|
+
description: "How the scar was referenced",
|
|
359
|
+
},
|
|
360
|
+
reference_context: {
|
|
361
|
+
type: "string",
|
|
362
|
+
description: "How the scar was applied (1-2 sentences)",
|
|
363
|
+
},
|
|
364
|
+
execution_successful: {
|
|
365
|
+
type: "boolean",
|
|
366
|
+
description: "Whether the task succeeded after applying scar",
|
|
367
|
+
},
|
|
368
|
+
session_id: {
|
|
369
|
+
type: "string",
|
|
370
|
+
description: "GitMem session UUID (for non-issue session tracking)",
|
|
371
|
+
},
|
|
372
|
+
agent: {
|
|
373
|
+
type: "string",
|
|
374
|
+
description: "Agent identity (CLI, DAC, CODA-1, etc.)",
|
|
375
|
+
},
|
|
376
|
+
},
|
|
377
|
+
required: ["scar_identifier", "surfaced_at", "reference_type", "reference_context"],
|
|
378
|
+
},
|
|
379
|
+
description: "Array of scar usage entries to record",
|
|
380
|
+
},
|
|
381
|
+
project: {
|
|
382
|
+
type: "string",
|
|
383
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
384
|
+
description: "Project scope for scar resolution",
|
|
385
|
+
},
|
|
386
|
+
},
|
|
387
|
+
required: ["scars"],
|
|
388
|
+
},
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
name: "save_transcript",
|
|
392
|
+
description: "Save full session transcript to storage for training data and post-mortems (OD-467)",
|
|
393
|
+
inputSchema: {
|
|
394
|
+
type: "object",
|
|
395
|
+
properties: {
|
|
396
|
+
session_id: {
|
|
397
|
+
type: "string",
|
|
398
|
+
description: "Session ID to associate transcript with",
|
|
399
|
+
},
|
|
400
|
+
transcript: {
|
|
401
|
+
type: "string",
|
|
402
|
+
description: "Full conversation transcript content",
|
|
403
|
+
},
|
|
404
|
+
format: {
|
|
405
|
+
type: "string",
|
|
406
|
+
enum: ["json", "markdown"],
|
|
407
|
+
description: "Transcript format (default: json)",
|
|
408
|
+
},
|
|
409
|
+
project: {
|
|
410
|
+
type: "string",
|
|
411
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
412
|
+
description: "Project scope (default: orchestra_dev)",
|
|
413
|
+
},
|
|
414
|
+
},
|
|
415
|
+
required: ["session_id", "transcript"],
|
|
416
|
+
},
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
name: "get_transcript",
|
|
420
|
+
description: "Retrieve a session transcript from storage (OD-467)",
|
|
421
|
+
inputSchema: {
|
|
422
|
+
type: "object",
|
|
423
|
+
properties: {
|
|
424
|
+
session_id: {
|
|
425
|
+
type: "string",
|
|
426
|
+
description: "Session ID to retrieve transcript for",
|
|
427
|
+
},
|
|
428
|
+
},
|
|
429
|
+
required: ["session_id"],
|
|
430
|
+
},
|
|
431
|
+
},
|
|
432
|
+
// ============================================================================
|
|
433
|
+
// SEARCH & LOG TOOLS (OD-560, OD-561)
|
|
434
|
+
// ============================================================================
|
|
435
|
+
{
|
|
436
|
+
name: "search",
|
|
437
|
+
description: "Search institutional memory by query. Unlike recall (which is action-oriented), search is exploration-oriented — returns matching scars/wins/patterns without side effects.",
|
|
438
|
+
inputSchema: {
|
|
439
|
+
type: "object",
|
|
440
|
+
properties: {
|
|
441
|
+
query: {
|
|
442
|
+
type: "string",
|
|
443
|
+
description: "Natural language search query (e.g., 'deployment failures', 'Supabase RLS')",
|
|
444
|
+
},
|
|
445
|
+
match_count: {
|
|
446
|
+
type: "number",
|
|
447
|
+
description: "Number of results to return (default: 5)",
|
|
448
|
+
},
|
|
449
|
+
project: {
|
|
450
|
+
type: "string",
|
|
451
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
452
|
+
description: "Project scope (default: orchestra_dev)",
|
|
453
|
+
},
|
|
454
|
+
severity: {
|
|
455
|
+
type: "string",
|
|
456
|
+
enum: ["critical", "high", "medium", "low"],
|
|
457
|
+
description: "Filter by severity level",
|
|
458
|
+
},
|
|
459
|
+
learning_type: {
|
|
460
|
+
type: "string",
|
|
461
|
+
enum: ["scar", "win", "pattern", "anti_pattern"],
|
|
462
|
+
description: "Filter by learning type",
|
|
463
|
+
},
|
|
464
|
+
},
|
|
465
|
+
required: ["query"],
|
|
466
|
+
},
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
name: "log",
|
|
470
|
+
description: "List recent learnings chronologically (like git log). Shows scars, wins, and patterns ordered by creation date.",
|
|
471
|
+
inputSchema: {
|
|
472
|
+
type: "object",
|
|
473
|
+
properties: {
|
|
474
|
+
limit: {
|
|
475
|
+
type: "number",
|
|
476
|
+
description: "Number of entries to return (default: 10)",
|
|
477
|
+
},
|
|
478
|
+
project: {
|
|
479
|
+
type: "string",
|
|
480
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
481
|
+
description: "Project scope (default: orchestra_dev)",
|
|
482
|
+
},
|
|
483
|
+
learning_type: {
|
|
484
|
+
type: "string",
|
|
485
|
+
enum: ["scar", "win", "pattern", "anti_pattern"],
|
|
486
|
+
description: "Filter by learning type",
|
|
487
|
+
},
|
|
488
|
+
severity: {
|
|
489
|
+
type: "string",
|
|
490
|
+
enum: ["critical", "high", "medium", "low"],
|
|
491
|
+
description: "Filter by severity level",
|
|
492
|
+
},
|
|
493
|
+
since: {
|
|
494
|
+
type: "number",
|
|
495
|
+
description: "Days to look back (e.g., 7 = last week)",
|
|
496
|
+
},
|
|
497
|
+
},
|
|
498
|
+
},
|
|
499
|
+
},
|
|
500
|
+
// ============================================================================
|
|
501
|
+
// PREPARE CONTEXT (GitMem v2 Phase 1 — OD-593)
|
|
502
|
+
// ============================================================================
|
|
503
|
+
{
|
|
504
|
+
name: "prepare_context",
|
|
505
|
+
description: "Generate portable memory payload for sub-agent injection. Formats institutional memory into compact or gate payloads that fit in Task tool prompts.",
|
|
506
|
+
inputSchema: {
|
|
507
|
+
type: "object",
|
|
508
|
+
properties: {
|
|
509
|
+
plan: {
|
|
510
|
+
type: "string",
|
|
511
|
+
description: "What the team is about to do (e.g., 'review auth middleware', 'deploy edge function')",
|
|
512
|
+
},
|
|
513
|
+
format: {
|
|
514
|
+
type: "string",
|
|
515
|
+
enum: ["full", "compact", "gate"],
|
|
516
|
+
description: "Output format: full (rich markdown), compact (~500 tokens, one-line per scar), gate (~100 tokens, blocking scars only)",
|
|
517
|
+
},
|
|
518
|
+
max_tokens: {
|
|
519
|
+
type: "number",
|
|
520
|
+
description: "Token budget for payload (default: 500 for compact, 100 for gate, unlimited for full)",
|
|
521
|
+
},
|
|
522
|
+
agent_role: {
|
|
523
|
+
type: "string",
|
|
524
|
+
description: "Sub-agent role for relevance filtering (e.g., 'reviewer', 'deployer') — reserved for Phase 3",
|
|
525
|
+
},
|
|
526
|
+
project: {
|
|
527
|
+
type: "string",
|
|
528
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
529
|
+
description: "Project scope (default: orchestra_dev)",
|
|
530
|
+
},
|
|
531
|
+
},
|
|
532
|
+
required: ["plan", "format"],
|
|
533
|
+
},
|
|
534
|
+
},
|
|
535
|
+
// ============================================================================
|
|
536
|
+
// ABSORB OBSERVATIONS (GitMem v2 Phase 2)
|
|
537
|
+
// ============================================================================
|
|
538
|
+
{
|
|
539
|
+
name: "absorb_observations",
|
|
540
|
+
description: "Capture observations from sub-agents and teammates. The lead agent parses findings from sub-agent responses, then calls this to persist and analyze them. Identifies scar candidates.",
|
|
541
|
+
inputSchema: {
|
|
542
|
+
type: "object",
|
|
543
|
+
properties: {
|
|
544
|
+
task_id: {
|
|
545
|
+
type: "string",
|
|
546
|
+
description: "Linear issue or task identifier (optional)",
|
|
547
|
+
},
|
|
548
|
+
observations: {
|
|
549
|
+
type: "array",
|
|
550
|
+
items: {
|
|
551
|
+
type: "object",
|
|
552
|
+
properties: {
|
|
553
|
+
source: { type: "string", description: 'Who made this observation (e.g., "Sub-Agent: code review")' },
|
|
554
|
+
text: { type: "string", description: "What was observed" },
|
|
555
|
+
severity: { type: "string", enum: ["info", "warning", "scar_candidate"], description: "Observation severity" },
|
|
556
|
+
context: { type: "string", description: "File, function, or area (optional)" },
|
|
557
|
+
},
|
|
558
|
+
required: ["source", "text", "severity"],
|
|
559
|
+
},
|
|
560
|
+
description: "Array of observations from sub-agents/teammates",
|
|
561
|
+
},
|
|
562
|
+
},
|
|
563
|
+
required: ["observations"],
|
|
564
|
+
},
|
|
565
|
+
},
|
|
566
|
+
// --- Thread Lifecycle Tools (OD-thread-lifecycle) ---
|
|
567
|
+
{
|
|
568
|
+
name: "list_threads",
|
|
569
|
+
description: "List open threads across recent sessions. Shows unresolved work items that carry over between sessions, with IDs for resolution. Use resolve_thread to mark threads as done.",
|
|
570
|
+
inputSchema: {
|
|
571
|
+
type: "object",
|
|
572
|
+
properties: {
|
|
573
|
+
status: {
|
|
574
|
+
type: "string",
|
|
575
|
+
enum: ["open", "resolved"],
|
|
576
|
+
description: "Filter by status (default: open)",
|
|
577
|
+
},
|
|
578
|
+
include_resolved: {
|
|
579
|
+
type: "boolean",
|
|
580
|
+
description: "Include recently resolved threads (default: false)",
|
|
581
|
+
},
|
|
582
|
+
project: {
|
|
583
|
+
type: "string",
|
|
584
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
585
|
+
description: "Project scope (default: orchestra_dev)",
|
|
586
|
+
},
|
|
587
|
+
},
|
|
588
|
+
},
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
name: "resolve_thread",
|
|
592
|
+
description: "Mark an open thread as resolved. Use thread_id for exact match or text_match for fuzzy matching. Updates session state and .gitmem/threads.json.",
|
|
593
|
+
inputSchema: {
|
|
594
|
+
type: "object",
|
|
595
|
+
properties: {
|
|
596
|
+
thread_id: {
|
|
597
|
+
type: "string",
|
|
598
|
+
description: 'Thread ID (e.g., "t-a1b2c3d4") for exact resolution',
|
|
599
|
+
},
|
|
600
|
+
text_match: {
|
|
601
|
+
type: "string",
|
|
602
|
+
description: "Fuzzy text match against thread descriptions (fallback if no thread_id)",
|
|
603
|
+
},
|
|
604
|
+
resolution_note: {
|
|
605
|
+
type: "string",
|
|
606
|
+
description: "Brief note explaining how/why thread was resolved",
|
|
607
|
+
},
|
|
608
|
+
},
|
|
609
|
+
},
|
|
610
|
+
},
|
|
611
|
+
{
|
|
612
|
+
name: "create_thread",
|
|
613
|
+
description: "Create an open thread to track unresolved work across sessions. Includes semantic dedup: if a similar open thread exists (cosine similarity > 0.85), returns the existing thread instead. Check the 'deduplicated' field in the response.",
|
|
614
|
+
inputSchema: {
|
|
615
|
+
type: "object",
|
|
616
|
+
properties: {
|
|
617
|
+
text: {
|
|
618
|
+
type: "string",
|
|
619
|
+
description: "Thread description — what needs to be tracked or resolved",
|
|
620
|
+
},
|
|
621
|
+
linear_issue: {
|
|
622
|
+
type: "string",
|
|
623
|
+
description: "Associated Linear issue (e.g., OD-XXX)",
|
|
624
|
+
},
|
|
625
|
+
},
|
|
626
|
+
required: ["text"],
|
|
627
|
+
},
|
|
628
|
+
},
|
|
629
|
+
// --- Thread Suggestion Tools (Phase 5: Implicit Thread Detection) ---
|
|
630
|
+
{
|
|
631
|
+
name: "promote_suggestion",
|
|
632
|
+
description: "Promote a suggested thread to an open thread. Takes a suggestion_id from session_start's suggested_threads list and creates a real thread from it.",
|
|
633
|
+
inputSchema: {
|
|
634
|
+
type: "object",
|
|
635
|
+
properties: {
|
|
636
|
+
suggestion_id: {
|
|
637
|
+
type: "string",
|
|
638
|
+
description: 'Suggestion ID (e.g., "ts-a1b2c3d4") from suggested_threads list',
|
|
639
|
+
},
|
|
640
|
+
project: {
|
|
641
|
+
type: "string",
|
|
642
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
643
|
+
description: "Project scope (default: orchestra_dev)",
|
|
644
|
+
},
|
|
645
|
+
},
|
|
646
|
+
required: ["suggestion_id"],
|
|
647
|
+
},
|
|
648
|
+
},
|
|
649
|
+
{
|
|
650
|
+
name: "dismiss_suggestion",
|
|
651
|
+
description: "Dismiss a suggested thread. Incremented dismiss count — suggestions dismissed 3+ times are permanently suppressed.",
|
|
652
|
+
inputSchema: {
|
|
653
|
+
type: "object",
|
|
654
|
+
properties: {
|
|
655
|
+
suggestion_id: {
|
|
656
|
+
type: "string",
|
|
657
|
+
description: 'Suggestion ID (e.g., "ts-a1b2c3d4") from suggested_threads list',
|
|
658
|
+
},
|
|
659
|
+
},
|
|
660
|
+
required: ["suggestion_id"],
|
|
661
|
+
},
|
|
662
|
+
},
|
|
663
|
+
// --- Thread Lifecycle Cleanup Tool (Phase 6) ---
|
|
664
|
+
{
|
|
665
|
+
name: "cleanup_threads",
|
|
666
|
+
description: "Triage open threads by lifecycle health. Groups threads as active/cooling/dormant with vitality scores. Use auto_archive=true to archive threads dormant 30+ days. Review and resolve stale threads to keep your thread list healthy.",
|
|
667
|
+
inputSchema: {
|
|
668
|
+
type: "object",
|
|
669
|
+
properties: {
|
|
670
|
+
project: {
|
|
671
|
+
type: "string",
|
|
672
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
673
|
+
description: "Project scope (default: orchestra_dev)",
|
|
674
|
+
},
|
|
675
|
+
auto_archive: {
|
|
676
|
+
type: "boolean",
|
|
677
|
+
description: "If true, auto-archive threads that have been dormant for 30+ days",
|
|
678
|
+
},
|
|
679
|
+
},
|
|
680
|
+
},
|
|
681
|
+
},
|
|
682
|
+
// ============================================================================
|
|
683
|
+
// SHORT ALIASES (gitmem-*)
|
|
684
|
+
// Self-documenting: each description includes both alias and full name
|
|
685
|
+
// ============================================================================
|
|
686
|
+
{
|
|
687
|
+
name: "gitmem-r",
|
|
688
|
+
description: "gitmem-r (recall) - Check institutional memory for relevant scars before taking action",
|
|
689
|
+
inputSchema: {
|
|
690
|
+
type: "object",
|
|
691
|
+
properties: {
|
|
692
|
+
plan: {
|
|
693
|
+
type: "string",
|
|
694
|
+
description: "What you're about to do (e.g., 'implement auth layer', 'deploy to production')",
|
|
695
|
+
},
|
|
696
|
+
project: {
|
|
697
|
+
type: "string",
|
|
698
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
699
|
+
description: "Project scope (default: orchestra_dev)",
|
|
700
|
+
},
|
|
701
|
+
match_count: {
|
|
702
|
+
type: "number",
|
|
703
|
+
description: "Number of scars to return (default: 3)",
|
|
704
|
+
},
|
|
705
|
+
},
|
|
706
|
+
required: ["plan"],
|
|
707
|
+
},
|
|
708
|
+
},
|
|
709
|
+
{
|
|
710
|
+
name: "gitmem-cs",
|
|
711
|
+
description: "gitmem-cs (confirm_scars) - Confirm recalled scars with APPLYING/N_A/REFUTED decisions",
|
|
712
|
+
inputSchema: {
|
|
713
|
+
type: "object",
|
|
714
|
+
properties: {
|
|
715
|
+
confirmations: {
|
|
716
|
+
type: "array",
|
|
717
|
+
items: {
|
|
718
|
+
type: "object",
|
|
719
|
+
properties: {
|
|
720
|
+
scar_id: { type: "string", description: "UUID of the surfaced scar" },
|
|
721
|
+
decision: { type: "string", enum: ["APPLYING", "N_A", "REFUTED"], description: "Confirmation decision" },
|
|
722
|
+
evidence: { type: "string", description: "Evidence (min 50 chars)" },
|
|
723
|
+
},
|
|
724
|
+
required: ["scar_id", "decision", "evidence"],
|
|
725
|
+
},
|
|
726
|
+
description: "One confirmation per recalled scar",
|
|
727
|
+
},
|
|
728
|
+
},
|
|
729
|
+
required: ["confirmations"],
|
|
730
|
+
},
|
|
731
|
+
},
|
|
732
|
+
{
|
|
733
|
+
name: "gitmem-ss",
|
|
734
|
+
description: "gitmem-ss (session_start) - Initialize session with institutional context. DISPLAY: The result includes a pre-formatted 'display' field. Echo it verbatim to the user.",
|
|
735
|
+
inputSchema: {
|
|
736
|
+
type: "object",
|
|
737
|
+
properties: {
|
|
738
|
+
agent_identity: {
|
|
739
|
+
type: "string",
|
|
740
|
+
enum: ["CLI", "DAC", "CODA-1", "Brain_Local", "Brain_Cloud"],
|
|
741
|
+
description: "Override agent identity (auto-detects if not provided)",
|
|
742
|
+
},
|
|
743
|
+
linear_issue: {
|
|
744
|
+
type: "string",
|
|
745
|
+
description: "Current Linear issue identifier (e.g., OD-XXX)",
|
|
746
|
+
},
|
|
747
|
+
issue_title: {
|
|
748
|
+
type: "string",
|
|
749
|
+
description: "Issue title for scar context",
|
|
750
|
+
},
|
|
751
|
+
issue_description: {
|
|
752
|
+
type: "string",
|
|
753
|
+
description: "Issue description for scar context",
|
|
754
|
+
},
|
|
755
|
+
issue_labels: {
|
|
756
|
+
type: "array",
|
|
757
|
+
items: { type: "string" },
|
|
758
|
+
description: "Issue labels for scar context",
|
|
759
|
+
},
|
|
760
|
+
project: {
|
|
761
|
+
type: "string",
|
|
762
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
763
|
+
description: "Project scope (default: orchestra_dev)",
|
|
764
|
+
},
|
|
765
|
+
force: {
|
|
766
|
+
type: "boolean",
|
|
767
|
+
description: "Force create new session even if one already exists (OD-558)",
|
|
768
|
+
},
|
|
769
|
+
},
|
|
770
|
+
},
|
|
771
|
+
},
|
|
772
|
+
{
|
|
773
|
+
name: "gitmem-sr",
|
|
774
|
+
description: "gitmem-sr (session_refresh) - Refresh institutional context for the active session without creating a new session. DISPLAY: The result includes a pre-formatted 'display' field. Echo it verbatim to the user.",
|
|
775
|
+
inputSchema: {
|
|
776
|
+
type: "object",
|
|
777
|
+
properties: {
|
|
778
|
+
project: {
|
|
779
|
+
type: "string",
|
|
780
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
781
|
+
description: "Project scope (default: from active session)",
|
|
782
|
+
},
|
|
783
|
+
},
|
|
784
|
+
},
|
|
785
|
+
},
|
|
786
|
+
{
|
|
787
|
+
name: "gitmem-sc",
|
|
788
|
+
description: "gitmem-sc (session_close) - Close session with compliance validation. IMPORTANT: Write all heavy payload data (closing_reflection, task_completion, human_corrections, scars_to_record, open_threads, decisions, learnings_created) to .gitmem/closing-payload.json BEFORE calling this tool. Only pass session_id and close_type inline. DISPLAY: The result includes a pre-formatted 'display' field. Echo it verbatim to the user instead of formatting your own close summary.",
|
|
789
|
+
inputSchema: {
|
|
790
|
+
type: "object",
|
|
791
|
+
properties: {
|
|
792
|
+
session_id: {
|
|
793
|
+
type: "string",
|
|
794
|
+
description: "Session ID from session_start",
|
|
795
|
+
},
|
|
796
|
+
close_type: {
|
|
797
|
+
type: "string",
|
|
798
|
+
enum: ["standard", "quick", "autonomous"],
|
|
799
|
+
description: "Type of close (standard requires full reflection)",
|
|
800
|
+
},
|
|
801
|
+
linear_issue: {
|
|
802
|
+
type: "string",
|
|
803
|
+
description: "Associated Linear issue",
|
|
804
|
+
},
|
|
805
|
+
ceremony_duration_ms: {
|
|
806
|
+
type: "number",
|
|
807
|
+
description: "End-to-end ceremony duration from agent perspective (in milliseconds)",
|
|
808
|
+
},
|
|
809
|
+
},
|
|
810
|
+
required: ["session_id", "close_type"],
|
|
811
|
+
},
|
|
812
|
+
},
|
|
813
|
+
{
|
|
814
|
+
name: "gitmem-cl",
|
|
815
|
+
description: "gitmem-cl (create_learning) - Create scar/win/pattern in institutional memory",
|
|
816
|
+
inputSchema: {
|
|
817
|
+
type: "object",
|
|
818
|
+
properties: {
|
|
819
|
+
learning_type: {
|
|
820
|
+
type: "string",
|
|
821
|
+
enum: ["scar", "win", "pattern", "anti_pattern"],
|
|
822
|
+
description: "Type of learning",
|
|
823
|
+
},
|
|
824
|
+
title: {
|
|
825
|
+
type: "string",
|
|
826
|
+
description: "Learning title",
|
|
827
|
+
},
|
|
828
|
+
description: {
|
|
829
|
+
type: "string",
|
|
830
|
+
description: "Detailed description",
|
|
831
|
+
},
|
|
832
|
+
severity: {
|
|
833
|
+
type: "string",
|
|
834
|
+
enum: ["critical", "high", "medium", "low"],
|
|
835
|
+
description: "Severity level (required for scars)",
|
|
836
|
+
},
|
|
837
|
+
scar_type: {
|
|
838
|
+
type: "string",
|
|
839
|
+
enum: ["process", "incident", "context"],
|
|
840
|
+
description: "Scar type (process, incident, or context). Defaults to 'process'.",
|
|
841
|
+
},
|
|
842
|
+
counter_arguments: {
|
|
843
|
+
type: "array",
|
|
844
|
+
items: { type: "string" },
|
|
845
|
+
description: "Counter-arguments for scars (min 2 required)",
|
|
846
|
+
},
|
|
847
|
+
problem_context: {
|
|
848
|
+
type: "string",
|
|
849
|
+
description: "Problem context (for wins)",
|
|
850
|
+
},
|
|
851
|
+
solution_approach: {
|
|
852
|
+
type: "string",
|
|
853
|
+
description: "Solution approach (for wins)",
|
|
854
|
+
},
|
|
855
|
+
applies_when: {
|
|
856
|
+
type: "array",
|
|
857
|
+
items: { type: "string" },
|
|
858
|
+
description: "When this pattern applies",
|
|
859
|
+
},
|
|
860
|
+
domain: {
|
|
861
|
+
type: "array",
|
|
862
|
+
items: { type: "string" },
|
|
863
|
+
description: "Domain tags",
|
|
864
|
+
},
|
|
865
|
+
keywords: {
|
|
866
|
+
type: "array",
|
|
867
|
+
items: { type: "string" },
|
|
868
|
+
description: "Search keywords",
|
|
869
|
+
},
|
|
870
|
+
source_linear_issue: {
|
|
871
|
+
type: "string",
|
|
872
|
+
description: "Source Linear issue",
|
|
873
|
+
},
|
|
874
|
+
project: {
|
|
875
|
+
type: "string",
|
|
876
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
877
|
+
description: "Project scope",
|
|
878
|
+
},
|
|
879
|
+
},
|
|
880
|
+
required: ["learning_type", "title", "description"],
|
|
881
|
+
},
|
|
882
|
+
},
|
|
883
|
+
{
|
|
884
|
+
name: "gitmem-cd",
|
|
885
|
+
description: "gitmem-cd (create_decision) - Log architectural/operational decision",
|
|
886
|
+
inputSchema: {
|
|
887
|
+
type: "object",
|
|
888
|
+
properties: {
|
|
889
|
+
title: {
|
|
890
|
+
type: "string",
|
|
891
|
+
description: "Decision title",
|
|
892
|
+
},
|
|
893
|
+
decision: {
|
|
894
|
+
type: "string",
|
|
895
|
+
description: "What was decided",
|
|
896
|
+
},
|
|
897
|
+
rationale: {
|
|
898
|
+
type: "string",
|
|
899
|
+
description: "Why this decision was made",
|
|
900
|
+
},
|
|
901
|
+
alternatives_considered: {
|
|
902
|
+
type: "array",
|
|
903
|
+
items: { type: "string" },
|
|
904
|
+
description: "Alternatives that were rejected",
|
|
905
|
+
},
|
|
906
|
+
personas_involved: {
|
|
907
|
+
type: "array",
|
|
908
|
+
items: { type: "string" },
|
|
909
|
+
description: "Personas involved in decision",
|
|
910
|
+
},
|
|
911
|
+
docs_affected: {
|
|
912
|
+
type: "array",
|
|
913
|
+
items: { type: "string" },
|
|
914
|
+
description: "Docs/files affected by this decision (relative paths from repo root)",
|
|
915
|
+
},
|
|
916
|
+
linear_issue: {
|
|
917
|
+
type: "string",
|
|
918
|
+
description: "Associated Linear issue",
|
|
919
|
+
},
|
|
920
|
+
session_id: {
|
|
921
|
+
type: "string",
|
|
922
|
+
description: "Current session ID",
|
|
923
|
+
},
|
|
924
|
+
project: {
|
|
925
|
+
type: "string",
|
|
926
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
927
|
+
description: "Project scope",
|
|
928
|
+
},
|
|
929
|
+
},
|
|
930
|
+
required: ["title", "decision", "rationale"],
|
|
931
|
+
},
|
|
932
|
+
},
|
|
933
|
+
{
|
|
934
|
+
name: "gitmem-rs",
|
|
935
|
+
description: "gitmem-rs (record_scar_usage) - Track scar application for effectiveness measurement",
|
|
936
|
+
inputSchema: {
|
|
937
|
+
type: "object",
|
|
938
|
+
properties: {
|
|
939
|
+
scar_id: {
|
|
940
|
+
type: "string",
|
|
941
|
+
description: "UUID of the scar from orchestra_learnings",
|
|
942
|
+
},
|
|
943
|
+
issue_id: {
|
|
944
|
+
type: "string",
|
|
945
|
+
description: "Linear issue UUID",
|
|
946
|
+
},
|
|
947
|
+
issue_identifier: {
|
|
948
|
+
type: "string",
|
|
949
|
+
description: "Linear issue identifier (e.g., OD-XXX)",
|
|
950
|
+
},
|
|
951
|
+
surfaced_at: {
|
|
952
|
+
type: "string",
|
|
953
|
+
description: "ISO timestamp when scar was retrieved",
|
|
954
|
+
},
|
|
955
|
+
acknowledged_at: {
|
|
956
|
+
type: "string",
|
|
957
|
+
description: "ISO timestamp when scar was acknowledged",
|
|
958
|
+
},
|
|
959
|
+
reference_type: {
|
|
960
|
+
type: "string",
|
|
961
|
+
enum: ["explicit", "implicit", "acknowledged", "refuted", "none"],
|
|
962
|
+
description: "How the scar was referenced",
|
|
963
|
+
},
|
|
964
|
+
reference_context: {
|
|
965
|
+
type: "string",
|
|
966
|
+
description: "How the scar was applied (1-2 sentences)",
|
|
967
|
+
},
|
|
968
|
+
execution_successful: {
|
|
969
|
+
type: "boolean",
|
|
970
|
+
description: "Whether the task succeeded after applying scar",
|
|
971
|
+
},
|
|
972
|
+
session_id: {
|
|
973
|
+
type: "string",
|
|
974
|
+
description: "GitMem session UUID (for non-issue session tracking)",
|
|
975
|
+
},
|
|
976
|
+
agent: {
|
|
977
|
+
type: "string",
|
|
978
|
+
description: "Agent identity (CLI, DAC, CODA-1, etc.)",
|
|
979
|
+
},
|
|
980
|
+
},
|
|
981
|
+
required: ["scar_id", "surfaced_at", "reference_type", "reference_context"],
|
|
982
|
+
},
|
|
983
|
+
},
|
|
984
|
+
{
|
|
985
|
+
name: "gitmem-rsb",
|
|
986
|
+
description: "gitmem-rsb (record_scar_usage_batch) - Track multiple scars in batch (reduces latency)",
|
|
987
|
+
inputSchema: {
|
|
988
|
+
type: "object",
|
|
989
|
+
properties: {
|
|
990
|
+
scars: {
|
|
991
|
+
type: "array",
|
|
992
|
+
items: {
|
|
993
|
+
type: "object",
|
|
994
|
+
properties: {
|
|
995
|
+
scar_identifier: {
|
|
996
|
+
type: "string",
|
|
997
|
+
description: "UUID or title/description of scar (tool resolves to UUID)",
|
|
998
|
+
},
|
|
999
|
+
issue_id: {
|
|
1000
|
+
type: "string",
|
|
1001
|
+
description: "Linear issue UUID",
|
|
1002
|
+
},
|
|
1003
|
+
issue_identifier: {
|
|
1004
|
+
type: "string",
|
|
1005
|
+
description: "Linear issue identifier (e.g., OD-XXX)",
|
|
1006
|
+
},
|
|
1007
|
+
surfaced_at: {
|
|
1008
|
+
type: "string",
|
|
1009
|
+
description: "ISO timestamp when scar was retrieved",
|
|
1010
|
+
},
|
|
1011
|
+
acknowledged_at: {
|
|
1012
|
+
type: "string",
|
|
1013
|
+
description: "ISO timestamp when scar was acknowledged",
|
|
1014
|
+
},
|
|
1015
|
+
reference_type: {
|
|
1016
|
+
type: "string",
|
|
1017
|
+
enum: ["explicit", "implicit", "acknowledged", "refuted", "none"],
|
|
1018
|
+
description: "How the scar was referenced",
|
|
1019
|
+
},
|
|
1020
|
+
reference_context: {
|
|
1021
|
+
type: "string",
|
|
1022
|
+
description: "How the scar was applied (1-2 sentences)",
|
|
1023
|
+
},
|
|
1024
|
+
execution_successful: {
|
|
1025
|
+
type: "boolean",
|
|
1026
|
+
description: "Whether the task succeeded after applying scar",
|
|
1027
|
+
},
|
|
1028
|
+
session_id: {
|
|
1029
|
+
type: "string",
|
|
1030
|
+
description: "GitMem session UUID (for non-issue session tracking)",
|
|
1031
|
+
},
|
|
1032
|
+
agent: {
|
|
1033
|
+
type: "string",
|
|
1034
|
+
description: "Agent identity (CLI, DAC, CODA-1, etc.)",
|
|
1035
|
+
},
|
|
1036
|
+
},
|
|
1037
|
+
required: ["scar_identifier", "surfaced_at", "reference_type", "reference_context"],
|
|
1038
|
+
},
|
|
1039
|
+
description: "Array of scar usage entries to record",
|
|
1040
|
+
},
|
|
1041
|
+
project: {
|
|
1042
|
+
type: "string",
|
|
1043
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1044
|
+
description: "Project scope for scar resolution",
|
|
1045
|
+
},
|
|
1046
|
+
},
|
|
1047
|
+
required: ["scars"],
|
|
1048
|
+
},
|
|
1049
|
+
},
|
|
1050
|
+
{
|
|
1051
|
+
name: "gitmem-st",
|
|
1052
|
+
description: "gitmem-st (save_transcript) - Save session transcript to storage",
|
|
1053
|
+
inputSchema: {
|
|
1054
|
+
type: "object",
|
|
1055
|
+
properties: {
|
|
1056
|
+
session_id: {
|
|
1057
|
+
type: "string",
|
|
1058
|
+
description: "Session ID to associate transcript with",
|
|
1059
|
+
},
|
|
1060
|
+
transcript: {
|
|
1061
|
+
type: "string",
|
|
1062
|
+
description: "Full conversation transcript content",
|
|
1063
|
+
},
|
|
1064
|
+
format: {
|
|
1065
|
+
type: "string",
|
|
1066
|
+
enum: ["json", "markdown"],
|
|
1067
|
+
description: "Transcript format (default: json)",
|
|
1068
|
+
},
|
|
1069
|
+
project: {
|
|
1070
|
+
type: "string",
|
|
1071
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1072
|
+
description: "Project scope (default: orchestra_dev)",
|
|
1073
|
+
},
|
|
1074
|
+
},
|
|
1075
|
+
required: ["session_id", "transcript"],
|
|
1076
|
+
},
|
|
1077
|
+
},
|
|
1078
|
+
{
|
|
1079
|
+
name: "gitmem-gt",
|
|
1080
|
+
description: "gitmem-gt (get_transcript) - Retrieve session transcript from storage",
|
|
1081
|
+
inputSchema: {
|
|
1082
|
+
type: "object",
|
|
1083
|
+
properties: {
|
|
1084
|
+
session_id: {
|
|
1085
|
+
type: "string",
|
|
1086
|
+
description: "Session ID to retrieve transcript for",
|
|
1087
|
+
},
|
|
1088
|
+
},
|
|
1089
|
+
required: ["session_id"],
|
|
1090
|
+
},
|
|
1091
|
+
},
|
|
1092
|
+
// gitmem-search (OD-560)
|
|
1093
|
+
{
|
|
1094
|
+
name: "gitmem-search",
|
|
1095
|
+
description: "gitmem-search (search) - Search institutional memory by query (exploration, no side effects)",
|
|
1096
|
+
inputSchema: {
|
|
1097
|
+
type: "object",
|
|
1098
|
+
properties: {
|
|
1099
|
+
query: {
|
|
1100
|
+
type: "string",
|
|
1101
|
+
description: "Natural language search query",
|
|
1102
|
+
},
|
|
1103
|
+
match_count: {
|
|
1104
|
+
type: "number",
|
|
1105
|
+
description: "Number of results to return (default: 5)",
|
|
1106
|
+
},
|
|
1107
|
+
project: {
|
|
1108
|
+
type: "string",
|
|
1109
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1110
|
+
description: "Project scope (default: orchestra_dev)",
|
|
1111
|
+
},
|
|
1112
|
+
severity: {
|
|
1113
|
+
type: "string",
|
|
1114
|
+
enum: ["critical", "high", "medium", "low"],
|
|
1115
|
+
description: "Filter by severity",
|
|
1116
|
+
},
|
|
1117
|
+
learning_type: {
|
|
1118
|
+
type: "string",
|
|
1119
|
+
enum: ["scar", "win", "pattern", "anti_pattern"],
|
|
1120
|
+
description: "Filter by type",
|
|
1121
|
+
},
|
|
1122
|
+
},
|
|
1123
|
+
required: ["query"],
|
|
1124
|
+
},
|
|
1125
|
+
},
|
|
1126
|
+
// gitmem-log (OD-561)
|
|
1127
|
+
{
|
|
1128
|
+
name: "gitmem-log",
|
|
1129
|
+
description: "gitmem-log (log) - List recent learnings chronologically",
|
|
1130
|
+
inputSchema: {
|
|
1131
|
+
type: "object",
|
|
1132
|
+
properties: {
|
|
1133
|
+
limit: {
|
|
1134
|
+
type: "number",
|
|
1135
|
+
description: "Number of entries (default: 10)",
|
|
1136
|
+
},
|
|
1137
|
+
project: {
|
|
1138
|
+
type: "string",
|
|
1139
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1140
|
+
description: "Project scope (default: orchestra_dev)",
|
|
1141
|
+
},
|
|
1142
|
+
learning_type: {
|
|
1143
|
+
type: "string",
|
|
1144
|
+
enum: ["scar", "win", "pattern", "anti_pattern"],
|
|
1145
|
+
description: "Filter by type",
|
|
1146
|
+
},
|
|
1147
|
+
severity: {
|
|
1148
|
+
type: "string",
|
|
1149
|
+
enum: ["critical", "high", "medium", "low"],
|
|
1150
|
+
description: "Filter by severity",
|
|
1151
|
+
},
|
|
1152
|
+
since: {
|
|
1153
|
+
type: "number",
|
|
1154
|
+
description: "Days to look back",
|
|
1155
|
+
},
|
|
1156
|
+
},
|
|
1157
|
+
},
|
|
1158
|
+
},
|
|
1159
|
+
// gitmem-pc (prepare_context) — OD-593
|
|
1160
|
+
{
|
|
1161
|
+
name: "gitmem-pc",
|
|
1162
|
+
description: "gitmem-pc (prepare_context) - Generate portable memory payload for sub-agent injection",
|
|
1163
|
+
inputSchema: {
|
|
1164
|
+
type: "object",
|
|
1165
|
+
properties: {
|
|
1166
|
+
plan: {
|
|
1167
|
+
type: "string",
|
|
1168
|
+
description: "What the team is about to do",
|
|
1169
|
+
},
|
|
1170
|
+
format: {
|
|
1171
|
+
type: "string",
|
|
1172
|
+
enum: ["full", "compact", "gate"],
|
|
1173
|
+
description: "Output format: full, compact (~500 tokens), gate (~100 tokens)",
|
|
1174
|
+
},
|
|
1175
|
+
max_tokens: {
|
|
1176
|
+
type: "number",
|
|
1177
|
+
description: "Token budget for payload",
|
|
1178
|
+
},
|
|
1179
|
+
agent_role: {
|
|
1180
|
+
type: "string",
|
|
1181
|
+
description: "Sub-agent role for filtering (reserved for Phase 3)",
|
|
1182
|
+
},
|
|
1183
|
+
project: {
|
|
1184
|
+
type: "string",
|
|
1185
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1186
|
+
description: "Project scope (default: orchestra_dev)",
|
|
1187
|
+
},
|
|
1188
|
+
},
|
|
1189
|
+
required: ["plan", "format"],
|
|
1190
|
+
},
|
|
1191
|
+
},
|
|
1192
|
+
// gitmem-ao (absorb_observations) — v2 Phase 2
|
|
1193
|
+
{
|
|
1194
|
+
name: "gitmem-ao",
|
|
1195
|
+
description: "gitmem-ao (absorb_observations) - Capture sub-agent/teammate observations",
|
|
1196
|
+
inputSchema: {
|
|
1197
|
+
type: "object",
|
|
1198
|
+
properties: {
|
|
1199
|
+
task_id: { type: "string", description: "Linear issue or task identifier (optional)" },
|
|
1200
|
+
observations: {
|
|
1201
|
+
type: "array",
|
|
1202
|
+
items: {
|
|
1203
|
+
type: "object",
|
|
1204
|
+
properties: {
|
|
1205
|
+
source: { type: "string", description: "Who made this observation" },
|
|
1206
|
+
text: { type: "string", description: "What was observed" },
|
|
1207
|
+
severity: { type: "string", enum: ["info", "warning", "scar_candidate"] },
|
|
1208
|
+
context: { type: "string", description: "File/function/area (optional)" },
|
|
1209
|
+
},
|
|
1210
|
+
required: ["source", "text", "severity"],
|
|
1211
|
+
},
|
|
1212
|
+
description: "Observations from sub-agents/teammates",
|
|
1213
|
+
},
|
|
1214
|
+
},
|
|
1215
|
+
required: ["observations"],
|
|
1216
|
+
},
|
|
1217
|
+
},
|
|
1218
|
+
// gitmem-lt (list_threads) — OD-thread-lifecycle
|
|
1219
|
+
{
|
|
1220
|
+
name: "gitmem-lt",
|
|
1221
|
+
description: "gitmem-lt (list_threads) - List open threads across sessions",
|
|
1222
|
+
inputSchema: {
|
|
1223
|
+
type: "object",
|
|
1224
|
+
properties: {
|
|
1225
|
+
status: { type: "string", enum: ["open", "resolved"], description: "Filter by status (default: open)" },
|
|
1226
|
+
include_resolved: { type: "boolean", description: "Include recently resolved threads (default: false)" },
|
|
1227
|
+
project: { type: "string", enum: ["orchestra_dev", "weekend_warrior"], description: "Project scope" },
|
|
1228
|
+
},
|
|
1229
|
+
},
|
|
1230
|
+
},
|
|
1231
|
+
// gitmem-rt (resolve_thread) — OD-thread-lifecycle
|
|
1232
|
+
{
|
|
1233
|
+
name: "gitmem-rt",
|
|
1234
|
+
description: "gitmem-rt (resolve_thread) - Mark a thread as resolved",
|
|
1235
|
+
inputSchema: {
|
|
1236
|
+
type: "object",
|
|
1237
|
+
properties: {
|
|
1238
|
+
thread_id: { type: "string", description: 'Thread ID (e.g., "t-a1b2c3d4")' },
|
|
1239
|
+
text_match: { type: "string", description: "Fuzzy text match against thread descriptions" },
|
|
1240
|
+
resolution_note: { type: "string", description: "Brief note explaining resolution" },
|
|
1241
|
+
},
|
|
1242
|
+
},
|
|
1243
|
+
},
|
|
1244
|
+
// gitmem-ct (create_thread)
|
|
1245
|
+
{
|
|
1246
|
+
name: "gitmem-ct",
|
|
1247
|
+
description: "gitmem-ct (create_thread) - Create an open thread with semantic dedup (cosine > 0.85 blocks duplicates)",
|
|
1248
|
+
inputSchema: {
|
|
1249
|
+
type: "object",
|
|
1250
|
+
properties: {
|
|
1251
|
+
text: { type: "string", description: "Thread description" },
|
|
1252
|
+
linear_issue: { type: "string", description: "Associated Linear issue" },
|
|
1253
|
+
},
|
|
1254
|
+
required: ["text"],
|
|
1255
|
+
},
|
|
1256
|
+
},
|
|
1257
|
+
// gitmem-ps (promote_suggestion) — Phase 5
|
|
1258
|
+
{
|
|
1259
|
+
name: "gitmem-ps",
|
|
1260
|
+
description: "gitmem-ps (promote_suggestion) - Promote a suggested thread to an open thread",
|
|
1261
|
+
inputSchema: {
|
|
1262
|
+
type: "object",
|
|
1263
|
+
properties: {
|
|
1264
|
+
suggestion_id: { type: "string", description: "Suggestion ID (e.g., ts-a1b2c3d4)" },
|
|
1265
|
+
project: { type: "string", enum: ["orchestra_dev", "weekend_warrior"], description: "Project scope" },
|
|
1266
|
+
},
|
|
1267
|
+
required: ["suggestion_id"],
|
|
1268
|
+
},
|
|
1269
|
+
},
|
|
1270
|
+
// gitmem-ds (dismiss_suggestion) — Phase 5
|
|
1271
|
+
{
|
|
1272
|
+
name: "gitmem-ds",
|
|
1273
|
+
description: "gitmem-ds (dismiss_suggestion) - Dismiss a suggested thread",
|
|
1274
|
+
inputSchema: {
|
|
1275
|
+
type: "object",
|
|
1276
|
+
properties: {
|
|
1277
|
+
suggestion_id: { type: "string", description: "Suggestion ID (e.g., ts-a1b2c3d4)" },
|
|
1278
|
+
},
|
|
1279
|
+
required: ["suggestion_id"],
|
|
1280
|
+
},
|
|
1281
|
+
},
|
|
1282
|
+
// gitmem-cleanup (cleanup_threads) — Phase 6
|
|
1283
|
+
{
|
|
1284
|
+
name: "gitmem-cleanup",
|
|
1285
|
+
description: "gitmem-cleanup (cleanup_threads) - Triage threads by lifecycle health",
|
|
1286
|
+
inputSchema: {
|
|
1287
|
+
type: "object",
|
|
1288
|
+
properties: {
|
|
1289
|
+
project: { type: "string", enum: ["orchestra_dev", "weekend_warrior"] },
|
|
1290
|
+
auto_archive: { type: "boolean", description: "Auto-archive dormant threads (30+ days)" },
|
|
1291
|
+
},
|
|
1292
|
+
},
|
|
1293
|
+
},
|
|
1294
|
+
// ============================================================================
|
|
1295
|
+
// GM-* SHORT, MEMORABLE ALIASES (user-facing ergonomics)
|
|
1296
|
+
// ============================================================================
|
|
1297
|
+
{
|
|
1298
|
+
name: "gm-open",
|
|
1299
|
+
description: "gm-open (session_start) - Open a GitMem session and load institutional context. DISPLAY: The result includes a pre-formatted 'display' field. Echo it verbatim to the user.",
|
|
1300
|
+
inputSchema: {
|
|
1301
|
+
type: "object",
|
|
1302
|
+
properties: {
|
|
1303
|
+
agent_identity: {
|
|
1304
|
+
type: "string",
|
|
1305
|
+
enum: ["CLI", "DAC", "CODA-1", "Brain_Local", "Brain_Cloud"],
|
|
1306
|
+
description: "Override agent identity (auto-detects if not provided)",
|
|
1307
|
+
},
|
|
1308
|
+
linear_issue: {
|
|
1309
|
+
type: "string",
|
|
1310
|
+
description: "Current Linear issue identifier (e.g., OD-XXX)",
|
|
1311
|
+
},
|
|
1312
|
+
issue_title: {
|
|
1313
|
+
type: "string",
|
|
1314
|
+
description: "Issue title for scar context",
|
|
1315
|
+
},
|
|
1316
|
+
issue_description: {
|
|
1317
|
+
type: "string",
|
|
1318
|
+
description: "Issue description for scar context",
|
|
1319
|
+
},
|
|
1320
|
+
issue_labels: {
|
|
1321
|
+
type: "array",
|
|
1322
|
+
items: { type: "string" },
|
|
1323
|
+
description: "Issue labels for scar context",
|
|
1324
|
+
},
|
|
1325
|
+
project: {
|
|
1326
|
+
type: "string",
|
|
1327
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1328
|
+
description: "Project scope (default: orchestra_dev)",
|
|
1329
|
+
},
|
|
1330
|
+
force: {
|
|
1331
|
+
type: "boolean",
|
|
1332
|
+
description: "Force create new session even if one already exists (OD-558)",
|
|
1333
|
+
},
|
|
1334
|
+
},
|
|
1335
|
+
},
|
|
1336
|
+
},
|
|
1337
|
+
{
|
|
1338
|
+
name: "gm-confirm",
|
|
1339
|
+
description: "gm-confirm (confirm_scars) - Confirm recalled scars with APPLYING/N_A/REFUTED",
|
|
1340
|
+
inputSchema: {
|
|
1341
|
+
type: "object",
|
|
1342
|
+
properties: {
|
|
1343
|
+
confirmations: {
|
|
1344
|
+
type: "array",
|
|
1345
|
+
items: {
|
|
1346
|
+
type: "object",
|
|
1347
|
+
properties: {
|
|
1348
|
+
scar_id: { type: "string", description: "UUID of the surfaced scar" },
|
|
1349
|
+
decision: { type: "string", enum: ["APPLYING", "N_A", "REFUTED"] },
|
|
1350
|
+
evidence: { type: "string", description: "Evidence (min 50 chars)" },
|
|
1351
|
+
},
|
|
1352
|
+
required: ["scar_id", "decision", "evidence"],
|
|
1353
|
+
},
|
|
1354
|
+
description: "One confirmation per recalled scar",
|
|
1355
|
+
},
|
|
1356
|
+
},
|
|
1357
|
+
required: ["confirmations"],
|
|
1358
|
+
},
|
|
1359
|
+
},
|
|
1360
|
+
{
|
|
1361
|
+
name: "gm-refresh",
|
|
1362
|
+
description: "gm-refresh (session_refresh) - Refresh context for the active session without creating a new one. DISPLAY: The result includes a pre-formatted 'display' field. Echo it verbatim to the user.",
|
|
1363
|
+
inputSchema: {
|
|
1364
|
+
type: "object",
|
|
1365
|
+
properties: {
|
|
1366
|
+
project: {
|
|
1367
|
+
type: "string",
|
|
1368
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1369
|
+
description: "Project scope (default: from active session)",
|
|
1370
|
+
},
|
|
1371
|
+
},
|
|
1372
|
+
},
|
|
1373
|
+
},
|
|
1374
|
+
{
|
|
1375
|
+
name: "gm-close",
|
|
1376
|
+
description: "gm-close (session_close) - Close a GitMem session. IMPORTANT: Write all heavy payload data (closing_reflection, task_completion, human_corrections, scars_to_record, open_threads, decisions, learnings_created) to .gitmem/closing-payload.json BEFORE calling this tool. Only pass session_id and close_type inline. DISPLAY: The result includes a pre-formatted 'display' field. Echo it verbatim to the user instead of formatting your own close summary.",
|
|
1377
|
+
inputSchema: {
|
|
1378
|
+
type: "object",
|
|
1379
|
+
properties: {
|
|
1380
|
+
session_id: {
|
|
1381
|
+
type: "string",
|
|
1382
|
+
description: "Session ID from session_start",
|
|
1383
|
+
},
|
|
1384
|
+
close_type: {
|
|
1385
|
+
type: "string",
|
|
1386
|
+
enum: ["standard", "quick", "autonomous"],
|
|
1387
|
+
description: "Type of close (standard requires full reflection)",
|
|
1388
|
+
},
|
|
1389
|
+
linear_issue: {
|
|
1390
|
+
type: "string",
|
|
1391
|
+
description: "Associated Linear issue",
|
|
1392
|
+
},
|
|
1393
|
+
ceremony_duration_ms: {
|
|
1394
|
+
type: "number",
|
|
1395
|
+
description: "End-to-end ceremony duration from agent perspective (in milliseconds)",
|
|
1396
|
+
},
|
|
1397
|
+
},
|
|
1398
|
+
required: ["session_id", "close_type"],
|
|
1399
|
+
},
|
|
1400
|
+
},
|
|
1401
|
+
{
|
|
1402
|
+
name: "gm-scar",
|
|
1403
|
+
description: "gm-scar (create_learning) - Create a scar/win/pattern in institutional memory",
|
|
1404
|
+
inputSchema: {
|
|
1405
|
+
type: "object",
|
|
1406
|
+
properties: {
|
|
1407
|
+
learning_type: {
|
|
1408
|
+
type: "string",
|
|
1409
|
+
enum: ["scar", "win", "pattern", "anti_pattern"],
|
|
1410
|
+
description: "Type of learning",
|
|
1411
|
+
},
|
|
1412
|
+
title: {
|
|
1413
|
+
type: "string",
|
|
1414
|
+
description: "Learning title",
|
|
1415
|
+
},
|
|
1416
|
+
description: {
|
|
1417
|
+
type: "string",
|
|
1418
|
+
description: "Detailed description",
|
|
1419
|
+
},
|
|
1420
|
+
severity: {
|
|
1421
|
+
type: "string",
|
|
1422
|
+
enum: ["critical", "high", "medium", "low"],
|
|
1423
|
+
description: "Severity level (required for scars)",
|
|
1424
|
+
},
|
|
1425
|
+
scar_type: {
|
|
1426
|
+
type: "string",
|
|
1427
|
+
enum: ["process", "incident", "context"],
|
|
1428
|
+
description: "Scar type (process, incident, or context). Defaults to 'process'.",
|
|
1429
|
+
},
|
|
1430
|
+
counter_arguments: {
|
|
1431
|
+
type: "array",
|
|
1432
|
+
items: { type: "string" },
|
|
1433
|
+
description: "Counter-arguments for scars (min 2 required)",
|
|
1434
|
+
},
|
|
1435
|
+
problem_context: {
|
|
1436
|
+
type: "string",
|
|
1437
|
+
description: "Problem context (for wins)",
|
|
1438
|
+
},
|
|
1439
|
+
solution_approach: {
|
|
1440
|
+
type: "string",
|
|
1441
|
+
description: "Solution approach (for wins)",
|
|
1442
|
+
},
|
|
1443
|
+
applies_when: {
|
|
1444
|
+
type: "array",
|
|
1445
|
+
items: { type: "string" },
|
|
1446
|
+
description: "When this pattern applies",
|
|
1447
|
+
},
|
|
1448
|
+
domain: {
|
|
1449
|
+
type: "array",
|
|
1450
|
+
items: { type: "string" },
|
|
1451
|
+
description: "Domain tags",
|
|
1452
|
+
},
|
|
1453
|
+
keywords: {
|
|
1454
|
+
type: "array",
|
|
1455
|
+
items: { type: "string" },
|
|
1456
|
+
description: "Search keywords",
|
|
1457
|
+
},
|
|
1458
|
+
source_linear_issue: {
|
|
1459
|
+
type: "string",
|
|
1460
|
+
description: "Source Linear issue",
|
|
1461
|
+
},
|
|
1462
|
+
project: {
|
|
1463
|
+
type: "string",
|
|
1464
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1465
|
+
description: "Project scope",
|
|
1466
|
+
},
|
|
1467
|
+
},
|
|
1468
|
+
required: ["learning_type", "title", "description"],
|
|
1469
|
+
},
|
|
1470
|
+
},
|
|
1471
|
+
// gm-search (OD-560)
|
|
1472
|
+
{
|
|
1473
|
+
name: "gm-search",
|
|
1474
|
+
description: "gm-search (search) - Search institutional memory by query",
|
|
1475
|
+
inputSchema: {
|
|
1476
|
+
type: "object",
|
|
1477
|
+
properties: {
|
|
1478
|
+
query: {
|
|
1479
|
+
type: "string",
|
|
1480
|
+
description: "Natural language search query",
|
|
1481
|
+
},
|
|
1482
|
+
match_count: {
|
|
1483
|
+
type: "number",
|
|
1484
|
+
description: "Number of results (default: 5)",
|
|
1485
|
+
},
|
|
1486
|
+
project: {
|
|
1487
|
+
type: "string",
|
|
1488
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1489
|
+
description: "Project scope",
|
|
1490
|
+
},
|
|
1491
|
+
severity: {
|
|
1492
|
+
type: "string",
|
|
1493
|
+
enum: ["critical", "high", "medium", "low"],
|
|
1494
|
+
description: "Filter by severity",
|
|
1495
|
+
},
|
|
1496
|
+
learning_type: {
|
|
1497
|
+
type: "string",
|
|
1498
|
+
enum: ["scar", "win", "pattern", "anti_pattern"],
|
|
1499
|
+
description: "Filter by type",
|
|
1500
|
+
},
|
|
1501
|
+
},
|
|
1502
|
+
required: ["query"],
|
|
1503
|
+
},
|
|
1504
|
+
},
|
|
1505
|
+
// gm-log (OD-561)
|
|
1506
|
+
{
|
|
1507
|
+
name: "gm-log",
|
|
1508
|
+
description: "gm-log (log) - List recent learnings chronologically",
|
|
1509
|
+
inputSchema: {
|
|
1510
|
+
type: "object",
|
|
1511
|
+
properties: {
|
|
1512
|
+
limit: {
|
|
1513
|
+
type: "number",
|
|
1514
|
+
description: "Number of entries (default: 10)",
|
|
1515
|
+
},
|
|
1516
|
+
project: {
|
|
1517
|
+
type: "string",
|
|
1518
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1519
|
+
description: "Project scope",
|
|
1520
|
+
},
|
|
1521
|
+
learning_type: {
|
|
1522
|
+
type: "string",
|
|
1523
|
+
enum: ["scar", "win", "pattern", "anti_pattern"],
|
|
1524
|
+
description: "Filter by type",
|
|
1525
|
+
},
|
|
1526
|
+
severity: {
|
|
1527
|
+
type: "string",
|
|
1528
|
+
enum: ["critical", "high", "medium", "low"],
|
|
1529
|
+
description: "Filter by severity",
|
|
1530
|
+
},
|
|
1531
|
+
since: {
|
|
1532
|
+
type: "number",
|
|
1533
|
+
description: "Days to look back",
|
|
1534
|
+
},
|
|
1535
|
+
},
|
|
1536
|
+
},
|
|
1537
|
+
},
|
|
1538
|
+
// gm-pc (prepare_context) — OD-593
|
|
1539
|
+
{
|
|
1540
|
+
name: "gm-pc",
|
|
1541
|
+
description: "gm-pc (prepare_context) - Generate portable memory payload for sub-agents",
|
|
1542
|
+
inputSchema: {
|
|
1543
|
+
type: "object",
|
|
1544
|
+
properties: {
|
|
1545
|
+
plan: {
|
|
1546
|
+
type: "string",
|
|
1547
|
+
description: "What the team is about to do",
|
|
1548
|
+
},
|
|
1549
|
+
format: {
|
|
1550
|
+
type: "string",
|
|
1551
|
+
enum: ["full", "compact", "gate"],
|
|
1552
|
+
description: "Output format: full, compact, gate",
|
|
1553
|
+
},
|
|
1554
|
+
max_tokens: {
|
|
1555
|
+
type: "number",
|
|
1556
|
+
description: "Token budget for payload",
|
|
1557
|
+
},
|
|
1558
|
+
agent_role: {
|
|
1559
|
+
type: "string",
|
|
1560
|
+
description: "Sub-agent role (reserved for Phase 3)",
|
|
1561
|
+
},
|
|
1562
|
+
project: {
|
|
1563
|
+
type: "string",
|
|
1564
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1565
|
+
description: "Project scope",
|
|
1566
|
+
},
|
|
1567
|
+
},
|
|
1568
|
+
required: ["plan", "format"],
|
|
1569
|
+
},
|
|
1570
|
+
},
|
|
1571
|
+
// gm-absorb (absorb_observations) — v2 Phase 2
|
|
1572
|
+
{
|
|
1573
|
+
name: "gm-absorb",
|
|
1574
|
+
description: "gm-absorb (absorb_observations) - Capture sub-agent observations",
|
|
1575
|
+
inputSchema: {
|
|
1576
|
+
type: "object",
|
|
1577
|
+
properties: {
|
|
1578
|
+
task_id: { type: "string", description: "Linear issue or task identifier" },
|
|
1579
|
+
observations: {
|
|
1580
|
+
type: "array",
|
|
1581
|
+
items: {
|
|
1582
|
+
type: "object",
|
|
1583
|
+
properties: {
|
|
1584
|
+
source: { type: "string", description: "Who observed" },
|
|
1585
|
+
text: { type: "string", description: "What was observed" },
|
|
1586
|
+
severity: { type: "string", enum: ["info", "warning", "scar_candidate"] },
|
|
1587
|
+
context: { type: "string", description: "File/function/area" },
|
|
1588
|
+
},
|
|
1589
|
+
required: ["source", "text", "severity"],
|
|
1590
|
+
},
|
|
1591
|
+
description: "Observations array",
|
|
1592
|
+
},
|
|
1593
|
+
},
|
|
1594
|
+
required: ["observations"],
|
|
1595
|
+
},
|
|
1596
|
+
},
|
|
1597
|
+
// gm-threads (list_threads) — OD-thread-lifecycle
|
|
1598
|
+
{
|
|
1599
|
+
name: "gm-threads",
|
|
1600
|
+
description: "gm-threads (list_threads) - List open threads",
|
|
1601
|
+
inputSchema: {
|
|
1602
|
+
type: "object",
|
|
1603
|
+
properties: {
|
|
1604
|
+
status: { type: "string", enum: ["open", "resolved"], description: "Filter by status (default: open)" },
|
|
1605
|
+
include_resolved: { type: "boolean", description: "Include resolved threads" },
|
|
1606
|
+
project: { type: "string", enum: ["orchestra_dev", "weekend_warrior"], description: "Project scope" },
|
|
1607
|
+
},
|
|
1608
|
+
},
|
|
1609
|
+
},
|
|
1610
|
+
// gm-resolve (resolve_thread) — OD-thread-lifecycle
|
|
1611
|
+
{
|
|
1612
|
+
name: "gm-resolve",
|
|
1613
|
+
description: "gm-resolve (resolve_thread) - Resolve a thread",
|
|
1614
|
+
inputSchema: {
|
|
1615
|
+
type: "object",
|
|
1616
|
+
properties: {
|
|
1617
|
+
thread_id: { type: "string", description: 'Thread ID (e.g., "t-a1b2c3d4")' },
|
|
1618
|
+
text_match: { type: "string", description: "Fuzzy text match" },
|
|
1619
|
+
resolution_note: { type: "string", description: "Brief resolution note" },
|
|
1620
|
+
},
|
|
1621
|
+
},
|
|
1622
|
+
},
|
|
1623
|
+
// gm-thread-new (create_thread)
|
|
1624
|
+
{
|
|
1625
|
+
name: "gm-thread-new",
|
|
1626
|
+
description: "gm-thread-new (create_thread) - Create an open thread with semantic dedup",
|
|
1627
|
+
inputSchema: {
|
|
1628
|
+
type: "object",
|
|
1629
|
+
properties: {
|
|
1630
|
+
text: { type: "string", description: "Thread description" },
|
|
1631
|
+
linear_issue: { type: "string", description: "Associated Linear issue" },
|
|
1632
|
+
},
|
|
1633
|
+
required: ["text"],
|
|
1634
|
+
},
|
|
1635
|
+
},
|
|
1636
|
+
// gm-promote (promote_suggestion) — Phase 5
|
|
1637
|
+
{
|
|
1638
|
+
name: "gm-promote",
|
|
1639
|
+
description: "gm-promote (promote_suggestion) - Promote a suggested thread",
|
|
1640
|
+
inputSchema: {
|
|
1641
|
+
type: "object",
|
|
1642
|
+
properties: {
|
|
1643
|
+
suggestion_id: { type: "string", description: "Suggestion ID" },
|
|
1644
|
+
project: { type: "string", enum: ["orchestra_dev", "weekend_warrior"], description: "Project scope" },
|
|
1645
|
+
},
|
|
1646
|
+
required: ["suggestion_id"],
|
|
1647
|
+
},
|
|
1648
|
+
},
|
|
1649
|
+
// gm-dismiss (dismiss_suggestion) — Phase 5
|
|
1650
|
+
{
|
|
1651
|
+
name: "gm-dismiss",
|
|
1652
|
+
description: "gm-dismiss (dismiss_suggestion) - Dismiss a suggested thread",
|
|
1653
|
+
inputSchema: {
|
|
1654
|
+
type: "object",
|
|
1655
|
+
properties: {
|
|
1656
|
+
suggestion_id: { type: "string", description: "Suggestion ID" },
|
|
1657
|
+
},
|
|
1658
|
+
required: ["suggestion_id"],
|
|
1659
|
+
},
|
|
1660
|
+
},
|
|
1661
|
+
// gm-cleanup (cleanup_threads) — Phase 6
|
|
1662
|
+
{
|
|
1663
|
+
name: "gm-cleanup",
|
|
1664
|
+
description: "gm-cleanup (cleanup_threads) - Triage threads by health",
|
|
1665
|
+
inputSchema: {
|
|
1666
|
+
type: "object",
|
|
1667
|
+
properties: {
|
|
1668
|
+
project: { type: "string", enum: ["orchestra_dev", "weekend_warrior"] },
|
|
1669
|
+
auto_archive: { type: "boolean", description: "Auto-archive dormant threads" },
|
|
1670
|
+
},
|
|
1671
|
+
},
|
|
1672
|
+
},
|
|
1673
|
+
// ============================================================================
|
|
1674
|
+
// ANALYTICS TOOLS (OD-567)
|
|
1675
|
+
// ============================================================================
|
|
1676
|
+
{
|
|
1677
|
+
name: "analyze",
|
|
1678
|
+
description: "Session analytics and insights engine. Returns formatted markdown by default. Use format=json for raw data.",
|
|
1679
|
+
inputSchema: {
|
|
1680
|
+
type: "object",
|
|
1681
|
+
properties: {
|
|
1682
|
+
lens: {
|
|
1683
|
+
type: "string",
|
|
1684
|
+
enum: ["summary", "reflections", "blindspots"],
|
|
1685
|
+
description: "Analysis lens to apply (default: summary)",
|
|
1686
|
+
},
|
|
1687
|
+
days: {
|
|
1688
|
+
type: "number",
|
|
1689
|
+
description: "Number of days to analyze (default: 30)",
|
|
1690
|
+
},
|
|
1691
|
+
project: {
|
|
1692
|
+
type: "string",
|
|
1693
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1694
|
+
description: "Project scope",
|
|
1695
|
+
},
|
|
1696
|
+
agent: {
|
|
1697
|
+
type: "string",
|
|
1698
|
+
description: "Filter by agent identity (e.g., CLI, DAC, CODA-1)",
|
|
1699
|
+
},
|
|
1700
|
+
format: {
|
|
1701
|
+
type: "string",
|
|
1702
|
+
enum: ["text", "json"],
|
|
1703
|
+
description: "Output format: text (default, compact markdown) or json (raw data)",
|
|
1704
|
+
},
|
|
1705
|
+
},
|
|
1706
|
+
},
|
|
1707
|
+
},
|
|
1708
|
+
// gitmem-analyze alias (OD-567)
|
|
1709
|
+
{
|
|
1710
|
+
name: "gitmem-analyze",
|
|
1711
|
+
description: "gitmem-analyze (analyze) - Session analytics. Returns formatted markdown by default.",
|
|
1712
|
+
inputSchema: {
|
|
1713
|
+
type: "object",
|
|
1714
|
+
properties: {
|
|
1715
|
+
lens: {
|
|
1716
|
+
type: "string",
|
|
1717
|
+
enum: ["summary", "reflections", "blindspots"],
|
|
1718
|
+
description: "Analysis lens to apply (default: summary)",
|
|
1719
|
+
},
|
|
1720
|
+
days: {
|
|
1721
|
+
type: "number",
|
|
1722
|
+
description: "Number of days to analyze (default: 30)",
|
|
1723
|
+
},
|
|
1724
|
+
project: {
|
|
1725
|
+
type: "string",
|
|
1726
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1727
|
+
description: "Project scope",
|
|
1728
|
+
},
|
|
1729
|
+
agent: {
|
|
1730
|
+
type: "string",
|
|
1731
|
+
description: "Filter by agent identity (e.g., CLI, DAC, CODA-1)",
|
|
1732
|
+
},
|
|
1733
|
+
format: {
|
|
1734
|
+
type: "string",
|
|
1735
|
+
enum: ["text", "json"],
|
|
1736
|
+
description: "Output format: text (default) or json (raw data)",
|
|
1737
|
+
},
|
|
1738
|
+
},
|
|
1739
|
+
},
|
|
1740
|
+
},
|
|
1741
|
+
// gm-analyze ultra-short alias (OD-567)
|
|
1742
|
+
{
|
|
1743
|
+
name: "gm-analyze",
|
|
1744
|
+
description: "gm-analyze (analyze) - Session analytics. Returns formatted markdown by default.",
|
|
1745
|
+
inputSchema: {
|
|
1746
|
+
type: "object",
|
|
1747
|
+
properties: {
|
|
1748
|
+
lens: {
|
|
1749
|
+
type: "string",
|
|
1750
|
+
enum: ["summary", "reflections", "blindspots"],
|
|
1751
|
+
description: "Analysis lens to apply (default: summary)",
|
|
1752
|
+
},
|
|
1753
|
+
days: {
|
|
1754
|
+
type: "number",
|
|
1755
|
+
description: "Number of days to analyze (default: 30)",
|
|
1756
|
+
},
|
|
1757
|
+
project: {
|
|
1758
|
+
type: "string",
|
|
1759
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1760
|
+
description: "Project scope",
|
|
1761
|
+
},
|
|
1762
|
+
agent: {
|
|
1763
|
+
type: "string",
|
|
1764
|
+
description: "Filter by agent identity (e.g., CLI, DAC, CODA-1)",
|
|
1765
|
+
},
|
|
1766
|
+
format: {
|
|
1767
|
+
type: "string",
|
|
1768
|
+
enum: ["text", "json"],
|
|
1769
|
+
description: "Output format: text (default) or json (raw data)",
|
|
1770
|
+
},
|
|
1771
|
+
},
|
|
1772
|
+
},
|
|
1773
|
+
},
|
|
1774
|
+
{
|
|
1775
|
+
name: "gitmem-help",
|
|
1776
|
+
description: "gitmem-help - Show available commands with ASCII art header",
|
|
1777
|
+
inputSchema: {
|
|
1778
|
+
type: "object",
|
|
1779
|
+
properties: {},
|
|
1780
|
+
},
|
|
1781
|
+
},
|
|
1782
|
+
// ============================================================================
|
|
1783
|
+
// CACHE MANAGEMENT TOOLS (OD-473)
|
|
1784
|
+
// ============================================================================
|
|
1785
|
+
{
|
|
1786
|
+
name: "gitmem-cache-status",
|
|
1787
|
+
description: "gitmem-cache-status - Show local search cache status (scar count, age, staleness)",
|
|
1788
|
+
inputSchema: {
|
|
1789
|
+
type: "object",
|
|
1790
|
+
properties: {
|
|
1791
|
+
project: {
|
|
1792
|
+
type: "string",
|
|
1793
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1794
|
+
description: "Project scope (default: orchestra_dev)",
|
|
1795
|
+
},
|
|
1796
|
+
},
|
|
1797
|
+
},
|
|
1798
|
+
},
|
|
1799
|
+
{
|
|
1800
|
+
name: "gitmem-cache-health",
|
|
1801
|
+
description: "gitmem-cache-health - Compare local cache against remote Supabase (detect out-of-sync)",
|
|
1802
|
+
inputSchema: {
|
|
1803
|
+
type: "object",
|
|
1804
|
+
properties: {
|
|
1805
|
+
project: {
|
|
1806
|
+
type: "string",
|
|
1807
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1808
|
+
description: "Project scope (default: orchestra_dev)",
|
|
1809
|
+
},
|
|
1810
|
+
},
|
|
1811
|
+
},
|
|
1812
|
+
},
|
|
1813
|
+
{
|
|
1814
|
+
name: "gitmem-cache-flush",
|
|
1815
|
+
description: "gitmem-cache-flush - Force reload cache from Supabase (use when out of sync)",
|
|
1816
|
+
inputSchema: {
|
|
1817
|
+
type: "object",
|
|
1818
|
+
properties: {
|
|
1819
|
+
project: {
|
|
1820
|
+
type: "string",
|
|
1821
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1822
|
+
description: "Project scope (default: orchestra_dev)",
|
|
1823
|
+
},
|
|
1824
|
+
},
|
|
1825
|
+
},
|
|
1826
|
+
},
|
|
1827
|
+
{
|
|
1828
|
+
name: "gm-cache-s",
|
|
1829
|
+
description: "gm-cache-s (cache_status) - Show local search cache status (scar count, age, staleness)",
|
|
1830
|
+
inputSchema: {
|
|
1831
|
+
type: "object",
|
|
1832
|
+
properties: {
|
|
1833
|
+
project: {
|
|
1834
|
+
type: "string",
|
|
1835
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1836
|
+
description: "Project scope (default: orchestra_dev)",
|
|
1837
|
+
},
|
|
1838
|
+
},
|
|
1839
|
+
},
|
|
1840
|
+
},
|
|
1841
|
+
{
|
|
1842
|
+
name: "gm-cache-h",
|
|
1843
|
+
description: "gm-cache-h (cache_health) - Compare local cache against remote Supabase (detect out-of-sync)",
|
|
1844
|
+
inputSchema: {
|
|
1845
|
+
type: "object",
|
|
1846
|
+
properties: {
|
|
1847
|
+
project: {
|
|
1848
|
+
type: "string",
|
|
1849
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1850
|
+
description: "Project scope (default: orchestra_dev)",
|
|
1851
|
+
},
|
|
1852
|
+
},
|
|
1853
|
+
},
|
|
1854
|
+
},
|
|
1855
|
+
{
|
|
1856
|
+
name: "gm-cache-f",
|
|
1857
|
+
description: "gm-cache-f (cache_flush) - Force reload cache from Supabase",
|
|
1858
|
+
inputSchema: {
|
|
1859
|
+
type: "object",
|
|
1860
|
+
properties: {
|
|
1861
|
+
project: {
|
|
1862
|
+
type: "string",
|
|
1863
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1864
|
+
description: "Project scope (default: orchestra_dev)",
|
|
1865
|
+
},
|
|
1866
|
+
},
|
|
1867
|
+
},
|
|
1868
|
+
},
|
|
1869
|
+
// --- Knowledge Graph Traversal (Phase 3) ---
|
|
1870
|
+
{
|
|
1871
|
+
name: "graph_traverse",
|
|
1872
|
+
description: "Traverse the knowledge graph over institutional memory triples. Answers: 'show me everything connected to OD-466', 'what did CLI produce', 'trace this decision back', 'which issues produced the most learnings'. Four lenses: connected_to, produced_by, provenance, stats.",
|
|
1873
|
+
inputSchema: {
|
|
1874
|
+
type: "object",
|
|
1875
|
+
properties: {
|
|
1876
|
+
lens: {
|
|
1877
|
+
type: "string",
|
|
1878
|
+
enum: ["connected_to", "produced_by", "provenance", "stats"],
|
|
1879
|
+
description: "Traversal mode: connected_to (all connections to a node), produced_by (what an agent/persona produced), provenance (trace origin chain), stats (aggregate counts)",
|
|
1880
|
+
},
|
|
1881
|
+
node: {
|
|
1882
|
+
type: "string",
|
|
1883
|
+
description: "Starting node. Examples: 'OD-466', 'CLI', 'Elena', 'Scar: Done ≠ Deployed'. Required for all lenses except stats.",
|
|
1884
|
+
},
|
|
1885
|
+
predicate: {
|
|
1886
|
+
type: "string",
|
|
1887
|
+
enum: ["created_in", "influenced_by", "supersedes", "demonstrates"],
|
|
1888
|
+
description: "Filter by predicate (optional)",
|
|
1889
|
+
},
|
|
1890
|
+
depth: {
|
|
1891
|
+
type: "number",
|
|
1892
|
+
description: "Max chain depth for provenance lens (default: 3)",
|
|
1893
|
+
},
|
|
1894
|
+
project: {
|
|
1895
|
+
type: "string",
|
|
1896
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1897
|
+
description: "Project scope (default: orchestra_dev)",
|
|
1898
|
+
},
|
|
1899
|
+
limit: {
|
|
1900
|
+
type: "number",
|
|
1901
|
+
description: "Max triples to return (default: 50)",
|
|
1902
|
+
},
|
|
1903
|
+
},
|
|
1904
|
+
required: ["lens"],
|
|
1905
|
+
},
|
|
1906
|
+
},
|
|
1907
|
+
{
|
|
1908
|
+
name: "gitmem-graph",
|
|
1909
|
+
description: "gitmem-graph (graph_traverse) - Traverse knowledge graph over institutional memory triples",
|
|
1910
|
+
inputSchema: {
|
|
1911
|
+
type: "object",
|
|
1912
|
+
properties: {
|
|
1913
|
+
lens: {
|
|
1914
|
+
type: "string",
|
|
1915
|
+
enum: ["connected_to", "produced_by", "provenance", "stats"],
|
|
1916
|
+
description: "Traversal mode",
|
|
1917
|
+
},
|
|
1918
|
+
node: {
|
|
1919
|
+
type: "string",
|
|
1920
|
+
description: "Starting node (e.g., 'OD-466', 'CLI', 'Elena')",
|
|
1921
|
+
},
|
|
1922
|
+
predicate: {
|
|
1923
|
+
type: "string",
|
|
1924
|
+
enum: ["created_in", "influenced_by", "supersedes", "demonstrates"],
|
|
1925
|
+
description: "Filter by predicate",
|
|
1926
|
+
},
|
|
1927
|
+
depth: { type: "number", description: "Max depth for provenance (default: 3)" },
|
|
1928
|
+
project: {
|
|
1929
|
+
type: "string",
|
|
1930
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1931
|
+
description: "Project scope",
|
|
1932
|
+
},
|
|
1933
|
+
limit: { type: "number", description: "Max triples (default: 50)" },
|
|
1934
|
+
},
|
|
1935
|
+
required: ["lens"],
|
|
1936
|
+
},
|
|
1937
|
+
},
|
|
1938
|
+
{
|
|
1939
|
+
name: "gm-graph",
|
|
1940
|
+
description: "gm-graph (graph_traverse) - Traverse knowledge graph",
|
|
1941
|
+
inputSchema: {
|
|
1942
|
+
type: "object",
|
|
1943
|
+
properties: {
|
|
1944
|
+
lens: {
|
|
1945
|
+
type: "string",
|
|
1946
|
+
enum: ["connected_to", "produced_by", "provenance", "stats"],
|
|
1947
|
+
description: "Traversal mode",
|
|
1948
|
+
},
|
|
1949
|
+
node: { type: "string", description: "Starting node" },
|
|
1950
|
+
predicate: {
|
|
1951
|
+
type: "string",
|
|
1952
|
+
enum: ["created_in", "influenced_by", "supersedes", "demonstrates"],
|
|
1953
|
+
description: "Filter by predicate",
|
|
1954
|
+
},
|
|
1955
|
+
depth: { type: "number", description: "Max depth for provenance" },
|
|
1956
|
+
project: {
|
|
1957
|
+
type: "string",
|
|
1958
|
+
enum: ["orchestra_dev", "weekend_warrior"],
|
|
1959
|
+
description: "Project scope",
|
|
1960
|
+
},
|
|
1961
|
+
limit: { type: "number", description: "Max triples" },
|
|
1962
|
+
},
|
|
1963
|
+
required: ["lens"],
|
|
1964
|
+
},
|
|
1965
|
+
},
|
|
1966
|
+
];
|
|
1967
|
+
/**
|
|
1968
|
+
* Tier-gated tool names
|
|
1969
|
+
*
|
|
1970
|
+
* Cache tools: pro/dev only (require Supabase)
|
|
1971
|
+
* Batch/transcript tools: dev only (internal operations)
|
|
1972
|
+
*/
|
|
1973
|
+
export const CACHE_TOOL_NAMES = new Set([
|
|
1974
|
+
"gitmem-cache-status", "gm-cache-s",
|
|
1975
|
+
"gitmem-cache-health", "gm-cache-h",
|
|
1976
|
+
"gitmem-cache-flush", "gm-cache-f",
|
|
1977
|
+
]);
|
|
1978
|
+
export const BATCH_TOOL_NAMES = new Set([
|
|
1979
|
+
"record_scar_usage_batch", "gitmem-rsb",
|
|
1980
|
+
]);
|
|
1981
|
+
export const TRANSCRIPT_TOOL_NAMES = new Set([
|
|
1982
|
+
"save_transcript", "gitmem-st",
|
|
1983
|
+
"get_transcript", "gitmem-gt",
|
|
1984
|
+
]);
|
|
1985
|
+
export const ANALYZE_TOOL_NAMES = new Set([
|
|
1986
|
+
"analyze", "gitmem-analyze", "gm-analyze",
|
|
1987
|
+
]);
|
|
1988
|
+
export const GRAPH_TOOL_NAMES = new Set([
|
|
1989
|
+
"graph_traverse", "gitmem-graph", "gm-graph",
|
|
1990
|
+
]);
|
|
1991
|
+
/**
|
|
1992
|
+
* Get tools registered for the current tier.
|
|
1993
|
+
* Free: core tools only (7 canonical + aliases)
|
|
1994
|
+
* Pro: + cache management tools
|
|
1995
|
+
* Dev: + batch operations + transcripts
|
|
1996
|
+
*/
|
|
1997
|
+
export function getRegisteredTools() {
|
|
1998
|
+
return TOOLS.filter(tool => {
|
|
1999
|
+
if (BATCH_TOOL_NAMES.has(tool.name)) {
|
|
2000
|
+
return hasBatchOperations();
|
|
2001
|
+
}
|
|
2002
|
+
if (TRANSCRIPT_TOOL_NAMES.has(tool.name)) {
|
|
2003
|
+
return hasTranscripts();
|
|
2004
|
+
}
|
|
2005
|
+
if (CACHE_TOOL_NAMES.has(tool.name)) {
|
|
2006
|
+
return hasCacheManagement();
|
|
2007
|
+
}
|
|
2008
|
+
if (ANALYZE_TOOL_NAMES.has(tool.name)) {
|
|
2009
|
+
return hasSupabase();
|
|
2010
|
+
}
|
|
2011
|
+
if (GRAPH_TOOL_NAMES.has(tool.name)) {
|
|
2012
|
+
return hasSupabase();
|
|
2013
|
+
}
|
|
2014
|
+
return true;
|
|
2015
|
+
});
|
|
2016
|
+
}
|
|
2017
|
+
//# sourceMappingURL=definitions.js.map
|