@conceptcraft/mindframes 0.1.3 → 0.1.4
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/dist/index.js +63 -52
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1255,11 +1255,13 @@ var BRANDS = {
|
|
|
1255
1255
|
conceptcraft: {
|
|
1256
1256
|
id: "conceptcraft",
|
|
1257
1257
|
name: "conceptcraft",
|
|
1258
|
-
displayName: "
|
|
1259
|
-
description: "CLI tool for
|
|
1258
|
+
displayName: "ConceptCraft",
|
|
1259
|
+
description: "CLI tool for ConceptCraft presentation generation",
|
|
1260
1260
|
commands: ["cc", "conceptcraft"],
|
|
1261
1261
|
apiUrl: "https://conceptcraft.ai",
|
|
1262
|
-
docsUrl: "https://docs.conceptcraft.ai"
|
|
1262
|
+
docsUrl: "https://docs.conceptcraft.ai",
|
|
1263
|
+
packageName: "@conceptcraft/cli",
|
|
1264
|
+
configDir: ".conceptcraft"
|
|
1263
1265
|
},
|
|
1264
1266
|
mindframes: {
|
|
1265
1267
|
id: "mindframes",
|
|
@@ -1268,7 +1270,9 @@ var BRANDS = {
|
|
|
1268
1270
|
description: "CLI tool for Mindframes presentation generation",
|
|
1269
1271
|
commands: ["mf", "mindframes"],
|
|
1270
1272
|
apiUrl: "https://mindframes.app",
|
|
1271
|
-
docsUrl: "https://docs.mindframes.app"
|
|
1273
|
+
docsUrl: "https://docs.mindframes.app",
|
|
1274
|
+
packageName: "@mindframes/cli",
|
|
1275
|
+
configDir: ".mindframes"
|
|
1272
1276
|
}
|
|
1273
1277
|
};
|
|
1274
1278
|
var COMMAND_TO_BRAND = {
|
|
@@ -2981,12 +2985,17 @@ import chalk12 from "chalk";
|
|
|
2981
2985
|
import { mkdirSync, writeFileSync, existsSync as existsSync2 } from "fs";
|
|
2982
2986
|
import { join } from "path";
|
|
2983
2987
|
import { homedir } from "os";
|
|
2984
|
-
|
|
2985
|
-
name
|
|
2988
|
+
function generateSkillContent(b) {
|
|
2989
|
+
const cmd2 = b.name;
|
|
2990
|
+
const pkg = b.packageName;
|
|
2991
|
+
const url = b.apiUrl;
|
|
2992
|
+
const name = b.displayName;
|
|
2993
|
+
return `---
|
|
2994
|
+
name: ${cmd2}
|
|
2986
2995
|
description: Create AI-powered presentations from code, documentation, files, or any content. Use when the user wants to generate slides, presentations, or decks about their project, codebase, research, or ideas.
|
|
2987
2996
|
---
|
|
2988
2997
|
|
|
2989
|
-
#
|
|
2998
|
+
# ${name} CLI
|
|
2990
2999
|
|
|
2991
3000
|
Create professional presentations directly from your terminal. The CLI generates AI-powered slides from any context you provide - text, files, URLs, or piped content.
|
|
2992
3001
|
|
|
@@ -2994,16 +3003,16 @@ Create professional presentations directly from your terminal. The CLI generates
|
|
|
2994
3003
|
|
|
2995
3004
|
\`\`\`bash
|
|
2996
3005
|
# Install globally
|
|
2997
|
-
npm install -g
|
|
3006
|
+
npm install -g ${pkg}
|
|
2998
3007
|
|
|
2999
|
-
# Configure API key (get from
|
|
3000
|
-
|
|
3008
|
+
# Configure API key (get from ${url}/settings/api-keys)
|
|
3009
|
+
${cmd2} config init
|
|
3001
3010
|
\`\`\`
|
|
3002
3011
|
|
|
3003
3012
|
## Core Workflow
|
|
3004
3013
|
|
|
3005
3014
|
1. **Gather context** - Read relevant files, code, or documentation
|
|
3006
|
-
2. **Create presentation** - Pass context to
|
|
3015
|
+
2. **Create presentation** - Pass context to \`${cmd2} create\`
|
|
3007
3016
|
3. **Share URL** - Return the presentation link to the user
|
|
3008
3017
|
|
|
3009
3018
|
## Commands
|
|
@@ -3014,22 +3023,22 @@ Context is **required**. Provide it via one of these methods:
|
|
|
3014
3023
|
|
|
3015
3024
|
\`\`\`bash
|
|
3016
3025
|
# Upload files (PDFs, PPTX, images, docs)
|
|
3017
|
-
|
|
3026
|
+
${cmd2} create "Product Overview" --file ./deck.pptx --file ./logo.png
|
|
3018
3027
|
|
|
3019
3028
|
# Direct text context
|
|
3020
|
-
|
|
3029
|
+
${cmd2} create "Topic Title" --context "Key points, data, facts..."
|
|
3021
3030
|
|
|
3022
3031
|
# From a text file
|
|
3023
|
-
|
|
3032
|
+
${cmd2} create "Topic Title" --context-file ./notes.md
|
|
3024
3033
|
|
|
3025
3034
|
# Pipe content (auto-detected)
|
|
3026
|
-
cat README.md |
|
|
3035
|
+
cat README.md | ${cmd2} create "Project Overview"
|
|
3027
3036
|
|
|
3028
3037
|
# From URLs (scraped automatically)
|
|
3029
|
-
|
|
3038
|
+
${cmd2} create "Competitor Analysis" --sources https://example.com/report
|
|
3030
3039
|
|
|
3031
3040
|
# Combine multiple sources
|
|
3032
|
-
cat src/auth/*.ts |
|
|
3041
|
+
cat src/auth/*.ts | ${cmd2} create "Auth System" \\
|
|
3033
3042
|
--file ./architecture.png \\
|
|
3034
3043
|
--context "Focus on security patterns"
|
|
3035
3044
|
\`\`\`
|
|
@@ -3054,28 +3063,28 @@ cat src/auth/*.ts | conceptcraft create "Auth System" \\
|
|
|
3054
3063
|
|
|
3055
3064
|
\`\`\`bash
|
|
3056
3065
|
# Check authentication
|
|
3057
|
-
|
|
3066
|
+
${cmd2} whoami
|
|
3058
3067
|
|
|
3059
3068
|
# List presentations
|
|
3060
|
-
|
|
3061
|
-
|
|
3069
|
+
${cmd2} list
|
|
3070
|
+
${cmd2} list --format json
|
|
3062
3071
|
|
|
3063
3072
|
# Get presentation details
|
|
3064
|
-
|
|
3073
|
+
${cmd2} get <id-or-slug>
|
|
3065
3074
|
|
|
3066
3075
|
# Export to ZIP
|
|
3067
|
-
|
|
3076
|
+
${cmd2} export <id-or-slug> -o presentation.zip
|
|
3068
3077
|
|
|
3069
3078
|
# Import presentation
|
|
3070
|
-
|
|
3079
|
+
${cmd2} import ./presentation.zip
|
|
3071
3080
|
|
|
3072
3081
|
# Manage branding
|
|
3073
|
-
|
|
3074
|
-
|
|
3082
|
+
${cmd2} branding list
|
|
3083
|
+
${cmd2} branding extract https://company.com
|
|
3075
3084
|
|
|
3076
3085
|
# Install/manage this skill
|
|
3077
|
-
|
|
3078
|
-
|
|
3086
|
+
${cmd2} skill install
|
|
3087
|
+
${cmd2} skill show
|
|
3079
3088
|
\`\`\`
|
|
3080
3089
|
|
|
3081
3090
|
## Examples
|
|
@@ -3084,7 +3093,7 @@ conceptcraft skill show
|
|
|
3084
3093
|
|
|
3085
3094
|
\`\`\`bash
|
|
3086
3095
|
# Read the relevant files and create presentation
|
|
3087
|
-
cat src/lib/auth.ts src/lib/session.ts |
|
|
3096
|
+
cat src/lib/auth.ts src/lib/session.ts | ${cmd2} create "Authentication System" \\
|
|
3088
3097
|
--slides 8 --tone educational --audience "New developers" \\
|
|
3089
3098
|
--goal train
|
|
3090
3099
|
\`\`\`
|
|
@@ -3092,7 +3101,7 @@ cat src/lib/auth.ts src/lib/session.ts | conceptcraft create "Authentication Sys
|
|
|
3092
3101
|
### Technical Documentation with Diagrams
|
|
3093
3102
|
|
|
3094
3103
|
\`\`\`bash
|
|
3095
|
-
|
|
3104
|
+
${cmd2} create "API Reference" \\
|
|
3096
3105
|
--file ./docs/api.md \\
|
|
3097
3106
|
--file ./diagrams/architecture.png \\
|
|
3098
3107
|
--mode best --amount detailed \\
|
|
@@ -3102,14 +3111,14 @@ conceptcraft create "API Reference" \\
|
|
|
3102
3111
|
### Quick Project Overview
|
|
3103
3112
|
|
|
3104
3113
|
\`\`\`bash
|
|
3105
|
-
cat README.md package.json |
|
|
3114
|
+
cat README.md package.json | ${cmd2} create "Project Introduction" \\
|
|
3106
3115
|
-m instant --slides 5
|
|
3107
3116
|
\`\`\`
|
|
3108
3117
|
|
|
3109
3118
|
### Sales Deck from Existing Presentation
|
|
3110
3119
|
|
|
3111
3120
|
\`\`\`bash
|
|
3112
|
-
|
|
3121
|
+
${cmd2} create "Product Demo" \\
|
|
3113
3122
|
--file ./existing-deck.pptx \\
|
|
3114
3123
|
--goal persuade \\
|
|
3115
3124
|
--audience "Enterprise buyers" \\
|
|
@@ -3119,7 +3128,7 @@ conceptcraft create "Product Demo" \\
|
|
|
3119
3128
|
### Research Presentation
|
|
3120
3129
|
|
|
3121
3130
|
\`\`\`bash
|
|
3122
|
-
|
|
3131
|
+
${cmd2} create "Market Analysis" \\
|
|
3123
3132
|
--file ./research.pdf \\
|
|
3124
3133
|
--sources https://report.com/industry.pdf \\
|
|
3125
3134
|
--tone formal --audience "Executive team" \\
|
|
@@ -3136,12 +3145,12 @@ Successful creation returns:
|
|
|
3136
3145
|
Slides: 8
|
|
3137
3146
|
Generated in: 45s \xB7 12,500 tokens
|
|
3138
3147
|
|
|
3139
|
-
Open:
|
|
3148
|
+
Open: ${url}/en/view/presentations/auth-system-v1-abc123
|
|
3140
3149
|
\`\`\`
|
|
3141
3150
|
|
|
3142
3151
|
For scripting, use JSON output:
|
|
3143
3152
|
\`\`\`bash
|
|
3144
|
-
URL=$(
|
|
3153
|
+
URL=$(${cmd2} create "Demo" --context "..." -o json | jq -r '.viewUrl')
|
|
3145
3154
|
\`\`\`
|
|
3146
3155
|
|
|
3147
3156
|
## Best Practices
|
|
@@ -3163,15 +3172,16 @@ URL=$(conceptcraft create "Demo" --context "..." -o json | jq -r '.viewUrl')
|
|
|
3163
3172
|
|
|
3164
3173
|
\`\`\`bash
|
|
3165
3174
|
# Check if authenticated
|
|
3166
|
-
|
|
3175
|
+
${cmd2} whoami
|
|
3167
3176
|
|
|
3168
3177
|
# Verify API key
|
|
3169
|
-
|
|
3178
|
+
${cmd2} config show
|
|
3170
3179
|
|
|
3171
3180
|
# Debug mode
|
|
3172
|
-
|
|
3181
|
+
${cmd2} create "Test" --context "test" --debug
|
|
3173
3182
|
\`\`\`
|
|
3174
3183
|
`;
|
|
3184
|
+
}
|
|
3175
3185
|
var EDITORS = [
|
|
3176
3186
|
{ name: "Claude Code", dir: ".claude" },
|
|
3177
3187
|
{ name: "Cursor", dir: ".cursor" },
|
|
@@ -3180,29 +3190,30 @@ var EDITORS = [
|
|
|
3180
3190
|
{ name: "Windsurf", dir: ".windsurf" },
|
|
3181
3191
|
{ name: "Agent", dir: ".agent" }
|
|
3182
3192
|
];
|
|
3183
|
-
var skillCommand = new Command14("skill").description(
|
|
3193
|
+
var skillCommand = new Command14("skill").description(`Manage ${brand.displayName} skill for AI coding assistants`).addHelpText(
|
|
3184
3194
|
"after",
|
|
3185
3195
|
`
|
|
3186
3196
|
${chalk12.bold("Examples:")}
|
|
3187
3197
|
${chalk12.gray("# Install skill for all detected editors")}
|
|
3188
|
-
$
|
|
3198
|
+
$ ${brand.name} skill install
|
|
3189
3199
|
|
|
3190
3200
|
${chalk12.gray("# Install to specific directory")}
|
|
3191
|
-
$
|
|
3201
|
+
$ ${brand.name} skill install --dir ~/.claude
|
|
3192
3202
|
|
|
3193
3203
|
${chalk12.gray("# Show skill content")}
|
|
3194
|
-
$
|
|
3204
|
+
$ ${brand.name} skill show
|
|
3195
3205
|
`
|
|
3196
3206
|
);
|
|
3197
|
-
skillCommand.command("install").description(
|
|
3207
|
+
skillCommand.command("install").description(`Install the ${brand.displayName} skill for AI coding assistants`).option("-d, --dir <path>", "Install to specific directory").option("-g, --global", "Install globally (to home directory)", true).option("-l, --local", "Install locally (to current directory)").option("-f, --force", "Overwrite existing skill files").action(async (options) => {
|
|
3198
3208
|
const installed = [];
|
|
3199
3209
|
const skipped = [];
|
|
3200
3210
|
const errors = [];
|
|
3201
3211
|
const baseDir = options.local ? process.cwd() : homedir();
|
|
3212
|
+
const skillContent = generateSkillContent(brand);
|
|
3202
3213
|
if (options.dir) {
|
|
3203
|
-
const skillPath = join(options.dir, "skills",
|
|
3214
|
+
const skillPath = join(options.dir, "skills", brand.name);
|
|
3204
3215
|
try {
|
|
3205
|
-
installSkill(skillPath, options.force);
|
|
3216
|
+
installSkill(skillPath, skillContent, options.force);
|
|
3206
3217
|
installed.push(options.dir);
|
|
3207
3218
|
} catch (err) {
|
|
3208
3219
|
errors.push(`${options.dir}: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -3210,7 +3221,7 @@ skillCommand.command("install").description("Install the ConceptCraft skill for
|
|
|
3210
3221
|
} else {
|
|
3211
3222
|
for (const editor of EDITORS) {
|
|
3212
3223
|
const editorDir = join(baseDir, editor.dir);
|
|
3213
|
-
const skillPath = join(editorDir, "skills",
|
|
3224
|
+
const skillPath = join(editorDir, "skills", brand.name);
|
|
3214
3225
|
const skillFile = join(skillPath, "SKILL.md");
|
|
3215
3226
|
if (!existsSync2(editorDir)) {
|
|
3216
3227
|
continue;
|
|
@@ -3220,7 +3231,7 @@ skillCommand.command("install").description("Install the ConceptCraft skill for
|
|
|
3220
3231
|
continue;
|
|
3221
3232
|
}
|
|
3222
3233
|
try {
|
|
3223
|
-
installSkill(skillPath, options.force);
|
|
3234
|
+
installSkill(skillPath, skillContent, options.force);
|
|
3224
3235
|
installed.push(editor.name);
|
|
3225
3236
|
} catch (err) {
|
|
3226
3237
|
errors.push(`${editor.name}: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -3253,14 +3264,14 @@ skillCommand.command("install").description("Install the ConceptCraft skill for
|
|
|
3253
3264
|
console.log();
|
|
3254
3265
|
});
|
|
3255
3266
|
skillCommand.command("show").description("Display the skill content").action(() => {
|
|
3256
|
-
console.log(
|
|
3267
|
+
console.log(generateSkillContent(brand));
|
|
3257
3268
|
});
|
|
3258
|
-
skillCommand.command("uninstall").description(
|
|
3269
|
+
skillCommand.command("uninstall").description(`Remove the ${brand.displayName} skill from AI coding assistants`).option("-g, --global", "Uninstall globally (from home directory)", true).option("-l, --local", "Uninstall locally (from current directory)").action(async (options) => {
|
|
3259
3270
|
const { rmSync } = await import("fs");
|
|
3260
3271
|
const removed = [];
|
|
3261
3272
|
const baseDir = options.local ? process.cwd() : homedir();
|
|
3262
3273
|
for (const editor of EDITORS) {
|
|
3263
|
-
const skillPath = join(baseDir, editor.dir, "skills",
|
|
3274
|
+
const skillPath = join(baseDir, editor.dir, "skills", brand.name);
|
|
3264
3275
|
if (existsSync2(skillPath)) {
|
|
3265
3276
|
try {
|
|
3266
3277
|
rmSync(skillPath, { recursive: true });
|
|
@@ -3278,14 +3289,14 @@ skillCommand.command("uninstall").description("Remove the ConceptCraft skill fro
|
|
|
3278
3289
|
}
|
|
3279
3290
|
console.log();
|
|
3280
3291
|
});
|
|
3281
|
-
function installSkill(skillPath, force) {
|
|
3292
|
+
function installSkill(skillPath, content, force) {
|
|
3282
3293
|
const skillFile = join(skillPath, "SKILL.md");
|
|
3283
3294
|
mkdirSync(skillPath, { recursive: true });
|
|
3284
|
-
writeFileSync(skillFile,
|
|
3295
|
+
writeFileSync(skillFile, content, "utf-8");
|
|
3285
3296
|
}
|
|
3286
3297
|
|
|
3287
3298
|
// src/index.ts
|
|
3288
|
-
var VERSION = "0.1.
|
|
3299
|
+
var VERSION = "0.1.4";
|
|
3289
3300
|
var program = new Command15();
|
|
3290
3301
|
var cmdName = brand.commands[0];
|
|
3291
3302
|
program.name(cmdName).description(brand.description).version(VERSION, "-v, --version", "Show version number").option("--debug", "Enable debug logging").option("--no-color", "Disable colored output").configureOutput({
|