@riotprompt/riotplan 1.0.3 → 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.
- package/MCP-ELICITATION-NOTES.md +211 -0
- package/MCP-FIXES.md +50 -0
- package/MCP-PROMPT-FIXES.md +207 -0
- package/README.md +70 -1
- package/dist/cli-BAr1IsMF.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/mcp/prompts/create_plan.md +127 -0
- package/dist/mcp/prompts/develop_plan.md +667 -0
- package/dist/mcp/prompts/execute_plan.md +456 -0
- package/dist/mcp/prompts/execute_step.md +142 -0
- package/dist/mcp/prompts/explore_idea.md +187 -0
- package/dist/mcp/prompts/shape_approach.md +187 -0
- package/dist/mcp/prompts/track_progress.md +145 -0
- package/dist/mcp-server.js +3553 -0
- package/idea-plan-conceptual-model/.history/timeline.jsonl +1 -0
- package/idea-plan-conceptual-model/IDEA.md +39 -0
- package/idea-plan-conceptual-model/LIFECYCLE.md +21 -0
- package/package.json +17 -7
- package/scripts/build-mcp.js +88 -0
|
@@ -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.
|
|
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": {
|
|
45
|
-
"@
|
|
53
|
+
"@modelcontextprotocol/sdk": "^1.25.3",
|
|
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.
|
|
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();
|