@knowsuchagency/fulcrum 1.9.2 → 1.10.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/bin/fulcrum.js CHANGED
@@ -43320,9 +43320,9 @@ var init_registry = __esm(() => {
43320
43320
  toolRegistry = [
43321
43321
  {
43322
43322
  name: "list_tasks",
43323
- description: "List all Fulcrum tasks with flexible filtering (search, labels, statuses, date range, overdue)",
43323
+ description: "List all Fulcrum tasks with flexible filtering (search, tags, statuses, date range, overdue)",
43324
43324
  category: "tasks",
43325
- keywords: ["task", "list", "kanban", "worktree", "status", "search", "labels", "due date", "overdue", "filter"],
43325
+ keywords: ["task", "list", "kanban", "worktree", "status", "search", "tags", "due date", "overdue", "filter"],
43326
43326
  deferred: false
43327
43327
  },
43328
43328
  {
@@ -43662,17 +43662,17 @@ var init_registry = __esm(() => {
43662
43662
  deferred: false
43663
43663
  },
43664
43664
  {
43665
- name: "add_task_label",
43666
- description: "Add a label to a task",
43665
+ name: "add_task_tag",
43666
+ description: "Add a tag to a task",
43667
43667
  category: "tasks",
43668
- keywords: ["task", "label", "add", "tag", "categorize"],
43668
+ keywords: ["task", "tag", "add", "categorize"],
43669
43669
  deferred: false
43670
43670
  },
43671
43671
  {
43672
- name: "remove_task_label",
43673
- description: "Remove a label from a task",
43672
+ name: "remove_task_tag",
43673
+ description: "Remove a tag from a task",
43674
43674
  category: "tasks",
43675
- keywords: ["task", "label", "remove", "delete", "tag"],
43675
+ keywords: ["task", "tag", "remove", "delete"],
43676
43676
  deferred: false
43677
43677
  },
43678
43678
  {
@@ -43711,10 +43711,10 @@ var init_registry = __esm(() => {
43711
43711
  deferred: false
43712
43712
  },
43713
43713
  {
43714
- name: "list_tasks_by_label",
43715
- description: "List tasks filtered by a specific label",
43714
+ name: "list_tasks_by_tag",
43715
+ description: "List tasks filtered by a specific tag",
43716
43716
  category: "tasks",
43717
- keywords: ["task", "label", "filter", "search", "tag"],
43717
+ keywords: ["task", "tag", "filter", "search"],
43718
43718
  deferred: false
43719
43719
  },
43720
43720
  {
@@ -43725,10 +43725,10 @@ var init_registry = __esm(() => {
43725
43725
  deferred: false
43726
43726
  },
43727
43727
  {
43728
- name: "list_labels",
43729
- description: "List all unique labels in use across tasks with optional search",
43728
+ name: "list_tags",
43729
+ description: "List all unique tags in use across tasks with optional search",
43730
43730
  category: "tasks",
43731
- keywords: ["labels", "tags", "categories", "filter", "search", "discover"],
43731
+ keywords: ["tags", "categories", "filter", "search", "discover"],
43732
43732
  deferred: false
43733
43733
  },
43734
43734
  {
@@ -43817,7 +43817,7 @@ function registerTools(server, client) {
43817
43817
  tasks = tasks.filter((t2) => {
43818
43818
  if (t2.title.toLowerCase().includes(searchLower))
43819
43819
  return true;
43820
- if (t2.labels && t2.labels.some((tg) => tg.toLowerCase().includes(searchLower)))
43820
+ if (t2.tags && t2.tags.some((tg) => tg.toLowerCase().includes(searchLower)))
43821
43821
  return true;
43822
43822
  if (t2.projectId && projectsMap) {
43823
43823
  const projectName = projectsMap.get(t2.projectId);
@@ -43845,11 +43845,11 @@ function registerTools(server, client) {
43845
43845
  }
43846
43846
  if (tag) {
43847
43847
  const tagLower = tag.toLowerCase();
43848
- tasks = tasks.filter((t2) => t2.labels && t2.labels.some((tg) => tg.toLowerCase() === tagLower));
43848
+ tasks = tasks.filter((t2) => t2.tags && t2.tags.some((tg) => tg.toLowerCase() === tagLower));
43849
43849
  }
43850
43850
  if (tags && tags.length > 0) {
43851
43851
  const tagsLower = tags.map((tg) => tg.toLowerCase());
43852
- tasks = tasks.filter((t2) => t2.labels && t2.labels.some((tg) => tagsLower.includes(tg.toLowerCase())));
43852
+ tasks = tasks.filter((t2) => t2.tags && t2.tags.some((tg) => tagsLower.includes(tg.toLowerCase())));
43853
43853
  }
43854
43854
  if (dueDateStart) {
43855
43855
  tasks = tasks.filter((t2) => t2.dueDate && t2.dueDate >= dueDateStart);
@@ -43905,15 +43905,15 @@ function registerTools(server, client) {
43905
43905
  status: status ?? "IN_PROGRESS",
43906
43906
  projectId: projectId ?? null,
43907
43907
  repositoryId: repositoryId ?? null,
43908
- labels: tags,
43908
+ tags,
43909
43909
  dueDate: dueDate ?? null
43910
43910
  });
43911
43911
  if (tags && tags.length > 0) {
43912
43912
  const allTasks = await client.listTasks();
43913
43913
  const existingTags = new Set;
43914
43914
  for (const t2 of allTasks) {
43915
- if (t2.labels) {
43916
- for (const tg of t2.labels) {
43915
+ if (t2.tags) {
43916
+ for (const tg of t2.tags) {
43917
43917
  existingTags.add(tg);
43918
43918
  }
43919
43919
  }
@@ -44153,8 +44153,8 @@ function registerTools(server, client) {
44153
44153
  const allTasks = await client.listTasks();
44154
44154
  const existingTags = new Set;
44155
44155
  for (const t2 of allTasks) {
44156
- if (t2.labels) {
44157
- for (const tg of t2.labels) {
44156
+ if (t2.tags) {
44157
+ for (const tg of t2.tags) {
44158
44158
  existingTags.add(tg);
44159
44159
  }
44160
44160
  }
@@ -44280,7 +44280,7 @@ function registerTools(server, client) {
44280
44280
  try {
44281
44281
  let tasks = await client.listTasks();
44282
44282
  const tagLower = tag.toLowerCase();
44283
- tasks = tasks.filter((t2) => t2.labels && t2.labels.some((tg) => tg.toLowerCase() === tagLower));
44283
+ tasks = tasks.filter((t2) => t2.tags && t2.tags.some((tg) => tg.toLowerCase() === tagLower));
44284
44284
  return formatSuccess(tasks);
44285
44285
  } catch (err) {
44286
44286
  return handleToolError(err);
@@ -44293,8 +44293,8 @@ function registerTools(server, client) {
44293
44293
  const tasks = await client.listTasks();
44294
44294
  const tagCounts = new Map;
44295
44295
  for (const task of tasks) {
44296
- if (task.labels) {
44297
- for (const tag of task.labels) {
44296
+ if (task.tags) {
44297
+ for (const tag of task.tags) {
44298
44298
  tagCounts.set(tag, (tagCounts.get(tag) || 0) + 1);
44299
44299
  }
44300
44300
  }
@@ -46225,8 +46225,8 @@ function formatTask(task, dependencies, attachments) {
46225
46225
  if (task.links && task.links.length > 0) {
46226
46226
  console.log(` Links: ${task.links.map((l2) => l2.label || l2.url).join(", ")}`);
46227
46227
  }
46228
- if (task.labels && task.labels.length > 0) {
46229
- console.log(` Labels: ${task.labels.join(", ")}`);
46228
+ if (task.tags && task.tags.length > 0) {
46229
+ console.log(` Tags: ${task.tags.join(", ")}`);
46230
46230
  }
46231
46231
  if (task.dueDate)
46232
46232
  console.log(` Due: ${task.dueDate}`);
@@ -47082,7 +47082,7 @@ var marketplace_default = `{
47082
47082
  "name": "fulcrum",
47083
47083
  "source": "./",
47084
47084
  "description": "Task orchestration for Claude Code",
47085
- "version": "1.9.2",
47085
+ "version": "1.10.0",
47086
47086
  "skills": [
47087
47087
  "./skills/fulcrum"
47088
47088
  ],
@@ -47366,7 +47366,7 @@ search_tools { category: "filesystem" }
47366
47366
 
47367
47367
  ### Task Tools
47368
47368
 
47369
- - \`list_tasks\` - List tasks with flexible filtering (search, labels, statuses, date range, overdue)
47369
+ - \`list_tasks\` - List tasks with flexible filtering (search, tags, statuses, date range, overdue)
47370
47370
  - \`get_task\` - Get task details by ID (includes dependencies and attachments)
47371
47371
  - \`create_task\` - Create a new task with worktree
47372
47372
  - \`update_task\` - Update task metadata
@@ -47375,10 +47375,10 @@ search_tools { category: "filesystem" }
47375
47375
  - \`add_task_link\` - Add URL link to task
47376
47376
  - \`remove_task_link\` - Remove link from task
47377
47377
  - \`list_task_links\` - List all task links
47378
- - \`add_task_tag\` - Add a label to a task (returns similar labels to catch typos)
47379
- - \`remove_task_tag\` - Remove a label from a task
47378
+ - \`add_task_tag\` - Add a tag to a task (returns similar tags to catch typos)
47379
+ - \`remove_task_tag\` - Remove a tag from a task
47380
47380
  - \`set_task_due_date\` - Set or clear task due date
47381
- - \`list_tags\` - List all unique labels in use with optional search
47381
+ - \`list_tags\` - List all unique tags in use with optional search
47382
47382
 
47383
47383
  #### Task Dependencies
47384
47384
 
@@ -47400,8 +47400,8 @@ The \`list_tasks\` tool supports powerful filtering for AI agents:
47400
47400
 
47401
47401
  \`\`\`json
47402
47402
  {
47403
- "search": "ocai", // Text search across title, labels, project name
47404
- "labels": ["bug", "urgent"], // Filter by multiple labels (OR logic)
47403
+ "search": "ocai", // Text search across title, tags, project name
47404
+ "tags": ["bug", "urgent"], // Filter by multiple tags (OR logic)
47405
47405
  "statuses": ["TO_DO", "IN_PROGRESS"], // Filter by multiple statuses (OR logic)
47406
47406
  "dueDateStart": "2026-01-18", // Start of date range
47407
47407
  "dueDateEnd": "2026-01-25", // End of date range
@@ -47409,17 +47409,17 @@ The \`list_tasks\` tool supports powerful filtering for AI agents:
47409
47409
  }
47410
47410
  \`\`\`
47411
47411
 
47412
- #### Label Discovery
47412
+ #### Tag Discovery
47413
47413
 
47414
- Use \`list_labels\` to discover exact label names before filtering:
47414
+ Use \`list_tags\` to discover exact tag names before filtering:
47415
47415
 
47416
47416
  \`\`\`json
47417
- // Find labels matching "communication"
47417
+ // Find tags matching "communication"
47418
47418
  { "search": "communication" }
47419
47419
  // Returns: [{ "name": "communication required", "count": 5 }]
47420
47420
  \`\`\`
47421
47421
 
47422
- This helps handle typos and variations - search first, then use the exact label name.
47422
+ This helps handle typos and variations - search first, then use the exact tag name.
47423
47423
 
47424
47424
  ### Project Tools
47425
47425
 
@@ -48195,7 +48195,7 @@ function installUv() {
48195
48195
  var package_default = {
48196
48196
  name: "@knowsuchagency/fulcrum",
48197
48197
  private: true,
48198
- version: "1.9.2",
48198
+ version: "1.10.0",
48199
48199
  description: "Harness Attention. Orchestrate Agents. Ship.",
48200
48200
  license: "PolyForm-Perimeter-1.0.0",
48201
48201
  type: "module",