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 +89 -6
- package/dist/index.d.ts +1 -1
- package/dist/index.js +63 -1
- package/package.json +1 -1
- package/skills/{ai-symbiosis.md → arcanea/ai-symbiosis/SKILL.md} +13 -0
- package/skills/arcanea/{arcanea-anti-trope.md → anti-trope/SKILL.md} +8 -0
- package/skills/{luminor-council.md → arcanea/luminor-council/SKILL.md} +15 -0
- package/skills/{character-alchemist.md → creative/character-alchemist/SKILL.md} +14 -0
- package/skills/{creative-bestiary.md → creative/creative-bestiary/SKILL.md} +14 -0
- package/skills/{story-weaver.md → creative/story-weaver/SKILL.md} +14 -0
- package/skills/{world-architect.md → creative/world-architect/SKILL.md} +14 -0
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.
|
|
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 =
|
|
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
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
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
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.
|
|
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,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."*
|