@artyfacts/mcp-server 1.1.5 → 1.3.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/dist/index.cjs CHANGED
@@ -254,6 +254,19 @@ var ARTYFACTS_TOOLS = [
254
254
  required: ["task_id", "reason"]
255
255
  }
256
256
  },
257
+ {
258
+ name: "report_progress",
259
+ description: 'Report what you are currently doing on a task. Call this at meaningful milestones so your work is visible in the platform (e.g., "Analyzed 12 PRs, now writing the summary section", "Completed API design, starting implementation"). This is how your progress appears to humans watching the work.',
260
+ inputSchema: {
261
+ type: "object",
262
+ properties: {
263
+ task_id: { type: "string", description: "Task ID" },
264
+ message: { type: "string", description: "What you are doing right now \u2014 be specific and human-readable" },
265
+ metadata: { type: "object", description: "Optional extra context (step number, percentage, etc.)" }
266
+ },
267
+ required: ["task_id", "message"]
268
+ }
269
+ },
257
270
  {
258
271
  name: "create_task",
259
272
  description: "Create a new task under a goal. Use this to create actionable tasks \u2014 NOT create_artifact or create_section.",
@@ -394,6 +407,34 @@ var ARTYFACTS_TOOLS = [
394
407
  required: ["query"]
395
408
  }
396
409
  },
410
+ // Goal management
411
+ {
412
+ name: "update_goal",
413
+ description: "Update a goal's title, description, or status. Use when human feedback reveals the goal was based on wrong premises and needs to be corrected before re-planning.",
414
+ inputSchema: {
415
+ type: "object",
416
+ properties: {
417
+ goal_id: { type: "string", description: "Goal UUID" },
418
+ title: { type: "string", description: "New title" },
419
+ description: { type: "string", description: "New description" },
420
+ status: { type: "string", description: "New status: active, completed, paused, cancelled" },
421
+ priority: { type: "string", description: "New priority: low, medium, high, urgent" }
422
+ },
423
+ required: ["goal_id"]
424
+ }
425
+ },
426
+ // Task cancellation
427
+ {
428
+ name: "cancel_task",
429
+ description: "Cancel and remove a task that should no longer be executed \u2014 e.g. because human feedback revealed it was based on wrong premises. Use alongside create_task to replace stale tasks with corrected ones.",
430
+ inputSchema: {
431
+ type: "object",
432
+ properties: {
433
+ task_id: { type: "string", description: "Task UUID to cancel" }
434
+ },
435
+ required: ["task_id"]
436
+ }
437
+ },
397
438
  // Context tools
398
439
  {
399
440
  name: "get_task_context",
@@ -445,6 +486,9 @@ var ArtyfactsApiClient = class {
445
486
  patch(path, body) {
446
487
  return this.request("PATCH", path, body);
447
488
  }
489
+ put(path, body) {
490
+ return this.request("PUT", path, body);
491
+ }
448
492
  delete(path) {
449
493
  return this.request("DELETE", path);
450
494
  }
@@ -526,6 +570,14 @@ var toolHandlers = {
526
570
  const { task_id, ...body } = args;
527
571
  return client.post(`/tasks/${task_id}/block`, body);
528
572
  },
573
+ report_progress: (client, args) => {
574
+ const { task_id, message, metadata } = args;
575
+ return client.post(`/tasks/${task_id}/activity`, {
576
+ type: "progress",
577
+ content: message,
578
+ metadata: metadata ?? {}
579
+ });
580
+ },
529
581
  create_task: (client, args) => {
530
582
  const { goal_id, title, description, priority, assigned_to, depends_on, estimated_minutes } = args;
531
583
  return client.post("/tasks", { goal_id, title, description, priority, assigned_to, depends_on, estimated_minutes });
@@ -573,6 +625,13 @@ var toolHandlers = {
573
625
  const { item_id, ...body } = args;
574
626
  return client.post(`/inbox/${item_id}/resolve`, body);
575
627
  },
628
+ // Goals
629
+ update_goal: (client, args) => {
630
+ const { goal_id, ...body } = args;
631
+ return client.put(`/goals/${goal_id}`, body);
632
+ },
633
+ // Task cancellation
634
+ cancel_task: (client, args) => client.delete(`/tasks/${args.task_id}`),
576
635
  // Search
577
636
  search_artifacts: (client, args) => {
578
637
  const params = new URLSearchParams();
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  ArtyfactsMcpServer,
3
3
  createMcpServer,
4
4
  startServer
5
- } from "./chunk-TEUGXQOH.js";
5
+ } from "./chunk-U2KVKQ6X.js";
6
6
  export {
7
7
  ArtyfactsMcpServer,
8
8
  createMcpServer,
package/dist/server.cjs CHANGED
@@ -252,6 +252,19 @@ var ARTYFACTS_TOOLS = [
252
252
  required: ["task_id", "reason"]
253
253
  }
254
254
  },
255
+ {
256
+ name: "report_progress",
257
+ description: 'Report what you are currently doing on a task. Call this at meaningful milestones so your work is visible in the platform (e.g., "Analyzed 12 PRs, now writing the summary section", "Completed API design, starting implementation"). This is how your progress appears to humans watching the work.',
258
+ inputSchema: {
259
+ type: "object",
260
+ properties: {
261
+ task_id: { type: "string", description: "Task ID" },
262
+ message: { type: "string", description: "What you are doing right now \u2014 be specific and human-readable" },
263
+ metadata: { type: "object", description: "Optional extra context (step number, percentage, etc.)" }
264
+ },
265
+ required: ["task_id", "message"]
266
+ }
267
+ },
255
268
  {
256
269
  name: "create_task",
257
270
  description: "Create a new task under a goal. Use this to create actionable tasks \u2014 NOT create_artifact or create_section.",
@@ -392,6 +405,34 @@ var ARTYFACTS_TOOLS = [
392
405
  required: ["query"]
393
406
  }
394
407
  },
408
+ // Goal management
409
+ {
410
+ name: "update_goal",
411
+ description: "Update a goal's title, description, or status. Use when human feedback reveals the goal was based on wrong premises and needs to be corrected before re-planning.",
412
+ inputSchema: {
413
+ type: "object",
414
+ properties: {
415
+ goal_id: { type: "string", description: "Goal UUID" },
416
+ title: { type: "string", description: "New title" },
417
+ description: { type: "string", description: "New description" },
418
+ status: { type: "string", description: "New status: active, completed, paused, cancelled" },
419
+ priority: { type: "string", description: "New priority: low, medium, high, urgent" }
420
+ },
421
+ required: ["goal_id"]
422
+ }
423
+ },
424
+ // Task cancellation
425
+ {
426
+ name: "cancel_task",
427
+ description: "Cancel and remove a task that should no longer be executed \u2014 e.g. because human feedback revealed it was based on wrong premises. Use alongside create_task to replace stale tasks with corrected ones.",
428
+ inputSchema: {
429
+ type: "object",
430
+ properties: {
431
+ task_id: { type: "string", description: "Task UUID to cancel" }
432
+ },
433
+ required: ["task_id"]
434
+ }
435
+ },
395
436
  // Context tools
396
437
  {
397
438
  name: "get_task_context",
@@ -443,6 +484,9 @@ var ArtyfactsApiClient = class {
443
484
  patch(path, body) {
444
485
  return this.request("PATCH", path, body);
445
486
  }
487
+ put(path, body) {
488
+ return this.request("PUT", path, body);
489
+ }
446
490
  delete(path) {
447
491
  return this.request("DELETE", path);
448
492
  }
@@ -524,6 +568,14 @@ var toolHandlers = {
524
568
  const { task_id, ...body } = args;
525
569
  return client.post(`/tasks/${task_id}/block`, body);
526
570
  },
571
+ report_progress: (client, args) => {
572
+ const { task_id, message, metadata } = args;
573
+ return client.post(`/tasks/${task_id}/activity`, {
574
+ type: "progress",
575
+ content: message,
576
+ metadata: metadata ?? {}
577
+ });
578
+ },
527
579
  create_task: (client, args) => {
528
580
  const { goal_id, title, description, priority, assigned_to, depends_on, estimated_minutes } = args;
529
581
  return client.post("/tasks", { goal_id, title, description, priority, assigned_to, depends_on, estimated_minutes });
@@ -571,6 +623,13 @@ var toolHandlers = {
571
623
  const { item_id, ...body } = args;
572
624
  return client.post(`/inbox/${item_id}/resolve`, body);
573
625
  },
626
+ // Goals
627
+ update_goal: (client, args) => {
628
+ const { goal_id, ...body } = args;
629
+ return client.put(`/goals/${goal_id}`, body);
630
+ },
631
+ // Task cancellation
632
+ cancel_task: (client, args) => client.delete(`/tasks/${args.task_id}`),
574
633
  // Search
575
634
  search_artifacts: (client, args) => {
576
635
  const params = new URLSearchParams();
package/dist/server.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  ArtyfactsMcpServer,
3
3
  createMcpServer,
4
4
  startServer
5
- } from "./chunk-TEUGXQOH.js";
5
+ } from "./chunk-U2KVKQ6X.js";
6
6
  export {
7
7
  ArtyfactsMcpServer,
8
8
  createMcpServer,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artyfacts/mcp-server",
3
- "version": "1.1.5",
3
+ "version": "1.3.0",
4
4
  "description": "MCP server exposing Artyfacts tools for Claude Code",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -43,7 +43,7 @@
43
43
  "typescript": "^5.3.0"
44
44
  },
45
45
  "peerDependencies": {
46
- "@artyfacts/claude": "^1.3.0"
46
+ "@artyfacts/claude": "^1.5.0"
47
47
  },
48
48
  "peerDependenciesMeta": {
49
49
  "@artyfacts/claude": {
package/src/server.ts CHANGED
@@ -262,6 +262,19 @@ const ARTYFACTS_TOOLS: Tool[] = [
262
262
  required: ['task_id', 'reason'],
263
263
  },
264
264
  },
265
+ {
266
+ name: 'report_progress',
267
+ description: 'Report what you are currently doing on a task. Call this at meaningful milestones so your work is visible in the platform (e.g., "Analyzed 12 PRs, now writing the summary section", "Completed API design, starting implementation"). This is how your progress appears to humans watching the work.',
268
+ inputSchema: {
269
+ type: 'object',
270
+ properties: {
271
+ task_id: { type: 'string', description: 'Task ID' },
272
+ message: { type: 'string', description: 'What you are doing right now — be specific and human-readable' },
273
+ metadata: { type: 'object', description: 'Optional extra context (step number, percentage, etc.)' },
274
+ },
275
+ required: ['task_id', 'message'],
276
+ },
277
+ },
265
278
  {
266
279
  name: 'create_task',
267
280
  description: 'Create a new task under a goal. Use this to create actionable tasks — NOT create_artifact or create_section.',
@@ -406,6 +419,36 @@ const ARTYFACTS_TOOLS: Tool[] = [
406
419
  },
407
420
  },
408
421
 
422
+ // Goal management
423
+ {
424
+ name: 'update_goal',
425
+ description: 'Update a goal\'s title, description, or status. Use when human feedback reveals the goal was based on wrong premises and needs to be corrected before re-planning.',
426
+ inputSchema: {
427
+ type: 'object',
428
+ properties: {
429
+ goal_id: { type: 'string', description: 'Goal UUID' },
430
+ title: { type: 'string', description: 'New title' },
431
+ description: { type: 'string', description: 'New description' },
432
+ status: { type: 'string', description: 'New status: active, completed, paused, cancelled' },
433
+ priority: { type: 'string', description: 'New priority: low, medium, high, urgent' },
434
+ },
435
+ required: ['goal_id'],
436
+ },
437
+ },
438
+
439
+ // Task cancellation
440
+ {
441
+ name: 'cancel_task',
442
+ description: 'Cancel and remove a task that should no longer be executed — e.g. because human feedback revealed it was based on wrong premises. Use alongside create_task to replace stale tasks with corrected ones.',
443
+ inputSchema: {
444
+ type: 'object',
445
+ properties: {
446
+ task_id: { type: 'string', description: 'Task UUID to cancel' },
447
+ },
448
+ required: ['task_id'],
449
+ },
450
+ },
451
+
409
452
  // Context tools
410
453
  {
411
454
  name: 'get_task_context',
@@ -460,6 +503,7 @@ class ArtyfactsApiClient {
460
503
  getAgentId() { return this.agentId; }
461
504
  post(path: string, body?: unknown) { return this.request('POST', path, body); }
462
505
  patch(path: string, body?: unknown) { return this.request('PATCH', path, body); }
506
+ put(path: string, body?: unknown) { return this.request('PUT', path, body); }
463
507
  delete(path: string) { return this.request('DELETE', path); }
464
508
  }
465
509
 
@@ -552,6 +596,14 @@ const toolHandlers: Record<string, ToolHandler> = {
552
596
  const { task_id, ...body } = args;
553
597
  return client.post(`/tasks/${task_id}/block`, body);
554
598
  },
599
+ report_progress: (client, args) => {
600
+ const { task_id, message, metadata } = args;
601
+ return client.post(`/tasks/${task_id}/activity`, {
602
+ type: 'progress',
603
+ content: message,
604
+ metadata: metadata ?? {},
605
+ });
606
+ },
555
607
  create_task: (client, args) => {
556
608
  const { goal_id, title, description, priority, assigned_to, depends_on, estimated_minutes } = args;
557
609
  return client.post('/tasks', { goal_id, title, description, priority, assigned_to, depends_on, estimated_minutes });
@@ -603,6 +655,15 @@ const toolHandlers: Record<string, ToolHandler> = {
603
655
  return client.post(`/inbox/${item_id}/resolve`, body);
604
656
  },
605
657
 
658
+ // Goals
659
+ update_goal: (client, args) => {
660
+ const { goal_id, ...body } = args;
661
+ return client.put(`/goals/${goal_id}`, body);
662
+ },
663
+
664
+ // Task cancellation
665
+ cancel_task: (client, args) => client.delete(`/tasks/${args.task_id}`),
666
+
606
667
  // Search
607
668
  search_artifacts: (client, args) => {
608
669
  const params = new URLSearchParams();