@beomjk/emdd 0.1.2 → 0.1.3

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/README.md CHANGED
@@ -97,7 +97,8 @@ See the [Quick Start Guide](docs/QUICK_START.md) for a full walkthrough.
97
97
 
98
98
  | Command | Description |
99
99
  |---------|-------------|
100
- | `emdd init [path]` | Initialize a new EMDD project |
100
+ | `emdd init [path]` | Initialize a new EMDD project (`--tool claude\|cursor\|windsurf\|cline\|copilot\|all`, `--lang en\|ko`) |
101
+ | `emdd list [path]` | List nodes (`--type`, `--status` filters) |
101
102
  | `emdd new <type> <slug>` | Create a node (hypothesis, experiment, finding, ...) |
102
103
  | `emdd link <source> <target> <relation>` | Add a link between nodes |
103
104
  | `emdd update <node-id> --set key=value` | Update node frontmatter |
@@ -109,8 +110,9 @@ See the [Quick Start Guide](docs/QUICK_START.md) for a full walkthrough.
109
110
  | `emdd backlog [path]` | List incomplete items across all nodes |
110
111
  | `emdd index [path]` | Generate `_index.md` |
111
112
  | `emdd graph [path]` | Generate `_graph.mmd` (Mermaid) |
113
+ | `emdd mcp` | Start MCP server (stdio transport) |
112
114
 
113
- All commands support `--lang en|ko` for bilingual output.
115
+ The `init` command supports `--lang en|ko` for bilingual project setup.
114
116
 
115
117
  ## Phased Adoption
116
118
 
package/dist/cli.js CHANGED
@@ -12,8 +12,10 @@ import { doneCommand } from './commands/done.js';
12
12
  import { indexCommand } from './commands/index.js';
13
13
  import { graphCommand } from './commands/graph.js';
14
14
  import { backlogCommand } from './commands/backlog.js';
15
+ import { listCommand } from './commands/list.js';
15
16
  import { resolveGraphDir } from './graph/loader.js';
16
17
  import { startMcpServer } from './mcp-server/index.js';
18
+ import { VERSION } from './version.js';
17
19
  function withCliErrorHandling(fn) {
18
20
  return async (...args) => {
19
21
  try {
@@ -30,7 +32,7 @@ const program = new Command();
30
32
  program
31
33
  .name('emdd')
32
34
  .description('CLI for Evolving Mindmap-Driven Development')
33
- .version('0.1.0');
35
+ .version(VERSION);
34
36
  program
35
37
  .command('init [path]')
36
38
  .description('Initialize EMDD project')
@@ -46,6 +48,14 @@ program
46
48
  .action(withCliErrorHandling(async (type, slug, options) => {
47
49
  await newCommand(type, slug, options);
48
50
  }));
51
+ program
52
+ .command('list [path]')
53
+ .description('List nodes, optionally filtered by type and/or status')
54
+ .option('--type <type>', 'Filter by node type')
55
+ .option('--status <status>', 'Filter by status')
56
+ .action(withCliErrorHandling(async (path, options) => {
57
+ await listCommand(path, options);
58
+ }));
49
59
  program
50
60
  .command('lint [path]')
51
61
  .description('Validate graph schema and links')
@@ -0,0 +1,4 @@
1
+ export declare function listCommand(targetPath: string | undefined, options: {
2
+ type?: string;
3
+ status?: string;
4
+ }): Promise<void>;
@@ -0,0 +1,22 @@
1
+ import { resolveGraphDir } from '../graph/loader.js';
2
+ import { listNodes } from '../graph/operations.js';
3
+ export async function listCommand(targetPath, options) {
4
+ const graphDir = resolveGraphDir(targetPath);
5
+ const filter = {};
6
+ if (options.type)
7
+ filter.type = options.type;
8
+ if (options.status)
9
+ filter.status = options.status.toUpperCase();
10
+ const nodes = await listNodes(graphDir, filter);
11
+ if (nodes.length === 0) {
12
+ console.log('No nodes found.');
13
+ return;
14
+ }
15
+ for (const node of nodes) {
16
+ const status = node.status ?? '-';
17
+ const conf = node.confidence !== null && node.confidence !== undefined
18
+ ? ` (${node.confidence.toFixed(2)})`
19
+ : '';
20
+ console.log(`[${node.id}] ${node.title} ${node.type} ${status}${conf}`);
21
+ }
22
+ }
@@ -50,11 +50,11 @@ export const ID_PREFIXES = {
50
50
  export const PREFIX_TO_TYPE = Object.fromEntries(Object.entries(ID_PREFIXES).map(([type, prefix]) => [prefix, type]));
51
51
  // ── Valid Statuses per Node Type ────────────────────────────────────
52
52
  export const VALID_STATUSES = {
53
- hypothesis: ['PROPOSED', 'TESTING', 'SUPPORTED', 'REFUTED', 'REVISED', 'DEFERRED'],
53
+ hypothesis: ['PROPOSED', 'TESTING', 'SUPPORTED', 'REFUTED', 'REVISED', 'DEFERRED', 'CONTESTED'],
54
54
  experiment: ['PLANNED', 'RUNNING', 'COMPLETED', 'FAILED', 'ABANDONED'],
55
55
  finding: ['DRAFT', 'VALIDATED', 'PROMOTED', 'RETRACTED'],
56
56
  knowledge: ['ACTIVE', 'DISPUTED', 'SUPERSEDED', 'RETRACTED'],
57
- question: ['OPEN', 'RESOLVED', 'ANSWERED', 'DEFERRED'],
57
+ question: ['OPEN', 'RESOLVED', 'ANSWERED', 'DEFERRED', 'CONVERGED', 'MERGED', 'ABANDONED'],
58
58
  decision: ['PROPOSED', 'ACCEPTED', 'SUPERSEDED', 'REVERTED'],
59
59
  episode: ['ACTIVE', 'COMPLETED'],
60
60
  };
@@ -11,8 +11,9 @@ import { registerContextLoading } from './prompts/context-loading.js';
11
11
  import { registerEpisodeCreation } from './prompts/episode-creation.js';
12
12
  import { registerConsolidation } from './prompts/consolidation.js';
13
13
  import { registerHealthReview } from './prompts/health-review.js';
14
+ import { VERSION } from '../version.js';
14
15
  export function createEmddMcpServer() {
15
- const server = new McpServer({ name: 'emdd', version: '0.1.0' });
16
+ const server = new McpServer({ name: 'emdd', version: VERSION });
16
17
  // Tools
17
18
  registerListNodes(server);
18
19
  registerReadNode(server);
@@ -0,0 +1 @@
1
+ export declare const VERSION: string;
@@ -0,0 +1,4 @@
1
+ import { createRequire } from 'node:module';
2
+ const require = createRequire(import.meta.url);
3
+ const pkg = require('../package.json');
4
+ export const VERSION = pkg.version;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beomjk/emdd",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "CLI for Evolving Mindmap-Driven Development",
5
5
  "type": "module",
6
6
  "bin": {