kangentic 0.5.0 → 0.6.0

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 (2) hide show
  1. package/bin/kangentic.js +24 -4
  2. package/package.json +2 -2
package/bin/kangentic.js CHANGED
@@ -252,7 +252,7 @@ function install(platformInfo, artifactPath) {
252
252
 
253
253
  // --- Launch ---
254
254
 
255
- function launch(platformInfo, targetDir, dataDir) {
255
+ function launch(platformInfo, targetDir, dataDir, extraArgs) {
256
256
  const installPath = getInstallPath(platformInfo);
257
257
 
258
258
  if (!fs.existsSync(installPath)) {
@@ -269,6 +269,9 @@ function launch(platformInfo, targetDir, dataDir) {
269
269
  }
270
270
 
271
271
  const launchArgs = targetDir ? [`--cwd=${targetDir}`] : [];
272
+ if (extraArgs) {
273
+ launchArgs.push(...extraArgs);
274
+ }
272
275
 
273
276
  if (platformInfo.platform === 'win32') {
274
277
  const child = spawn(installPath, launchArgs, {
@@ -353,9 +356,26 @@ async function main() {
353
356
  // Determine target directory (first positional argument, skipping flags and their values)
354
357
  const targetDir = findTargetDir(arguments_);
355
358
 
359
+ // Check for --demo flag
360
+ const isDemo = arguments_.includes('--demo');
361
+
356
362
  // Resolve data directory: env var takes priority, then --data-dir flag
357
363
  const dataDirFlag = parseDataDir(arguments_);
358
- const dataDir = process.env.KANGENTIC_DATA_DIR || dataDirFlag;
364
+ let dataDir = process.env.KANGENTIC_DATA_DIR || dataDirFlag;
365
+
366
+ // Demo mode: use an ephemeral temp data directory
367
+ if (isDemo && !dataDir) {
368
+ dataDir = path.join(os.tmpdir(), `kangentic-demo-${Date.now()}`);
369
+ fs.mkdirSync(dataDir, { recursive: true });
370
+ console.log('Demo mode: using temporary data directory');
371
+ console.log(` ${dataDir}`);
372
+ }
373
+
374
+ // Extra args to pass to the launched app
375
+ const extraArgs = [];
376
+ if (isDemo) {
377
+ extraArgs.push('--ephemeral');
378
+ }
359
379
 
360
380
  // Detect platform
361
381
  const platformInfo = getPlatformInfo();
@@ -368,7 +388,7 @@ async function main() {
368
388
  // Check if already installed
369
389
  if (isInstalled(platformInfo)) {
370
390
  console.log(`Kangentic v${VERSION} is already installed.`);
371
- launch(platformInfo, targetDir, dataDir);
391
+ launch(platformInfo, targetDir, dataDir, extraArgs);
372
392
  return;
373
393
  }
374
394
 
@@ -406,7 +426,7 @@ async function main() {
406
426
  }
407
427
 
408
428
  // Launch
409
- launch(platformInfo, targetDir, dataDir);
429
+ launch(platformInfo, targetDir, dataDir, extraArgs);
410
430
  }
411
431
 
412
432
  main().catch((error) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kangentic",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Install and launch Kangentic -- visual agent orchestration for Claude Code",
5
5
  "bin": {
6
6
  "kangentic": "./bin/kangentic.js"
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "license": "AGPL-3.0-only",
23
23
  "engines": {
24
- "node": ">=18"
24
+ "node": ">=20"
25
25
  },
26
26
  "files": [
27
27
  "bin/",