@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.
Files changed (63) hide show
  1. package/ACTWITH.md +152 -0
  2. package/README.md +290 -0
  3. package/dist/client.d.ts +866 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +959 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/index.d.ts +20 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +247 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/init.d.ts +10 -0
  12. package/dist/init.d.ts.map +1 -0
  13. package/dist/init.js +222 -0
  14. package/dist/init.js.map +1 -0
  15. package/dist/resources/index.d.ts +35 -0
  16. package/dist/resources/index.d.ts.map +1 -0
  17. package/dist/resources/index.js +292 -0
  18. package/dist/resources/index.js.map +1 -0
  19. package/dist/tools/artifacts.d.ts +12 -0
  20. package/dist/tools/artifacts.d.ts.map +1 -0
  21. package/dist/tools/artifacts.js +462 -0
  22. package/dist/tools/artifacts.js.map +1 -0
  23. package/dist/tools/contexts.d.ts +15 -0
  24. package/dist/tools/contexts.d.ts.map +1 -0
  25. package/dist/tools/contexts.js +188 -0
  26. package/dist/tools/contexts.js.map +1 -0
  27. package/dist/tools/discovery.d.ts +11 -0
  28. package/dist/tools/discovery.d.ts.map +1 -0
  29. package/dist/tools/discovery.js +249 -0
  30. package/dist/tools/discovery.js.map +1 -0
  31. package/dist/tools/identity.d.ts +15 -0
  32. package/dist/tools/identity.d.ts.map +1 -0
  33. package/dist/tools/identity.js +237 -0
  34. package/dist/tools/identity.js.map +1 -0
  35. package/dist/tools/index.d.ts +29 -0
  36. package/dist/tools/index.d.ts.map +1 -0
  37. package/dist/tools/index.js +228 -0
  38. package/dist/tools/index.js.map +1 -0
  39. package/dist/tools/memory.d.ts +11 -0
  40. package/dist/tools/memory.d.ts.map +1 -0
  41. package/dist/tools/memory.js +349 -0
  42. package/dist/tools/memory.js.map +1 -0
  43. package/dist/tools/patterns.d.ts +17 -0
  44. package/dist/tools/patterns.d.ts.map +1 -0
  45. package/dist/tools/patterns.js +874 -0
  46. package/dist/tools/patterns.js.map +1 -0
  47. package/dist/tools/reputation.d.ts +11 -0
  48. package/dist/tools/reputation.d.ts.map +1 -0
  49. package/dist/tools/reputation.js +175 -0
  50. package/dist/tools/reputation.js.map +1 -0
  51. package/dist/tools/tasks.d.ts +11 -0
  52. package/dist/tools/tasks.d.ts.map +1 -0
  53. package/dist/tools/tasks.js +549 -0
  54. package/dist/tools/tasks.js.map +1 -0
  55. package/dist/tools/topics.d.ts +13 -0
  56. package/dist/tools/topics.d.ts.map +1 -0
  57. package/dist/tools/topics.js +561 -0
  58. package/dist/tools/topics.js.map +1 -0
  59. package/dist/tools/workspace.d.ts +10 -0
  60. package/dist/tools/workspace.d.ts.map +1 -0
  61. package/dist/tools/workspace.js +183 -0
  62. package/dist/tools/workspace.js.map +1 -0
  63. 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"}