cortex-engine 0.1.0 → 0.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/README.md +7 -7
- package/dist/bin/agent-cmd.d.ts +10 -0
- package/dist/bin/agent-cmd.d.ts.map +1 -0
- package/dist/bin/agent-cmd.js +244 -0
- package/dist/bin/agent-cmd.js.map +1 -0
- package/dist/bin/cli.d.ts +1 -1
- package/dist/bin/cli.js +40 -18
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/config-cmd.d.ts +6 -6
- package/dist/bin/config-cmd.d.ts.map +1 -1
- package/dist/bin/config-cmd.js +8 -30
- package/dist/bin/config-cmd.js.map +1 -1
- package/dist/bin/config-loader.d.ts +6 -5
- package/dist/bin/config-loader.d.ts.map +1 -1
- package/dist/bin/config-loader.js +114 -8
- package/dist/bin/config-loader.js.map +1 -1
- package/dist/bin/config-utils.d.ts +17 -0
- package/dist/bin/config-utils.d.ts.map +1 -0
- package/dist/bin/config-utils.js +33 -0
- package/dist/bin/config-utils.js.map +1 -0
- package/dist/bin/digest-cmd.d.ts +7 -7
- package/dist/bin/digest-cmd.js +13 -13
- package/dist/bin/digest-cmd.js.map +1 -1
- package/dist/bin/init.d.ts +3 -3
- package/dist/bin/init.d.ts.map +1 -1
- package/dist/bin/init.js +185 -94
- package/dist/bin/init.js.map +1 -1
- package/dist/bin/serve.js +7 -1
- package/dist/bin/serve.js.map +1 -1
- package/dist/core/config.d.ts +8 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/types.d.ts +3 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/engines/cognition.d.ts.map +1 -1
- package/dist/engines/cognition.js +13 -1
- package/dist/engines/cognition.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools.d.ts +2 -2
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +132 -22
- package/dist/mcp/tools.js.map +1 -1
- package/dist/stores/firestore.d.ts.map +1 -1
- package/dist/stores/firestore.js +2 -0
- package/dist/stores/firestore.js.map +1 -1
- package/dist/stores/sqlite.d.ts +2 -0
- package/dist/stores/sqlite.d.ts.map +1 -1
- package/dist/stores/sqlite.js +16 -2
- package/dist/stores/sqlite.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -42,7 +42,7 @@ Requires Node.js 20 or later.
|
|
|
42
42
|
|
|
43
43
|
### Agent-First Setup
|
|
44
44
|
|
|
45
|
-
The fastest path: open an AI agent in an empty directory and say *"set up a cortex workspace."* The agent runs `npx
|
|
45
|
+
The fastest path: open an AI agent in an empty directory and say *"set up a cortex workspace."* The agent runs `npx fozikio init`, reads the generated files, and is immediately productive. See **[docs/agent-first-setup.md](docs/agent-first-setup.md)** for the full guide.
|
|
46
46
|
|
|
47
47
|
### Development
|
|
48
48
|
|
|
@@ -62,7 +62,7 @@ Additional variables are required depending on which providers you enable (Fires
|
|
|
62
62
|
|
|
63
63
|
## Hooks, Skills & Agents
|
|
64
64
|
|
|
65
|
-
`
|
|
65
|
+
`fozikio init` automatically installs hooks, skills, and agent definitions from the `fozikio.json` manifest into the target workspace. These live in `.claude/hooks/` and `.claude/skills/` after init.
|
|
66
66
|
|
|
67
67
|
### Hooks
|
|
68
68
|
|
|
@@ -111,10 +111,10 @@ Skills are invocable workflows that agents can use via `/skill-name`.
|
|
|
111
111
|
|
|
112
112
|
### Hookify Rules
|
|
113
113
|
|
|
114
|
-
The manifest declares hookify rules — declarative hook patterns managed by the [hookify](https://github.com/fozikio/hookify) tool. These are **not** auto-installed by `
|
|
114
|
+
The manifest declares hookify rules — declarative hook patterns managed by the [hookify](https://github.com/fozikio/hookify) tool. These are **not** auto-installed by `fozikio init` (hookify needs its own setup). Init prints a reminder:
|
|
115
115
|
|
|
116
116
|
```
|
|
117
|
-
Recommended hookify rules available. Run `
|
|
117
|
+
Recommended hookify rules available. Run `fozikio install-rules` to install.
|
|
118
118
|
```
|
|
119
119
|
|
|
120
120
|
| Rule | Purpose |
|
|
@@ -131,7 +131,7 @@ Recommended hookify rules available. Run `cortex-kit install-rules` to install.
|
|
|
131
131
|
|
|
132
132
|
### How Auto-Install Works
|
|
133
133
|
|
|
134
|
-
1. `
|
|
134
|
+
1. `fozikio init` reads `fozikio.json` from the package root
|
|
135
135
|
2. For each hook in `contents.hooks`: copies `hooks/{name}.sh` into `{workspace}/.claude/hooks/`
|
|
136
136
|
3. For each skill in `contents.skills`: copies `skills/{name}/` directory into `{workspace}/.claude/skills/`
|
|
137
137
|
4. If `contents.hookify_rules` is non-empty: prints a message (no interactive prompts)
|
|
@@ -141,8 +141,8 @@ Recommended hookify rules available. Run `cortex-kit install-rules` to install.
|
|
|
141
141
|
|
|
142
142
|
To override a hook's behavior without removing it:
|
|
143
143
|
1. Edit the `.sh` file in your workspace's `.claude/hooks/` directly — it's a plain copy, not a symlink
|
|
144
|
-
2. Re-running `
|
|
145
|
-
3. To preserve customizations across re-init, rename the hook file (hooks are matched by filename in Claude Code settings, not by the
|
|
144
|
+
2. Re-running `fozikio init --here` will overwrite your changes (it copies fresh from the package)
|
|
145
|
+
3. To preserve customizations across re-init, rename the hook file (hooks are matched by filename in Claude Code settings, not by the fozikio manifest)
|
|
146
146
|
|
|
147
147
|
## Related Projects
|
|
148
148
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agent-cmd.ts — fozikio agent subcommand tree.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* fozikio agent add <name> [options] Register a new agent
|
|
6
|
+
* fozikio agent list List registered agents
|
|
7
|
+
* fozikio agent generate-mcp Write multi-agent .mcp.json
|
|
8
|
+
*/
|
|
9
|
+
export declare function runAgent(args: string[]): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=agent-cmd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-cmd.d.ts","sourceRoot":"","sources":["../../src/bin/agent-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAyQH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B5D"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agent-cmd.ts — fozikio agent subcommand tree.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* fozikio agent add <name> [options] Register a new agent
|
|
6
|
+
* fozikio agent list List registered agents
|
|
7
|
+
* fozikio agent generate-mcp Write multi-agent .mcp.json
|
|
8
|
+
*/
|
|
9
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
|
|
10
|
+
import { resolve, dirname } from 'node:path';
|
|
11
|
+
import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
|
|
12
|
+
import { findConfigPath } from './config-utils.js';
|
|
13
|
+
// ─── Constants ──────────────────────────────────────────────────────────────
|
|
14
|
+
const NAME_PATTERN = /^[a-z][a-z0-9_-]{0,62}$/;
|
|
15
|
+
const RESERVED_NAMES = new Set(['default', '__proto__', 'constructor', 'prototype']);
|
|
16
|
+
// ─── Validation ─────────────────────────────────────────────────────────────
|
|
17
|
+
function validateAgentName(name) {
|
|
18
|
+
if (!NAME_PATTERN.test(name)) {
|
|
19
|
+
return `Invalid agent name "${name}". Must match: ${NAME_PATTERN.source}`;
|
|
20
|
+
}
|
|
21
|
+
if (RESERVED_NAMES.has(name)) {
|
|
22
|
+
return `"${name}" is a reserved name and cannot be used as an agent name.`;
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
// ─── YAML Read/Write ────────────────────────────────────────────────────────
|
|
27
|
+
function readAgentYaml(configPath) {
|
|
28
|
+
const raw = readFileSync(configPath, 'utf-8');
|
|
29
|
+
const parsed = parseYaml(raw);
|
|
30
|
+
return parsed ?? {};
|
|
31
|
+
}
|
|
32
|
+
function writeAgentYaml(configPath, doc) {
|
|
33
|
+
const dir = dirname(configPath);
|
|
34
|
+
if (!existsSync(dir)) {
|
|
35
|
+
mkdirSync(dir, { recursive: true });
|
|
36
|
+
}
|
|
37
|
+
writeFileSync(configPath, stringifyYaml(doc), 'utf-8');
|
|
38
|
+
}
|
|
39
|
+
// ─── Subcommands ────────────────────────────────────────────────────────────
|
|
40
|
+
/**
|
|
41
|
+
* `fozikio agent add <name>` — register a new agent.
|
|
42
|
+
*
|
|
43
|
+
* Options:
|
|
44
|
+
* --store sqlite|firestore Storage backend (default: sqlite)
|
|
45
|
+
* --embed ollama|vertex|openai Embedding provider (default: ollama)
|
|
46
|
+
* --description "..." Agent description
|
|
47
|
+
*/
|
|
48
|
+
async function runAgentAdd(name, args) {
|
|
49
|
+
// Validate name
|
|
50
|
+
const nameError = validateAgentName(name);
|
|
51
|
+
if (nameError) {
|
|
52
|
+
console.error(`[fozikio] ${nameError}`);
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
// Parse options
|
|
56
|
+
let store = 'sqlite';
|
|
57
|
+
let embed = 'ollama';
|
|
58
|
+
let description = '';
|
|
59
|
+
for (let i = 0; i < args.length; i++) {
|
|
60
|
+
const arg = args[i];
|
|
61
|
+
if (arg === '--store' && args[i + 1]) {
|
|
62
|
+
store = args[++i];
|
|
63
|
+
}
|
|
64
|
+
else if (arg === '--embed' && args[i + 1]) {
|
|
65
|
+
embed = args[++i];
|
|
66
|
+
}
|
|
67
|
+
else if (arg === '--description' && args[i + 1]) {
|
|
68
|
+
description = args[++i];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Find config
|
|
72
|
+
const configPath = findConfigPath();
|
|
73
|
+
if (!configPath) {
|
|
74
|
+
console.error('[fozikio] No agent.yaml found. Run `fozikio init` first.');
|
|
75
|
+
process.exit(1);
|
|
76
|
+
}
|
|
77
|
+
// Read existing YAML
|
|
78
|
+
const doc = readAgentYaml(configPath);
|
|
79
|
+
// Check for duplicate
|
|
80
|
+
if (doc.agents && name in doc.agents) {
|
|
81
|
+
console.error(`[fozikio] Agent "${name}" already exists.`);
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
// Add agents entry
|
|
85
|
+
if (!doc.agents) {
|
|
86
|
+
doc.agents = {};
|
|
87
|
+
}
|
|
88
|
+
const namespace = name;
|
|
89
|
+
const profilePath = `agents/${name}/profile.md`;
|
|
90
|
+
const entry = {
|
|
91
|
+
namespace,
|
|
92
|
+
profile: profilePath,
|
|
93
|
+
};
|
|
94
|
+
if (description) {
|
|
95
|
+
entry.description = description;
|
|
96
|
+
}
|
|
97
|
+
doc.agents[name] = entry;
|
|
98
|
+
// Add cortex entry with collections_prefix
|
|
99
|
+
if (!doc.cortex) {
|
|
100
|
+
doc.cortex = {};
|
|
101
|
+
}
|
|
102
|
+
const isPrimary = Object.keys(doc.cortex).length === 0;
|
|
103
|
+
doc.cortex[namespace] = {
|
|
104
|
+
store,
|
|
105
|
+
embed,
|
|
106
|
+
collections_prefix: `${namespace}_`,
|
|
107
|
+
primary: isPrimary,
|
|
108
|
+
};
|
|
109
|
+
// Write YAML back
|
|
110
|
+
writeAgentYaml(configPath, doc);
|
|
111
|
+
// Create profile.md
|
|
112
|
+
const configDir = dirname(configPath);
|
|
113
|
+
const profileAbsolute = resolve(configDir, profilePath);
|
|
114
|
+
const profileDir = dirname(profileAbsolute);
|
|
115
|
+
if (!existsSync(profileDir)) {
|
|
116
|
+
mkdirSync(profileDir, { recursive: true });
|
|
117
|
+
}
|
|
118
|
+
if (!existsSync(profileAbsolute)) {
|
|
119
|
+
const profileContent = `---
|
|
120
|
+
type: mind
|
|
121
|
+
status: active
|
|
122
|
+
tags: []
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
# ${name}
|
|
126
|
+
|
|
127
|
+
## Identity
|
|
128
|
+
|
|
129
|
+
*Who is this agent? Fill in your identity here.*
|
|
130
|
+
|
|
131
|
+
## Values
|
|
132
|
+
|
|
133
|
+
-
|
|
134
|
+
|
|
135
|
+
## Working Style
|
|
136
|
+
|
|
137
|
+
-
|
|
138
|
+
|
|
139
|
+
## Goals
|
|
140
|
+
|
|
141
|
+
-
|
|
142
|
+
`;
|
|
143
|
+
writeFileSync(profileAbsolute, profileContent, 'utf-8');
|
|
144
|
+
console.error(`[fozikio] Created profile: ${profilePath}`);
|
|
145
|
+
}
|
|
146
|
+
console.error(`[fozikio] Agent "${name}" added.`);
|
|
147
|
+
console.error(` namespace: ${namespace}`);
|
|
148
|
+
console.error(` profile: ${profilePath}`);
|
|
149
|
+
console.error(` collections_prefix: ${namespace}_`);
|
|
150
|
+
console.error(` store: ${store}, embed: ${embed}`);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* `fozikio agent list` — display all registered agents.
|
|
154
|
+
*/
|
|
155
|
+
async function runAgentList() {
|
|
156
|
+
const configPath = findConfigPath();
|
|
157
|
+
if (!configPath) {
|
|
158
|
+
console.error('[fozikio] No agent.yaml found. Run `fozikio init` first.');
|
|
159
|
+
process.exit(1);
|
|
160
|
+
}
|
|
161
|
+
const doc = readAgentYaml(configPath);
|
|
162
|
+
if (!doc.agents || Object.keys(doc.agents).length === 0) {
|
|
163
|
+
console.error('[fozikio] No agents registered. Use `fozikio agent add <name>` to add one.');
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const cortex = doc.cortex ?? {};
|
|
167
|
+
console.error('[fozikio] Registered agents:\n');
|
|
168
|
+
for (const [name, entry] of Object.entries(doc.agents)) {
|
|
169
|
+
const ns = entry.namespace;
|
|
170
|
+
const cortexEntry = cortex[ns];
|
|
171
|
+
const primary = cortexEntry?.primary === true ? ' (primary)' : '';
|
|
172
|
+
const desc = entry.description ? ` — ${entry.description}` : '';
|
|
173
|
+
console.error(` ${name}${primary}${desc}`);
|
|
174
|
+
console.error(` namespace: ${ns}`);
|
|
175
|
+
console.error(` profile: ${entry.profile ?? '(none)'}`);
|
|
176
|
+
if (cortexEntry) {
|
|
177
|
+
const store = cortexEntry.store ?? '?';
|
|
178
|
+
const embed = cortexEntry.embed ?? '?';
|
|
179
|
+
const prefix = cortexEntry.collections_prefix ?? '';
|
|
180
|
+
console.error(` store: ${store}, embed: ${embed}, prefix: ${prefix}`);
|
|
181
|
+
}
|
|
182
|
+
console.error('');
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* `fozikio agent generate-mcp` — write a multi-agent .mcp.json.
|
|
187
|
+
*/
|
|
188
|
+
async function runGenerateMcp() {
|
|
189
|
+
const configPath = findConfigPath();
|
|
190
|
+
if (!configPath) {
|
|
191
|
+
console.error('[fozikio] No agent.yaml found. Run `fozikio init` first.');
|
|
192
|
+
process.exit(1);
|
|
193
|
+
}
|
|
194
|
+
const doc = readAgentYaml(configPath);
|
|
195
|
+
if (!doc.agents || Object.keys(doc.agents).length === 0) {
|
|
196
|
+
console.error('[fozikio] No agents registered. Use `fozikio agent add <name>` first.');
|
|
197
|
+
process.exit(1);
|
|
198
|
+
}
|
|
199
|
+
const mcpServers = {};
|
|
200
|
+
for (const name of Object.keys(doc.agents)) {
|
|
201
|
+
mcpServers[`cortex-${name}`] = {
|
|
202
|
+
command: 'npx',
|
|
203
|
+
args: ['fozikio', 'serve', '--agent', name],
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
const mcpJson = JSON.stringify({ mcpServers }, null, 2) + '\n';
|
|
207
|
+
// Write to the project root (parent of .fozikio/)
|
|
208
|
+
const configDir = dirname(configPath);
|
|
209
|
+
const projectRoot = dirname(configDir);
|
|
210
|
+
const mcpPath = resolve(projectRoot, '.mcp.json');
|
|
211
|
+
writeFileSync(mcpPath, mcpJson, 'utf-8');
|
|
212
|
+
console.error(`[fozikio] Multi-agent .mcp.json written to: ${mcpPath}`);
|
|
213
|
+
console.error(` ${Object.keys(mcpServers).length} server(s): ${Object.keys(mcpServers).join(', ')}`);
|
|
214
|
+
}
|
|
215
|
+
// ─── Dispatcher ─────────────────────────────────────────────────────────────
|
|
216
|
+
export async function runAgent(args) {
|
|
217
|
+
const subcommand = args[0];
|
|
218
|
+
switch (subcommand) {
|
|
219
|
+
case 'add': {
|
|
220
|
+
const name = args[1];
|
|
221
|
+
if (!name) {
|
|
222
|
+
console.error('[fozikio] Usage: fozikio agent add <name>');
|
|
223
|
+
process.exit(1);
|
|
224
|
+
}
|
|
225
|
+
await runAgentAdd(name, args.slice(2));
|
|
226
|
+
break;
|
|
227
|
+
}
|
|
228
|
+
case 'list':
|
|
229
|
+
await runAgentList();
|
|
230
|
+
break;
|
|
231
|
+
case 'generate-mcp':
|
|
232
|
+
await runGenerateMcp();
|
|
233
|
+
break;
|
|
234
|
+
default:
|
|
235
|
+
console.error(`[fozikio] agent: unknown subcommand "${subcommand ?? ''}"`);
|
|
236
|
+
console.error('');
|
|
237
|
+
console.error('Usage:');
|
|
238
|
+
console.error(' fozikio agent add <name> Register a new agent');
|
|
239
|
+
console.error(' fozikio agent list List registered agents');
|
|
240
|
+
console.error(' fozikio agent generate-mcp Write multi-agent .mcp.json');
|
|
241
|
+
process.exit(1);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=agent-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-cmd.js","sourceRoot":"","sources":["../../src/bin/agent-cmd.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/cli.d.ts
CHANGED
package/dist/bin/cli.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* fozikio CLI — setup and management for cortex-engine agents.
|
|
4
4
|
*
|
|
5
5
|
* Commands:
|
|
6
6
|
* init <name> Scaffold a new agent workspace
|
|
@@ -13,21 +13,31 @@ import { loadConfig } from './config-loader.js';
|
|
|
13
13
|
import { runInit } from './init.js';
|
|
14
14
|
import { runDigest } from './digest-cmd.js';
|
|
15
15
|
import { runConfig } from './config-cmd.js';
|
|
16
|
+
import { runAgent } from './agent-cmd.js';
|
|
16
17
|
import { startServer } from '../mcp/server.js';
|
|
17
18
|
// ─── Help ──────────────────────────────────────────────────────────────────
|
|
18
19
|
function printHelp() {
|
|
19
|
-
console.error(`
|
|
20
|
+
console.error(`fozikio — setup and management for cortex-engine agents
|
|
20
21
|
|
|
21
22
|
Usage:
|
|
22
|
-
|
|
23
|
+
fozikio <command> [options]
|
|
23
24
|
|
|
24
25
|
Commands:
|
|
25
26
|
init <name> Scaffold a new agent workspace
|
|
26
27
|
serve Start the MCP server (stdio)
|
|
27
28
|
config View or edit configuration
|
|
29
|
+
agent Manage multi-agent registry
|
|
28
30
|
digest Process documents through cortex
|
|
29
31
|
help Show this help message
|
|
30
32
|
|
|
33
|
+
Serve options:
|
|
34
|
+
--agent <name> Scope server to a named agent's namespace
|
|
35
|
+
|
|
36
|
+
Agent subcommands:
|
|
37
|
+
agent add <name> Register a new agent
|
|
38
|
+
agent list List registered agents
|
|
39
|
+
agent generate-mcp Write multi-agent .mcp.json
|
|
40
|
+
|
|
31
41
|
Init options:
|
|
32
42
|
--store sqlite|firestore Storage backend (default: sqlite)
|
|
33
43
|
--embed ollama|vertex|openai Embedding provider (default: ollama)
|
|
@@ -37,14 +47,14 @@ Init options:
|
|
|
37
47
|
--obsidian Create .obsidian/ structure
|
|
38
48
|
|
|
39
49
|
Examples:
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
fozikio init my-agent
|
|
51
|
+
fozikio init my-agent --store firestore --embed vertex --llm gemini
|
|
52
|
+
fozikio init --here --obsidian
|
|
53
|
+
fozikio serve
|
|
54
|
+
fozikio config
|
|
55
|
+
fozikio config --store sqlite --embed ollama
|
|
56
|
+
fozikio digest path/to/file.md
|
|
57
|
+
fozikio digest --pending
|
|
48
58
|
`);
|
|
49
59
|
}
|
|
50
60
|
// ─── Dispatch ──────────────────────────────────────────────────────────────
|
|
@@ -53,24 +63,36 @@ switch (command) {
|
|
|
53
63
|
case 'init':
|
|
54
64
|
runInit(rest);
|
|
55
65
|
break;
|
|
56
|
-
case 'serve':
|
|
66
|
+
case 'serve': {
|
|
67
|
+
let agentName;
|
|
68
|
+
const agentIdx = rest.indexOf('--agent');
|
|
69
|
+
if (agentIdx !== -1 && rest[agentIdx + 1]) {
|
|
70
|
+
agentName = rest[agentIdx + 1];
|
|
71
|
+
}
|
|
57
72
|
(async () => {
|
|
58
|
-
const config = loadConfig();
|
|
73
|
+
const config = loadConfig(undefined, agentName);
|
|
59
74
|
await startServer(config);
|
|
60
75
|
})().catch(err => {
|
|
61
|
-
console.error('[
|
|
76
|
+
console.error('[fozikio] Fatal error:', err);
|
|
62
77
|
process.exit(1);
|
|
63
78
|
});
|
|
64
79
|
break;
|
|
80
|
+
}
|
|
65
81
|
case 'config':
|
|
66
82
|
runConfig(rest).catch(err => {
|
|
67
|
-
console.error('[
|
|
83
|
+
console.error('[fozikio] Config error:', err);
|
|
84
|
+
process.exit(1);
|
|
85
|
+
});
|
|
86
|
+
break;
|
|
87
|
+
case 'agent':
|
|
88
|
+
runAgent(rest).catch(err => {
|
|
89
|
+
console.error('[fozikio] Agent error:', err);
|
|
68
90
|
process.exit(1);
|
|
69
91
|
});
|
|
70
92
|
break;
|
|
71
93
|
case 'digest':
|
|
72
94
|
runDigest(rest).catch(err => {
|
|
73
|
-
console.error('[
|
|
95
|
+
console.error('[fozikio] Digest error:', err);
|
|
74
96
|
process.exit(1);
|
|
75
97
|
});
|
|
76
98
|
break;
|
|
@@ -80,12 +102,12 @@ switch (command) {
|
|
|
80
102
|
printHelp();
|
|
81
103
|
break;
|
|
82
104
|
case undefined:
|
|
83
|
-
console.error('[
|
|
105
|
+
console.error('[fozikio] No command provided.\n');
|
|
84
106
|
printHelp();
|
|
85
107
|
process.exit(1);
|
|
86
108
|
break;
|
|
87
109
|
default:
|
|
88
|
-
console.error(`[
|
|
110
|
+
console.error(`[fozikio] Unknown command: ${command}\n`);
|
|
89
111
|
printHelp();
|
|
90
112
|
process.exit(1);
|
|
91
113
|
}
|
package/dist/bin/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,8EAA8E;AAE9E,SAAS,SAAS;IAChB,OAAO,CAAC,KAAK,CAAC
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/config-cmd.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* config-cmd.ts —
|
|
2
|
+
* config-cmd.ts — fozikio config command handler.
|
|
3
3
|
*
|
|
4
4
|
* Usage:
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* fozikio config Show current config
|
|
6
|
+
* fozikio config --store sqlite Set storage backend
|
|
7
|
+
* fozikio config --embed ollama Set embedding provider
|
|
8
|
+
* fozikio config --llm ollama Set LLM provider
|
|
9
|
+
* fozikio config --path Show config file path
|
|
10
10
|
*/
|
|
11
11
|
export declare function runConfig(args: string[]): Promise<void>;
|
|
12
12
|
//# sourceMappingURL=config-cmd.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-cmd.d.ts","sourceRoot":"","sources":["../../src/bin/config-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"config-cmd.d.ts","sourceRoot":"","sources":["../../src/bin/config-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAsIH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD7D"}
|
package/dist/bin/config-cmd.js
CHANGED
|
@@ -1,41 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* config-cmd.ts —
|
|
2
|
+
* config-cmd.ts — fozikio config command handler.
|
|
3
3
|
*
|
|
4
4
|
* Usage:
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* fozikio config Show current config
|
|
6
|
+
* fozikio config --store sqlite Set storage backend
|
|
7
|
+
* fozikio config --embed ollama Set embedding provider
|
|
8
|
+
* fozikio config --llm ollama Set LLM provider
|
|
9
|
+
* fozikio config --path Show config file path
|
|
10
10
|
*/
|
|
11
11
|
import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
|
|
12
|
-
import {
|
|
12
|
+
import { dirname } from 'node:path';
|
|
13
13
|
import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
|
|
14
14
|
import { loadConfig } from './config-loader.js';
|
|
15
|
+
import { findConfigPath, defaultConfigPath } from './config-utils.js';
|
|
15
16
|
import { DEFAULT_CONFIG } from '../core/config.js';
|
|
16
|
-
// ─── Config File Discovery ────────────────────────────────────────────────────
|
|
17
|
-
/**
|
|
18
|
-
* Find the config file path — mirrors the search order in config-loader.ts.
|
|
19
|
-
* Returns null if no config file exists (defaults are in use).
|
|
20
|
-
*/
|
|
21
|
-
function findConfigPath(cwd = process.cwd()) {
|
|
22
|
-
const searchPaths = [
|
|
23
|
-
resolve(cwd, '.fozikio', 'config.yaml'),
|
|
24
|
-
resolve(cwd, 'cortex.config.yaml'),
|
|
25
|
-
resolve(cwd, 'config.yaml'),
|
|
26
|
-
];
|
|
27
|
-
for (const p of searchPaths) {
|
|
28
|
-
if (existsSync(p))
|
|
29
|
-
return p;
|
|
30
|
-
}
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Default write location when no config exists yet.
|
|
35
|
-
*/
|
|
36
|
-
function defaultConfigPath(cwd = process.cwd()) {
|
|
37
|
-
return resolve(cwd, '.fozikio', 'config.yaml');
|
|
38
|
-
}
|
|
39
17
|
function readRawConfig(configPath) {
|
|
40
18
|
const raw = readFileSync(configPath, 'utf-8');
|
|
41
19
|
const parsed = parseYaml(raw);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-cmd.js","sourceRoot":"","sources":["../../src/bin/config-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"config-cmd.js","sourceRoot":"","sources":["../../src/bin/config-cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
* config-loader.ts — shared config loading for cortex-engine.
|
|
3
3
|
*
|
|
4
4
|
* Config search order:
|
|
5
|
-
* 1. .fozikio/
|
|
6
|
-
* 2.
|
|
7
|
-
* 3. config.yaml
|
|
8
|
-
* 4.
|
|
5
|
+
* 1. .fozikio/agent.yaml (new workspace format)
|
|
6
|
+
* 2. .fozikio/config.yaml (legacy workspace format — backward compatible)
|
|
7
|
+
* 3. cortex.config.yaml (project root)
|
|
8
|
+
* 4. config.yaml (project root)
|
|
9
|
+
* 5. defaults (sqlite + ollama)
|
|
9
10
|
*/
|
|
10
11
|
import type { CortexConfig } from '../core/config.js';
|
|
11
|
-
export declare function loadConfig(cwd?: string): CortexConfig;
|
|
12
|
+
export declare function loadConfig(cwd?: string, agentName?: string): CortexConfig;
|
|
12
13
|
//# sourceMappingURL=config-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/bin/config-loader.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/bin/config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,YAAY,EAA2B,MAAM,mBAAmB,CAAC;AAiG/E,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAsB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,CA4DxF"}
|