Sign In

@contextium/cli

Package Overview
Dependencies
Maintainers
2
Versions
108
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@contextium/cli - npm Package Compare versions

Comparing version
1.0.51
to
1.0.52
+3
dist/commands/start.d.ts
import { Command } from 'commander';
export declare const startCommand: Command;
//# sourceMappingURL=start.d.ts.map
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA0bnC,eAAO,MAAM,YAAY,SAeM,CAAA"}
import { Command } from 'commander';
import { ApiClient } from '../lib/api-client.js';
import { loadConfig } from '../lib/config.js';
import { chalk, ora } from '../lib/output.js';
// ─── Helpers ──────────────────────────────────────────────────────────────────
async function resolveWorkspace(client, workspaceOption) {
const { data: workspacesData } = await client.get('/workspaces');
const workspaces = workspacesData.data || workspacesData;
if (workspaceOption) {
const ws = workspaces.find((w) => w.slug?.toLowerCase() === workspaceOption.toLowerCase() ||
w.name?.toLowerCase() === workspaceOption.toLowerCase() ||
w.id === workspaceOption);
if (!ws)
throw new Error(`Workspace "${workspaceOption}" not found`);
return ws;
}
if (workspaces.length === 1)
return workspaces[0];
throw new Error('Multiple workspaces found. Specify one with -w, --workspace.');
}
function toSlug(name) {
return name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
}
function inferQualityRole(context) {
const c = context.toLowerCase();
if (/\b(code|app|api|software|build|feature|engineer|develop|backend|frontend)\b/.test(c))
return 'Regression Tester';
if (/\b(write|paper|document|article|essay|report|draft|blog|whitepaper)\b/.test(c))
return 'Proofreader';
if (/\b(pitch|deck|investor|present|slide)\b/.test(c))
return 'Deck Reviewer';
if (/\b(market|campaign|copy|brand|content|ad|social)\b/.test(c))
return 'Copy Reviewer';
return 'Quality Reviewer';
}
function buildProjectState(name, description, today) {
const about = description || name;
return `# ${name} — Project State
## Current Position
**Phase:** Phase 1: Foundation
**Status:** Not Started
**Last Updated:** ${today}
**Next Action:** Begin Phase 1
## About
${about}
## Phases
### Phase 1: Foundation
**Status:** Not Started
Initial setup, research, and planning for ${name}.
### Phase 2: Core Build
**Status:** Not Started
Primary implementation phase.
### Phase 3: Polish & Launch
**Status:** Not Started
Testing, refinement, and delivery.
## Decisions Log
| Decision | Rationale | Phase |
|----------|-----------|-------|
| _(none yet)_ | | |
## Seeds
| Idea | When to revisit | Context |
|------|-----------------|---------|
| _(none yet)_ | | |
## Notes
_(ad-hoc notes that don't fit elsewhere)_
`;
}
function buildResearchBrief(name, description, deep, today) {
const scope = description || (deep ? `A comprehensive investigation into ${name}.` : `An investigation into ${name}.`);
if (deep) {
return `# Deep Dive: ${name}
**Started:** ${today}
**Status:** In Progress
**Depth:** Deep
## Scope
${scope}
## Research Questions
_(to be defined by Research Lead)_
## Landscape Overview
_(to be populated)_
## Key Findings
_(to be populated)_
## Competing Approaches
_(to be populated)_
## Risks & Concerns
_(to be populated)_
## Recommendations
_(to be populated)_
## Sources
_(to be populated)_
`;
}
return `# Research: ${name}
**Started:** ${today}
**Status:** In Progress
**Depth:** Quick
## Scope
${scope}
## Research Questions
- What is ${name} and how does it work?
- What are the key considerations?
- What are the best existing approaches or solutions?
## Findings
_(to be populated by Research Agent)_
## Sources
_(to be populated)_
## Summary
_(to be populated)_
`;
}
function escapeTableCell(text) {
return text.replace(/\|/g, '\\|').replace(/\n/g, ' ');
}
function appendToSeedsSection(content, idea, today) {
const seedsHeader = '## Seeds';
const idx = content.indexOf(seedsHeader);
const newRow = `| ${escapeTableCell(idea)} | When relevant | Captured ${today} |`;
if (idx === -1) {
return content.trimEnd() + `\n\n## Seeds\n| Idea | When to revisit | Context |\n|------|-----------------|----------|\n${newRow}\n`;
}
const afterSeeds = content.slice(idx);
const nextSectionMatch = afterSeeds.match(/\n## /);
const seedsBlock = nextSectionMatch ? afterSeeds.slice(0, nextSectionMatch.index) : afterSeeds;
if (seedsBlock.includes('_(none yet)_')) {
const updated = content.replace(/\|\s*_\(none yet\)_\s*\|\s*\|\s*\|/, newRow);
if (updated !== content)
return updated;
}
const insertAt = nextSectionMatch ? idx + (nextSectionMatch.index ?? seedsBlock.length) : content.length;
return content.slice(0, insertAt).trimEnd() + '\n' + newRow + '\n' + content.slice(insertAt);
}
// ─── start project ────────────────────────────────────────────────────────────
const startProjectCommand = new Command('project')
.description('Autonomously create a full project workspace (library, agents, workflow, project-state.md)')
.argument('<name>', 'Project name')
.option('-d, --description <text>', 'What the project is about')
.option('-w, --workspace <slug>', 'Workspace name, slug, or ID')
.action(async (name, options) => {
const spinner = ora(`Setting up project "${name}"...`).start();
try {
const config = await loadConfig();
const client = new ApiClient(config.api_key, config.api_url);
const workspace = await resolveWorkspace(client, options.workspace);
const wid = workspace.id;
const desc = options.description || '';
const today = new Date().toISOString().split('T')[0];
// Check for duplicate library
const { data: projectsData } = await client.get(`/workspaces/${wid}/projects`);
const projectList = Array.isArray(projectsData) ? projectsData : (projectsData.projects || projectsData.data || []);
const existing = projectList.find((p) => p.name?.toLowerCase() === name.toLowerCase());
if (existing) {
spinner.warn(`Project "${name}" already exists`);
console.log(` Library: ${chalk.dim(existing.id)}`);
return;
}
// Create library
// Creating library
const { data: library } = await client.post(`/workspaces/${wid}/projects`, { name, slug: toSlug(name), description: desc });
const libraryId = library.id;
// Create agents
const qualityRole = inferQualityRole(name + ' ' + desc);
const agentDefs = [
{ name: `${name} — Project Architect`, systemPrompt: `You are the Project Architect for **${name}**. Your role is to define the technical direction, break the project into clear phases, make and lock architectural decisions, and ensure consistency across all work.\n\nProject context: ${desc || name}` },
{ name: `${name} — Project Planner`, systemPrompt: `You are the Project Planner for **${name}**. Your role is to break the project into well-scoped phases, estimate effort, sequence work correctly, and keep project-state.md up to date as work progresses.\n\nProject context: ${desc || name}` },
{ name: `${name} — Researcher`, systemPrompt: `You are the Researcher for **${name}**. Your role is to investigate technical unknowns, gather relevant context, compare approaches, and surface findings that inform the project's direction.\n\nProject context: ${desc || name}` },
{ name: `${name} — ${qualityRole}`, systemPrompt: `You are the ${qualityRole} for **${name}**. Your role is to review deliverables for quality, correctness, and completeness before they are considered done.\n\nProject context: ${desc || name}` },
];
const agents = [];
for (const def of agentDefs) {
// Creating agent
const { data: agent } = await client.post(`/workspaces/${wid}/agents`, { name: def.name, systemPrompt: def.systemPrompt });
agents.push({ name: def.name, id: agent.id });
}
// Create workflow
// Creating workflow
const { data: workflow } = await client.post(`/workspaces/${wid}/workflows`, {
name,
description: `Project workspace for ${name}`,
agentIds: agents.map(a => a.id),
projectIds: [libraryId],
});
// Create project-state.md
// Writing project-state.md
const { data: stateFile } = await client.post(`/projects/${libraryId}/files`, {
title: `${name} — Project State`,
path: 'project-state.md',
content: buildProjectState(name, desc, today),
});
spinner.succeed(`Project "${name}" is ready`);
console.log(` Library: ${chalk.bold(name)} ${chalk.dim('(' + libraryId + ')')}`);
console.log(` Workflow: ${chalk.bold(name)} ${chalk.dim('(' + workflow.id + ')')}`);
console.log(` Agents: ${agents.map(a => a.name.split('—')[1]?.trim()).join(', ')}`);
console.log(` Files: ${chalk.dim(stateFile.path || 'project-state.md')}`);
}
catch (err) {
spinner.fail(err.message || 'Failed to set up project');
process.exit(1);
}
});
// ─── start research ───────────────────────────────────────────────────────────
const startResearchCommand = new Command('research')
.description('Autonomously create a research workspace (library, agents, workflow, research-brief.md)')
.argument('<name>', 'Research topic name')
.option('-d, --description <text>', 'What to research')
.option('--depth <level>', 'quick (default) or deep', 'quick')
.option('-w, --workspace <slug>', 'Workspace name, slug, or ID')
.action(async (name, options) => {
const isDeep = options.depth === 'deep';
const libraryName = `Research: ${name}`;
const workflowName = isDeep ? `${name} Deep Dive` : `${name} Research`;
const spinner = ora(`Setting up research workspace "${workflowName}"...`).start();
try {
const config = await loadConfig();
const client = new ApiClient(config.api_key, config.api_url);
const workspace = await resolveWorkspace(client, options.workspace);
const wid = workspace.id;
const desc = options.description || '';
const today = new Date().toISOString().split('T')[0];
// Check for duplicate
const { data: projectsData } = await client.get(`/workspaces/${wid}/projects`);
const projectList = Array.isArray(projectsData) ? projectsData : (projectsData.projects || projectsData.data || []);
const existing = projectList.find((p) => p.name?.toLowerCase() === libraryName.toLowerCase());
if (existing) {
spinner.warn(`Research workspace "${libraryName}" already exists`);
console.log(` Library: ${chalk.dim(existing.id)}`);
return;
}
// Create research library
// Creating research library
const { data: library } = await client.post(`/workspaces/${wid}/projects`, { name: libraryName, slug: toSlug(libraryName), description: desc });
const libraryId = library.id;
// Create agents
const agents = [];
if (isDeep) {
// Creating Research Lead
const { data: lead } = await client.post(`/workspaces/${wid}/agents`, {
name: `${name} — Research Lead`,
systemPrompt: `You are the Research Lead for **${name}**. Your role is to drive a thorough investigation of this topic, structure findings across multiple angles, compare approaches and solutions, and produce clear, citable research documents.\n\nResearch context: ${desc || name}`,
});
agents.push({ name: `${name} — Research Lead`, id: lead.id });
// Creating Fact Checker
const { data: checker } = await client.post(`/workspaces/${wid}/agents`, {
name: `${name} — Fact Checker`,
systemPrompt: `You are the Fact Checker for the **${name}** research project. Your role is to validate every claim made by the Research Lead — verify against primary sources, flag unsupported assertions, and ensure all citations are accurate and traceable.\n\nResearch context: ${desc || name}`,
});
agents.push({ name: `${name} — Fact Checker`, id: checker.id });
}
else {
// Creating Research Agent
const { data: researcher } = await client.post(`/workspaces/${wid}/agents`, {
name: `${name} — Research Agent`,
systemPrompt: `You are the Research Agent for **${name}**. Your role is to investigate this topic, surface key findings, compare existing solutions, and summarise results clearly in the research library.\n\nResearch context: ${desc || name}`,
});
agents.push({ name: `${name} — Research Agent`, id: researcher.id });
}
// Create workflow
// Creating workflow
const { data: workflow } = await client.post(`/workspaces/${wid}/workflows`, {
name: workflowName,
description: `Research workspace for ${name}`,
agentIds: agents.map(a => a.id),
projectIds: [libraryId],
});
// Create research-brief.md
// Writing research-brief.md
const { data: briefFile } = await client.post(`/projects/${libraryId}/files`, {
title: `${name} — Research Brief`,
path: 'research-brief.md',
content: buildResearchBrief(name, desc, isDeep, today),
});
spinner.succeed(`Research workspace ready`);
console.log(` Library: ${chalk.bold(libraryName)} ${chalk.dim('(' + libraryId + ')')}`);
console.log(` Workflow: ${chalk.bold(workflowName)} ${chalk.dim('(' + workflow.id + ')')}`);
console.log(` Agents: ${agents.map(a => a.name.split('—')[1]?.trim()).join(', ')}`);
console.log(` Files: ${chalk.dim(briefFile.path || 'research-brief.md')}`);
}
catch (err) {
spinner.fail(err.message || 'Failed to set up research workspace');
process.exit(1);
}
});
// ─── start idea ───────────────────────────────────────────────────────────────
const startIdeaCommand = new Command('idea')
.description('Capture a quick idea or note into a project\'s seeds or Quick Notes')
.argument('<text>', 'The idea or note to capture')
.option('-p, --project <name>', 'Project to attach the idea to')
.option('-w, --workspace <slug>', 'Workspace name, slug, or ID')
.action(async (text, options) => {
const spinner = ora('Saving idea...').start();
try {
const config = await loadConfig();
const client = new ApiClient(config.api_key, config.api_url);
const workspace = await resolveWorkspace(client, options.workspace);
const wid = workspace.id;
const today = new Date().toISOString().split('T')[0];
const { data: projectsData } = await client.get(`/workspaces/${wid}/projects`);
const projectList = Array.isArray(projectsData) ? projectsData : (projectsData.projects || projectsData.data || []);
// 1. Find target library
let targetLibrary = null;
if (options.project) {
targetLibrary =
projectList.find((p) => p.name?.toLowerCase() === options.project.toLowerCase()) ??
projectList.find((p) => p.name?.toLowerCase().includes(options.project.toLowerCase()));
}
else {
// Find libraries with a project-state.md
const withState = [];
for (const project of projectList) {
if (project.isSystem)
continue;
try {
const { data: filesData } = await client.get(`/projects/${project.id}/files`);
const files = Array.isArray(filesData) ? filesData : (filesData.files || filesData.data || []);
if (files.some((f) => f.path === 'project-state.md')) {
withState.push(project);
}
}
catch {
// skip
}
}
if (withState.length === 1)
targetLibrary = withState[0];
}
// 2. Try to append to project-state.md Seeds section
if (targetLibrary) {
try {
const { data: filesData } = await client.get(`/projects/${targetLibrary.id}/files`);
const files = Array.isArray(filesData) ? filesData : (filesData.files || filesData.data || []);
const stateFile = files.find((f) => f.path === 'project-state.md');
if (stateFile) {
const { data: fileDetail } = await client.get(`/files/${stateFile.id}`);
const currentContent = fileDetail.content || '';
const updatedContent = appendToSeedsSection(currentContent, text, today);
await client.put(`/files/${stateFile.id}`, { content: updatedContent });
spinner.succeed(`Idea saved to "${targetLibrary.name}" project seeds`);
return;
}
}
catch {
// fall through
}
}
// 3. Find or create Quick Notes library
let quickNotesLib = projectList.find((p) => p.name?.toLowerCase() === 'quick notes' || p.name?.toLowerCase().includes('quick notes'));
if (!quickNotesLib) {
// Creating Quick Notes library
const { data: newLib } = await client.post(`/workspaces/${wid}/projects`, {
name: 'Quick Notes',
slug: 'quick-notes',
description: 'Captured ideas and quick notes',
});
quickNotesLib = newLib;
}
// Find or create quick-notes.md
const { data: qnFilesData } = await client.get(`/projects/${quickNotesLib.id}/files`);
const qnFiles = Array.isArray(qnFilesData) ? qnFilesData : (qnFilesData.files || qnFilesData.data || []);
const existingNote = qnFiles.find((f) => f.path === 'quick-notes.md');
if (existingNote) {
const { data: fileDetail } = await client.get(`/files/${existingNote.id}`);
const currentContent = fileDetail.content || '';
const updatedContent = currentContent.trimEnd() + `\n| ${escapeTableCell(text)} | ${today} |\n`;
await client.put(`/files/${existingNote.id}`, { content: updatedContent });
}
else {
await client.post(`/projects/${quickNotesLib.id}/files`, {
title: 'Quick Notes',
path: 'quick-notes.md',
content: `# Quick Notes\n\n| Idea | Captured |\n|------|----------|\n| ${escapeTableCell(text)} | ${today} |\n`,
});
}
spinner.succeed('Idea saved to Quick Notes');
}
catch (err) {
spinner.fail(err.message || 'Failed to save idea');
process.exit(1);
}
});
// ─── start (parent command) ───────────────────────────────────────────────────
export const startCommand = new Command('start')
.description('Create projects, research workspaces, or capture ideas')
.addHelpText('after', `
Subcommands:
project <name> Create a full project (library, agents, workflow, project-state.md)
research <name> Create a research workspace (library, agents, workflow, research-brief.md)
idea <text> Capture an idea into a project's seeds or Quick Notes
Examples:
contextium start project "CRM Redesign" --description "Customer tool for SMBs" -w my-ws
contextium start research "AI Todo Lists" --depth deep -w my-ws
contextium start idea "Add dark mode support" --project "CRM Redesign" -w my-ws
`)
.addCommand(startProjectCommand)
.addCommand(startResearchCommand)
.addCommand(startIdeaCommand);
//# sourceMappingURL=start.js.map
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
+3
-0

@@ -35,2 +35,3 @@ #!/usr/bin/env node

import { notifyCommand } from './commands/notify.js';
import { startCommand } from './commands/start.js';
import { recordCommand, maybeShowReviewPrompt } from './lib/review-prompt.js';

@@ -57,2 +58,3 @@ import { createRequire } from 'module';

Team: notify
Start: start project, start research, start idea
Agents: agents list, agents create, agents add-skill, agents remove-skill

@@ -127,2 +129,3 @@ Skills: skills list, skills create

program.addCommand(notifyCommand);
program.addCommand(startCommand);
// Skip review prompt for auth/meta commands

@@ -129,0 +132,0 @@ const SKIP_REVIEW_COMMANDS = new Set(['login', 'logout', 'whoami', 'setup', 'setup-claude']);

+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
{
"name": "@contextium/cli",
"version": "1.0.51",
"version": "1.0.52",
"description": "Command-line tool for managing Contextium documentation, agents, skills, and workflows — pipe context to AI coding assistants",

@@ -5,0 +5,0 @@ "keywords": [