@riotprompt/riotplan 1.0.4 → 1.0.5

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.
@@ -0,0 +1 @@
1
+ {"timestamp":"2026-01-29T07:35:54.818Z","type":"idea_created","data":{"code":"idea-plan-conceptual-model","description":"Clarify and document the relationship between ideas and plans in RiotPlan. Help users understand when to use each stage and how they flow together."}}
@@ -0,0 +1,39 @@
1
+ # Idea: idea-plan-conceptual-model
2
+
3
+ ## Core Concept
4
+
5
+ Clarify and document the relationship between ideas and plans in RiotPlan. Help users understand when to use each stage and how they flow together.
6
+
7
+ ## Why This Matters
8
+
9
+ _Why pursue this idea?_
10
+
11
+ ## Initial Thoughts
12
+
13
+ - _Add your thoughts..._
14
+
15
+ ## Constraints
16
+
17
+ - _Add constraints..._
18
+
19
+ ## Questions
20
+
21
+ - _Add questions..._
22
+
23
+ ## Evidence
24
+
25
+ _Attach relevant documents, images, or files_
26
+
27
+ ## Related Ideas
28
+
29
+ - _Link to related ideas..._
30
+
31
+ ## Status
32
+
33
+ **Stage**: idea
34
+ **Created**: 2026-01-29T07:35:54.817Z
35
+ **Next**: Decide if worth shaping
36
+
37
+ ## Notes
38
+
39
+ _Add notes as you think about this..._
@@ -0,0 +1,21 @@
1
+ # Lifecycle
2
+
3
+ ## Current Stage
4
+
5
+ **Stage**: `idea`
6
+ **Since**: 2026-01-29T07:35:54.818Z
7
+
8
+ ## State History
9
+
10
+ | From | To | When | Reason |
11
+ |------|-----|------|--------|
12
+ | - | idea | 2026-01-29T07:35:54.818Z | Initial creation |
13
+
14
+ ## Stage-Specific Data
15
+
16
+ ### Idea
17
+ - Core concept: Clarify and document the relationship between ideas and plans in RiotPlan. Help users understand when to use each stage and how they flow together.
18
+ - Notes: []
19
+ - Constraints: []
20
+ - Questions: []
21
+ - Evidence: []
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@riotprompt/riotplan",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "Framework for long-lived, stateful AI workflows (plans)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "bin": {
9
- "riotplan": "./dist/bin.js"
9
+ "riotplan": "./dist/bin.js",
10
+ "riotplan-mcp": "./dist/mcp-server.js"
10
11
  },
11
12
  "exports": {
12
13
  ".": {
@@ -19,12 +20,19 @@
19
20
  },
20
21
  "scripts": {
21
22
  "clean": "rm -rf dist",
22
- "build": "vite build",
23
+ "build": "vite build && node scripts/build-mcp.js && chmod 755 ./dist/mcp-server.js 2>/dev/null || true",
23
24
  "test": "vitest run --coverage",
24
25
  "test:coverage": "vitest run --coverage",
25
26
  "lint": "eslint src",
26
27
  "precommit": "npm run build && npm run lint && npm run test",
27
- "prepublishOnly": "npm run clean && npm run build"
28
+ "prepublishOnly": "npm run clean && npm run build",
29
+ "mcp:build": "vite build && chmod 755 ./dist/mcp-server.js 2>/dev/null || true",
30
+ "mcp:inspect": "mcp-inspector npx -y @riotprompt/riotplan",
31
+ "docs:dev": "cd docs && cp ../README.md public/ && npm install && npm run dev",
32
+ "docs:build": "cd docs && cp ../README.md public/ && npm install && npm run build",
33
+ "docs:preview": "cd docs && npm run preview",
34
+ "docs:test": "cd docs && npm run test",
35
+ "docs:coverage": "cd docs && npm run coverage"
28
36
  },
29
37
  "keywords": [
30
38
  "plan",
@@ -42,18 +50,20 @@
42
50
  "url": "https://github.com/kjerneverk/riotplan"
43
51
  },
44
52
  "dependencies": {
53
+ "@modelcontextprotocol/sdk": "^1.25.3",
45
54
  "@theunwalked/cardigantime": "^0.0.23",
46
55
  "@types/inquirer": "^9.0.9",
47
56
  "chalk": "^5.4.1",
48
57
  "commander": "^14.0.2",
49
58
  "inquirer": "^13.2.1",
50
59
  "js-yaml": "^4.1.1",
51
- "marked": "^17.0.1"
60
+ "marked": "^17.0.1",
61
+ "zod": "^4.1.12"
52
62
  },
53
63
  "peerDependencies": {
54
64
  "@riotprompt/agentic": "^1.0.2",
55
65
  "@riotprompt/execution": "^1.0.1",
56
- "@riotprompt/riotprompt": "^1.0.1"
66
+ "@riotprompt/riotprompt": "^1.0.4"
57
67
  },
58
68
  "peerDependenciesMeta": {
59
69
  "@riotprompt/agentic": {
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Build script for MCP server
4
+ *
5
+ * This script bundles the MCP server into a single executable file
6
+ * and copies the prompt markdown files to the dist directory.
7
+ */
8
+
9
+ import { build } from 'vite';
10
+ import { resolve, dirname } from 'node:path';
11
+ import { fileURLToPath } from 'node:url';
12
+ import { copyFileSync, mkdirSync, readdirSync, statSync } from 'node:fs';
13
+
14
+ const __filename = fileURLToPath(import.meta.url);
15
+ const __dirname = dirname(__filename);
16
+ const rootDir = resolve(__dirname, '..');
17
+
18
+ async function buildMcpServer() {
19
+ console.log('Building MCP server...');
20
+
21
+ await build({
22
+ configFile: false,
23
+ build: {
24
+ lib: {
25
+ entry: resolve(rootDir, 'src/mcp/server.ts'),
26
+ formats: ['es'],
27
+ fileName: () => 'mcp-server.js',
28
+ },
29
+ outDir: resolve(rootDir, 'dist'),
30
+ emptyOutDir: false,
31
+ rollupOptions: {
32
+ external: [
33
+ '@modelcontextprotocol/sdk',
34
+ '@modelcontextprotocol/sdk/server/mcp.js',
35
+ '@modelcontextprotocol/sdk/server/stdio.js',
36
+ 'zod',
37
+ '@riotprompt/execution',
38
+ '@riotprompt/execution-anthropic',
39
+ '@riotprompt/execution-openai',
40
+ '@riotprompt/execution-gemini',
41
+ '@riotprompt/riotprompt',
42
+ '@riotprompt/agentic',
43
+ /^node:/,
44
+ ],
45
+ },
46
+ },
47
+ });
48
+
49
+ console.log('MCP server built successfully');
50
+ }
51
+
52
+ function copyPrompts() {
53
+ console.log('Copying prompt files...');
54
+
55
+ const promptsDir = resolve(rootDir, 'src/mcp/prompts');
56
+ const distPromptsDir = resolve(rootDir, 'dist/mcp/prompts');
57
+
58
+ // Create dist prompts directory
59
+ mkdirSync(distPromptsDir, { recursive: true });
60
+
61
+ // Copy all .md files
62
+ const files = readdirSync(promptsDir);
63
+ for (const file of files) {
64
+ const filePath = resolve(promptsDir, file);
65
+ const stat = statSync(filePath);
66
+
67
+ if (stat.isFile() && file.endsWith('.md')) {
68
+ const destPath = resolve(distPromptsDir, file);
69
+ copyFileSync(filePath, destPath);
70
+ console.log(` Copied ${file}`);
71
+ }
72
+ }
73
+
74
+ console.log('Prompt files copied successfully');
75
+ }
76
+
77
+ async function main() {
78
+ try {
79
+ await buildMcpServer();
80
+ copyPrompts();
81
+ console.log('MCP build complete!');
82
+ } catch (error) {
83
+ console.error('MCP build failed:', error);
84
+ process.exit(1);
85
+ }
86
+ }
87
+
88
+ main();