@soleri/cli 8.1.0 → 9.0.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/commands/cognee.js +3 -3
- package/dist/commands/cognee.js.map +1 -1
- package/dist/commands/install.js +54 -10
- package/dist/commands/install.js.map +1 -1
- package/dist/utils/agent-context.d.ts +0 -4
- package/dist/utils/agent-context.js +0 -7
- package/dist/utils/agent-context.js.map +1 -1
- package/package.json +3 -3
- package/src/main.ts +0 -3
- package/src/prompts/create-wizard.ts +78 -490
- package/src/commands/cognee.ts +0 -419
package/dist/commands/cognee.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* `soleri cognee status` — Check Cognee configuration and sidecar health
|
|
8
8
|
*/
|
|
9
9
|
import { join } from 'node:path';
|
|
10
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync, copyFileSync, unlinkSync } from 'node:fs';
|
|
10
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync, copyFileSync, unlinkSync, } from 'node:fs';
|
|
11
11
|
import { homedir } from 'node:os';
|
|
12
12
|
import * as p from '@clack/prompts';
|
|
13
13
|
import { generateEntryPoint } from '@soleri/forge/lib';
|
|
@@ -75,9 +75,9 @@ export function registerCognee(program) {
|
|
|
75
75
|
pkgChanged = true;
|
|
76
76
|
if (!pkg.scripts)
|
|
77
77
|
pkg.scripts = {};
|
|
78
|
-
for (const [name,
|
|
78
|
+
for (const [name, script] of Object.entries(COGNEE_SCRIPTS)) {
|
|
79
79
|
if (!pkg.scripts[name]) {
|
|
80
|
-
pkg.scripts[name] =
|
|
80
|
+
pkg.scripts[name] = script;
|
|
81
81
|
pkgChanged = true;
|
|
82
82
|
}
|
|
83
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cognee.js","sourceRoot":"","sources":["../../src/commands/cognee.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cognee.js","sourceRoot":"","sources":["../../src/commands/cognee.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/install.js
CHANGED
|
@@ -69,7 +69,13 @@ function installCodex(agentId, agentDir, isFileTree) {
|
|
|
69
69
|
p.log.success(`Registered ${agentId} in ~/.codex/config.toml`);
|
|
70
70
|
}
|
|
71
71
|
function installOpencode(agentId, agentDir, isFileTree) {
|
|
72
|
-
|
|
72
|
+
// OpenCode uses ~/.config/opencode/opencode.json (not ~/.opencode.json)
|
|
73
|
+
// Config uses "mcp" (not "mcpServers"), type "local" (not "stdio"), command as array
|
|
74
|
+
const configDir = join(homedir(), '.config', 'opencode');
|
|
75
|
+
const configPath = join(configDir, 'opencode.json');
|
|
76
|
+
if (!existsSync(configDir)) {
|
|
77
|
+
mkdirSync(configDir, { recursive: true });
|
|
78
|
+
}
|
|
73
79
|
let config = {};
|
|
74
80
|
if (existsSync(configPath)) {
|
|
75
81
|
try {
|
|
@@ -81,24 +87,60 @@ function installOpencode(agentId, agentDir, isFileTree) {
|
|
|
81
87
|
config = {};
|
|
82
88
|
}
|
|
83
89
|
}
|
|
84
|
-
if (!config.
|
|
85
|
-
config.
|
|
90
|
+
if (!config.mcp || typeof config.mcp !== 'object') {
|
|
91
|
+
config.mcp = {};
|
|
92
|
+
}
|
|
93
|
+
const servers = config.mcp;
|
|
94
|
+
if (isFileTree) {
|
|
95
|
+
servers[agentId] = {
|
|
96
|
+
type: 'local',
|
|
97
|
+
command: [
|
|
98
|
+
'node',
|
|
99
|
+
join(agentDir, '..', 'soleri', 'packages', 'core', 'dist', 'engine', 'bin', 'soleri-engine.js'),
|
|
100
|
+
'--agent',
|
|
101
|
+
join(agentDir, 'agent.yaml'),
|
|
102
|
+
],
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
servers[agentId] = {
|
|
107
|
+
type: 'local',
|
|
108
|
+
command: ['node', join(agentDir, 'dist', 'index.js')],
|
|
109
|
+
};
|
|
86
110
|
}
|
|
87
|
-
const servers = config.mcpServers;
|
|
88
|
-
servers[agentId] = isFileTree
|
|
89
|
-
? fileTreeMcpEntry(agentDir)
|
|
90
|
-
: { type: 'stdio', command: 'node', args: [join(agentDir, 'dist', 'index.js')] };
|
|
91
111
|
writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
92
|
-
p.log.success(`Registered ${agentId} in ~/.opencode.json`);
|
|
112
|
+
p.log.success(`Registered ${agentId} in ~/.config/opencode/opencode.json`);
|
|
93
113
|
}
|
|
94
114
|
function escapeRegExp(s) {
|
|
95
115
|
return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
96
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Create a global launcher script so the agent can be invoked by name from any directory.
|
|
119
|
+
* e.g., typing `ernesto` opens Claude Code with that agent's MCP config.
|
|
120
|
+
*/
|
|
121
|
+
function installLauncher(agentId, agentDir) {
|
|
122
|
+
const binPath = join('/usr/local/bin', agentId);
|
|
123
|
+
const script = [
|
|
124
|
+
'#!/bin/bash',
|
|
125
|
+
`# ${agentId} — Soleri second brain launcher`,
|
|
126
|
+
`# Type "${agentId}" from any directory to open Claude Code with this agent`,
|
|
127
|
+
`exec claude --mcp-config ${join(agentDir, '.mcp.json')}`,
|
|
128
|
+
'',
|
|
129
|
+
].join('\n');
|
|
130
|
+
try {
|
|
131
|
+
writeFileSync(binPath, script, { mode: 0o755 });
|
|
132
|
+
p.log.success(`Launcher created: type "${agentId}" from any directory to start`);
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
p.log.warn(`Could not create launcher at ${binPath} (may need sudo)`);
|
|
136
|
+
p.log.info(`To create manually: sudo bash -c 'cat > ${binPath} << "EOF"\\n#!/bin/bash\\nexec claude --mcp-config ${join(agentDir, '.mcp.json')}\\nEOF' && chmod +x ${binPath}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
97
139
|
export function registerInstall(program) {
|
|
98
140
|
program
|
|
99
141
|
.command('install')
|
|
100
142
|
.argument('[dir]', 'Agent directory (defaults to cwd)')
|
|
101
|
-
.option('--target <target>', 'Registration target:
|
|
143
|
+
.option('--target <target>', 'Registration target: claude, opencode, codex, or all', 'claude')
|
|
102
144
|
.description('Register agent as MCP server in editor config')
|
|
103
145
|
.action(async (dir, opts) => {
|
|
104
146
|
const resolvedDir = dir ? resolve(dir) : undefined;
|
|
@@ -107,7 +149,7 @@ export function registerInstall(program) {
|
|
|
107
149
|
p.log.error('Not in an agent project. Run from an agent directory or pass its path.');
|
|
108
150
|
process.exit(1);
|
|
109
151
|
}
|
|
110
|
-
const target = (opts?.target ?? '
|
|
152
|
+
const target = (opts?.target ?? 'claude');
|
|
111
153
|
const validTargets = ['claude', 'codex', 'opencode', 'both', 'all'];
|
|
112
154
|
const isFileTree = ctx.format === 'filetree';
|
|
113
155
|
if (!validTargets.includes(target)) {
|
|
@@ -126,6 +168,8 @@ export function registerInstall(program) {
|
|
|
126
168
|
if (target === 'opencode' || target === 'all') {
|
|
127
169
|
installOpencode(ctx.agentId, ctx.agentPath, isFileTree);
|
|
128
170
|
}
|
|
171
|
+
// Create global launcher script
|
|
172
|
+
installLauncher(ctx.agentId, ctx.agentPath);
|
|
129
173
|
p.log.info(`Agent ${ctx.agentId} is now available as an MCP server.`);
|
|
130
174
|
});
|
|
131
175
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,3 @@ export interface AgentContext {
|
|
|
13
13
|
* Returns null if the directory is not a valid agent project.
|
|
14
14
|
*/
|
|
15
15
|
export declare function detectAgent(dir?: string): AgentContext | null;
|
|
16
|
-
/**
|
|
17
|
-
* Detect a file-tree agent specifically (agent.yaml only).
|
|
18
|
-
*/
|
|
19
|
-
export declare function detectFileTreeAgent(dir?: string): AgentContext | null;
|
|
@@ -53,11 +53,4 @@ export function detectAgent(dir) {
|
|
|
53
53
|
return null;
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
/**
|
|
57
|
-
* Detect a file-tree agent specifically (agent.yaml only).
|
|
58
|
-
*/
|
|
59
|
-
export function detectFileTreeAgent(dir) {
|
|
60
|
-
const ctx = detectAgent(dir);
|
|
61
|
-
return ctx?.format === 'filetree' ? ctx : null;
|
|
62
|
-
}
|
|
63
56
|
//# sourceMappingURL=agent-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-context.js","sourceRoot":"","sources":["../../src/utils/agent-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAa1C;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEhD,mCAAmC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YACxD,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;YACpB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,OAAO;oBACL,SAAS;oBACT,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,EAAE;oBACf,QAAQ,EAAE,IAAI,EAAE,gDAAgD;oBAChE,MAAM,EAAE,UAAU;iBACnB,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;QACpD,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,MAAM,IAAI,GAAW,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAExC,OAAO;YACL,SAAS;YACT,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAClC,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,EAAE,YAAY;SACrB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC
|
|
1
|
+
{"version":3,"file":"agent-context.js","sourceRoot":"","sources":["../../src/utils/agent-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAa1C;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEhD,mCAAmC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YACxD,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;YACpB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,OAAO;oBACL,SAAS;oBACT,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,EAAE;oBACf,QAAQ,EAAE,IAAI,EAAE,gDAAgD;oBAChE,MAAM,EAAE,UAAU;iBACnB,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;QACpD,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,MAAM,IAAI,GAAW,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAExC,OAAO;YACL,SAAS;YACT,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAClC,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,EAAE,YAAY;SACrB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@soleri/cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.0",
|
|
4
4
|
"description": "Developer CLI for creating and managing Soleri AI agents.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent",
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@clack/prompts": "^1.0.0",
|
|
44
|
-
"@soleri/core": "^
|
|
45
|
-
"@soleri/forge": "^
|
|
44
|
+
"@soleri/core": "^9.0.0",
|
|
45
|
+
"@soleri/forge": "^9.0.0",
|
|
46
46
|
"commander": "^13.0.0"
|
|
47
47
|
},
|
|
48
48
|
"engines": {
|
package/src/main.ts
CHANGED
|
@@ -20,7 +20,6 @@ import { registerPack } from './commands/pack.js';
|
|
|
20
20
|
import { registerSkills } from './commands/skills.js';
|
|
21
21
|
import { registerAgent } from './commands/agent.js';
|
|
22
22
|
import { registerTelegram } from './commands/telegram.js';
|
|
23
|
-
import { registerCognee } from './commands/cognee.js';
|
|
24
23
|
|
|
25
24
|
const require = createRequire(import.meta.url);
|
|
26
25
|
const { version } = require('../package.json');
|
|
@@ -81,6 +80,4 @@ registerPack(program);
|
|
|
81
80
|
registerSkills(program);
|
|
82
81
|
registerAgent(program);
|
|
83
82
|
registerTelegram(program);
|
|
84
|
-
registerCognee(program);
|
|
85
|
-
|
|
86
83
|
program.parse();
|
|
@@ -1,26 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Simplified create wizard — name + optional persona description.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* The agent starts as a universal second brain with the Italian Craftsperson
|
|
5
|
+
* default persona. Everything else (domains, principles, skills) is discovered
|
|
6
|
+
* from usage, not configured upfront.
|
|
7
7
|
*/
|
|
8
8
|
import * as p from '@clack/prompts';
|
|
9
9
|
import type { AgentConfigInput } from '@soleri/forge/lib';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
DOMAIN_OPTIONS,
|
|
13
|
-
CUSTOM_DOMAIN_GUIDANCE,
|
|
14
|
-
PRINCIPLE_CATEGORIES,
|
|
15
|
-
CUSTOM_PRINCIPLE_GUIDANCE,
|
|
16
|
-
SKILL_CATEGORIES,
|
|
17
|
-
CORE_SKILLS,
|
|
18
|
-
ALL_OPTIONAL_SKILLS,
|
|
19
|
-
TONE_OPTIONS,
|
|
20
|
-
CUSTOM_ROLE_GUIDANCE,
|
|
21
|
-
CUSTOM_DESCRIPTION_GUIDANCE,
|
|
22
|
-
CUSTOM_GREETING_GUIDANCE,
|
|
23
|
-
} from './playbook.js';
|
|
10
|
+
import { ITALIAN_CRAFTSPERSON } from '@soleri/core';
|
|
24
11
|
|
|
25
12
|
/** Slugify a display name into a kebab-case ID. */
|
|
26
13
|
function slugify(name: string): string {
|
|
@@ -31,517 +18,118 @@ function slugify(name: string): string {
|
|
|
31
18
|
}
|
|
32
19
|
|
|
33
20
|
/**
|
|
34
|
-
* Run the
|
|
35
|
-
* Returns
|
|
21
|
+
* Run the simplified create wizard.
|
|
22
|
+
* Returns an AgentConfigInput or null if cancelled.
|
|
36
23
|
*/
|
|
37
24
|
export async function runCreateWizard(initialName?: string): Promise<AgentConfigInput | null> {
|
|
38
25
|
p.intro('Create a new Soleri agent');
|
|
39
26
|
|
|
40
|
-
// ─── Step 1:
|
|
41
|
-
const archetypeChoices = [
|
|
42
|
-
...ARCHETYPES.map((a) => ({
|
|
43
|
-
value: a.value,
|
|
44
|
-
label: a.label,
|
|
45
|
-
hint: a.hint,
|
|
46
|
-
})),
|
|
47
|
-
{
|
|
48
|
-
value: '_custom',
|
|
49
|
-
label: '\u2726 Create Custom',
|
|
50
|
-
hint: "I'll guide you through defining your own agent type",
|
|
51
|
-
},
|
|
52
|
-
];
|
|
53
|
-
|
|
54
|
-
const archetypeValues = await p.multiselect({
|
|
55
|
-
message: 'What kind of agent are you building? (select one or more)',
|
|
56
|
-
options: archetypeChoices,
|
|
57
|
-
required: false,
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
if (p.isCancel(archetypeValues)) return null;
|
|
61
|
-
|
|
62
|
-
const selectedValues = archetypeValues as string[];
|
|
63
|
-
const isCustom = selectedValues.includes('_custom') || selectedValues.length === 0;
|
|
64
|
-
const selectedArchetypes = ARCHETYPES.filter((a) => selectedValues.includes(a.value));
|
|
65
|
-
|
|
66
|
-
// Merge defaults from all selected archetypes
|
|
67
|
-
function mergeDefaults(archetypes: Archetype[]) {
|
|
68
|
-
if (archetypes.length === 0) return null;
|
|
69
|
-
const domains = [...new Set(archetypes.flatMap((a) => a.defaults.domains))];
|
|
70
|
-
const principles = [...new Set(archetypes.flatMap((a) => a.defaults.principles))];
|
|
71
|
-
const skills = [...new Set(archetypes.flatMap((a) => a.defaults.skills))];
|
|
72
|
-
const tones = [...new Set(archetypes.map((a) => a.defaults.tone))];
|
|
73
|
-
return { domains, principles, skills, tones };
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const merged = mergeDefaults(selectedArchetypes);
|
|
77
|
-
|
|
78
|
-
// ─── Step 2: Display name ─────────────────────────────────
|
|
79
|
-
const nameDefault =
|
|
80
|
-
selectedArchetypes.length === 1
|
|
81
|
-
? selectedArchetypes[0].label
|
|
82
|
-
: selectedArchetypes.length > 1
|
|
83
|
-
? selectedArchetypes.map((a) => a.label).join(' + ')
|
|
84
|
-
: undefined;
|
|
85
|
-
|
|
27
|
+
// ─── Step 1: Name ───────────────────────────────────────────
|
|
86
28
|
const name = (await p.text({
|
|
87
|
-
message: '
|
|
88
|
-
placeholder:
|
|
89
|
-
initialValue: initialName
|
|
29
|
+
message: 'What should your agent be called?',
|
|
30
|
+
placeholder: 'Ernesto',
|
|
31
|
+
initialValue: initialName,
|
|
90
32
|
validate: (v) => {
|
|
91
|
-
if (!v || v.length
|
|
33
|
+
if (!v || v.trim().length === 0) return 'Name is required';
|
|
34
|
+
if (v.length > 50) return 'Max 50 characters';
|
|
92
35
|
},
|
|
93
36
|
})) as string;
|
|
94
37
|
|
|
95
38
|
if (p.isCancel(name)) return null;
|
|
96
39
|
|
|
97
|
-
// ─── Step 3: Agent ID (auto-derived from name) ─────────────
|
|
98
40
|
const id = slugify(name);
|
|
99
41
|
|
|
100
|
-
// ─── Step
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (isCustom || selectedArchetypes.length > 1) {
|
|
104
|
-
if (isCustom) {
|
|
105
|
-
p.note(
|
|
106
|
-
[
|
|
107
|
-
CUSTOM_ROLE_GUIDANCE.instruction,
|
|
108
|
-
'',
|
|
109
|
-
'Examples:',
|
|
110
|
-
...CUSTOM_ROLE_GUIDANCE.examples.map((e) => ` "${e}"`),
|
|
111
|
-
].join('\n'),
|
|
112
|
-
'\u2726 Custom Agent Playbook',
|
|
113
|
-
);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
const rolePrompt = (await p.text({
|
|
117
|
-
message:
|
|
118
|
-
selectedArchetypes.length > 1
|
|
119
|
-
? 'Combined role (describe what this multi-purpose agent does)'
|
|
120
|
-
: 'What does your agent do? (one sentence)',
|
|
121
|
-
placeholder: 'Validates GraphQL schemas against federation rules',
|
|
122
|
-
validate: (v) => {
|
|
123
|
-
if (!v || v.length > 100) return 'Required (max 100 chars)';
|
|
124
|
-
},
|
|
125
|
-
})) as string;
|
|
126
|
-
|
|
127
|
-
if (p.isCancel(rolePrompt)) return null;
|
|
128
|
-
role = rolePrompt;
|
|
129
|
-
} else {
|
|
130
|
-
const prefilledRole = selectedArchetypes[0].defaults.role;
|
|
131
|
-
const editedRole = (await p.text({
|
|
132
|
-
message: 'Role (pre-filled, press Enter to accept)',
|
|
133
|
-
initialValue: prefilledRole,
|
|
134
|
-
validate: (v) => {
|
|
135
|
-
if (!v || v.length > 100) return 'Required (max 100 chars)';
|
|
136
|
-
},
|
|
137
|
-
})) as string;
|
|
138
|
-
|
|
139
|
-
if (p.isCancel(editedRole)) return null;
|
|
140
|
-
role = editedRole;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
// ─── Step 5: Description ──────────────────────────────────
|
|
144
|
-
let description: string;
|
|
145
|
-
|
|
146
|
-
if (isCustom || selectedArchetypes.length > 1) {
|
|
147
|
-
if (isCustom) {
|
|
148
|
-
p.note(
|
|
149
|
-
[
|
|
150
|
-
CUSTOM_DESCRIPTION_GUIDANCE.instruction,
|
|
151
|
-
'',
|
|
152
|
-
'Example:',
|
|
153
|
-
...CUSTOM_DESCRIPTION_GUIDANCE.examples.map((e) => ` "${e}"`),
|
|
154
|
-
].join('\n'),
|
|
155
|
-
'\u2726 Description',
|
|
156
|
-
);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
const descPrompt = (await p.text({
|
|
160
|
-
message:
|
|
161
|
-
selectedArchetypes.length > 1
|
|
162
|
-
? 'Combined description (what does this multi-purpose agent do?)'
|
|
163
|
-
: 'Describe your agent in detail',
|
|
164
|
-
placeholder: 'This agent helps developers with...',
|
|
165
|
-
validate: (v) => {
|
|
166
|
-
if (!v || v.length < 10 || v.length > 500) return 'Required (10-500 chars)';
|
|
167
|
-
},
|
|
168
|
-
})) as string;
|
|
169
|
-
|
|
170
|
-
if (p.isCancel(descPrompt)) return null;
|
|
171
|
-
description = descPrompt;
|
|
172
|
-
} else {
|
|
173
|
-
const prefilledDesc = selectedArchetypes[0].defaults.description;
|
|
174
|
-
const editedDesc = (await p.text({
|
|
175
|
-
message: 'Description (pre-filled, press Enter to accept)',
|
|
176
|
-
initialValue: prefilledDesc,
|
|
177
|
-
validate: (v) => {
|
|
178
|
-
if (!v || v.length < 10 || v.length > 500) return 'Required (10-500 chars)';
|
|
179
|
-
},
|
|
180
|
-
})) as string;
|
|
181
|
-
|
|
182
|
-
if (p.isCancel(editedDesc)) return null;
|
|
183
|
-
description = editedDesc;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
// ─── Step 6: Domains (multiselect) ────────────────────────
|
|
187
|
-
const preselectedDomains = new Set(merged?.domains ?? []);
|
|
188
|
-
|
|
189
|
-
const domainChoices = [
|
|
190
|
-
...DOMAIN_OPTIONS.map((d) => ({
|
|
191
|
-
value: d.value,
|
|
192
|
-
label: d.label,
|
|
193
|
-
hint: d.hint,
|
|
194
|
-
})),
|
|
195
|
-
{
|
|
196
|
-
value: '_custom',
|
|
197
|
-
label: '\u2726 Add custom domain...',
|
|
198
|
-
hint: 'Define your own domain with playbook guidance',
|
|
199
|
-
},
|
|
200
|
-
];
|
|
201
|
-
|
|
202
|
-
// Pre-select archetype domains via initialValues
|
|
203
|
-
const domainSelection = await p.multiselect({
|
|
204
|
-
message: 'Select domains (areas of expertise)',
|
|
205
|
-
options: domainChoices,
|
|
206
|
-
initialValues: [...preselectedDomains],
|
|
207
|
-
required: true,
|
|
208
|
-
});
|
|
209
|
-
|
|
210
|
-
if (p.isCancel(domainSelection)) return null;
|
|
211
|
-
|
|
212
|
-
const domains = (domainSelection as string[]).filter((d) => d !== '_custom');
|
|
213
|
-
const wantsCustomDomain = (domainSelection as string[]).includes('_custom');
|
|
214
|
-
|
|
215
|
-
if (wantsCustomDomain) {
|
|
216
|
-
p.note(
|
|
217
|
-
[
|
|
218
|
-
CUSTOM_DOMAIN_GUIDANCE.instruction,
|
|
219
|
-
'',
|
|
220
|
-
'Examples:',
|
|
221
|
-
...CUSTOM_DOMAIN_GUIDANCE.examples.map((e) => ` ${e}`),
|
|
222
|
-
'',
|
|
223
|
-
'Avoid:',
|
|
224
|
-
...CUSTOM_DOMAIN_GUIDANCE.antiExamples.map((e) => ` \u2717 ${e}`),
|
|
225
|
-
].join('\n'),
|
|
226
|
-
'\u2726 Custom Domain',
|
|
227
|
-
);
|
|
228
|
-
|
|
229
|
-
const customDomain = (await p.text({
|
|
230
|
-
message: 'Custom domain name (kebab-case)',
|
|
231
|
-
placeholder: 'graphql-federation',
|
|
232
|
-
validate: (v = '') => {
|
|
233
|
-
if (!/^[a-z][a-z0-9-]*$/.test(v)) return 'Must be kebab-case';
|
|
234
|
-
if (domains.includes(v)) return 'Already selected';
|
|
235
|
-
},
|
|
236
|
-
})) as string;
|
|
237
|
-
|
|
238
|
-
if (!p.isCancel(customDomain)) {
|
|
239
|
-
domains.push(customDomain);
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
if (domains.length === 0) {
|
|
244
|
-
p.log.error('At least one domain is required');
|
|
245
|
-
return null;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
// ─── Step 7: Principles (multiselect) ─────────────────────
|
|
249
|
-
const preselectedPrinciples = new Set(merged?.principles ?? []);
|
|
250
|
-
|
|
251
|
-
// Flatten categories into a single options list with group labels
|
|
252
|
-
const principleChoices = PRINCIPLE_CATEGORIES.flatMap((cat) =>
|
|
253
|
-
cat.options.map((o) => ({
|
|
254
|
-
value: o.value,
|
|
255
|
-
label: o.label,
|
|
256
|
-
hint: cat.label,
|
|
257
|
-
})),
|
|
258
|
-
);
|
|
259
|
-
|
|
260
|
-
principleChoices.push({
|
|
261
|
-
value: '_custom',
|
|
262
|
-
label: '\u2726 Add custom principle...',
|
|
263
|
-
hint: 'Write your own guiding principle',
|
|
264
|
-
});
|
|
265
|
-
|
|
266
|
-
const principleSelection = await p.multiselect({
|
|
267
|
-
message: 'Select guiding principles',
|
|
268
|
-
options: principleChoices,
|
|
269
|
-
initialValues: [...preselectedPrinciples],
|
|
270
|
-
required: true,
|
|
271
|
-
});
|
|
272
|
-
|
|
273
|
-
if (p.isCancel(principleSelection)) return null;
|
|
274
|
-
|
|
275
|
-
const principles = (principleSelection as string[]).filter((p) => p !== '_custom');
|
|
276
|
-
const wantsCustomPrinciple = (principleSelection as string[]).includes('_custom');
|
|
277
|
-
|
|
278
|
-
if (wantsCustomPrinciple) {
|
|
279
|
-
p.note(
|
|
280
|
-
[
|
|
281
|
-
CUSTOM_PRINCIPLE_GUIDANCE.instruction,
|
|
282
|
-
'',
|
|
283
|
-
'Good principles are specific and actionable:',
|
|
284
|
-
...CUSTOM_PRINCIPLE_GUIDANCE.examples.map((e) => ` \u2713 "${e}"`),
|
|
285
|
-
'',
|
|
286
|
-
'Avoid vague principles:',
|
|
287
|
-
...CUSTOM_PRINCIPLE_GUIDANCE.antiExamples.map((e) => ` \u2717 ${e}`),
|
|
288
|
-
].join('\n'),
|
|
289
|
-
'\u2726 Custom Principle',
|
|
290
|
-
);
|
|
291
|
-
|
|
292
|
-
const customPrinciple = (await p.text({
|
|
293
|
-
message: 'Your custom principle',
|
|
294
|
-
placeholder: 'Every public API must have a deprecation path',
|
|
295
|
-
validate: (v) => {
|
|
296
|
-
if (!v) return 'Required';
|
|
297
|
-
if (v.length > 100) return 'Max 100 chars';
|
|
298
|
-
},
|
|
299
|
-
})) as string;
|
|
300
|
-
|
|
301
|
-
if (!p.isCancel(customPrinciple)) {
|
|
302
|
-
principles.push(customPrinciple);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
if (principles.length === 0) {
|
|
307
|
-
p.log.error('At least one principle is required');
|
|
308
|
-
return null;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
// ─── Step 8: Communication tone ───────────────────────────
|
|
312
|
-
let defaultTone: 'precise' | 'mentor' | 'pragmatic';
|
|
313
|
-
|
|
314
|
-
if (merged && merged.tones.length === 1) {
|
|
315
|
-
defaultTone = merged.tones[0];
|
|
316
|
-
} else if (merged && merged.tones.length > 1) {
|
|
317
|
-
p.note(`Selected archetypes use different tones: ${merged.tones.join(', ')}`, 'Tone Conflict');
|
|
318
|
-
defaultTone = 'pragmatic';
|
|
319
|
-
} else {
|
|
320
|
-
defaultTone = 'pragmatic';
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
const tone = await p.select({
|
|
324
|
-
message: 'Communication tone',
|
|
325
|
-
options: TONE_OPTIONS.map((t) => ({
|
|
326
|
-
value: t.value,
|
|
327
|
-
label: t.label,
|
|
328
|
-
hint: t.hint,
|
|
329
|
-
})),
|
|
330
|
-
initialValue: defaultTone,
|
|
331
|
-
});
|
|
332
|
-
|
|
333
|
-
if (p.isCancel(tone)) return null;
|
|
334
|
-
|
|
335
|
-
// ─── Step 9: Skills (multiselect) ─────────────────────────
|
|
336
|
-
const preselectedSkills = new Set(merged?.skills ?? []);
|
|
337
|
-
|
|
338
|
-
p.note(`Always included: ${CORE_SKILLS.join(', ')}`, 'Core Skills');
|
|
339
|
-
|
|
340
|
-
const skillChoices = SKILL_CATEGORIES.flatMap((cat) =>
|
|
341
|
-
cat.options.map((o) => ({
|
|
342
|
-
value: o.value,
|
|
343
|
-
label: o.label,
|
|
344
|
-
hint: `${o.hint} (${cat.label})`,
|
|
345
|
-
})),
|
|
346
|
-
);
|
|
347
|
-
|
|
348
|
-
const skillSelection = await p.multiselect({
|
|
349
|
-
message: 'Select additional skills',
|
|
350
|
-
options: skillChoices,
|
|
351
|
-
initialValues: [...preselectedSkills].filter((s) => ALL_OPTIONAL_SKILLS.includes(s)),
|
|
352
|
-
required: false,
|
|
353
|
-
});
|
|
354
|
-
|
|
355
|
-
if (p.isCancel(skillSelection)) return null;
|
|
356
|
-
|
|
357
|
-
const selectedSkills = [...CORE_SKILLS, ...(skillSelection as string[])];
|
|
358
|
-
|
|
359
|
-
// ─── Step 10: Greeting (auto or custom) ───────────────────
|
|
360
|
-
const autoGreeting =
|
|
361
|
-
selectedArchetypes.length === 1
|
|
362
|
-
? selectedArchetypes[0].defaults.greetingTemplate(name)
|
|
363
|
-
: `Hello! I'm ${name}. I ${role[0].toLowerCase()}${role.slice(1)}.`;
|
|
364
|
-
|
|
365
|
-
const greetingChoice = await p.select({
|
|
366
|
-
message: 'Greeting message',
|
|
42
|
+
// ─── Step 2: Optional persona description ───────────────────
|
|
43
|
+
const personaChoice = await p.select({
|
|
44
|
+
message: 'Persona',
|
|
367
45
|
options: [
|
|
368
46
|
{
|
|
369
|
-
value: '
|
|
370
|
-
label: `
|
|
371
|
-
hint: '
|
|
47
|
+
value: 'default',
|
|
48
|
+
label: `Italian Craftsperson (default)`,
|
|
49
|
+
hint: 'Warm, opinionated about quality, sprinkles Italian expressions — perfetto!',
|
|
372
50
|
},
|
|
373
51
|
{
|
|
374
52
|
value: 'custom',
|
|
375
|
-
label: '
|
|
376
|
-
hint: '
|
|
53
|
+
label: 'Describe your own persona',
|
|
54
|
+
hint: 'Tell me who your agent should be',
|
|
377
55
|
},
|
|
378
56
|
],
|
|
379
|
-
initialValue: 'auto',
|
|
380
57
|
});
|
|
381
58
|
|
|
382
|
-
if (p.isCancel(
|
|
383
|
-
|
|
384
|
-
let greeting: string;
|
|
59
|
+
if (p.isCancel(personaChoice)) return null;
|
|
385
60
|
|
|
386
|
-
|
|
387
|
-
p.note(
|
|
388
|
-
[
|
|
389
|
-
CUSTOM_GREETING_GUIDANCE.instruction,
|
|
390
|
-
'',
|
|
391
|
-
'Examples:',
|
|
392
|
-
...CUSTOM_GREETING_GUIDANCE.examples.map((e) => ` "${e}"`),
|
|
393
|
-
].join('\n'),
|
|
394
|
-
'\u2726 Custom Greeting',
|
|
395
|
-
);
|
|
61
|
+
let personaDescription: string | undefined;
|
|
396
62
|
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
63
|
+
if (personaChoice === 'custom') {
|
|
64
|
+
const desc = (await p.text({
|
|
65
|
+
message: "Describe your agent's personality (we'll generate the persona from this)",
|
|
66
|
+
placeholder: 'A calm Japanese sensei who speaks in zen metaphors and values harmony in code',
|
|
400
67
|
validate: (v) => {
|
|
401
|
-
if (!v || v.length < 10
|
|
68
|
+
if (!v || v.trim().length < 10) return 'Give at least a brief description (10+ chars)';
|
|
69
|
+
if (v.length > 500) return 'Max 500 characters';
|
|
402
70
|
},
|
|
403
71
|
})) as string;
|
|
404
72
|
|
|
405
|
-
if (p.isCancel(
|
|
406
|
-
|
|
407
|
-
} else {
|
|
408
|
-
greeting = autoGreeting;
|
|
73
|
+
if (p.isCancel(desc)) return null;
|
|
74
|
+
personaDescription = desc;
|
|
409
75
|
}
|
|
410
76
|
|
|
411
|
-
// ───
|
|
412
|
-
const
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
{
|
|
438
|
-
value: 'codex',
|
|
439
|
-
label: 'Codex',
|
|
440
|
-
hint: 'Codex integrations',
|
|
441
|
-
},
|
|
442
|
-
{
|
|
443
|
-
value: 'all',
|
|
444
|
-
label: 'All',
|
|
445
|
-
hint: 'OpenCode + Claude Code + Codex',
|
|
446
|
-
},
|
|
447
|
-
],
|
|
448
|
-
initialValue: 'opencode',
|
|
449
|
-
});
|
|
450
|
-
|
|
451
|
-
if (p.isCancel(setupTarget)) return null;
|
|
452
|
-
|
|
453
|
-
// ─── Step 13: Model selection ────────────────────────────
|
|
77
|
+
// ─── Build config ───────────────────────────────────────────
|
|
78
|
+
const persona = personaDescription
|
|
79
|
+
? {
|
|
80
|
+
template: 'custom',
|
|
81
|
+
name: name.trim(),
|
|
82
|
+
voice: personaDescription,
|
|
83
|
+
// Custom personas start with minimal config — the LLM enriches from the voice description
|
|
84
|
+
inspiration: '',
|
|
85
|
+
culture: '',
|
|
86
|
+
metaphors: [] as string[],
|
|
87
|
+
traits: [] as string[],
|
|
88
|
+
quirks: [] as string[],
|
|
89
|
+
opinions: [] as string[],
|
|
90
|
+
greetings: [`Hello! I'm ${name.trim()}. What are we working on?`],
|
|
91
|
+
signoffs: ['Until next time!'],
|
|
92
|
+
languageRule: "Speak the user's language naturally.",
|
|
93
|
+
nameRule: 'Adapt to name changes but keep character intact.',
|
|
94
|
+
}
|
|
95
|
+
: {
|
|
96
|
+
...ITALIAN_CRAFTSPERSON,
|
|
97
|
+
name: name.trim(),
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
const greeting = persona.greetings[0] ?? `Ciao! I'm ${name.trim()}. What are we working on?`;
|
|
101
|
+
|
|
102
|
+
// Summary
|
|
454
103
|
p.note(
|
|
455
104
|
[
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
105
|
+
`Name: ${name.trim()}`,
|
|
106
|
+
`ID: ${id}`,
|
|
107
|
+
`Persona: ${personaChoice === 'default' ? 'Italian Craftsperson' : 'Custom'}`,
|
|
108
|
+
'',
|
|
109
|
+
`Your agent starts as a universal second brain.`,
|
|
110
|
+
`It learns what it needs from your projects and conversations.`,
|
|
459
111
|
].join('\n'),
|
|
460
|
-
'
|
|
112
|
+
'Agent Summary',
|
|
461
113
|
);
|
|
462
114
|
|
|
463
|
-
const
|
|
464
|
-
message: '
|
|
465
|
-
|
|
466
|
-
// ── Free with Claude Max ──
|
|
467
|
-
{
|
|
468
|
-
value: 'claude-code-sonnet-4',
|
|
469
|
-
label: 'Claude 4 Sonnet (Max)',
|
|
470
|
-
hint: 'Free — balanced speed + quality (default)',
|
|
471
|
-
},
|
|
472
|
-
{
|
|
473
|
-
value: 'claude-code-opus-4',
|
|
474
|
-
label: 'Claude 4 Opus (Max)',
|
|
475
|
-
hint: 'Free — most capable, slower',
|
|
476
|
-
},
|
|
477
|
-
{
|
|
478
|
-
value: 'claude-code-3.5-haiku',
|
|
479
|
-
label: 'Claude 3.5 Haiku (Max)',
|
|
480
|
-
hint: 'Free — fastest Claude model',
|
|
481
|
-
},
|
|
482
|
-
// ── Anthropic API ──
|
|
483
|
-
{
|
|
484
|
-
value: 'claude-4-sonnet',
|
|
485
|
-
label: 'Claude 4 Sonnet (API)',
|
|
486
|
-
hint: 'Anthropic API key required',
|
|
487
|
-
},
|
|
488
|
-
{
|
|
489
|
-
value: 'claude-4-opus',
|
|
490
|
-
label: 'Claude 4 Opus (API)',
|
|
491
|
-
hint: 'Anthropic API key required',
|
|
492
|
-
},
|
|
493
|
-
// ── OpenAI ──
|
|
494
|
-
{
|
|
495
|
-
value: 'gpt-4.1',
|
|
496
|
-
label: 'GPT 4.1',
|
|
497
|
-
hint: 'OpenAI API key required',
|
|
498
|
-
},
|
|
499
|
-
{
|
|
500
|
-
value: 'o4-mini',
|
|
501
|
-
label: 'o4-mini',
|
|
502
|
-
hint: 'OpenAI API key — reasoning model',
|
|
503
|
-
},
|
|
504
|
-
// ── Google ──
|
|
505
|
-
{
|
|
506
|
-
value: 'gemini-2.5',
|
|
507
|
-
label: 'Gemini 2.5 Pro',
|
|
508
|
-
hint: 'Google API key required',
|
|
509
|
-
},
|
|
510
|
-
{
|
|
511
|
-
value: 'gemini-2.5-flash',
|
|
512
|
-
label: 'Gemini 2.5 Flash',
|
|
513
|
-
hint: 'Google API key — fast + cheap',
|
|
514
|
-
},
|
|
515
|
-
// ── Groq ──
|
|
516
|
-
{
|
|
517
|
-
value: 'llama-3.3-70b-versatile',
|
|
518
|
-
label: 'Llama 3.3 70B (Groq)',
|
|
519
|
-
hint: 'Groq API key — open source, fast',
|
|
520
|
-
},
|
|
521
|
-
// ── xAI ──
|
|
522
|
-
{
|
|
523
|
-
value: 'grok-3-beta',
|
|
524
|
-
label: 'Grok 3',
|
|
525
|
-
hint: 'xAI API key required',
|
|
526
|
-
},
|
|
527
|
-
],
|
|
528
|
-
initialValue: 'claude-code-sonnet-4',
|
|
115
|
+
const confirm = await p.confirm({
|
|
116
|
+
message: 'Create this agent?',
|
|
117
|
+
initialValue: true,
|
|
529
118
|
});
|
|
530
119
|
|
|
531
|
-
if (p.isCancel(
|
|
120
|
+
if (p.isCancel(confirm) || !confirm) return null;
|
|
532
121
|
|
|
533
122
|
return {
|
|
534
123
|
id,
|
|
535
|
-
name,
|
|
536
|
-
role,
|
|
537
|
-
description
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
124
|
+
name: name.trim(),
|
|
125
|
+
role: 'Your universal second brain — learns, remembers, improves',
|
|
126
|
+
description:
|
|
127
|
+
'A universal assistant that learns from your projects, captures knowledge, and gets smarter with every session.',
|
|
128
|
+
domains: [],
|
|
129
|
+
principles: [],
|
|
130
|
+
skills: [],
|
|
131
|
+
tone: 'mentor',
|
|
541
132
|
greeting,
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
model: model as string,
|
|
545
|
-
setupTarget: setupTarget as 'claude' | 'codex' | 'opencode' | 'all',
|
|
546
|
-
};
|
|
133
|
+
persona,
|
|
134
|
+
} as AgentConfigInput;
|
|
547
135
|
}
|
package/src/commands/cognee.ts
DELETED
|
@@ -1,419 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cognee vector search management — enable, disable, setup, status.
|
|
3
|
-
*
|
|
4
|
-
* `soleri cognee enable` — Wire Cognee into the agent runtime
|
|
5
|
-
* `soleri cognee disable` — Remove Cognee integration from the agent
|
|
6
|
-
* `soleri cognee setup` — Interactive config wizard (base URL, embedding, auth)
|
|
7
|
-
* `soleri cognee status` — Check Cognee configuration and sidecar health
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { join } from 'node:path';
|
|
11
|
-
import {
|
|
12
|
-
existsSync,
|
|
13
|
-
readFileSync,
|
|
14
|
-
writeFileSync,
|
|
15
|
-
mkdirSync,
|
|
16
|
-
copyFileSync,
|
|
17
|
-
unlinkSync,
|
|
18
|
-
} from 'node:fs';
|
|
19
|
-
import { homedir } from 'node:os';
|
|
20
|
-
import type { Command } from 'commander';
|
|
21
|
-
import * as p from '@clack/prompts';
|
|
22
|
-
import type { AgentConfig } from '@soleri/forge/lib';
|
|
23
|
-
import { generateEntryPoint } from '@soleri/forge/lib';
|
|
24
|
-
import { detectAgent } from '../utils/agent-context.js';
|
|
25
|
-
|
|
26
|
-
// Docker Compose file name (copied into agent project on enable)
|
|
27
|
-
const COGNEE_COMPOSE_FILE = 'docker-compose.cognee.yml';
|
|
28
|
-
|
|
29
|
-
// npm scripts added on enable
|
|
30
|
-
const COGNEE_SCRIPTS: Record<string, string> = {
|
|
31
|
-
'cognee:up': `docker compose -f ${COGNEE_COMPOSE_FILE} up -d`,
|
|
32
|
-
'cognee:down': `docker compose -f ${COGNEE_COMPOSE_FILE} down`,
|
|
33
|
-
'cognee:logs': `docker compose -f ${COGNEE_COMPOSE_FILE} logs -f cognee`,
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
// ─── Registration ───────────────────────────────────────────────────
|
|
37
|
-
|
|
38
|
-
export function registerCognee(program: Command): void {
|
|
39
|
-
const cmd = program
|
|
40
|
-
.command('cognee')
|
|
41
|
-
.description('Manage Cognee vector search integration for the current agent');
|
|
42
|
-
|
|
43
|
-
// ─── enable ─────────────────────────────────────────────────────
|
|
44
|
-
cmd
|
|
45
|
-
.command('enable')
|
|
46
|
-
.description('Enable Cognee vector search for the current agent')
|
|
47
|
-
.action(() => {
|
|
48
|
-
const ctx = detectAgent();
|
|
49
|
-
if (!ctx) {
|
|
50
|
-
p.log.error('No agent project detected in current directory.');
|
|
51
|
-
process.exit(1);
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// Check if already enabled
|
|
56
|
-
const pkgPath = join(ctx.agentPath, 'package.json');
|
|
57
|
-
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
58
|
-
if (pkg.soleri?.cognee === true) {
|
|
59
|
-
p.log.warn('Cognee is already enabled for this agent.');
|
|
60
|
-
p.log.info('Run `soleri cognee setup` to configure it.');
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// Reconstruct AgentConfig and regenerate entry point with cognee: true
|
|
65
|
-
const config = readAgentConfig(ctx.agentPath, ctx.agentId);
|
|
66
|
-
if (!config) {
|
|
67
|
-
p.log.error('Could not read agent config from persona.ts and entry point.');
|
|
68
|
-
process.exit(1);
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
const s = p.spinner();
|
|
73
|
-
|
|
74
|
-
// 1. Regenerate entry point with cognee: true
|
|
75
|
-
s.start('Regenerating entry point with Cognee integration...');
|
|
76
|
-
const entryPointCode = generateEntryPoint({ ...config, cognee: true });
|
|
77
|
-
writeFileSync(join(ctx.agentPath, 'src', 'index.ts'), entryPointCode, 'utf-8');
|
|
78
|
-
s.stop('Entry point regenerated with Cognee integration');
|
|
79
|
-
|
|
80
|
-
// 2. Copy docker-compose.cognee.yml if available
|
|
81
|
-
const sourceCompose = join(ctx.agentPath, '..', '..', 'docker', COGNEE_COMPOSE_FILE);
|
|
82
|
-
const targetCompose = join(ctx.agentPath, COGNEE_COMPOSE_FILE);
|
|
83
|
-
if (existsSync(sourceCompose) && !existsSync(targetCompose)) {
|
|
84
|
-
copyFileSync(sourceCompose, targetCompose);
|
|
85
|
-
p.log.info(`Copied ${COGNEE_COMPOSE_FILE} to agent project`);
|
|
86
|
-
} else if (!existsSync(targetCompose)) {
|
|
87
|
-
p.log.warn(
|
|
88
|
-
`${COGNEE_COMPOSE_FILE} not found — create one manually or run Cognee externally`,
|
|
89
|
-
);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// 3. Update package.json
|
|
93
|
-
let pkgChanged = false;
|
|
94
|
-
if (!pkg.soleri) pkg.soleri = {};
|
|
95
|
-
pkg.soleri.cognee = true;
|
|
96
|
-
pkgChanged = true;
|
|
97
|
-
|
|
98
|
-
if (!pkg.scripts) pkg.scripts = {};
|
|
99
|
-
for (const [name, script] of Object.entries(COGNEE_SCRIPTS)) {
|
|
100
|
-
if (!pkg.scripts[name]) {
|
|
101
|
-
pkg.scripts[name] = script;
|
|
102
|
-
pkgChanged = true;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
if (pkgChanged) {
|
|
107
|
-
writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n', 'utf-8');
|
|
108
|
-
p.log.info('Updated package.json with cognee flag and scripts');
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
p.log.success('Cognee enabled!');
|
|
112
|
-
p.log.info('Next steps:');
|
|
113
|
-
p.log.info(' 1. Run `soleri cognee setup` to configure base URL and auth');
|
|
114
|
-
p.log.info(' 2. Run `npm run cognee:up` to start the Cognee sidecar');
|
|
115
|
-
p.log.info(' 3. Rebuild: `npm run build`');
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
// ─── setup ──────────────────────────────────────────────────────
|
|
119
|
-
cmd
|
|
120
|
-
.command('setup')
|
|
121
|
-
.description('Interactive Cognee configuration wizard')
|
|
122
|
-
.action(async () => {
|
|
123
|
-
const ctx = detectAgent();
|
|
124
|
-
if (!ctx) {
|
|
125
|
-
p.log.error('No agent project detected in current directory.');
|
|
126
|
-
process.exit(1);
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
// Check if enabled
|
|
131
|
-
const pkgPath = join(ctx.agentPath, 'package.json');
|
|
132
|
-
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
133
|
-
if (!pkg.soleri?.cognee) {
|
|
134
|
-
p.log.error('Cognee is not enabled. Run `soleri cognee enable` first.');
|
|
135
|
-
process.exit(1);
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
p.intro(`Cognee Setup for ${ctx.agentId}`);
|
|
140
|
-
|
|
141
|
-
// Step 1: Base URL
|
|
142
|
-
p.log.step('Step 1: Cognee API endpoint');
|
|
143
|
-
const baseUrl = await p.text({
|
|
144
|
-
message: 'Cognee API base URL:',
|
|
145
|
-
placeholder: 'http://localhost:8000',
|
|
146
|
-
defaultValue: 'http://localhost:8000',
|
|
147
|
-
});
|
|
148
|
-
if (p.isCancel(baseUrl)) {
|
|
149
|
-
p.cancel('Setup cancelled.');
|
|
150
|
-
process.exit(0);
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
// Step 2: Embedding provider
|
|
154
|
-
p.log.step('Step 2: Embedding provider');
|
|
155
|
-
const embeddingProvider = await p.select({
|
|
156
|
-
message: 'Which embedding provider?',
|
|
157
|
-
options: [
|
|
158
|
-
{ value: 'ollama', label: 'Ollama (local, free — nomic-embed-text)' },
|
|
159
|
-
{ value: 'openai', label: 'OpenAI (text-embedding-3-small)' },
|
|
160
|
-
{ value: 'env', label: 'Use environment variables (skip)' },
|
|
161
|
-
],
|
|
162
|
-
});
|
|
163
|
-
if (p.isCancel(embeddingProvider)) {
|
|
164
|
-
p.cancel('Setup cancelled.');
|
|
165
|
-
process.exit(0);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
// Step 3: API token (optional)
|
|
169
|
-
p.log.step('Step 3: Authentication (optional)');
|
|
170
|
-
p.log.message(' Leave empty for local Cognee (AUTH_REQUIRED=false)');
|
|
171
|
-
const apiToken = await p.text({
|
|
172
|
-
message: 'Cognee API token:',
|
|
173
|
-
placeholder: '(empty for local, no auth)',
|
|
174
|
-
defaultValue: '',
|
|
175
|
-
});
|
|
176
|
-
if (p.isCancel(apiToken)) {
|
|
177
|
-
p.cancel('Setup cancelled.');
|
|
178
|
-
process.exit(0);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
// Step 4: Dataset name
|
|
182
|
-
p.log.step('Step 4: Dataset');
|
|
183
|
-
const dataset = await p.text({
|
|
184
|
-
message: 'Dataset name for this agent:',
|
|
185
|
-
placeholder: ctx.agentId,
|
|
186
|
-
defaultValue: ctx.agentId,
|
|
187
|
-
});
|
|
188
|
-
if (p.isCancel(dataset)) {
|
|
189
|
-
p.cancel('Setup cancelled.');
|
|
190
|
-
process.exit(0);
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
// Save config
|
|
194
|
-
const configDir = join(homedir(), `.${ctx.agentId}`);
|
|
195
|
-
mkdirSync(configDir, { recursive: true });
|
|
196
|
-
const configPath = join(configDir, 'cognee.json');
|
|
197
|
-
|
|
198
|
-
const cogneeConfig: Record<string, unknown> = {
|
|
199
|
-
baseUrl: (baseUrl as string).trim(),
|
|
200
|
-
embeddingProvider: embeddingProvider === 'env' ? 'ollama' : embeddingProvider,
|
|
201
|
-
...(apiToken ? { apiToken } : {}),
|
|
202
|
-
dataset: (dataset as string).trim(),
|
|
203
|
-
};
|
|
204
|
-
|
|
205
|
-
writeFileSync(configPath, JSON.stringify(cogneeConfig, null, 2) + '\n', 'utf-8');
|
|
206
|
-
|
|
207
|
-
p.outro(`Configuration saved to ${configPath}`);
|
|
208
|
-
|
|
209
|
-
console.log('');
|
|
210
|
-
p.log.info(' Start Cognee: npm run cognee:up');
|
|
211
|
-
p.log.info(' Check status: soleri cognee status');
|
|
212
|
-
console.log('');
|
|
213
|
-
});
|
|
214
|
-
|
|
215
|
-
// ─── disable ────────────────────────────────────────────────────
|
|
216
|
-
cmd
|
|
217
|
-
.command('disable')
|
|
218
|
-
.description('Remove Cognee vector search from the current agent')
|
|
219
|
-
.action(async () => {
|
|
220
|
-
const ctx = detectAgent();
|
|
221
|
-
if (!ctx) {
|
|
222
|
-
p.log.error('No agent project detected in current directory.');
|
|
223
|
-
process.exit(1);
|
|
224
|
-
return;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
const pkgPath = join(ctx.agentPath, 'package.json');
|
|
228
|
-
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
229
|
-
if (!pkg.soleri?.cognee) {
|
|
230
|
-
p.log.warn('Cognee is not enabled for this agent.');
|
|
231
|
-
return;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
const confirmed = await p.confirm({
|
|
235
|
-
message: `Disable Cognee vector search for ${ctx.agentId}? (Vault FTS5 search continues to work)`,
|
|
236
|
-
});
|
|
237
|
-
if (p.isCancel(confirmed) || !confirmed) {
|
|
238
|
-
p.cancel('Cancelled.');
|
|
239
|
-
return;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
// 1. Regenerate entry point without cognee
|
|
243
|
-
const config = readAgentConfig(ctx.agentPath, ctx.agentId);
|
|
244
|
-
if (config) {
|
|
245
|
-
const s = p.spinner();
|
|
246
|
-
s.start('Regenerating entry point without Cognee...');
|
|
247
|
-
const entryPointCode = generateEntryPoint({ ...config, cognee: false });
|
|
248
|
-
writeFileSync(join(ctx.agentPath, 'src', 'index.ts'), entryPointCode, 'utf-8');
|
|
249
|
-
s.stop('Entry point regenerated without Cognee');
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
// 2. Remove docker-compose
|
|
253
|
-
const composePath = join(ctx.agentPath, COGNEE_COMPOSE_FILE);
|
|
254
|
-
if (existsSync(composePath)) {
|
|
255
|
-
unlinkSync(composePath);
|
|
256
|
-
p.log.info('Removed docker-compose.cognee.yml');
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
// 3. Update package.json
|
|
260
|
-
let changed = false;
|
|
261
|
-
if (pkg.soleri?.cognee) {
|
|
262
|
-
pkg.soleri.cognee = false;
|
|
263
|
-
changed = true;
|
|
264
|
-
}
|
|
265
|
-
for (const name of Object.keys(COGNEE_SCRIPTS)) {
|
|
266
|
-
if (pkg.scripts?.[name]) {
|
|
267
|
-
delete pkg.scripts[name];
|
|
268
|
-
changed = true;
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
if (changed) {
|
|
272
|
-
writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n', 'utf-8');
|
|
273
|
-
p.log.info('Removed cognee scripts from package.json');
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
p.log.success('Cognee disabled. Vault FTS5 search still works.');
|
|
277
|
-
p.log.info('Run `npm run build` to rebuild.');
|
|
278
|
-
});
|
|
279
|
-
|
|
280
|
-
// ─── status ─────────────────────────────────────────────────────
|
|
281
|
-
cmd
|
|
282
|
-
.command('status')
|
|
283
|
-
.description('Check Cognee configuration and sidecar health')
|
|
284
|
-
.action(async () => {
|
|
285
|
-
const ctx = detectAgent();
|
|
286
|
-
if (!ctx) {
|
|
287
|
-
p.log.error('No agent project detected in current directory.');
|
|
288
|
-
process.exit(1);
|
|
289
|
-
return;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
const pkgPath = join(ctx.agentPath, 'package.json');
|
|
293
|
-
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
294
|
-
const enabled = pkg.soleri?.cognee === true;
|
|
295
|
-
|
|
296
|
-
console.log(`\n Agent: ${ctx.agentId}`);
|
|
297
|
-
console.log(` Cognee: ${enabled ? 'enabled' : 'disabled'}`);
|
|
298
|
-
|
|
299
|
-
if (!enabled) {
|
|
300
|
-
console.log('\n Run `soleri cognee enable` to add vector search.');
|
|
301
|
-
console.log('');
|
|
302
|
-
return;
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
// Check Docker Compose file
|
|
306
|
-
const composePath = join(ctx.agentPath, COGNEE_COMPOSE_FILE);
|
|
307
|
-
console.log(` Docker Compose: ${existsSync(composePath) ? 'present' : 'missing'}`);
|
|
308
|
-
|
|
309
|
-
// Check npm scripts
|
|
310
|
-
const hasScripts = Object.keys(COGNEE_SCRIPTS).every((s) => !!pkg.scripts?.[s]);
|
|
311
|
-
console.log(` Scripts: ${hasScripts ? 'all present' : 'some missing'}`);
|
|
312
|
-
|
|
313
|
-
// Check config file
|
|
314
|
-
const configPath = join(homedir(), `.${ctx.agentId}`, 'cognee.json');
|
|
315
|
-
if (existsSync(configPath)) {
|
|
316
|
-
try {
|
|
317
|
-
const config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
318
|
-
console.log(` Config: ${configPath}`);
|
|
319
|
-
console.log(` Base URL: ${config.baseUrl ?? 'not set'}`);
|
|
320
|
-
console.log(` Embedding: ${config.embeddingProvider ?? 'not set'}`);
|
|
321
|
-
console.log(` Dataset: ${config.dataset ?? ctx.agentId}`);
|
|
322
|
-
console.log(` API token: ${config.apiToken ? 'set' : 'not set (local mode)'}`);
|
|
323
|
-
} catch {
|
|
324
|
-
console.log(` Config: ${configPath} (invalid JSON)`);
|
|
325
|
-
}
|
|
326
|
-
} else {
|
|
327
|
-
console.log(` Config: not found at ${configPath}`);
|
|
328
|
-
console.log(' Run `soleri cognee setup` to configure.');
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
// Try health check
|
|
332
|
-
const baseUrl =
|
|
333
|
-
process.env.COGNEE_BASE_URL ??
|
|
334
|
-
(existsSync(configPath)
|
|
335
|
-
? JSON.parse(readFileSync(configPath, 'utf-8')).baseUrl
|
|
336
|
-
: 'http://localhost:8000');
|
|
337
|
-
|
|
338
|
-
try {
|
|
339
|
-
const controller = new AbortController();
|
|
340
|
-
const timeout = setTimeout(() => controller.abort(), 5000);
|
|
341
|
-
const res = await fetch(`${baseUrl}/`, { signal: controller.signal });
|
|
342
|
-
clearTimeout(timeout);
|
|
343
|
-
console.log(` Sidecar: ${res.ok ? 'running' : `HTTP ${res.status}`} at ${baseUrl}`);
|
|
344
|
-
} catch {
|
|
345
|
-
console.log(` Sidecar: not reachable at ${baseUrl}`);
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
// Overall status
|
|
349
|
-
const ready = enabled && existsSync(configPath);
|
|
350
|
-
console.log(`\n Status: ${ready ? 'configured' : 'needs configuration'}`);
|
|
351
|
-
if (!existsSync(configPath)) {
|
|
352
|
-
console.log(' Next: Run `soleri cognee setup`');
|
|
353
|
-
} else {
|
|
354
|
-
console.log(' Next: Run `npm run cognee:up` to start the sidecar');
|
|
355
|
-
}
|
|
356
|
-
console.log('');
|
|
357
|
-
});
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
// ─── Helpers ──────────────────────────────────────────────────────────
|
|
361
|
-
|
|
362
|
-
function readAgentConfig(agentPath: string, agentId: string): AgentConfig | null {
|
|
363
|
-
const personaCandidates = [
|
|
364
|
-
join(agentPath, 'src', 'identity', 'persona.ts'),
|
|
365
|
-
join(agentPath, 'src', 'activation', 'persona.ts'),
|
|
366
|
-
];
|
|
367
|
-
const personaPath = personaCandidates.find((candidate) => existsSync(candidate));
|
|
368
|
-
if (!personaPath) return null;
|
|
369
|
-
const personaSrc = readFileSync(personaPath, 'utf-8');
|
|
370
|
-
|
|
371
|
-
const name = extractStringField(personaSrc, 'name') ?? agentId;
|
|
372
|
-
const role = extractStringField(personaSrc, 'role') ?? '';
|
|
373
|
-
const description = extractStringField(personaSrc, 'description') ?? '';
|
|
374
|
-
const tone =
|
|
375
|
-
(extractStringField(personaSrc, 'tone') as 'precise' | 'mentor' | 'pragmatic') ?? 'pragmatic';
|
|
376
|
-
const greeting = extractStringField(personaSrc, 'greeting') ?? `Hello! I'm ${name}.`;
|
|
377
|
-
const principles = extractArrayField(personaSrc, 'principles');
|
|
378
|
-
|
|
379
|
-
const indexPath = join(agentPath, 'src', 'index.ts');
|
|
380
|
-
const domains = existsSync(indexPath) ? extractDomains(readFileSync(indexPath, 'utf-8')) : [];
|
|
381
|
-
|
|
382
|
-
const pkg = JSON.parse(readFileSync(join(agentPath, 'package.json'), 'utf-8'));
|
|
383
|
-
|
|
384
|
-
return {
|
|
385
|
-
id: agentId,
|
|
386
|
-
name,
|
|
387
|
-
role,
|
|
388
|
-
description,
|
|
389
|
-
domains,
|
|
390
|
-
principles,
|
|
391
|
-
tone,
|
|
392
|
-
greeting,
|
|
393
|
-
outputDir: agentPath,
|
|
394
|
-
hookPacks: [],
|
|
395
|
-
model: pkg.soleri?.model ?? 'claude-code-sonnet-4',
|
|
396
|
-
setupTarget: pkg.soleri?.setupTarget ?? 'claude',
|
|
397
|
-
telegram: pkg.soleri?.telegram ?? false,
|
|
398
|
-
cognee: pkg.soleri?.cognee ?? false,
|
|
399
|
-
};
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
function extractStringField(src: string, field: string): string | undefined {
|
|
403
|
-
const re = new RegExp(`${field}:\\s*'([^']*)'`);
|
|
404
|
-
const m = src.match(re);
|
|
405
|
-
return m ? m[1].replace(/\\'/g, "'") : undefined;
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
function extractArrayField(src: string, field: string): string[] {
|
|
409
|
-
const re = new RegExp(`${field}:\\s*\\[([\\s\\S]*?)\\]`);
|
|
410
|
-
const m = src.match(re);
|
|
411
|
-
if (!m) return [];
|
|
412
|
-
return [...m[1].matchAll(/'([^']*)'/g)].map((x) => x[1]);
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
function extractDomains(indexSrc: string): string[] {
|
|
416
|
-
const m = indexSrc.match(/createDomainFacades\(runtime,\s*['"][^'"]+['"]\s*,\s*\[([\s\S]*?)\]\)/);
|
|
417
|
-
if (!m) return [];
|
|
418
|
-
return [...m[1].matchAll(/['"]([^'"]+)['"]/g)].map((x) => x[1]);
|
|
419
|
-
}
|