showpane 0.4.14 → 0.4.16
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/bundle/meta/scaffold-manifest.json +8 -8
- package/bundle/scaffold/VERSION +1 -1
- package/bundle/scaffold/prisma/seed.ts +40 -35
- package/bundle/scaffold/src/app/(portal)/client/example/example-client.tsx +1 -2
- package/bundle/scaffold/src/app/(portal)/client/page.tsx +5 -4
- package/bundle/scaffold/src/app/page.tsx +2 -2
- package/bundle/scaffold/src/components/portal-shell.tsx +1 -1
- package/bundle/toolchain/CLI_VERSION +1 -1
- package/bundle/toolchain/VERSION +1 -1
- package/bundle/toolchain/skills/VERSION +1 -1
- package/bundle/toolchain/skills/portal-analytics/SKILL.md +9 -12
- package/bundle/toolchain/skills/portal-analytics/SKILL.md.tmpl +4 -4
- package/bundle/toolchain/skills/portal-create/SKILL.md +13 -16
- package/bundle/toolchain/skills/portal-create/SKILL.md.tmpl +8 -8
- package/bundle/toolchain/skills/portal-credentials/SKILL.md +15 -18
- package/bundle/toolchain/skills/portal-credentials/SKILL.md.tmpl +10 -10
- package/bundle/toolchain/skills/portal-delete/SKILL.md +14 -17
- package/bundle/toolchain/skills/portal-delete/SKILL.md.tmpl +9 -9
- package/bundle/toolchain/skills/portal-deploy/SKILL.md +5 -8
- package/bundle/toolchain/skills/portal-dev/SKILL.md +10 -13
- package/bundle/toolchain/skills/portal-dev/SKILL.md.tmpl +5 -5
- package/bundle/toolchain/skills/portal-list/SKILL.md +15 -18
- package/bundle/toolchain/skills/portal-list/SKILL.md.tmpl +10 -10
- package/bundle/toolchain/skills/portal-onboard/SKILL.md +50 -30
- package/bundle/toolchain/skills/portal-onboard/SKILL.md.tmpl +46 -23
- package/bundle/toolchain/skills/portal-preview/SKILL.md +16 -19
- package/bundle/toolchain/skills/portal-preview/SKILL.md.tmpl +11 -11
- package/bundle/toolchain/skills/portal-setup/SKILL.md +15 -13
- package/bundle/toolchain/skills/portal-setup/SKILL.md.tmpl +11 -6
- package/bundle/toolchain/skills/portal-share/SKILL.md +17 -20
- package/bundle/toolchain/skills/portal-share/SKILL.md.tmpl +12 -12
- package/bundle/toolchain/skills/portal-status/SKILL.md +9 -12
- package/bundle/toolchain/skills/portal-status/SKILL.md.tmpl +4 -4
- package/bundle/toolchain/skills/portal-update/SKILL.md +9 -12
- package/bundle/toolchain/skills/portal-update/SKILL.md.tmpl +4 -4
- package/bundle/toolchain/skills/portal-upgrade/SKILL.md +6 -9
- package/bundle/toolchain/skills/portal-upgrade/SKILL.md.tmpl +1 -1
- package/bundle/toolchain/skills/portal-verify/SKILL.md +6 -9
- package/bundle/toolchain/skills/portal-verify/SKILL.md.tmpl +1 -1
- package/bundle/toolchain/skills/shared/runtime-principles.md +4 -4
- package/bundle/toolchain/templates/sales-followup/sales-followup-client.tsx +1 -1
- package/dist/index.js +28 -5
- package/package.json +3 -3
|
@@ -15,7 +15,7 @@ SHOWPANE_HOME="$HOME/.showpane"
|
|
|
15
15
|
SHOWPANE_BIN="$SHOWPANE_HOME/bin"
|
|
16
16
|
CONFIG="$SHOWPANE_HOME/config.json"
|
|
17
17
|
if [ ! -f "$CONFIG" ]; then
|
|
18
|
-
echo "Showpane not configured. Run /portal
|
|
18
|
+
echo "Showpane not configured. Run /portal-setup first."
|
|
19
19
|
exit 1
|
|
20
20
|
fi
|
|
21
21
|
|
|
@@ -68,16 +68,13 @@ echo "TEL_PROMPTED: $TEL_PROMPTED"
|
|
|
68
68
|
|
|
69
69
|
If output shows `JUST_UPGRADED <from> <to>`, tell the user Showpane was just upgraded and continue.
|
|
70
70
|
|
|
71
|
-
If output shows `UPGRADE_AVAILABLE <old> <new>`, tell the user a newer Showpane toolchain is available and recommend `/portal
|
|
71
|
+
If output shows `UPGRADE_AVAILABLE <old> <new>`, tell the user a newer Showpane toolchain is available and recommend `/portal-upgrade`.
|
|
72
72
|
|
|
73
|
-
If `TEL_PROMPTED` is `no`,
|
|
73
|
+
If `TEL_PROMPTED` is `no`, default telemetry to `anonymous` without interrupting the flow. Do not mention telemetry unless the user asks.
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
- off — local analytics only, no remote sync
|
|
77
|
-
|
|
78
|
-
After the user chooses, run:
|
|
75
|
+
Run:
|
|
79
76
|
```bash
|
|
80
|
-
"$SHOWPANE_BIN/showpane-config" set telemetry
|
|
77
|
+
"$SHOWPANE_BIN/showpane-config" set telemetry anonymous
|
|
81
78
|
touch "$SHOWPANE_HOME/.telemetry-prompted"
|
|
82
79
|
```
|
|
83
80
|
|
|
@@ -118,7 +115,7 @@ If the org has zero portals, display:
|
|
|
118
115
|
```
|
|
119
116
|
SHOWPANE STATUS DASHBOARD
|
|
120
117
|
════════════════════════════════════════════════════════════
|
|
121
|
-
No portals yet. Run /portal
|
|
118
|
+
No portals yet. Run /portal-create to get started.
|
|
122
119
|
════════════════════════════════════════════════════════════
|
|
123
120
|
```
|
|
124
121
|
|
|
@@ -211,11 +208,11 @@ NEEDS ATTENTION
|
|
|
211
208
|
Guidelines for suggestions:
|
|
212
209
|
|
|
213
210
|
- **No views, has credentials**: "Check if credentials were shared with the client."
|
|
214
|
-
- **No views, no credentials**: "Set up credentials with /portal
|
|
211
|
+
- **No views, no credentials**: "Set up credentials with /portal-credentials <slug> and publish with /portal-deploy before sharing externally."
|
|
215
212
|
- **Stale content (> 90 days)**: "Content last updated X months ago. Consider refreshing."
|
|
216
213
|
- **No files**: "Add documents to increase engagement."
|
|
217
214
|
- **Declining activity (had views before, none now)**: "Activity has dropped off. Consider a follow-up."
|
|
218
|
-
- **Old credentials (> 90 days)**: "Credentials are X months old. Consider rotating with /portal
|
|
215
|
+
- **Old credentials (> 90 days)**: "Credentials are X months old. Consider rotating with /portal-credentials <slug>."
|
|
219
216
|
|
|
220
217
|
Limit to 3 suggestions per portal maximum. Prioritize by impact.
|
|
221
218
|
|
|
@@ -255,7 +252,7 @@ Provide this legend if the user asks what the scores mean or on first use:
|
|
|
255
252
|
|
|
256
253
|
## Dashboard Refresh
|
|
257
254
|
|
|
258
|
-
The status dashboard is a point-in-time snapshot. It does not auto-refresh or watch for changes. If the user wants to monitor portal health over time, suggest running `/portal
|
|
255
|
+
The status dashboard is a point-in-time snapshot. It does not auto-refresh or watch for changes. If the user wants to monitor portal health over time, suggest running `/portal-status` periodically (e.g., weekly) or setting up a scheduled task.
|
|
259
256
|
|
|
260
257
|
If learnings indicate the user runs status checks regularly, track the trend: "Average health this week: 6.2/10 (up from 5.5/10 last week)." This requires comparing against previous status check results stored in learnings.
|
|
261
258
|
|
|
@@ -31,7 +31,7 @@ If the org has zero portals, display:
|
|
|
31
31
|
```
|
|
32
32
|
SHOWPANE STATUS DASHBOARD
|
|
33
33
|
════════════════════════════════════════════════════════════
|
|
34
|
-
No portals yet. Run /portal
|
|
34
|
+
No portals yet. Run /portal-create to get started.
|
|
35
35
|
════════════════════════════════════════════════════════════
|
|
36
36
|
```
|
|
37
37
|
|
|
@@ -124,11 +124,11 @@ NEEDS ATTENTION
|
|
|
124
124
|
Guidelines for suggestions:
|
|
125
125
|
|
|
126
126
|
- **No views, has credentials**: "Check if credentials were shared with the client."
|
|
127
|
-
- **No views, no credentials**: "Set up credentials with /portal
|
|
127
|
+
- **No views, no credentials**: "Set up credentials with /portal-credentials <slug> and publish with /portal-deploy before sharing externally."
|
|
128
128
|
- **Stale content (> 90 days)**: "Content last updated X months ago. Consider refreshing."
|
|
129
129
|
- **No files**: "Add documents to increase engagement."
|
|
130
130
|
- **Declining activity (had views before, none now)**: "Activity has dropped off. Consider a follow-up."
|
|
131
|
-
- **Old credentials (> 90 days)**: "Credentials are X months old. Consider rotating with /portal
|
|
131
|
+
- **Old credentials (> 90 days)**: "Credentials are X months old. Consider rotating with /portal-credentials <slug>."
|
|
132
132
|
|
|
133
133
|
Limit to 3 suggestions per portal maximum. Prioritize by impact.
|
|
134
134
|
|
|
@@ -168,7 +168,7 @@ Provide this legend if the user asks what the scores mean or on first use:
|
|
|
168
168
|
|
|
169
169
|
## Dashboard Refresh
|
|
170
170
|
|
|
171
|
-
The status dashboard is a point-in-time snapshot. It does not auto-refresh or watch for changes. If the user wants to monitor portal health over time, suggest running `/portal
|
|
171
|
+
The status dashboard is a point-in-time snapshot. It does not auto-refresh or watch for changes. If the user wants to monitor portal health over time, suggest running `/portal-status` periodically (e.g., weekly) or setting up a scheduled task.
|
|
172
172
|
|
|
173
173
|
If learnings indicate the user runs status checks regularly, track the trend: "Average health this week: 6.2/10 (up from 5.5/10 last week)." This requires comparing against previous status check results stored in learnings.
|
|
174
174
|
|
|
@@ -15,7 +15,7 @@ SHOWPANE_HOME="$HOME/.showpane"
|
|
|
15
15
|
SHOWPANE_BIN="$SHOWPANE_HOME/bin"
|
|
16
16
|
CONFIG="$SHOWPANE_HOME/config.json"
|
|
17
17
|
if [ ! -f "$CONFIG" ]; then
|
|
18
|
-
echo "Showpane not configured. Run /portal
|
|
18
|
+
echo "Showpane not configured. Run /portal-setup first."
|
|
19
19
|
exit 1
|
|
20
20
|
fi
|
|
21
21
|
|
|
@@ -68,16 +68,13 @@ echo "TEL_PROMPTED: $TEL_PROMPTED"
|
|
|
68
68
|
|
|
69
69
|
If output shows `JUST_UPGRADED <from> <to>`, tell the user Showpane was just upgraded and continue.
|
|
70
70
|
|
|
71
|
-
If output shows `UPGRADE_AVAILABLE <old> <new>`, tell the user a newer Showpane toolchain is available and recommend `/portal
|
|
71
|
+
If output shows `UPGRADE_AVAILABLE <old> <new>`, tell the user a newer Showpane toolchain is available and recommend `/portal-upgrade`.
|
|
72
72
|
|
|
73
|
-
If `TEL_PROMPTED` is `no`,
|
|
73
|
+
If `TEL_PROMPTED` is `no`, default telemetry to `anonymous` without interrupting the flow. Do not mention telemetry unless the user asks.
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
- off — local analytics only, no remote sync
|
|
77
|
-
|
|
78
|
-
After the user chooses, run:
|
|
75
|
+
Run:
|
|
79
76
|
```bash
|
|
80
|
-
"$SHOWPANE_BIN/showpane-config" set telemetry
|
|
77
|
+
"$SHOWPANE_BIN/showpane-config" set telemetry anonymous
|
|
81
78
|
touch "$SHOWPANE_HOME/.telemetry-prompted"
|
|
82
79
|
```
|
|
83
80
|
|
|
@@ -99,7 +96,7 @@ If `skills/shared/platform-constraints.md` exists, read it once near the start o
|
|
|
99
96
|
|
|
100
97
|
### Step 1: Identify the portal to edit
|
|
101
98
|
|
|
102
|
-
If the user provided a slug (e.g., `/portal
|
|
99
|
+
If the user provided a slug (e.g., `/portal-update acme-health`), use it. Otherwise, ask which portal to update.
|
|
103
100
|
|
|
104
101
|
Verify the portal exists by checking for the client component file:
|
|
105
102
|
|
|
@@ -107,7 +104,7 @@ Verify the portal exists by checking for the client component file:
|
|
|
107
104
|
ls "$APP_PATH/src/app/(portal)/client/<slug>/<slug>-client.tsx" 2>/dev/null
|
|
108
105
|
```
|
|
109
106
|
|
|
110
|
-
If the file doesn't exist, inform the user and suggest `/portal
|
|
107
|
+
If the file doesn't exist, inform the user and suggest `/portal-create <slug>` instead. If the slug directory exists but the client file has a different name, list the directory contents to find the correct file.
|
|
111
108
|
|
|
112
109
|
### Step 2: Read the existing portal
|
|
113
110
|
|
|
@@ -220,7 +217,7 @@ Ask the user what they want to change. Common requests and how to handle them:
|
|
|
220
217
|
|
|
221
218
|
### Step 7: Make the edits
|
|
222
219
|
|
|
223
|
-
Apply the changes to the client component file. Follow the same conventions as `/portal
|
|
220
|
+
Apply the changes to the client component file. Follow the same conventions as `/portal-create`:
|
|
224
221
|
|
|
225
222
|
- Cards: `rounded-2xl border bg-white shadow-sm`
|
|
226
223
|
- Card padding: `p-5 sm:p-6`
|
|
@@ -272,7 +269,7 @@ If a specific tab was updated, deep-link to it:
|
|
|
272
269
|
open "http://localhost:3000/client/<slug>#<tab_id>"
|
|
273
270
|
```
|
|
274
271
|
|
|
275
|
-
If not running, suggest starting the dev server with `/portal
|
|
272
|
+
If not running, suggest starting the dev server with `/portal-dev`.
|
|
276
273
|
|
|
277
274
|
### Step 11: Record learning
|
|
278
275
|
|
|
@@ -12,7 +12,7 @@ allowed-tools: [Bash, Read, Write, Edit, Glob, Grep]
|
|
|
12
12
|
|
|
13
13
|
### Step 1: Identify the portal to edit
|
|
14
14
|
|
|
15
|
-
If the user provided a slug (e.g., `/portal
|
|
15
|
+
If the user provided a slug (e.g., `/portal-update acme-health`), use it. Otherwise, ask which portal to update.
|
|
16
16
|
|
|
17
17
|
Verify the portal exists by checking for the client component file:
|
|
18
18
|
|
|
@@ -20,7 +20,7 @@ Verify the portal exists by checking for the client component file:
|
|
|
20
20
|
ls "$APP_PATH/src/app/(portal)/client/<slug>/<slug>-client.tsx" 2>/dev/null
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
If the file doesn't exist, inform the user and suggest `/portal
|
|
23
|
+
If the file doesn't exist, inform the user and suggest `/portal-create <slug>` instead. If the slug directory exists but the client file has a different name, list the directory contents to find the correct file.
|
|
24
24
|
|
|
25
25
|
### Step 2: Read the existing portal
|
|
26
26
|
|
|
@@ -133,7 +133,7 @@ Ask the user what they want to change. Common requests and how to handle them:
|
|
|
133
133
|
|
|
134
134
|
### Step 7: Make the edits
|
|
135
135
|
|
|
136
|
-
Apply the changes to the client component file. Follow the same conventions as `/portal
|
|
136
|
+
Apply the changes to the client component file. Follow the same conventions as `/portal-create`:
|
|
137
137
|
|
|
138
138
|
- Cards: `rounded-2xl border bg-white shadow-sm`
|
|
139
139
|
- Card padding: `p-5 sm:p-6`
|
|
@@ -185,7 +185,7 @@ If a specific tab was updated, deep-link to it:
|
|
|
185
185
|
open "http://localhost:3000/client/<slug>#<tab_id>"
|
|
186
186
|
```
|
|
187
187
|
|
|
188
|
-
If not running, suggest starting the dev server with `/portal
|
|
188
|
+
If not running, suggest starting the dev server with `/portal-dev`.
|
|
189
189
|
|
|
190
190
|
### Step 11: Record learning
|
|
191
191
|
|
|
@@ -15,7 +15,7 @@ SHOWPANE_HOME="$HOME/.showpane"
|
|
|
15
15
|
SHOWPANE_BIN="$SHOWPANE_HOME/bin"
|
|
16
16
|
CONFIG="$SHOWPANE_HOME/config.json"
|
|
17
17
|
if [ ! -f "$CONFIG" ]; then
|
|
18
|
-
echo "Showpane not configured. Run /portal
|
|
18
|
+
echo "Showpane not configured. Run /portal-setup first."
|
|
19
19
|
exit 1
|
|
20
20
|
fi
|
|
21
21
|
|
|
@@ -68,16 +68,13 @@ echo "TEL_PROMPTED: $TEL_PROMPTED"
|
|
|
68
68
|
|
|
69
69
|
If output shows `JUST_UPGRADED <from> <to>`, tell the user Showpane was just upgraded and continue.
|
|
70
70
|
|
|
71
|
-
If output shows `UPGRADE_AVAILABLE <old> <new>`, tell the user a newer Showpane toolchain is available and recommend `/portal
|
|
71
|
+
If output shows `UPGRADE_AVAILABLE <old> <new>`, tell the user a newer Showpane toolchain is available and recommend `/portal-upgrade`.
|
|
72
72
|
|
|
73
|
-
If `TEL_PROMPTED` is `no`,
|
|
73
|
+
If `TEL_PROMPTED` is `no`, default telemetry to `anonymous` without interrupting the flow. Do not mention telemetry unless the user asks.
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
- off — local analytics only, no remote sync
|
|
77
|
-
|
|
78
|
-
After the user chooses, run:
|
|
75
|
+
Run:
|
|
79
76
|
```bash
|
|
80
|
-
"$SHOWPANE_BIN/showpane-config" set telemetry
|
|
77
|
+
"$SHOWPANE_BIN/showpane-config" set telemetry anonymous
|
|
81
78
|
touch "$SHOWPANE_HOME/.telemetry-prompted"
|
|
82
79
|
```
|
|
83
80
|
|
|
@@ -238,7 +235,7 @@ If no changelog exists, the CLI dry-run summary serves as the change summary.
|
|
|
238
235
|
|
|
239
236
|
## Upgrade Frequency
|
|
240
237
|
|
|
241
|
-
There is no auto-upgrade mechanism. The user must explicitly run `/portal
|
|
238
|
+
There is no auto-upgrade mechanism. The user must explicitly run `/portal-upgrade` to check for and apply updates.
|
|
242
239
|
|
|
243
240
|
Suggested upgrade frequency: monthly, or when the user encounters an issue that may have been fixed upstream. The skill does not nag or remind.
|
|
244
241
|
|
|
@@ -151,7 +151,7 @@ If no changelog exists, the CLI dry-run summary serves as the change summary.
|
|
|
151
151
|
|
|
152
152
|
## Upgrade Frequency
|
|
153
153
|
|
|
154
|
-
There is no auto-upgrade mechanism. The user must explicitly run `/portal
|
|
154
|
+
There is no auto-upgrade mechanism. The user must explicitly run `/portal-upgrade` to check for and apply updates.
|
|
155
155
|
|
|
156
156
|
Suggested upgrade frequency: monthly, or when the user encounters an issue that may have been fixed upstream. The skill does not nag or remind.
|
|
157
157
|
|
|
@@ -15,7 +15,7 @@ SHOWPANE_HOME="$HOME/.showpane"
|
|
|
15
15
|
SHOWPANE_BIN="$SHOWPANE_HOME/bin"
|
|
16
16
|
CONFIG="$SHOWPANE_HOME/config.json"
|
|
17
17
|
if [ ! -f "$CONFIG" ]; then
|
|
18
|
-
echo "Showpane not configured. Run /portal
|
|
18
|
+
echo "Showpane not configured. Run /portal-setup first."
|
|
19
19
|
exit 1
|
|
20
20
|
fi
|
|
21
21
|
|
|
@@ -68,16 +68,13 @@ echo "TEL_PROMPTED: $TEL_PROMPTED"
|
|
|
68
68
|
|
|
69
69
|
If output shows `JUST_UPGRADED <from> <to>`, tell the user Showpane was just upgraded and continue.
|
|
70
70
|
|
|
71
|
-
If output shows `UPGRADE_AVAILABLE <old> <new>`, tell the user a newer Showpane toolchain is available and recommend `/portal
|
|
71
|
+
If output shows `UPGRADE_AVAILABLE <old> <new>`, tell the user a newer Showpane toolchain is available and recommend `/portal-upgrade`.
|
|
72
72
|
|
|
73
|
-
If `TEL_PROMPTED` is `no`,
|
|
73
|
+
If `TEL_PROMPTED` is `no`, default telemetry to `anonymous` without interrupting the flow. Do not mention telemetry unless the user asks.
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
- off — local analytics only, no remote sync
|
|
77
|
-
|
|
78
|
-
After the user chooses, run:
|
|
75
|
+
Run:
|
|
79
76
|
```bash
|
|
80
|
-
"$SHOWPANE_BIN/showpane-config" set telemetry
|
|
77
|
+
"$SHOWPANE_BIN/showpane-config" set telemetry anonymous
|
|
81
78
|
touch "$SHOWPANE_HOME/.telemetry-prompted"
|
|
82
79
|
```
|
|
83
80
|
|
|
@@ -103,7 +100,7 @@ Determine the portal URL and check that it responds.
|
|
|
103
100
|
|
|
104
101
|
```bash
|
|
105
102
|
if [ -z "$CLOUD_PORTAL_URL" ] && [ -z "$CLOUD_ORG_SLUG" ]; then
|
|
106
|
-
echo "No hosted portal URL configured. Run /portal
|
|
103
|
+
echo "No hosted portal URL configured. Run /portal-deploy first."
|
|
107
104
|
exit 1
|
|
108
105
|
fi
|
|
109
106
|
PORTAL_URL="${CLOUD_PORTAL_URL:-https://$CLOUD_ORG_SLUG.showpane.com}"
|
|
@@ -16,7 +16,7 @@ Determine the portal URL and check that it responds.
|
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
if [ -z "$CLOUD_PORTAL_URL" ] && [ -z "$CLOUD_ORG_SLUG" ]; then
|
|
19
|
-
echo "No hosted portal URL configured. Run /portal
|
|
19
|
+
echo "No hosted portal URL configured. Run /portal-deploy first."
|
|
20
20
|
exit 1
|
|
21
21
|
fi
|
|
22
22
|
PORTAL_URL="${CLOUD_PORTAL_URL:-https://$CLOUD_ORG_SLUG.showpane.com}"
|
|
@@ -5,11 +5,11 @@ the current user task.
|
|
|
5
5
|
|
|
6
6
|
## Product defaults
|
|
7
7
|
|
|
8
|
-
- The canonical first-run path is `/portal
|
|
9
|
-
- `/portal
|
|
8
|
+
- The canonical first-run path is `/portal-onboard`.
|
|
9
|
+
- `/portal-create` is the faster repeat-user path.
|
|
10
10
|
- Local authoring and local preview come first.
|
|
11
|
-
- External sharing starts with `/portal
|
|
12
|
-
- `/portal
|
|
11
|
+
- External sharing starts with `/portal-deploy`.
|
|
12
|
+
- `/portal-share` is a hosted convenience after publish, not the main first-run path.
|
|
13
13
|
|
|
14
14
|
## Operator guidance
|
|
15
15
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Structure: Overview (welcome + next steps) → Meeting Notes → Documents
|
|
8
8
|
*
|
|
9
9
|
* This file is READ by Claude Code as a reference, not used directly.
|
|
10
|
-
* /portal
|
|
10
|
+
* /portal-create reads this to understand the tab structure and content patterns.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import { type ReactNode } from "react";
|
package/dist/index.js
CHANGED
|
@@ -902,9 +902,14 @@ async function generateLocalDatabase(projectRoot, databaseUrl, verbose) {
|
|
|
902
902
|
await runInstallerCommand("npm run prisma:db-push", projectRoot, env, verbose);
|
|
903
903
|
}
|
|
904
904
|
}
|
|
905
|
-
async function seedProject(projectRoot, databaseUrl, verbose) {
|
|
905
|
+
async function seedProject(projectRoot, databaseUrl, seedOptions = {}, verbose) {
|
|
906
906
|
const env = getInstallerEnv({
|
|
907
|
-
DATABASE_URL: databaseUrl
|
|
907
|
+
DATABASE_URL: databaseUrl,
|
|
908
|
+
...seedOptions.organizationName ? { SHOWPANE_ORG_NAME: seedOptions.organizationName } : {},
|
|
909
|
+
...seedOptions.organizationSlug ? { SHOWPANE_ORG_SLUG: seedOptions.organizationSlug } : {},
|
|
910
|
+
...seedOptions.contactName ? { SHOWPANE_CONTACT_NAME: seedOptions.contactName } : {},
|
|
911
|
+
...seedOptions.contactEmail ? { SHOWPANE_CONTACT_EMAIL: seedOptions.contactEmail } : {},
|
|
912
|
+
...seedOptions.websiteUrl ? { SHOWPANE_WEBSITE_URL: seedOptions.websiteUrl } : {}
|
|
908
913
|
});
|
|
909
914
|
if (verbose === void 0) {
|
|
910
915
|
run("npx tsx prisma/seed.ts", projectRoot, env);
|
|
@@ -987,7 +992,6 @@ function printCreateSuccessCard(projectRoot, url, pathSetup) {
|
|
|
987
992
|
console.log();
|
|
988
993
|
console.log(` ${BOLD}Project:${RESET} ${projectRoot}`);
|
|
989
994
|
console.log(` ${BOLD}App:${RESET} ${url}`);
|
|
990
|
-
console.log(` ${BOLD}Demo:${RESET} example / demo-only-password`);
|
|
991
995
|
console.log();
|
|
992
996
|
console.log(` ${BOLD}Next (in a new terminal window):${RESET}`);
|
|
993
997
|
console.log(` ${DIM}${resumeCommand}${RESET}`);
|
|
@@ -1248,6 +1252,14 @@ async function createProject(args) {
|
|
|
1248
1252
|
error("Company name is required.");
|
|
1249
1253
|
process.exit(1);
|
|
1250
1254
|
}
|
|
1255
|
+
if (!options.yes && process.stdin.isTTY && process.stdout.isTTY) {
|
|
1256
|
+
console.log();
|
|
1257
|
+
blue("Let's get some basic info to set up your account.");
|
|
1258
|
+
console.log();
|
|
1259
|
+
}
|
|
1260
|
+
const contactName = options.yes || !process.stdin.isTTY || !process.stdout.isTTY ? "" : await ask(` ${BOLD}What's your full name?${RESET} `);
|
|
1261
|
+
const contactEmail = options.yes || !process.stdin.isTTY || !process.stdout.isTTY ? "" : await ask(` ${BOLD}What's your email?${RESET} `);
|
|
1262
|
+
const websiteUrl = options.yes || !process.stdin.isTTY || !process.stdout.isTTY ? "" : await ask(` ${BOLD}What's your company website or domain?${RESET} `);
|
|
1251
1263
|
const slug = toSlug(companyName);
|
|
1252
1264
|
const dirName = `showpane-${slug}`;
|
|
1253
1265
|
const projectRoot = resolve(process.cwd(), dirName);
|
|
@@ -1289,7 +1301,18 @@ AUTH_SECRET="${authSecret}"
|
|
|
1289
1301
|
stepStartForCreate("Configuring database", options);
|
|
1290
1302
|
try {
|
|
1291
1303
|
await generateLocalDatabase(projectRoot, databaseUrl, options.verbose);
|
|
1292
|
-
await seedProject(
|
|
1304
|
+
await seedProject(
|
|
1305
|
+
projectRoot,
|
|
1306
|
+
databaseUrl,
|
|
1307
|
+
{
|
|
1308
|
+
organizationName: companyName,
|
|
1309
|
+
organizationSlug: slug,
|
|
1310
|
+
contactName,
|
|
1311
|
+
contactEmail,
|
|
1312
|
+
websiteUrl
|
|
1313
|
+
},
|
|
1314
|
+
options.verbose
|
|
1315
|
+
);
|
|
1293
1316
|
stepSuccessForCreate("Database configured");
|
|
1294
1317
|
} catch (errorLike) {
|
|
1295
1318
|
stepFailureForCreate(
|
|
@@ -1305,7 +1328,7 @@ AUTH_SECRET="${authSecret}"
|
|
|
1305
1328
|
updateWorkspaceFromConfig(config, projectRoot, {
|
|
1306
1329
|
name: dirName,
|
|
1307
1330
|
deployMode: "local",
|
|
1308
|
-
orgSlug:
|
|
1331
|
+
orgSlug: slug
|
|
1309
1332
|
});
|
|
1310
1333
|
writeShowpaneConfig(config);
|
|
1311
1334
|
writeProjectState(
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "showpane",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.16",
|
|
4
4
|
"description": "CLI for Showpane — AI-generated client portals",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"showpane": "
|
|
7
|
+
"showpane": "dist/index.js"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
10
|
"dist",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"license": "AGPL-3.0",
|
|
34
34
|
"repository": {
|
|
35
35
|
"type": "git",
|
|
36
|
-
"url": "https://github.com/twillcocks/showpane.git",
|
|
36
|
+
"url": "git+https://github.com/twillcocks/showpane.git",
|
|
37
37
|
"directory": "packages/cli"
|
|
38
38
|
},
|
|
39
39
|
"homepage": "https://showpane.com",
|