@liquidmetal-ai/raindrop 0.6.0 → 0.6.1

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.
Files changed (52) hide show
  1. package/README.md +458 -61
  2. package/dist/commands/dns/create.d.ts +25 -0
  3. package/dist/commands/dns/create.d.ts.map +1 -0
  4. package/dist/commands/dns/create.js +120 -0
  5. package/dist/commands/dns/delete.d.ts +20 -0
  6. package/dist/commands/dns/delete.d.ts.map +1 -0
  7. package/dist/commands/dns/delete.js +59 -0
  8. package/dist/commands/dns/get.d.ts +20 -0
  9. package/dist/commands/dns/get.d.ts.map +1 -0
  10. package/dist/commands/dns/get.js +101 -0
  11. package/dist/commands/dns/list.d.ts +21 -0
  12. package/dist/commands/dns/list.d.ts.map +1 -0
  13. package/dist/commands/dns/list.js +112 -0
  14. package/dist/commands/dns/records/create.d.ts +28 -0
  15. package/dist/commands/dns/records/create.d.ts.map +1 -0
  16. package/dist/commands/dns/records/create.js +140 -0
  17. package/dist/commands/dns/records/delete.d.ts +21 -0
  18. package/dist/commands/dns/records/delete.d.ts.map +1 -0
  19. package/dist/commands/dns/records/delete.js +64 -0
  20. package/dist/commands/dns/records/get.d.ts +21 -0
  21. package/dist/commands/dns/records/get.d.ts.map +1 -0
  22. package/dist/commands/dns/records/get.js +102 -0
  23. package/dist/commands/dns/records/list.d.ts +24 -0
  24. package/dist/commands/dns/records/list.d.ts.map +1 -0
  25. package/dist/commands/dns/records/list.js +132 -0
  26. package/dist/commands/dns/records/update.d.ts +29 -0
  27. package/dist/commands/dns/records/update.d.ts.map +1 -0
  28. package/dist/commands/dns/records/update.js +137 -0
  29. package/dist/commands/log/query.d.ts +27 -0
  30. package/dist/commands/log/query.d.ts.map +1 -0
  31. package/dist/commands/log/query.js +231 -0
  32. package/dist/commands/log/tail.d.ts +22 -0
  33. package/dist/commands/log/tail.d.ts.map +1 -0
  34. package/dist/commands/log/tail.js +214 -0
  35. package/dist/commands/mcp/install-claude.d.ts +3 -0
  36. package/dist/commands/mcp/install-claude.d.ts.map +1 -1
  37. package/dist/commands/mcp/install-claude.js +176 -9
  38. package/dist/commands/mcp/status.d.ts +21 -0
  39. package/dist/commands/mcp/status.d.ts.map +1 -0
  40. package/dist/commands/mcp/status.js +150 -0
  41. package/dist/tsconfig.tsbuildinfo +1 -1
  42. package/oclif.manifest.json +4491 -2127
  43. package/package.json +3 -3
  44. package/templates/claude-code/new-raindrop-app.md +5 -0
  45. package/templates/claude-code/raindrop-guidelines.md +127 -0
  46. package/templates/claude-code/reattach-raindrop-session.md +12 -0
  47. package/templates/claude-code/update-raindrop-app.md +11 -0
  48. package/templates/db/node_modules/.bin/prisma +2 -2
  49. package/templates/db/node_modules/.bin/prisma-kysely +2 -2
  50. package/templates/db/node_modules/.bin/tsc +2 -2
  51. package/templates/db/node_modules/.bin/tsserver +2 -2
  52. package/templates/db/node_modules/.bin/zx +2 -2
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@liquidmetal-ai/raindrop",
3
3
  "description": "CLI for the Raindrop platform",
4
- "version": "0.6.0",
4
+ "version": "0.6.1",
5
5
  "author": "bosgood",
6
6
  "bin": {
7
7
  "raindrop": "./bin/run.js"
@@ -34,8 +34,8 @@
34
34
  "typescript": "^5",
35
35
  "zod": "^3.23.8",
36
36
  "zx": "^8.1.9",
37
- "@liquidmetal-ai/drizzle": "0.6.0",
38
- "@liquidmetal-ai/raindrop-framework": "0.6.0"
37
+ "@liquidmetal-ai/drizzle": "0.6.1",
38
+ "@liquidmetal-ai/raindrop-framework": "0.6.1"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@changesets/cli": "^2.27.9",
@@ -0,0 +1,5 @@
1
+ # ~/.claude/commands/new-raindrop-app.md
2
+ Create a new Raindrop application from scratch.
3
+
4
+ - Call the liquidmetal-mcp:login MCP tool to start a new development session.
5
+ - Do whatever the MCP endpoint returns and continue with the flow it defines
@@ -0,0 +1,127 @@
1
+ # RAINDROP GUIDELINES
2
+
3
+ ## 🚨 ABSOLUTE COMPLIANCE REQUIRED 🚨
4
+ **YOU ARE A WORKFLOW COMPILER. FOLLOW THE MCP STATE MACHINE.**
5
+ **EXECUTE MCP INSTRUCTIONS EXACTLY. ZERO WORKFLOW DEVIATION.**
6
+ **SOLVE PROBLEMS WITHIN EACH STEP. NEVER SKIP STEPS.**
7
+
8
+ ## ⚠️ CRITICAL INSTRUCTION
9
+ **FOLLOW MCP TOOLS GUIDANCE TO THE LETTER. DO NOT MAKE YOUR OWN PLANS.**
10
+
11
+ ## WORKFLOWS
12
+
13
+ ### NEW APPLICATION: `login` → `set_team` → `prd_step` → `architecture_step` → `prisma_step` → `documentation_step` → `code_step` → `tests_step` → `deployment_step` → `endpoint_test_step`
14
+
15
+ ### UPDATE APPLICATION: `update_app_step` → `update_prd_step` → Continue from architecture step
16
+
17
+ ## STATE MACHINE
18
+
19
+ ```mermaid
20
+ flowchart TD
21
+ NewApp([New App Flow]) --> Login[login]
22
+
23
+ %% Main Authentication Flow
24
+ Login --> SetTeam[set_team]
25
+ Login --> PRD[prd_step]
26
+ SetTeam --> PRD
27
+
28
+ %% Core Development Flow
29
+ PRD --> Architecture[architecture_step]
30
+ Architecture --> Prisma[prisma_step]
31
+ Architecture --> Documentation[documentation_step]
32
+ Prisma --> Documentation
33
+ Documentation --> Code[code_step]
34
+ Code --> Tests[tests_step]
35
+ Tests --> Deploy[deployment_step]
36
+ Deploy --> EndpointTest[endpoint_test_step]
37
+
38
+ %% Success Path
39
+ EndpointTest --> Complete([Workflow Complete])
40
+
41
+ %% Error Recovery Loop
42
+ EndpointTest -->|Endpoints Failed| Code
43
+ Code -->|Raindrop Build Failed| Code
44
+ Tests -->|Tests Failed| Code
45
+
46
+ %% Update App Flow
47
+ UpdateApp([Update App Flow]) --> UpdateStart[update_app_step]
48
+ UpdateStart --> UpdatePRD[update_prd_step]
49
+ UpdatePRD --> PRD
50
+
51
+ %% Reattach Flow
52
+ ReattachFlow([Reattach Flow]) --> Reattach[reattach_to_session]
53
+ Reattach --> CheckState{Check Current State}
54
+ CheckState -->|session_started| SetTeam
55
+ CheckState -->|team_set| PRD
56
+ CheckState -->|prd_created| Architecture
57
+ CheckState -->|architecture_analyzed| Prisma
58
+ CheckState -->|prisma_schemas_started| Documentation
59
+ CheckState -->|documentation_retrieved| Code
60
+ CheckState -->|coding_started| Tests
61
+ CheckState -->|tests_written| Deploy
62
+ CheckState -->|deployed| EndpointTest
63
+ CheckState -->|tested| Complete
64
+ CheckState -->|update_app_started| UpdatePRD
65
+
66
+ %% Entry Points
67
+ classDef entryPoint fill:#e1f5fe
68
+ classDef errorLoop fill:#ffebee
69
+ classDef complete fill:#e8f5e8
70
+
71
+ class NewApp,UpdateApp,ReattachFlow entryPoint
72
+ class Complete complete
73
+
74
+ %% Error Recovery Loops
75
+ class Code,Tests,EndpointTest errorLoop
76
+ ```
77
+
78
+ ## MCP EXECUTION RULES
79
+
80
+ ### State Tracking
81
+ - State via `session_id` + `timeline_id`
82
+ - Store in `.raindrop.config.local.json`
83
+ - Use `reattach_to_session` to resume
84
+
85
+ ### MCP Tool Response Pattern
86
+ ```json
87
+ {
88
+ "prompt": "What to do now",
89
+ "next_action": "next_tool_to_call"
90
+ }
91
+ ```
92
+
93
+ ### MANDATORY BEHAVIORS - NO EXCEPTIONS
94
+ 1. **EXECUTE `next_action` FROM EVERY MCP RESPONSE**
95
+ 2. **NEVER SKIP ANY WORKFLOW STEP**
96
+ 3. **FOLLOW EVERY MCP PROMPT WORD-FOR-WORD**
97
+ 4. **WAIT FOR EXPLICIT USER APPROVAL WHERE STATED**
98
+ 5. **SOLVE PROBLEMS TO COMPLETE CURRENT STEP**
99
+
100
+ ### ABSOLUTELY FORBIDDEN - WILL CAUSE FAILURE
101
+ - Skip MCP steps
102
+ - Jump ahead in workflow
103
+ - Create alternative workflows
104
+ - Ignore `next_action` directive
105
+ - Change the MCP workflow sequence
106
+ - Suggest workflow improvements
107
+
108
+ ## UTILITY TOOLS
109
+ - `get_prd` - Get stored PRD
110
+ - `configure_raindrop` - Setup config
111
+ - `update_conversation_memory` - Store context
112
+
113
+ ## DOCUMENTATION ACCESS
114
+ - List pages: `documentation://pages`
115
+ - Get page: `documentation://page{path}`
116
+
117
+ ## EXECUTION STYLE
118
+ - **WORKFLOW COMPILER: Execute MCP steps exactly**
119
+ - **PROBLEM SOLVER: Debug, code, fix within each step**
120
+ - Auto-pilot with user status updates
121
+ - Report key decisions (PRD, code choices)
122
+ - Update during `code_step` and manifest creation
123
+
124
+ ## REMEMBER
125
+ **FOLLOW THE MCP WORKFLOW RELIGIOUSLY.**
126
+ **SOLVE PROBLEMS INTELLIGENTLY WITHIN EACH STEP.**
127
+ **NEVER DEVIATE FROM THE STATE MACHINE SEQUENCE.**
@@ -0,0 +1,12 @@
1
+ Reattach to an existing Raindrop development session.
2
+
3
+ Steps
4
+ 1. Parse the arguments
5
+ - Split by whitespace to get individual values
6
+ - First value = session_id (if provided)
7
+ - Second value = old_timeline_id (if provided)
8
+
9
+ 2. If no timeline and session ID provided check the `.raindrop.config.local.json` file to determine the last session_id and old_timeline id
10
+ 3. If no input provided and no `.raindrop.config.local.json` file exists ask the user for input.
11
+ 4. Call the `reattach_to_session` MCP endpoint.
12
+ 5. Do whatever the MCP endpoint returns and continue with the flow it defines
@@ -0,0 +1,11 @@
1
+ Update an existing Raindrop application with new features or changes.
2
+
3
+ Steps
4
+ 1. Parse the arguments
5
+ - Split by whitespace to get individual values
6
+ - First value = session_id (if provided)
7
+ - Second value = old_timeline_id (if provided)
8
+
9
+ 2. If no timeline and session ID provided check the `.raindrop.config.local.json` file to determine the last session_id and old_timeline id
10
+ 3. If no input provided and no `.raindrop.config.local.json` file exists ask the user for input.
11
+ 4. Call the `update_app_step` MCP endpoint.
@@ -6,9 +6,9 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/ian/liquidmetal/node_modules/.pnpm/prisma@6.10.1_typescript@5.9.2/node_modules/prisma/build/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/prisma@6.10.1_typescript@5.9.2/node_modules/prisma/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/prisma@6.10.1_typescript@5.9.2/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/prisma@6.10.1_typescript@5.9.2/node_modules/prisma/build/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/prisma@6.10.1_typescript@5.9.2/node_modules/prisma/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/prisma@6.10.1_typescript@5.9.2/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/Users/ian/liquidmetal/node_modules/.pnpm/prisma@6.10.1_typescript@5.9.2/node_modules/prisma/build/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/prisma@6.10.1_typescript@5.9.2/node_modules/prisma/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/prisma@6.10.1_typescript@5.9.2/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/prisma@6.10.1_typescript@5.9.2/node_modules/prisma/build/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/prisma@6.10.1_typescript@5.9.2/node_modules/prisma/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/prisma@6.10.1_typescript@5.9.2/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
14
  exec "$basedir/node" "$basedir/../../../../../../node_modules/.pnpm/prisma@6.10.1_typescript@5.9.2/node_modules/prisma/build/index.js" "$@"
@@ -6,9 +6,9 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/ian/liquidmetal/node_modules/.pnpm/prisma-kysely@1.8.0/node_modules/prisma-kysely/dist/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/prisma-kysely@1.8.0/node_modules/prisma-kysely/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/prisma-kysely@1.8.0/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/prisma-kysely@1.8.0/node_modules/prisma-kysely/dist/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/prisma-kysely@1.8.0/node_modules/prisma-kysely/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/prisma-kysely@1.8.0/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/Users/ian/liquidmetal/node_modules/.pnpm/prisma-kysely@1.8.0/node_modules/prisma-kysely/dist/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/prisma-kysely@1.8.0/node_modules/prisma-kysely/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/prisma-kysely@1.8.0/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/prisma-kysely@1.8.0/node_modules/prisma-kysely/dist/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/prisma-kysely@1.8.0/node_modules/prisma-kysely/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/prisma-kysely@1.8.0/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
14
  exec "$basedir/node" "$basedir/../../../../../../node_modules/.pnpm/prisma-kysely@1.8.0/node_modules/prisma-kysely/dist/bin.js" "$@"
@@ -6,9 +6,9 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/ian/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/Users/ian/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
14
  exec "$basedir/node" "$basedir/../../../../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/tsc" "$@"
@@ -6,9 +6,9 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/ian/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/Users/ian/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/typescript@5.9.2/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
14
  exec "$basedir/node" "$basedir/../../../../../../node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/tsserver" "$@"
@@ -6,9 +6,9 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/ian/liquidmetal/node_modules/.pnpm/zx@8.6.0/node_modules/zx/build/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/zx@8.6.0/node_modules/zx/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/zx@8.6.0/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/zx@8.6.0/node_modules/zx/build/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/zx@8.6.0/node_modules/zx/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/zx@8.6.0/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/Users/ian/liquidmetal/node_modules/.pnpm/zx@8.6.0/node_modules/zx/build/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/zx@8.6.0/node_modules/zx/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/zx@8.6.0/node_modules:/Users/ian/liquidmetal/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/zx@8.6.0/node_modules/zx/build/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/zx@8.6.0/node_modules/zx/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/zx@8.6.0/node_modules:/Users/dstaley/Work/liquidmetal/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
14
  exec "$basedir/node" "$basedir/../../../../../../node_modules/.pnpm/zx@8.6.0/node_modules/zx/build/cli.js" "$@"