Skip to content

@jbcom/agentic (Triage)

TypeScript

Composable triage tools built on the Vercel AI SDK. Issue management, PR review, sprint planning — for GitHub, Jira, Linear, and Beads.

npm version License: MIT

  1. Vercel AI SDK Tools — Drop triage tools into any generateText() or streamText() call
  2. MCP Server — Expose tools to Claude Desktop, Cursor, or any MCP client
  3. Direct TypeScript API — Programmatic access for scripts, CI, and custom integrations
Terminal window
npm install @jbcom/agentic
import { getTriageTools } from '@jbcom/agentic/tools';
import { generateText } from 'ai';
import { anthropic } from '@ai-sdk/anthropic';
const result = await generateText({
model: anthropic('claude-sonnet-4-20250514'),
tools: getTriageTools(),
maxSteps: 10,
prompt: 'List all open critical bugs and create a triage plan',
});

Import only what your agent needs — smaller tool space means more focused behavior:

import { getIssueTools, getReviewTools } from '@jbcom/agentic/tools';
const myAgentTools = {
...getIssueTools(), // Issue CRUD, search, labels
...getReviewTools(), // PR review, comments, approval
};

Add to your Claude Desktop or Cursor MCP config:

{
"mcpServers": {
"triage": {
"command": "npx",
"args": ["@jbcom/agentic", "mcp-server"]
}
}
}

For scripts and CI pipelines:

import { TriageConnectors } from '@jbcom/agentic';
const triage = new TriageConnectors({ provider: 'github' });
const issues = await triage.issues.list({ status: 'open', priority: 'high' });
const issue = await triage.issues.create({
title: 'Fix login bug',
body: 'Users cannot login with SSO',
type: 'bug',
priority: 'critical',
});
await triage.issues.addLabels(issue.id, ['needs-triage', 'auth']);
ProviderStatusUse Case
GitHub IssuesCompleteGitHub-native projects
BeadsCompleteLocal-first, AI-native tracking
JiraCompleteEnterprise projects
LinearCompleteModern team workflows

Auto-detected from environment — .beads/ directory uses Beads, .git remote uses GitHub. Or configure explicitly:

const jira = new TriageConnectors({
provider: 'jira',
jira: { host: 'mycompany.atlassian.net', projectKey: 'PROJ' }
});
const linear = new TriageConnectors({
provider: 'linear',
linear: { teamId: 'TEAM123' }
});
ToolDescription
listIssuesList issues with filtering
getIssueGet a specific issue by ID
createIssueCreate a new issue
updateIssueUpdate an existing issue
closeIssueClose an issue with reason
searchIssuesSearch issues by query
addLabelsAdd labels to an issue
removeLabelsRemove labels from an issue
ToolDescription
getPRCommentsGet comments on a PR
addPRCommentAdd a comment to a PR
approvePRApprove a pull request
requestChangesRequest changes on a PR
ToolDescription
getSprintsGet all sprints
getCurrentSprintGet the current sprint
getSprintIssuesGet issues in a sprint
moveToSprintMove issue to a sprint
import { anthropic } from '@ai-sdk/anthropic';
import { generateText } from 'ai';
import { getTriageTools } from '@jbcom/agentic/tools';
async function triageAgent() {
const result = await generateText({
model: anthropic('claude-sonnet-4-20250514'),
tools: getTriageTools(),
maxSteps: 10,
prompt: `
You are a triage agent. Please:
1. List all open critical bugs
2. Assess severity and add appropriate labels
3. Create a summary report
`,
});
console.log('Triage Complete:', result.text);
}
VariableDescription
GH_TOKENGitHub PAT with repo scope
ANTHROPIC_API_KEYFor AI-powered triage
OPENAI_API_KEYAlternative AI provider

Previously published as @agentic-dev-library/triage. To migrate:

// Old
import { getTriageTools } from '@agentic-dev-library/triage';
// New
import { getTriageTools } from '@jbcom/agentic/tools';