@actwith-ai/mcp-server 0.1.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/ACTWITH.md +152 -0
- package/README.md +290 -0
- package/dist/client.d.ts +866 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +959 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +247 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +10 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +222 -0
- package/dist/init.js.map +1 -0
- package/dist/resources/index.d.ts +35 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +292 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/tools/artifacts.d.ts +12 -0
- package/dist/tools/artifacts.d.ts.map +1 -0
- package/dist/tools/artifacts.js +462 -0
- package/dist/tools/artifacts.js.map +1 -0
- package/dist/tools/contexts.d.ts +15 -0
- package/dist/tools/contexts.d.ts.map +1 -0
- package/dist/tools/contexts.js +188 -0
- package/dist/tools/contexts.js.map +1 -0
- package/dist/tools/discovery.d.ts +11 -0
- package/dist/tools/discovery.d.ts.map +1 -0
- package/dist/tools/discovery.js +249 -0
- package/dist/tools/discovery.js.map +1 -0
- package/dist/tools/identity.d.ts +15 -0
- package/dist/tools/identity.d.ts.map +1 -0
- package/dist/tools/identity.js +237 -0
- package/dist/tools/identity.js.map +1 -0
- package/dist/tools/index.d.ts +29 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +228 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/memory.d.ts +11 -0
- package/dist/tools/memory.d.ts.map +1 -0
- package/dist/tools/memory.js +349 -0
- package/dist/tools/memory.js.map +1 -0
- package/dist/tools/patterns.d.ts +17 -0
- package/dist/tools/patterns.d.ts.map +1 -0
- package/dist/tools/patterns.js +874 -0
- package/dist/tools/patterns.js.map +1 -0
- package/dist/tools/reputation.d.ts +11 -0
- package/dist/tools/reputation.d.ts.map +1 -0
- package/dist/tools/reputation.js +175 -0
- package/dist/tools/reputation.js.map +1 -0
- package/dist/tools/tasks.d.ts +11 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +549 -0
- package/dist/tools/tasks.js.map +1 -0
- package/dist/tools/topics.d.ts +13 -0
- package/dist/tools/topics.d.ts.map +1 -0
- package/dist/tools/topics.js +561 -0
- package/dist/tools/topics.js.map +1 -0
- package/dist/tools/workspace.d.ts +10 -0
- package/dist/tools/workspace.d.ts.map +1 -0
- package/dist/tools/workspace.js +183 -0
- package/dist/tools/workspace.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Registry
|
|
3
|
+
*
|
|
4
|
+
* Simple, plain English tool names for Claude.
|
|
5
|
+
*
|
|
6
|
+
* Memory: remember, recall, memories, forget
|
|
7
|
+
* Messages: tell, listen, ask (request-response pattern)
|
|
8
|
+
* Topics: discover_topics, subscribe_topic, unsubscribe_topic, my_subscriptions
|
|
9
|
+
* Tasks: post_task, tasks, task_details, take, done
|
|
10
|
+
* Routines: routines, routine_details, join_routine, report, reports
|
|
11
|
+
* Patterns: list_patterns, start_pattern, pattern_status, join_pattern, advance_pattern, handoff
|
|
12
|
+
* Projects: projects, project_details, start_project, finish_project
|
|
13
|
+
* Artifacts: artifacts, artifact_details, create_artifact, etc.
|
|
14
|
+
* Reputation: my_reputation, my_work_history, my_spaces
|
|
15
|
+
* Discovery: find_work, find_spaces, join_space, leave_space
|
|
16
|
+
* Workspace: current_space, switch_space, create_invite, list_invites, revoke_invite
|
|
17
|
+
* Status: whats_new, teammates, session_save, session_restore
|
|
18
|
+
*/
|
|
19
|
+
import { memoryTools, handleMemoryTool, normalizeMemoryToolName, } from "./memory.js";
|
|
20
|
+
import { taskTools, handleTaskTool, normalizeTaskToolName } from "./tasks.js";
|
|
21
|
+
import { topicTools, handleTopicTool, normalizeTopicToolName, } from "./topics.js";
|
|
22
|
+
import { artifactTools, handleArtifactTool, normalizeArtifactToolName, } from "./artifacts.js";
|
|
23
|
+
import { contextTools, handleContextTool, normalizeContextToolName, } from "./contexts.js";
|
|
24
|
+
import { reputationTools, handleReputationTool } from "./reputation.js";
|
|
25
|
+
import { discoveryTools, handleDiscoveryTool } from "./discovery.js";
|
|
26
|
+
import { workspaceTools, handleWorkspaceTool } from "./workspace.js";
|
|
27
|
+
import { patternTools, handlePatternTool, PATTERN_TOOLS } from "./patterns.js";
|
|
28
|
+
import { identityTools, handleIdentityTool, IDENTITY_TOOLS, } from "./identity.js";
|
|
29
|
+
// Agent tools
|
|
30
|
+
const agentTools = [
|
|
31
|
+
{
|
|
32
|
+
name: "teammates",
|
|
33
|
+
description: "See who else is in this workspace (other agents).",
|
|
34
|
+
inputSchema: {
|
|
35
|
+
type: "object",
|
|
36
|
+
properties: {},
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
];
|
|
40
|
+
// Export all tools
|
|
41
|
+
export const allTools = [
|
|
42
|
+
...memoryTools,
|
|
43
|
+
...taskTools,
|
|
44
|
+
...topicTools,
|
|
45
|
+
...patternTools,
|
|
46
|
+
...artifactTools,
|
|
47
|
+
...contextTools,
|
|
48
|
+
...reputationTools,
|
|
49
|
+
...discoveryTools,
|
|
50
|
+
...workspaceTools,
|
|
51
|
+
...identityTools,
|
|
52
|
+
...agentTools,
|
|
53
|
+
];
|
|
54
|
+
// All valid tool names (including legacy aliases)
|
|
55
|
+
const MEMORY_TOOLS = new Set([
|
|
56
|
+
"remember",
|
|
57
|
+
"recall",
|
|
58
|
+
"memories",
|
|
59
|
+
"forget",
|
|
60
|
+
"session_save",
|
|
61
|
+
"session_restore",
|
|
62
|
+
// Legacy names
|
|
63
|
+
"actwith_memory_set",
|
|
64
|
+
"actwith_memory_get",
|
|
65
|
+
"actwith_memory_list",
|
|
66
|
+
"actwith_memory_delete",
|
|
67
|
+
"actwith_session_save",
|
|
68
|
+
"actwith_session_restore",
|
|
69
|
+
]);
|
|
70
|
+
const TASK_TOOLS = new Set([
|
|
71
|
+
"post_task",
|
|
72
|
+
"tasks",
|
|
73
|
+
"task_details",
|
|
74
|
+
"take",
|
|
75
|
+
"done",
|
|
76
|
+
"approve",
|
|
77
|
+
"reject",
|
|
78
|
+
"pause_task",
|
|
79
|
+
"cancel_task",
|
|
80
|
+
"routines",
|
|
81
|
+
"routine_details",
|
|
82
|
+
"join_routine",
|
|
83
|
+
"report",
|
|
84
|
+
"reports",
|
|
85
|
+
"whats_new",
|
|
86
|
+
// Legacy names
|
|
87
|
+
"actwith_task_create",
|
|
88
|
+
"actwith_task_list",
|
|
89
|
+
"actwith_task_get",
|
|
90
|
+
"actwith_task_claim",
|
|
91
|
+
"actwith_task_complete",
|
|
92
|
+
"actwith_standing_task_list",
|
|
93
|
+
"actwith_standing_task_get",
|
|
94
|
+
"actwith_standing_task_claim",
|
|
95
|
+
"actwith_insight_submit",
|
|
96
|
+
"actwith_insights_list",
|
|
97
|
+
"actwith_activity_feed",
|
|
98
|
+
]);
|
|
99
|
+
const TOPIC_TOOLS = new Set([
|
|
100
|
+
"tell",
|
|
101
|
+
"listen",
|
|
102
|
+
"ask", // Request-response pattern with correlation
|
|
103
|
+
"discover_topics",
|
|
104
|
+
"subscribe_topic",
|
|
105
|
+
"unsubscribe_topic",
|
|
106
|
+
"my_subscriptions",
|
|
107
|
+
// Legacy names
|
|
108
|
+
"actwith_topic_publish",
|
|
109
|
+
"actwith_topic_history",
|
|
110
|
+
]);
|
|
111
|
+
const ARTIFACT_TOOLS = new Set([
|
|
112
|
+
"artifacts",
|
|
113
|
+
"artifact_details",
|
|
114
|
+
"artifact_content",
|
|
115
|
+
"create_artifact",
|
|
116
|
+
"update_artifact",
|
|
117
|
+
"advance_artifact",
|
|
118
|
+
"promote_artifact",
|
|
119
|
+
// Legacy names
|
|
120
|
+
"actwith_artifact_list",
|
|
121
|
+
"actwith_artifact_get",
|
|
122
|
+
"actwith_artifact_content",
|
|
123
|
+
"actwith_artifact_create",
|
|
124
|
+
"actwith_artifact_update",
|
|
125
|
+
"actwith_artifact_stage",
|
|
126
|
+
"actwith_artifact_promote",
|
|
127
|
+
]);
|
|
128
|
+
const CONTEXT_TOOLS = new Set([
|
|
129
|
+
"projects",
|
|
130
|
+
"project_details",
|
|
131
|
+
"start_project",
|
|
132
|
+
"finish_project",
|
|
133
|
+
// Legacy/alternate names
|
|
134
|
+
"actwith_context_list",
|
|
135
|
+
"actwith_context_get",
|
|
136
|
+
"actwith_context_create",
|
|
137
|
+
"actwith_context_complete",
|
|
138
|
+
"work_contexts",
|
|
139
|
+
"context_details",
|
|
140
|
+
"create_context",
|
|
141
|
+
"complete_context",
|
|
142
|
+
]);
|
|
143
|
+
const AGENT_TOOLS = new Set([
|
|
144
|
+
"teammates",
|
|
145
|
+
// Legacy name
|
|
146
|
+
"actwith_agents_list",
|
|
147
|
+
]);
|
|
148
|
+
const REPUTATION_TOOLS = new Set([
|
|
149
|
+
"my_reputation",
|
|
150
|
+
"my_work_history",
|
|
151
|
+
"my_spaces",
|
|
152
|
+
]);
|
|
153
|
+
const DISCOVERY_TOOLS = new Set([
|
|
154
|
+
"find_work",
|
|
155
|
+
"find_spaces",
|
|
156
|
+
"join_space",
|
|
157
|
+
"leave_space",
|
|
158
|
+
]);
|
|
159
|
+
const WORKSPACE_TOOLS = new Set([
|
|
160
|
+
"current_space",
|
|
161
|
+
"switch_space",
|
|
162
|
+
"create_invite",
|
|
163
|
+
"list_invites",
|
|
164
|
+
"revoke_invite",
|
|
165
|
+
]);
|
|
166
|
+
// Tool handler
|
|
167
|
+
export async function handleTool(client, name, args) {
|
|
168
|
+
// Memory tools
|
|
169
|
+
if (MEMORY_TOOLS.has(name)) {
|
|
170
|
+
return handleMemoryTool(client, name, args);
|
|
171
|
+
}
|
|
172
|
+
// Task tools
|
|
173
|
+
if (TASK_TOOLS.has(name)) {
|
|
174
|
+
return handleTaskTool(client, name, args);
|
|
175
|
+
}
|
|
176
|
+
// Topic tools
|
|
177
|
+
if (TOPIC_TOOLS.has(name)) {
|
|
178
|
+
return handleTopicTool(client, name, args);
|
|
179
|
+
}
|
|
180
|
+
// Pattern tools
|
|
181
|
+
if (PATTERN_TOOLS.has(name)) {
|
|
182
|
+
return handlePatternTool(client, name, args);
|
|
183
|
+
}
|
|
184
|
+
// Artifact tools
|
|
185
|
+
if (ARTIFACT_TOOLS.has(name)) {
|
|
186
|
+
return handleArtifactTool(client, name, args);
|
|
187
|
+
}
|
|
188
|
+
// Context tools
|
|
189
|
+
if (CONTEXT_TOOLS.has(name)) {
|
|
190
|
+
return handleContextTool(client, name, args);
|
|
191
|
+
}
|
|
192
|
+
// Reputation tools
|
|
193
|
+
if (REPUTATION_TOOLS.has(name)) {
|
|
194
|
+
return handleReputationTool(client, name, args);
|
|
195
|
+
}
|
|
196
|
+
// Discovery tools
|
|
197
|
+
if (DISCOVERY_TOOLS.has(name)) {
|
|
198
|
+
return handleDiscoveryTool(client, name, args);
|
|
199
|
+
}
|
|
200
|
+
// Workspace tools
|
|
201
|
+
if (WORKSPACE_TOOLS.has(name)) {
|
|
202
|
+
return handleWorkspaceTool(client, name, args);
|
|
203
|
+
}
|
|
204
|
+
// Identity tools
|
|
205
|
+
if (IDENTITY_TOOLS.has(name)) {
|
|
206
|
+
return handleIdentityTool(client, name, args);
|
|
207
|
+
}
|
|
208
|
+
// Agent tools
|
|
209
|
+
if (AGENT_TOOLS.has(name) ||
|
|
210
|
+
name === "teammates" ||
|
|
211
|
+
name === "actwith_agents_list") {
|
|
212
|
+
const agents = await client.agentsList();
|
|
213
|
+
return {
|
|
214
|
+
success: true,
|
|
215
|
+
count: agents.length,
|
|
216
|
+
teammates: agents.map((a) => ({
|
|
217
|
+
id: a.id,
|
|
218
|
+
name: a.name,
|
|
219
|
+
type: a.type,
|
|
220
|
+
status: a.status,
|
|
221
|
+
})),
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
throw new Error(`Unknown tool: ${name}`);
|
|
225
|
+
}
|
|
226
|
+
// Re-export normalizers for direct use
|
|
227
|
+
export { normalizeMemoryToolName, normalizeTaskToolName, normalizeTopicToolName, normalizeArtifactToolName, normalizeContextToolName, };
|
|
228
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Tools for MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Simple verbs for persistent memory: remember, recall, forget.
|
|
5
|
+
*/
|
|
6
|
+
import { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
7
|
+
import { ActwithClient } from "../client.js";
|
|
8
|
+
export declare const memoryTools: Tool[];
|
|
9
|
+
export declare function normalizeMemoryToolName(name: string): string;
|
|
10
|
+
export declare function handleMemoryTool(client: ActwithClient, name: string, args: Record<string, unknown>): Promise<unknown>;
|
|
11
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/tools/memory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,eAAO,MAAM,WAAW,EAAE,IAAI,EAyI7B,CAAC;AAYF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CAwOlB"}
|
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Tools for MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Simple verbs for persistent memory: remember, recall, forget.
|
|
5
|
+
*/
|
|
6
|
+
import { SESSION_CONTEXT_KEY } from "../resources/index.js";
|
|
7
|
+
export const memoryTools = [
|
|
8
|
+
{
|
|
9
|
+
name: "remember",
|
|
10
|
+
description: "Store something to remember later. Like writing a note to yourself. " +
|
|
11
|
+
'Set visibility to "shared" so teammates can see it, or "broadcast" to also notify them.',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
type: "object",
|
|
14
|
+
properties: {
|
|
15
|
+
key: {
|
|
16
|
+
type: "string",
|
|
17
|
+
description: 'What to call this memory (e.g., "user/preferences", "project/status")',
|
|
18
|
+
},
|
|
19
|
+
value: {
|
|
20
|
+
description: "What to remember (any data)",
|
|
21
|
+
},
|
|
22
|
+
visibility: {
|
|
23
|
+
type: "string",
|
|
24
|
+
enum: ["private", "shared", "broadcast"],
|
|
25
|
+
description: "Who can see this: private (just you), shared (teammates), broadcast (shared + notify)",
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
required: ["key", "value"],
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: "recall",
|
|
33
|
+
description: "Get something you stored earlier. Can also read teammates' shared memories.",
|
|
34
|
+
inputSchema: {
|
|
35
|
+
type: "object",
|
|
36
|
+
properties: {
|
|
37
|
+
key: {
|
|
38
|
+
type: "string",
|
|
39
|
+
description: "The memory key to retrieve",
|
|
40
|
+
},
|
|
41
|
+
agent_id: {
|
|
42
|
+
type: "string",
|
|
43
|
+
description: "Optional: Read from a specific teammate's shared memories",
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
required: ["key"],
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: "memories",
|
|
51
|
+
description: 'List what you\'ve remembered. Use scope="context" to see what teammates have shared. ' +
|
|
52
|
+
"Results are grouped by time (today, this week, older).",
|
|
53
|
+
inputSchema: {
|
|
54
|
+
type: "object",
|
|
55
|
+
properties: {
|
|
56
|
+
scope: {
|
|
57
|
+
type: "string",
|
|
58
|
+
enum: ["self", "context"],
|
|
59
|
+
description: '"self" for your memories, "context" for all shared memories',
|
|
60
|
+
},
|
|
61
|
+
prefix: {
|
|
62
|
+
type: "string",
|
|
63
|
+
description: 'Filter by prefix (e.g., "decision/" to see decisions)',
|
|
64
|
+
},
|
|
65
|
+
since: {
|
|
66
|
+
type: "string",
|
|
67
|
+
enum: ["today", "this_week", "this_month"],
|
|
68
|
+
description: "Filter by time period",
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: "forget",
|
|
75
|
+
description: "Delete a memory you no longer need.",
|
|
76
|
+
inputSchema: {
|
|
77
|
+
type: "object",
|
|
78
|
+
properties: {
|
|
79
|
+
key: {
|
|
80
|
+
type: "string",
|
|
81
|
+
description: "The memory key to delete",
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
required: ["key"],
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
name: "session_save",
|
|
89
|
+
description: "Save your current work context before ending. " +
|
|
90
|
+
"Next time you start, you can restore it to pick up where you left off.",
|
|
91
|
+
inputSchema: {
|
|
92
|
+
type: "object",
|
|
93
|
+
properties: {
|
|
94
|
+
summary: {
|
|
95
|
+
type: "string",
|
|
96
|
+
description: "Brief summary of what you were working on (1-2 sentences)",
|
|
97
|
+
},
|
|
98
|
+
current_work: {
|
|
99
|
+
type: "string",
|
|
100
|
+
description: "What task/feature is currently in progress",
|
|
101
|
+
},
|
|
102
|
+
completed_tasks: {
|
|
103
|
+
type: "array",
|
|
104
|
+
items: { type: "string" },
|
|
105
|
+
description: "List of tasks completed this session",
|
|
106
|
+
},
|
|
107
|
+
next_steps: {
|
|
108
|
+
type: "array",
|
|
109
|
+
items: { type: "string" },
|
|
110
|
+
description: "What should be done next",
|
|
111
|
+
},
|
|
112
|
+
key_files: {
|
|
113
|
+
type: "array",
|
|
114
|
+
items: { type: "string" },
|
|
115
|
+
description: "Important files to review on resume",
|
|
116
|
+
},
|
|
117
|
+
notes: {
|
|
118
|
+
type: "string",
|
|
119
|
+
description: "Any additional context or notes",
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
required: ["summary"],
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
name: "session_restore",
|
|
127
|
+
description: "Restore your previous session context. " +
|
|
128
|
+
"Use this at the start to continue where you left off.",
|
|
129
|
+
inputSchema: {
|
|
130
|
+
type: "object",
|
|
131
|
+
properties: {},
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
];
|
|
135
|
+
// Tool name aliases for backwards compatibility
|
|
136
|
+
const TOOL_ALIASES = {
|
|
137
|
+
actwith_memory_set: "remember",
|
|
138
|
+
actwith_memory_get: "recall",
|
|
139
|
+
actwith_memory_list: "memories",
|
|
140
|
+
actwith_memory_delete: "forget",
|
|
141
|
+
actwith_session_save: "session_save",
|
|
142
|
+
actwith_session_restore: "session_restore",
|
|
143
|
+
};
|
|
144
|
+
export function normalizeMemoryToolName(name) {
|
|
145
|
+
return TOOL_ALIASES[name] || name;
|
|
146
|
+
}
|
|
147
|
+
export async function handleMemoryTool(client, name, args) {
|
|
148
|
+
// Normalize old tool names to new names
|
|
149
|
+
const normalizedName = normalizeMemoryToolName(name);
|
|
150
|
+
switch (normalizedName) {
|
|
151
|
+
case "session_save": {
|
|
152
|
+
const { summary, current_work, completed_tasks, next_steps, key_files, notes, } = args;
|
|
153
|
+
const context = {
|
|
154
|
+
summary,
|
|
155
|
+
currentWork: current_work,
|
|
156
|
+
completedTasks: completed_tasks,
|
|
157
|
+
nextSteps: next_steps,
|
|
158
|
+
keyFiles: key_files,
|
|
159
|
+
notes,
|
|
160
|
+
savedAt: new Date().toISOString(),
|
|
161
|
+
};
|
|
162
|
+
await client.memorySet(SESSION_CONTEXT_KEY, context, "private");
|
|
163
|
+
return {
|
|
164
|
+
success: true,
|
|
165
|
+
message: "Session saved. Use session_restore next time to continue where you left off.",
|
|
166
|
+
context,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
case "remember": {
|
|
170
|
+
const { key, value, visibility = "private", } = args;
|
|
171
|
+
const result = await client.memorySet(key, value, visibility);
|
|
172
|
+
return {
|
|
173
|
+
success: true,
|
|
174
|
+
message: `Remembered "${key}" (${visibility})`,
|
|
175
|
+
version: result.version,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
case "recall": {
|
|
179
|
+
const { key, agent_id } = args;
|
|
180
|
+
const result = await client.memoryGet(key, agent_id);
|
|
181
|
+
if (!result) {
|
|
182
|
+
return {
|
|
183
|
+
success: false,
|
|
184
|
+
message: `No memory found for "${key}"`,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
return {
|
|
188
|
+
success: true,
|
|
189
|
+
key,
|
|
190
|
+
value: result.value,
|
|
191
|
+
visibility: result.visibility,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
case "memories": {
|
|
195
|
+
const { scope = "self", prefix, since, } = args;
|
|
196
|
+
let memories = await client.memoryList(scope, prefix);
|
|
197
|
+
// Apply time filter if specified
|
|
198
|
+
if (since) {
|
|
199
|
+
const now = Date.now();
|
|
200
|
+
const cutoffs = {
|
|
201
|
+
today: now - 24 * 60 * 60 * 1000,
|
|
202
|
+
this_week: now - 7 * 24 * 60 * 60 * 1000,
|
|
203
|
+
this_month: now - 30 * 24 * 60 * 60 * 1000,
|
|
204
|
+
};
|
|
205
|
+
const cutoff = cutoffs[since];
|
|
206
|
+
if (cutoff) {
|
|
207
|
+
memories = memories.filter((m) => m.updatedAt * 1000 >= cutoff);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// Group by time period
|
|
211
|
+
const now = Date.now();
|
|
212
|
+
const dayAgo = now - 24 * 60 * 60 * 1000;
|
|
213
|
+
const weekAgo = now - 7 * 24 * 60 * 60 * 1000;
|
|
214
|
+
const today = [];
|
|
215
|
+
const thisWeek = [];
|
|
216
|
+
const older = [];
|
|
217
|
+
for (const m of memories) {
|
|
218
|
+
const ts = m.updatedAt * 1000;
|
|
219
|
+
if (ts >= dayAgo) {
|
|
220
|
+
today.push(m);
|
|
221
|
+
}
|
|
222
|
+
else if (ts >= weekAgo) {
|
|
223
|
+
thisWeek.push(m);
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
older.push(m);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
// Format with relative times
|
|
230
|
+
const formatMemory = (m) => ({
|
|
231
|
+
key: m.key,
|
|
232
|
+
visibility: m.visibility,
|
|
233
|
+
from: m.agentName,
|
|
234
|
+
updated: formatRelativeTime(m.updatedAt * 1000),
|
|
235
|
+
});
|
|
236
|
+
const result = {
|
|
237
|
+
success: true,
|
|
238
|
+
count: memories.length,
|
|
239
|
+
};
|
|
240
|
+
if (today.length > 0) {
|
|
241
|
+
result.today = today.map(formatMemory);
|
|
242
|
+
}
|
|
243
|
+
if (thisWeek.length > 0) {
|
|
244
|
+
result.thisWeek = thisWeek.map(formatMemory);
|
|
245
|
+
}
|
|
246
|
+
if (older.length > 0) {
|
|
247
|
+
result.older = older.map(formatMemory);
|
|
248
|
+
}
|
|
249
|
+
if (memories.length === 0) {
|
|
250
|
+
result.message = prefix
|
|
251
|
+
? `No memories found with prefix "${prefix}"`
|
|
252
|
+
: "No memories found";
|
|
253
|
+
}
|
|
254
|
+
return result;
|
|
255
|
+
}
|
|
256
|
+
case "forget": {
|
|
257
|
+
const { key } = args;
|
|
258
|
+
await client.memoryDelete(key);
|
|
259
|
+
return {
|
|
260
|
+
success: true,
|
|
261
|
+
message: `Forgot "${key}"`,
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
case "session_restore": {
|
|
265
|
+
const result = await client.memoryGet(SESSION_CONTEXT_KEY);
|
|
266
|
+
if (!result) {
|
|
267
|
+
return {
|
|
268
|
+
success: false,
|
|
269
|
+
message: "No previous session found. This is a fresh start.",
|
|
270
|
+
hasContext: false,
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
const context = result.value;
|
|
274
|
+
// Format a helpful summary
|
|
275
|
+
const parts = [];
|
|
276
|
+
parts.push(`## Previous Session`);
|
|
277
|
+
parts.push(`**Saved:** ${context.savedAt}`);
|
|
278
|
+
parts.push("");
|
|
279
|
+
parts.push(`### Summary`);
|
|
280
|
+
parts.push(context.summary);
|
|
281
|
+
if (context.currentWork) {
|
|
282
|
+
parts.push("");
|
|
283
|
+
parts.push(`### Current Work`);
|
|
284
|
+
parts.push(context.currentWork);
|
|
285
|
+
}
|
|
286
|
+
if (context.completedTasks && context.completedTasks.length > 0) {
|
|
287
|
+
parts.push("");
|
|
288
|
+
parts.push(`### Completed`);
|
|
289
|
+
context.completedTasks.forEach((task) => parts.push(`- ${task}`));
|
|
290
|
+
}
|
|
291
|
+
if (context.nextSteps && context.nextSteps.length > 0) {
|
|
292
|
+
parts.push("");
|
|
293
|
+
parts.push(`### Next Steps`);
|
|
294
|
+
context.nextSteps.forEach((step) => parts.push(`- ${step}`));
|
|
295
|
+
}
|
|
296
|
+
if (context.keyFiles && context.keyFiles.length > 0) {
|
|
297
|
+
parts.push("");
|
|
298
|
+
parts.push(`### Key Files`);
|
|
299
|
+
context.keyFiles.forEach((file) => parts.push(`- \`${file}\``));
|
|
300
|
+
}
|
|
301
|
+
if (context.notes) {
|
|
302
|
+
parts.push("");
|
|
303
|
+
parts.push(`### Notes`);
|
|
304
|
+
parts.push(context.notes);
|
|
305
|
+
}
|
|
306
|
+
return {
|
|
307
|
+
success: true,
|
|
308
|
+
hasContext: true,
|
|
309
|
+
context,
|
|
310
|
+
formatted: parts.join("\n"),
|
|
311
|
+
message: "Session restored. Review the summary above to continue.",
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
default:
|
|
315
|
+
throw new Error(`Unknown memory tool: ${name}`);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Format a timestamp as a relative time string (e.g., "2h ago", "3d ago")
|
|
320
|
+
*/
|
|
321
|
+
function formatRelativeTime(timestampMs) {
|
|
322
|
+
const now = Date.now();
|
|
323
|
+
const diffMs = now - timestampMs;
|
|
324
|
+
const diffSec = Math.floor(diffMs / 1000);
|
|
325
|
+
const diffMin = Math.floor(diffSec / 60);
|
|
326
|
+
const diffHour = Math.floor(diffMin / 60);
|
|
327
|
+
const diffDay = Math.floor(diffHour / 24);
|
|
328
|
+
if (diffSec < 60) {
|
|
329
|
+
return "just now";
|
|
330
|
+
}
|
|
331
|
+
else if (diffMin < 60) {
|
|
332
|
+
return `${diffMin}m ago`;
|
|
333
|
+
}
|
|
334
|
+
else if (diffHour < 24) {
|
|
335
|
+
return `${diffHour}h ago`;
|
|
336
|
+
}
|
|
337
|
+
else if (diffDay < 7) {
|
|
338
|
+
return `${diffDay}d ago`;
|
|
339
|
+
}
|
|
340
|
+
else if (diffDay < 30) {
|
|
341
|
+
const weeks = Math.floor(diffDay / 7);
|
|
342
|
+
return `${weeks}w ago`;
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
const months = Math.floor(diffDay / 30);
|
|
346
|
+
return `${months}mo ago`;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
//# sourceMappingURL=memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/tools/memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern Tools
|
|
3
|
+
*
|
|
4
|
+
* MCP tools for work patterns:
|
|
5
|
+
* - list_patterns: List available patterns in space
|
|
6
|
+
* - start_pattern: Start a pattern instance
|
|
7
|
+
* - pattern_status: Check instance progress
|
|
8
|
+
* - join_pattern: Join as participant
|
|
9
|
+
* - advance_pattern: Move to next stage + submit handoff
|
|
10
|
+
* - handoff: Submit handoff for task
|
|
11
|
+
*/
|
|
12
|
+
import { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
13
|
+
import { ActwithClient } from "../client.js";
|
|
14
|
+
export declare const patternTools: Tool[];
|
|
15
|
+
export declare const PATTERN_TOOLS: Set<string>;
|
|
16
|
+
export declare function handlePatternTool(client: ActwithClient, name: string, args: Record<string, unknown>): Promise<unknown>;
|
|
17
|
+
//# sourceMappingURL=patterns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/tools/patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,eAAO,MAAM,YAAY,EAAE,IAAI,EA4a9B,CAAC;AAGF,eAAO,MAAM,aAAa,aAoBxB,CAAC;AAGH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CAkgBlB"}
|