arcanea 3.2.0 → 3.3.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.
package/dist/cli/index.js CHANGED
@@ -2314,6 +2314,10 @@ async function installForPlatform(targetDir, packageRoot, platform, force) {
2314
2314
  await installClaudeCodeSettings(platformPath, force);
2315
2315
  } else if (platform === "cursor") {
2316
2316
  await installCursorRules(targetDir, packageRoot, force);
2317
+ } else if (platform === "codex") {
2318
+ await installCodexConfig(targetDir, packageRoot, force);
2319
+ } else if (platform === "gemini") {
2320
+ await installGeminiConfig(targetDir, packageRoot, force);
2317
2321
  }
2318
2322
  }
2319
2323
  async function installClaudeCodeSettings(platformPath, force) {
@@ -2378,6 +2382,64 @@ ${claudeContent}`;
2378
2382
  }
2379
2383
  }
2380
2384
  }
2385
+ async function installCodexConfig(targetDir, packageRoot, force) {
2386
+ const codexMdPath = join(targetDir, "codex.md");
2387
+ if (!existsSync(codexMdPath) || force) {
2388
+ const claudeMdSource = join(packageRoot, "CLAUDE.md");
2389
+ if (existsSync(claudeMdSource)) {
2390
+ const content = readFileSync(claudeMdSource, "utf-8");
2391
+ const codexMd = [
2392
+ `# Codex Instructions — Generated by Arcanea v${VERSION}`,
2393
+ "",
2394
+ "> These instructions transform Codex into Arcanea, the Creative Intelligence Platform.",
2395
+ "> Agent definitions: `.codex/agents/` | Skills: `.codex/skills/` | Commands: `.codex/commands/`",
2396
+ "",
2397
+ content,
2398
+ "",
2399
+ "## Codex-Specific Notes",
2400
+ "",
2401
+ "- Read agent definitions from `.codex/agents/` for available specialist agents",
2402
+ "- Read skill definitions from `.codex/skills/` for creative and technical skills",
2403
+ "- Read command definitions from `.codex/commands/` for slash commands",
2404
+ "- MCP servers are configured in `.mcp.json`",
2405
+ "- When magic words (ultraworld, ultracode, etc.) are used, read the relevant agent files and apply their instructions",
2406
+ ""
2407
+ ].join(`
2408
+ `);
2409
+ writeFileSync(codexMdPath, codexMd);
2410
+ console.log(import_picocolors.default.green(" ✓ Created codex.md (Arcanea instructions for Codex CLI)"));
2411
+ }
2412
+ }
2413
+ }
2414
+ async function installGeminiConfig(targetDir, packageRoot, force) {
2415
+ const geminiMdPath = join(targetDir, "GEMINI.md");
2416
+ if (!existsSync(geminiMdPath) || force) {
2417
+ const claudeMdSource = join(packageRoot, "CLAUDE.md");
2418
+ if (existsSync(claudeMdSource)) {
2419
+ const content = readFileSync(claudeMdSource, "utf-8");
2420
+ const geminiMd = [
2421
+ `# Gemini Instructions — Generated by Arcanea v${VERSION}`,
2422
+ "",
2423
+ "> These instructions transform Gemini into Arcanea, the Creative Intelligence Platform.",
2424
+ "> Agent definitions: `.gemini/agents/` | Skills: `.gemini/skills/` | Commands: `.gemini/commands/`",
2425
+ "",
2426
+ content,
2427
+ "",
2428
+ "## Gemini-Specific Notes",
2429
+ "",
2430
+ "- Read agent definitions from `.gemini/agents/` for available specialist agents",
2431
+ "- Read skill definitions from `.gemini/skills/` for creative and technical skills",
2432
+ "- Read command definitions from `.gemini/commands/` for slash commands",
2433
+ "- MCP servers are configured in `.mcp.json`",
2434
+ "- When magic words (ultraworld, ultracode, etc.) are used, read the relevant agent files and apply their instructions",
2435
+ ""
2436
+ ].join(`
2437
+ `);
2438
+ writeFileSync(geminiMdPath, geminiMd);
2439
+ console.log(import_picocolors.default.green(" ✓ Created GEMINI.md (Arcanea instructions for Gemini CLI)"));
2440
+ }
2441
+ }
2442
+ }
2381
2443
  async function installMcpConfig(targetDir, force) {
2382
2444
  const mcpPath = join(targetDir, ".mcp.json");
2383
2445
  console.log(import_picocolors.default.blue(`
@@ -2457,7 +2519,7 @@ function printSuccessMessage(platforms) {
2457
2519
  }
2458
2520
 
2459
2521
  // src/index.ts
2460
- var VERSION = "3.2.0";
2522
+ var VERSION = "3.3.0";
2461
2523
  var NAME = "arcanea";
2462
2524
  var ORCHESTRATOR = "Arcanea";
2463
2525
  var defaultConfig = {
@@ -2584,8 +2646,22 @@ var AGENT_TEAMS = {
2584
2646
  };
2585
2647
 
2586
2648
  // src/cli/index.ts
2587
- import { existsSync as existsSync2, readdirSync, readFileSync as readFileSync2 } from "fs";
2649
+ import { existsSync as existsSync2, readdirSync, readFileSync as readFileSync2, statSync } from "fs";
2588
2650
  import { join as join2 } from "path";
2651
+ function countMdFiles(dir) {
2652
+ let count = 0;
2653
+ for (const entry of readdirSync(dir)) {
2654
+ const full = join2(dir, entry);
2655
+ try {
2656
+ if (statSync(full).isDirectory()) {
2657
+ count += countMdFiles(full);
2658
+ } else if (entry.endsWith(".md")) {
2659
+ count++;
2660
+ }
2661
+ } catch {}
2662
+ }
2663
+ return count;
2664
+ }
2589
2665
  var program2 = new Command;
2590
2666
  program2.name(NAME).description(`${ORCHESTRATOR} - The Creative Intelligence Platform`).version(VERSION);
2591
2667
  program2.command("install").description("Initialize Arcanea in current project").option("-f, --force", "Overwrite existing configuration").option("--claude-code", "Install only for Claude Code").option("--opencode", "Install only for OpenCode").option("--codex", "Install only for Codex").option("--gemini", "Install only for Gemini CLI").option("--cursor", "Install only for Cursor").option("--all", "Install for all supported platforms").option("--skip-mcp", "Skip MCP configuration").action(async (options) => {
@@ -2761,7 +2837,7 @@ ${ORCHESTRATOR} Doctor (v${VERSION})
2761
2837
  });
2762
2838
  if (hasAgents) {
2763
2839
  const agentDir = agentPaths.find((p) => existsSync2(join2(cwd, p)));
2764
- const count = readdirSync(join2(cwd, agentDir)).filter((f) => f.endsWith(".md")).length;
2840
+ const count = countMdFiles(join2(cwd, agentDir));
2765
2841
  console.log(import_picocolors2.default.green(` ✓ ${count} agent definitions installed`));
2766
2842
  ok++;
2767
2843
  } else {
@@ -2805,9 +2881,16 @@ ${ORCHESTRATOR} Doctor (v${VERSION})
2805
2881
  } else {
2806
2882
  console.log(import_picocolors2.default.yellow(" ○ No arcanea.json (optional)"));
2807
2883
  }
2808
- if (existsSync2(join2(cwd, ".cursorrules"))) {
2809
- console.log(import_picocolors2.default.green(".cursorrules configured for Cursor"));
2810
- ok++;
2884
+ const platformFiles = [
2885
+ { path: ".cursorrules", name: "Cursor (.cursorrules)" },
2886
+ { path: "codex.md", name: "Codex CLI (codex.md)" },
2887
+ { path: "GEMINI.md", name: "Gemini CLI (GEMINI.md)" }
2888
+ ];
2889
+ for (const pf of platformFiles) {
2890
+ if (existsSync2(join2(cwd, pf.path))) {
2891
+ console.log(import_picocolors2.default.green(` ✓ ${pf.name} configured`));
2892
+ ok++;
2893
+ }
2811
2894
  }
2812
2895
  console.log();
2813
2896
  if (issues === 0) {
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const VERSION = "3.2.0";
1
+ export declare const VERSION = "3.3.0";
2
2
  export declare const NAME = "arcanea";
3
3
  export declare const ORCHESTRATOR = "Arcanea";
4
4
  export type Platform = "claude-code" | "opencode" | "codex" | "gemini" | "cursor" | "unknown";
package/dist/index.js CHANGED
@@ -199,6 +199,10 @@ async function installForPlatform(targetDir, packageRoot, platform, force) {
199
199
  await installClaudeCodeSettings(platformPath, force);
200
200
  } else if (platform === "cursor") {
201
201
  await installCursorRules(targetDir, packageRoot, force);
202
+ } else if (platform === "codex") {
203
+ await installCodexConfig(targetDir, packageRoot, force);
204
+ } else if (platform === "gemini") {
205
+ await installGeminiConfig(targetDir, packageRoot, force);
202
206
  }
203
207
  }
204
208
  async function installClaudeCodeSettings(platformPath, force) {
@@ -263,6 +267,64 @@ ${claudeContent}`;
263
267
  }
264
268
  }
265
269
  }
270
+ async function installCodexConfig(targetDir, packageRoot, force) {
271
+ const codexMdPath = join(targetDir, "codex.md");
272
+ if (!existsSync(codexMdPath) || force) {
273
+ const claudeMdSource = join(packageRoot, "CLAUDE.md");
274
+ if (existsSync(claudeMdSource)) {
275
+ const content = readFileSync(claudeMdSource, "utf-8");
276
+ const codexMd = [
277
+ `# Codex Instructions — Generated by Arcanea v${VERSION}`,
278
+ "",
279
+ "> These instructions transform Codex into Arcanea, the Creative Intelligence Platform.",
280
+ "> Agent definitions: `.codex/agents/` | Skills: `.codex/skills/` | Commands: `.codex/commands/`",
281
+ "",
282
+ content,
283
+ "",
284
+ "## Codex-Specific Notes",
285
+ "",
286
+ "- Read agent definitions from `.codex/agents/` for available specialist agents",
287
+ "- Read skill definitions from `.codex/skills/` for creative and technical skills",
288
+ "- Read command definitions from `.codex/commands/` for slash commands",
289
+ "- MCP servers are configured in `.mcp.json`",
290
+ "- When magic words (ultraworld, ultracode, etc.) are used, read the relevant agent files and apply their instructions",
291
+ ""
292
+ ].join(`
293
+ `);
294
+ writeFileSync(codexMdPath, codexMd);
295
+ console.log(import_picocolors.default.green(" ✓ Created codex.md (Arcanea instructions for Codex CLI)"));
296
+ }
297
+ }
298
+ }
299
+ async function installGeminiConfig(targetDir, packageRoot, force) {
300
+ const geminiMdPath = join(targetDir, "GEMINI.md");
301
+ if (!existsSync(geminiMdPath) || force) {
302
+ const claudeMdSource = join(packageRoot, "CLAUDE.md");
303
+ if (existsSync(claudeMdSource)) {
304
+ const content = readFileSync(claudeMdSource, "utf-8");
305
+ const geminiMd = [
306
+ `# Gemini Instructions — Generated by Arcanea v${VERSION}`,
307
+ "",
308
+ "> These instructions transform Gemini into Arcanea, the Creative Intelligence Platform.",
309
+ "> Agent definitions: `.gemini/agents/` | Skills: `.gemini/skills/` | Commands: `.gemini/commands/`",
310
+ "",
311
+ content,
312
+ "",
313
+ "## Gemini-Specific Notes",
314
+ "",
315
+ "- Read agent definitions from `.gemini/agents/` for available specialist agents",
316
+ "- Read skill definitions from `.gemini/skills/` for creative and technical skills",
317
+ "- Read command definitions from `.gemini/commands/` for slash commands",
318
+ "- MCP servers are configured in `.mcp.json`",
319
+ "- When magic words (ultraworld, ultracode, etc.) are used, read the relevant agent files and apply their instructions",
320
+ ""
321
+ ].join(`
322
+ `);
323
+ writeFileSync(geminiMdPath, geminiMd);
324
+ console.log(import_picocolors.default.green(" ✓ Created GEMINI.md (Arcanea instructions for Gemini CLI)"));
325
+ }
326
+ }
327
+ }
266
328
  async function installMcpConfig(targetDir, force) {
267
329
  const mcpPath = join(targetDir, ".mcp.json");
268
330
  console.log(import_picocolors.default.blue(`
@@ -342,7 +404,7 @@ function printSuccessMessage(platforms) {
342
404
  }
343
405
 
344
406
  // src/index.ts
345
- var VERSION = "3.2.0";
407
+ var VERSION = "3.3.0";
346
408
  var NAME = "arcanea";
347
409
  var ORCHESTRATOR = "Arcanea";
348
410
  var defaultConfig = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arcanea",
3
- "version": "3.2.0",
3
+ "version": "3.3.0",
4
4
  "description": "Arcanea - The Creative Intelligence Platform. Skills, agents, and tools for AI-human co-creation.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,3 +1,16 @@
1
+ ---
2
+ name: arcanea-ai-symbiosis
3
+ description: Frameworks for productive human-AI co-creation - the orchestra model, creative partnerships, and symbiotic workflows
4
+ version: 2.0.0
5
+ author: Arcanea
6
+ tags: [ai, collaboration, co-creation, symbiosis, creativity]
7
+ triggers:
8
+ - ai collaboration
9
+ - human ai
10
+ - co-creation
11
+ - ai partner
12
+ ---
13
+
1
14
  # AI Symbiosis - The Art of Human-AI Co-Creation
2
15
 
3
16
  > *"The AI is not replacing the creator. The AI is expanding what creation can be. The question is not 'human or machine?' but 'what can we become together?'"*
@@ -1,3 +1,11 @@
1
+ ---
2
+ name: arcanea-anti-trope
3
+ description: Anti-trope and naming protocol - banned AI cliches, forbidden words, and better alternatives for authentic Arcanean prose
4
+ version: 2.0.0
5
+ author: Arcanea
6
+ tags: [writing, style, voice, anti-cliche, prose-quality]
7
+ ---
8
+
1
9
  # Arcanea Anti-Trope & Naming Protocol
2
10
 
3
11
  > *"We do not 'unleash' potential; we cultivate it. We do not weave 'tapestries' of fate; we forge chains of consequence. Speak clearly, or do not speak at all."*
@@ -1,3 +1,18 @@
1
+ ---
2
+ name: arcanea-luminor-council
3
+ description: The Seven Luminors - aspects of creative consciousness providing guidance through archetypical wisdom for any creative challenge
4
+ version: 2.0.0
5
+ author: Arcanea
6
+ tags: [luminors, wisdom, guidance, creative-consciousness, archetypes]
7
+ triggers:
8
+ - luminor
9
+ - council
10
+ - wisdom
11
+ - guidance
12
+ - stuck
13
+ - advice
14
+ ---
15
+
1
16
  # Luminor Council - The Seven Guides of Creation
2
17
 
3
18
  > *"The Luminors are not characters in a story. They are aspects of creative consciousness itself - archetypes that have guided creators since the first dream became the first work."*
@@ -1,3 +1,17 @@
1
+ ---
2
+ name: arcanea-character-alchemist
3
+ description: Character development through psychological depth - wounds, desires, contradictions, and authentic character voices
4
+ version: 2.0.0
5
+ author: Arcanea
6
+ tags: [characters, psychology, writing, development, voice]
7
+ triggers:
8
+ - character
9
+ - character development
10
+ - character voice
11
+ - protagonist
12
+ - antagonist
13
+ ---
14
+
1
15
  # Character Alchemist - Transmuting Ideas into Living Beings
2
16
 
3
17
  > *"A character is not a collection of traits. A character is a wound that walks, talks, and wants."*
@@ -1,3 +1,17 @@
1
+ ---
2
+ name: arcanea-creative-bestiary
3
+ description: Navigate creative blocks using the taxonomy of psychological obstacles - naming rituals and protocols for each creature type
4
+ version: 2.0.0
5
+ author: Arcanea
6
+ tags: [creative-blocks, psychology, productivity, obstacles, mindset]
7
+ triggers:
8
+ - stuck
9
+ - blocked
10
+ - procrastinating
11
+ - afraid
12
+ - burned out
13
+ ---
14
+
1
15
  # Creative Bestiary - Navigating the Creatures of the Mind
2
16
 
3
17
  > *"The creative life is inhabited by creatures—not physical beings, but psychological presences that every creator encounters. Know them by name, and you can negotiate with them. Ignore them, and they will ambush you."*
@@ -1,3 +1,17 @@
1
+ ---
2
+ name: arcanea-story-weaver
3
+ description: Master narrative craft - story structure, scene design, dramatic tension, and meaning-making through storytelling
4
+ version: 2.0.0
5
+ author: Arcanea
6
+ tags: [story, narrative, writing, structure, craft]
7
+ triggers:
8
+ - story
9
+ - narrative
10
+ - plot
11
+ - scene
12
+ - story structure
13
+ ---
14
+
1
15
  # Story Weaver - The Master Craft of Narrative
2
16
 
3
17
  > *"Story is not what happens. Story is the meaning we make from what happens. Your job is not to tell events - it is to transmit understanding."*
@@ -1,3 +1,17 @@
1
+ ---
2
+ name: arcanea-world-architect
3
+ description: Universe creation and world-building - geography, history, belief systems, cultures, and living ecologies of meaning
4
+ version: 2.0.0
5
+ author: Arcanea
6
+ tags: [world-building, fantasy, sci-fi, universe, creation]
7
+ triggers:
8
+ - world
9
+ - world-building
10
+ - universe
11
+ - setting
12
+ - geography
13
+ ---
14
+
1
15
  # World Architect - The Art of Universe Creation
2
16
 
3
17
  > *"A world is not built. It is grown. You plant seeds - a geography, a history, a belief - and you tend them until they become a living ecology of meaning."*