zora-agent 0.9.4 → 0.9.6
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/CHANGELOG.md +1 -1
- package/README.md +103 -92
- package/dist/cli/audit-commands.d.ts.map +1 -1
- package/dist/cli/audit-commands.js +3 -1
- package/dist/cli/audit-commands.js.map +1 -1
- package/dist/cli/daemon.js +86 -28
- package/dist/cli/daemon.js.map +1 -1
- package/dist/cli/edit-commands.d.ts.map +1 -1
- package/dist/cli/edit-commands.js +3 -1
- package/dist/cli/edit-commands.js.map +1 -1
- package/dist/cli/hook-commands.d.ts +9 -0
- package/dist/cli/hook-commands.d.ts.map +1 -0
- package/dist/cli/hook-commands.js +106 -0
- package/dist/cli/hook-commands.js.map +1 -0
- package/dist/cli/index.js +87 -35
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init-command.d.ts.map +1 -1
- package/dist/cli/init-command.js +108 -9
- package/dist/cli/init-command.js.map +1 -1
- package/dist/cli/memory-commands.d.ts +1 -1
- package/dist/cli/memory-commands.d.ts.map +1 -1
- package/dist/cli/memory-commands.js +213 -1
- package/dist/cli/memory-commands.js.map +1 -1
- package/dist/cli/presets.d.ts.map +1 -1
- package/dist/cli/presets.js +2 -1
- package/dist/cli/presets.js.map +1 -1
- package/dist/cli/skill-commands.d.ts.map +1 -1
- package/dist/cli/skill-commands.js +4 -2
- package/dist/cli/skill-commands.js.map +1 -1
- package/dist/cli/steer-commands.d.ts.map +1 -1
- package/dist/cli/steer-commands.js +6 -4
- package/dist/cli/steer-commands.js.map +1 -1
- package/dist/cli/team-commands.d.ts.map +1 -1
- package/dist/cli/team-commands.js +3 -1
- package/dist/cli/team-commands.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +12 -2
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/loader.d.ts +23 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +64 -3
- package/dist/config/loader.js.map +1 -1
- package/dist/config/policy-loader.d.ts +14 -0
- package/dist/config/policy-loader.d.ts.map +1 -1
- package/dist/config/policy-loader.js +33 -0
- package/dist/config/policy-loader.js.map +1 -1
- package/dist/dashboard/frontend/dist/assets/index-BcOGj1EF.css +1 -0
- package/dist/dashboard/frontend/dist/assets/index-BtiFO9YN.js +261 -0
- package/dist/dashboard/frontend/dist/assets/index-Cfjy5acU.css +1 -0
- package/dist/dashboard/frontend/dist/assets/index-D41hcjgc.js +253 -0
- package/dist/dashboard/frontend/dist/assets/index-D83BawFd.css +1 -0
- package/dist/dashboard/frontend/dist/assets/index-DAODjoxu.css +1 -0
- package/dist/dashboard/frontend/dist/assets/index-DB-Eu5oV.js +253 -0
- package/dist/dashboard/frontend/dist/assets/index-W0VVEDu6.js +253 -0
- package/dist/dashboard/frontend/dist/index.html +17 -0
- package/dist/dashboard/server.d.ts +19 -2
- package/dist/dashboard/server.d.ts.map +1 -1
- package/dist/dashboard/server.js +121 -20
- package/dist/dashboard/server.js.map +1 -1
- package/dist/hooks/hook-runner.d.ts +55 -0
- package/dist/hooks/hook-runner.d.ts.map +1 -0
- package/dist/hooks/hook-runner.js +120 -0
- package/dist/hooks/hook-runner.js.map +1 -0
- package/dist/hooks/hook-types.d.ts +82 -0
- package/dist/hooks/hook-types.d.ts.map +1 -0
- package/dist/hooks/hook-types.js +20 -0
- package/dist/hooks/hook-types.js.map +1 -0
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +6 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/memory/context-compressor.d.ts +108 -0
- package/dist/memory/context-compressor.d.ts.map +1 -0
- package/dist/memory/context-compressor.js +307 -0
- package/dist/memory/context-compressor.js.map +1 -0
- package/dist/memory/index.d.ts +1 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +1 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/memory-manager.d.ts +88 -4
- package/dist/memory/memory-manager.d.ts.map +1 -1
- package/dist/memory/memory-manager.js +299 -7
- package/dist/memory/memory-manager.js.map +1 -1
- package/dist/memory/observation-store.d.ts +75 -0
- package/dist/memory/observation-store.d.ts.map +1 -0
- package/dist/memory/observation-store.js +162 -0
- package/dist/memory/observation-store.js.map +1 -0
- package/dist/memory/observer-worker.d.ts +34 -0
- package/dist/memory/observer-worker.d.ts.map +1 -0
- package/dist/memory/observer-worker.js +161 -0
- package/dist/memory/observer-worker.js.map +1 -0
- package/dist/memory/reflector-worker.d.ts +40 -0
- package/dist/memory/reflector-worker.d.ts.map +1 -0
- package/dist/memory/reflector-worker.js +185 -0
- package/dist/memory/reflector-worker.js.map +1 -0
- package/dist/memory/salience-scorer.d.ts +16 -6
- package/dist/memory/salience-scorer.d.ts.map +1 -1
- package/dist/memory/salience-scorer.js +42 -22
- package/dist/memory/salience-scorer.js.map +1 -1
- package/dist/memory/structured-memory.d.ts +36 -1
- package/dist/memory/structured-memory.d.ts.map +1 -1
- package/dist/memory/structured-memory.js +207 -8
- package/dist/memory/structured-memory.js.map +1 -1
- package/dist/memory/token-estimator.d.ts +31 -0
- package/dist/memory/token-estimator.d.ts.map +1 -0
- package/dist/memory/token-estimator.js +77 -0
- package/dist/memory/token-estimator.js.map +1 -0
- package/dist/memory/validation-pipeline.d.ts +37 -0
- package/dist/memory/validation-pipeline.d.ts.map +1 -0
- package/dist/memory/validation-pipeline.js +106 -0
- package/dist/memory/validation-pipeline.js.map +1 -0
- package/dist/orchestrator/auth-monitor.d.ts.map +1 -1
- package/dist/orchestrator/auth-monitor.js +3 -1
- package/dist/orchestrator/auth-monitor.js.map +1 -1
- package/dist/orchestrator/execution-loop.d.ts +23 -0
- package/dist/orchestrator/execution-loop.d.ts.map +1 -1
- package/dist/orchestrator/execution-loop.js +60 -19
- package/dist/orchestrator/execution-loop.js.map +1 -1
- package/dist/orchestrator/failover-controller.d.ts +26 -2
- package/dist/orchestrator/failover-controller.d.ts.map +1 -1
- package/dist/orchestrator/failover-controller.js +143 -23
- package/dist/orchestrator/failover-controller.js.map +1 -1
- package/dist/orchestrator/orchestrator.d.ts +70 -7
- package/dist/orchestrator/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator.js +416 -92
- package/dist/orchestrator/orchestrator.js.map +1 -1
- package/dist/orchestrator/retry-queue.d.ts.map +1 -1
- package/dist/orchestrator/retry-queue.js +24 -9
- package/dist/orchestrator/retry-queue.js.map +1 -1
- package/dist/orchestrator/router.d.ts +16 -1
- package/dist/orchestrator/router.d.ts.map +1 -1
- package/dist/orchestrator/router.js +79 -20
- package/dist/orchestrator/router.js.map +1 -1
- package/dist/orchestrator/session-manager.d.ts +26 -1
- package/dist/orchestrator/session-manager.d.ts.map +1 -1
- package/dist/orchestrator/session-manager.js +88 -4
- package/dist/orchestrator/session-manager.js.map +1 -1
- package/dist/providers/circuit-breaker.d.ts +78 -0
- package/dist/providers/circuit-breaker.d.ts.map +1 -0
- package/dist/providers/circuit-breaker.js +129 -0
- package/dist/providers/circuit-breaker.js.map +1 -0
- package/dist/providers/claude-provider.d.ts +27 -11
- package/dist/providers/claude-provider.d.ts.map +1 -1
- package/dist/providers/claude-provider.js +161 -46
- package/dist/providers/claude-provider.js.map +1 -1
- package/dist/providers/gemini-provider.d.ts +9 -1
- package/dist/providers/gemini-provider.d.ts.map +1 -1
- package/dist/providers/gemini-provider.js +97 -48
- package/dist/providers/gemini-provider.js.map +1 -1
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/ollama-provider.d.ts +7 -0
- package/dist/providers/ollama-provider.d.ts.map +1 -1
- package/dist/providers/ollama-provider.js +89 -18
- package/dist/providers/ollama-provider.js.map +1 -1
- package/dist/routines/heartbeat.d.ts +10 -2
- package/dist/routines/heartbeat.d.ts.map +1 -1
- package/dist/routines/heartbeat.js +42 -5
- package/dist/routines/heartbeat.js.map +1 -1
- package/dist/routines/routine-manager.d.ts.map +1 -1
- package/dist/routines/routine-manager.js +22 -15
- package/dist/routines/routine-manager.js.map +1 -1
- package/dist/security/audit-logger.d.ts.map +1 -1
- package/dist/security/audit-logger.js +5 -7
- package/dist/security/audit-logger.js.map +1 -1
- package/dist/security/policy-engine.d.ts +28 -17
- package/dist/security/policy-engine.d.ts.map +1 -1
- package/dist/security/policy-engine.js +42 -185
- package/dist/security/policy-engine.js.map +1 -1
- package/dist/security/policy-serializer.d.ts +19 -0
- package/dist/security/policy-serializer.d.ts.map +1 -0
- package/dist/security/policy-serializer.js +100 -0
- package/dist/security/policy-serializer.js.map +1 -0
- package/dist/security/shell-validator.d.ts +42 -0
- package/dist/security/shell-validator.d.ts.map +1 -0
- package/dist/security/shell-validator.js +231 -0
- package/dist/security/shell-validator.js.map +1 -0
- package/dist/skills/index.d.ts +1 -0
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +1 -0
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/skill-loader.d.ts +38 -2
- package/dist/skills/skill-loader.d.ts.map +1 -1
- package/dist/skills/skill-loader.js +83 -2
- package/dist/skills/skill-loader.js.map +1 -1
- package/dist/skills/subagent-loader.d.ts +66 -0
- package/dist/skills/subagent-loader.d.ts.map +1 -0
- package/dist/skills/subagent-loader.js +143 -0
- package/dist/skills/subagent-loader.js.map +1 -0
- package/dist/steering/flag-manager.d.ts +20 -0
- package/dist/steering/flag-manager.d.ts.map +1 -1
- package/dist/steering/flag-manager.js +94 -11
- package/dist/steering/flag-manager.js.map +1 -1
- package/dist/steering/steering-manager.d.ts +11 -0
- package/dist/steering/steering-manager.d.ts.map +1 -1
- package/dist/steering/steering-manager.js +23 -0
- package/dist/steering/steering-manager.js.map +1 -1
- package/dist/steering/telegram-gateway.d.ts +4 -1
- package/dist/steering/telegram-gateway.d.ts.map +1 -1
- package/dist/steering/telegram-gateway.js +49 -10
- package/dist/steering/telegram-gateway.js.map +1 -1
- package/dist/teams/bridge-watchdog.d.ts.map +1 -1
- package/dist/teams/bridge-watchdog.js +5 -3
- package/dist/teams/bridge-watchdog.js.map +1 -1
- package/dist/teams/gemini-bridge.d.ts.map +1 -1
- package/dist/teams/gemini-bridge.js +9 -4
- package/dist/teams/gemini-bridge.js.map +1 -1
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/memory-tools.d.ts +16 -0
- package/dist/tools/memory-tools.d.ts.map +1 -0
- package/dist/tools/memory-tools.js +207 -0
- package/dist/tools/memory-tools.js.map +1 -0
- package/dist/tools/notifications.d.ts.map +1 -1
- package/dist/tools/notifications.js +3 -1
- package/dist/tools/notifications.js.map +1 -1
- package/dist/tools/tool-factory.d.ts +36 -0
- package/dist/tools/tool-factory.d.ts.map +1 -0
- package/dist/tools/tool-factory.js +55 -0
- package/dist/tools/tool-factory.js.map +1 -0
- package/dist/types.d.ts +205 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +47 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/errors.d.ts +21 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +29 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/event-filter.d.ts +25 -0
- package/dist/utils/event-filter.d.ts.map +1 -0
- package/dist/utils/event-filter.js +61 -0
- package/dist/utils/event-filter.js.map +1 -0
- package/dist/utils/logger.d.ts +33 -36
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +60 -130
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/validate-job-id.d.ts +6 -0
- package/dist/utils/validate-job-id.d.ts.map +1 -0
- package/dist/utils/validate-job-id.js +10 -0
- package/dist/utils/validate-job-id.js.map +1 -0
- package/package.json +12 -3
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook CLI Commands — ORCH-13
|
|
3
|
+
*
|
|
4
|
+
* Provides `zora hooks list` and `zora hooks test` commands
|
|
5
|
+
* for inspecting and testing registered lifecycle hooks.
|
|
6
|
+
*/
|
|
7
|
+
import path from 'node:path';
|
|
8
|
+
import os from 'node:os';
|
|
9
|
+
import fs from 'node:fs';
|
|
10
|
+
import { createLogger } from '../utils/logger.js';
|
|
11
|
+
import { HOOK_EVENT_NAMES } from '../hooks/hook-types.js';
|
|
12
|
+
const log = createLogger('hook-commands');
|
|
13
|
+
/**
|
|
14
|
+
* Load hook config entries from config.toml (parsed).
|
|
15
|
+
* Reads the raw TOML and extracts [[hooks]] sections.
|
|
16
|
+
*/
|
|
17
|
+
async function loadHookConfigs(configDir) {
|
|
18
|
+
const configPath = path.join(configDir, 'config.toml');
|
|
19
|
+
if (!fs.existsSync(configPath)) {
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
const { loadConfig } = await import('../config/loader.js');
|
|
24
|
+
const config = await loadConfig(configPath);
|
|
25
|
+
return config.hooks ?? [];
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
log.warn({ err }, 'Failed to load config for hooks');
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export function registerHookCommands(program, configDir) {
|
|
33
|
+
const hooks = program
|
|
34
|
+
.command('hooks')
|
|
35
|
+
.description('Manage lifecycle hooks');
|
|
36
|
+
hooks
|
|
37
|
+
.command('list')
|
|
38
|
+
.description('List all configured hooks from config.toml')
|
|
39
|
+
.action(async () => {
|
|
40
|
+
const hookConfigs = await loadHookConfigs(configDir);
|
|
41
|
+
if (hookConfigs.length === 0) {
|
|
42
|
+
console.log('No hooks configured in config.toml.');
|
|
43
|
+
console.log('\nTo add hooks, add [[hooks]] sections to ~/.zora/config.toml:');
|
|
44
|
+
console.log('');
|
|
45
|
+
console.log(' [[hooks]]');
|
|
46
|
+
console.log(' event = "beforeToolExecute"');
|
|
47
|
+
console.log(' match = "Bash"');
|
|
48
|
+
console.log(' script = "~/.zora/hooks/validate-bash.sh"');
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
console.log(`Found ${hookConfigs.length} hook(s):\n`);
|
|
52
|
+
const maxEventLen = Math.max(...hookConfigs.map((h) => h.event.length));
|
|
53
|
+
for (const hook of hookConfigs) {
|
|
54
|
+
const paddedEvent = hook.event.padEnd(maxEventLen + 2);
|
|
55
|
+
const matchStr = hook.match ? `match=${hook.match}` : 'match=*';
|
|
56
|
+
const scriptStr = hook.script ? `script=${hook.script}` : 'no script';
|
|
57
|
+
console.log(` ${paddedEvent}${matchStr} ${scriptStr}`);
|
|
58
|
+
}
|
|
59
|
+
console.log(`\nValid hook events: ${HOOK_EVENT_NAMES.join(', ')}`);
|
|
60
|
+
});
|
|
61
|
+
hooks
|
|
62
|
+
.command('test')
|
|
63
|
+
.description('Test a hook by simulating an event')
|
|
64
|
+
.argument('<event>', `Hook event to test (${HOOK_EVENT_NAMES.join(', ')})`)
|
|
65
|
+
.option('--tool <name>', 'Tool name for beforeToolExecute/afterToolExecute events', 'Bash')
|
|
66
|
+
.option('--args <json>', 'JSON arguments for the tool', '{}')
|
|
67
|
+
.action(async (event, _options) => {
|
|
68
|
+
if (!HOOK_EVENT_NAMES.includes(event)) {
|
|
69
|
+
console.error(`Invalid hook event: ${event}`);
|
|
70
|
+
console.error(`Valid events: ${HOOK_EVENT_NAMES.join(', ')}`);
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
const hookConfigs = await loadHookConfigs(configDir);
|
|
74
|
+
const matching = hookConfigs.filter((h) => h.event === event);
|
|
75
|
+
if (matching.length === 0) {
|
|
76
|
+
console.log(`No hooks configured for event "${event}".`);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
console.log(`Testing ${matching.length} hook(s) for event "${event}"...\n`);
|
|
80
|
+
for (const hook of matching) {
|
|
81
|
+
if (!hook.script) {
|
|
82
|
+
console.log(` [skip] ${hook.event} — no script configured`);
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
const scriptPath = hook.script.replace(/^~/, os.homedir());
|
|
86
|
+
if (!fs.existsSync(scriptPath)) {
|
|
87
|
+
console.log(` [fail] ${hook.event} — script not found: ${scriptPath}`);
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
// Check if script is executable
|
|
91
|
+
try {
|
|
92
|
+
fs.accessSync(scriptPath, fs.constants.X_OK);
|
|
93
|
+
console.log(` [pass] ${hook.event} — script exists and is executable: ${hook.script}`);
|
|
94
|
+
if (hook.match) {
|
|
95
|
+
console.log(` match pattern: ${hook.match}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
console.log(` [warn] ${hook.event} — script exists but is NOT executable: ${hook.script}`);
|
|
100
|
+
console.log(` Run: chmod +x ${hook.script}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
console.log('\nNote: `hooks test` validates configuration only. It does not execute scripts.');
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=hook-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-commands.js","sourceRoot":"","sources":["../../src/cli/hook-commands.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { Command } from 'commander';
|
|
11
11
|
import * as clack from '@clack/prompts';
|
|
12
|
-
import {
|
|
12
|
+
import { resolveConfig } from '../config/loader.js';
|
|
13
|
+
import { resolvePolicy } from '../config/policy-loader.js';
|
|
13
14
|
import { PolicyEngine } from '../security/policy-engine.js';
|
|
14
15
|
import { SessionManager } from '../orchestrator/session-manager.js';
|
|
15
16
|
import { SteeringManager } from '../steering/steering-manager.js';
|
|
@@ -27,13 +28,19 @@ import { registerEditCommands } from './edit-commands.js';
|
|
|
27
28
|
import { registerTeamCommands } from './team-commands.js';
|
|
28
29
|
import { registerSteerCommands } from './steer-commands.js';
|
|
29
30
|
import { registerSkillCommands } from './skill-commands.js';
|
|
31
|
+
import { registerHookCommands } from './hook-commands.js';
|
|
30
32
|
import { registerInitCommand } from './init-command.js';
|
|
31
33
|
import { runDoctorChecks } from './doctor.js';
|
|
34
|
+
import { createLogger } from '../utils/logger.js';
|
|
35
|
+
import { createRequire } from 'node:module';
|
|
36
|
+
const log = createLogger('cli');
|
|
32
37
|
const program = new Command();
|
|
38
|
+
const require = createRequire(import.meta.url);
|
|
39
|
+
const pkg = require('../../package.json');
|
|
33
40
|
program
|
|
34
41
|
.name('zora-agent')
|
|
35
42
|
.description('Long-running autonomous personal AI agent')
|
|
36
|
-
.version(
|
|
43
|
+
.version(pkg.version);
|
|
37
44
|
/**
|
|
38
45
|
* Creates LLMProvider instances from config.
|
|
39
46
|
*/
|
|
@@ -42,7 +49,11 @@ function createProviders(config) {
|
|
|
42
49
|
for (const pConfig of config.providers) {
|
|
43
50
|
if (!pConfig.enabled)
|
|
44
51
|
continue;
|
|
45
|
-
|
|
52
|
+
// TYPE-07: Cast to KnownProviderType for exhaustiveness checking.
|
|
53
|
+
// If a new provider type is added to KnownProviderType, TypeScript
|
|
54
|
+
// will flag the missing case via the `never` check in the default branch.
|
|
55
|
+
const providerType = pConfig.type;
|
|
56
|
+
switch (providerType) {
|
|
46
57
|
case 'claude-sdk':
|
|
47
58
|
providers.push(new ClaudeProvider({ config: pConfig }));
|
|
48
59
|
break;
|
|
@@ -52,48 +63,74 @@ function createProviders(config) {
|
|
|
52
63
|
case 'ollama':
|
|
53
64
|
providers.push(new OllamaProvider({ config: pConfig }));
|
|
54
65
|
break;
|
|
55
|
-
default:
|
|
56
|
-
|
|
66
|
+
default: {
|
|
67
|
+
// Exhaustiveness check: if KnownProviderType gains a new member
|
|
68
|
+
// and we don't add a case, TypeScript reports an error here.
|
|
69
|
+
const _exhaustive = providerType;
|
|
70
|
+
log.warn({ type: pConfig.type, name: pConfig.name }, 'Unknown provider type, skipping');
|
|
71
|
+
void _exhaustive;
|
|
72
|
+
}
|
|
57
73
|
}
|
|
58
74
|
}
|
|
59
75
|
return providers;
|
|
60
76
|
}
|
|
61
77
|
/**
|
|
62
78
|
* Returns the path to the daemon PID file.
|
|
79
|
+
* Uses project .zora/ if it exists in the given dir, else global.
|
|
63
80
|
*/
|
|
64
|
-
function getPidFilePath() {
|
|
81
|
+
function getPidFilePath(projectDir) {
|
|
82
|
+
if (projectDir) {
|
|
83
|
+
const projectZora = path.join(projectDir, '.zora');
|
|
84
|
+
if (fs.existsSync(projectZora)) {
|
|
85
|
+
return path.join(projectZora, 'state', 'daemon.pid');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
65
88
|
return path.join(os.homedir(), '.zora', 'state', 'daemon.pid');
|
|
66
89
|
}
|
|
67
90
|
/**
|
|
68
91
|
* Common setup for commands that need config and services.
|
|
92
|
+
* Uses three-layer config resolution: defaults → global → project.
|
|
69
93
|
*/
|
|
70
|
-
async function setupContext() {
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
94
|
+
async function setupContext(projectDir) {
|
|
95
|
+
const cwd = projectDir ?? process.cwd();
|
|
96
|
+
// Three-layer config resolution
|
|
97
|
+
let config;
|
|
98
|
+
let sources;
|
|
99
|
+
try {
|
|
100
|
+
const resolved = await resolveConfig({ projectDir: cwd });
|
|
101
|
+
config = resolved.config;
|
|
102
|
+
sources = resolved.sources;
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
// If no config at all, give a friendly message
|
|
106
|
+
const globalPath = path.join(os.homedir(), '.zora', 'config.toml');
|
|
107
|
+
if (!fs.existsSync(globalPath)) {
|
|
108
|
+
log.error("Zora isn't configured yet. Run 'zora-agent init' to set up in 2 minutes.");
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
log.error({ err }, 'Config resolution failed.');
|
|
112
|
+
}
|
|
77
113
|
process.exit(1);
|
|
78
114
|
}
|
|
79
|
-
|
|
80
|
-
// Load policy from TOML using centralized loader
|
|
81
|
-
const { loadPolicy } = await import('../config/policy-loader.js');
|
|
115
|
+
// Two-layer policy resolution
|
|
82
116
|
let policy;
|
|
83
117
|
try {
|
|
84
|
-
policy = await
|
|
118
|
+
policy = await resolvePolicy({ projectDir: cwd });
|
|
85
119
|
}
|
|
86
120
|
catch {
|
|
87
|
-
|
|
121
|
+
log.error('Policy not found at ~/.zora/policy.toml. Run `zora-agent init` first.');
|
|
88
122
|
process.exit(1);
|
|
89
123
|
}
|
|
124
|
+
// Determine baseDir: project .zora/ if it exists, else global
|
|
125
|
+
const projectZora = path.join(cwd, '.zora');
|
|
126
|
+
const configDir = fs.existsSync(projectZora) ? projectZora : path.join(os.homedir(), '.zora');
|
|
90
127
|
const engine = new PolicyEngine(policy);
|
|
91
128
|
const sessionManager = new SessionManager(configDir);
|
|
92
129
|
const steeringManager = new SteeringManager(configDir);
|
|
93
130
|
await steeringManager.init();
|
|
94
131
|
const memoryManager = new MemoryManager(config.memory, configDir);
|
|
95
132
|
await memoryManager.init();
|
|
96
|
-
return { config, policy, engine, sessionManager, steeringManager, memoryManager };
|
|
133
|
+
return { config, policy, engine, sessionManager, steeringManager, memoryManager, configDir, sources };
|
|
97
134
|
}
|
|
98
135
|
// R10: Refactored `ask` command to use Orchestrator
|
|
99
136
|
program
|
|
@@ -107,7 +144,7 @@ program
|
|
|
107
144
|
const { config, policy } = await setupContext();
|
|
108
145
|
const providers = createProviders(config);
|
|
109
146
|
if (providers.length === 0) {
|
|
110
|
-
|
|
147
|
+
log.error('No enabled providers found in config.');
|
|
111
148
|
process.exit(1);
|
|
112
149
|
}
|
|
113
150
|
const orchestrator = new Orchestrator({ config, policy, providers });
|
|
@@ -139,7 +176,7 @@ program
|
|
|
139
176
|
break;
|
|
140
177
|
}
|
|
141
178
|
case 'error':
|
|
142
|
-
|
|
179
|
+
log.error({ message: event.content.message }, 'Task error');
|
|
143
180
|
break;
|
|
144
181
|
}
|
|
145
182
|
},
|
|
@@ -195,7 +232,8 @@ program
|
|
|
195
232
|
* Shared daemon start logic — used by both `zora-agent start` and `zora-agent daemon start`.
|
|
196
233
|
*/
|
|
197
234
|
async function startDaemon(opts) {
|
|
198
|
-
const
|
|
235
|
+
const projectDir = opts.project ?? process.cwd();
|
|
236
|
+
const pidFile = getPidFilePath(projectDir);
|
|
199
237
|
// Check if already running
|
|
200
238
|
if (fs.existsSync(pidFile)) {
|
|
201
239
|
try {
|
|
@@ -221,23 +259,17 @@ async function startDaemon(opts) {
|
|
|
221
259
|
const child = fork(daemonScript, [], {
|
|
222
260
|
detached: true,
|
|
223
261
|
stdio: 'ignore',
|
|
262
|
+
env: { ...process.env, ZORA_PROJECT_DIR: projectDir },
|
|
224
263
|
});
|
|
225
264
|
if (child.pid) {
|
|
226
265
|
fs.writeFileSync(pidFile, String(child.pid), { mode: 0o600 });
|
|
227
266
|
child.unref();
|
|
228
267
|
console.log(`Zora daemon started (PID: ${child.pid}).`);
|
|
229
|
-
// Read dashboard port from config, falling back to
|
|
230
|
-
let dashboardPort =
|
|
268
|
+
// Read dashboard port from resolved config, falling back to 8070
|
|
269
|
+
let dashboardPort = 8070;
|
|
231
270
|
try {
|
|
232
|
-
const
|
|
233
|
-
|
|
234
|
-
const { parse: parseTOML } = await import('smol-toml');
|
|
235
|
-
const raw = parseTOML(fs.readFileSync(configPath, 'utf-8'));
|
|
236
|
-
const steering = raw['steering'];
|
|
237
|
-
if (steering?.['dashboard_port']) {
|
|
238
|
-
dashboardPort = steering['dashboard_port'];
|
|
239
|
-
}
|
|
240
|
-
}
|
|
271
|
+
const { config: resolvedConfig } = await resolveConfig({ projectDir });
|
|
272
|
+
dashboardPort = resolvedConfig.steering.dashboard_port ?? 8070;
|
|
241
273
|
}
|
|
242
274
|
catch {
|
|
243
275
|
// Use default port if config can't be read
|
|
@@ -252,7 +284,7 @@ async function startDaemon(opts) {
|
|
|
252
284
|
}
|
|
253
285
|
}
|
|
254
286
|
else {
|
|
255
|
-
|
|
287
|
+
log.error('Failed to start daemon');
|
|
256
288
|
}
|
|
257
289
|
}
|
|
258
290
|
/**
|
|
@@ -309,6 +341,7 @@ async function stopDaemon() {
|
|
|
309
341
|
program
|
|
310
342
|
.command('start')
|
|
311
343
|
.description('Start the agent daemon')
|
|
344
|
+
.option('--project <dir>', 'Project directory with .zora/ config')
|
|
312
345
|
.option('--no-open', 'Do not auto-open the dashboard in browser')
|
|
313
346
|
.action(async (opts) => startDaemon(opts));
|
|
314
347
|
// R12: Real stop command
|
|
@@ -323,6 +356,7 @@ const daemonCmd = program
|
|
|
323
356
|
daemonCmd
|
|
324
357
|
.command('start')
|
|
325
358
|
.description('Start the agent daemon')
|
|
359
|
+
.option('--project <dir>', 'Project directory with .zora/ config')
|
|
326
360
|
.option('--no-open', 'Do not auto-open the dashboard in browser')
|
|
327
361
|
.action(async (opts) => startDaemon(opts));
|
|
328
362
|
daemonCmd
|
|
@@ -339,12 +373,29 @@ daemonCmd
|
|
|
339
373
|
program
|
|
340
374
|
.command('doctor')
|
|
341
375
|
.description('Check system dependencies and configuration')
|
|
342
|
-
.
|
|
376
|
+
.option('--project <dir>', 'Project directory to check')
|
|
377
|
+
.action(async (opts) => {
|
|
343
378
|
const result = await runDoctorChecks();
|
|
344
379
|
console.log('Zora Doctor Report:');
|
|
380
|
+
console.log('');
|
|
381
|
+
console.log('Dependencies:');
|
|
345
382
|
console.log(` Node.js: ${result.node.found ? '✓' : '✗'} ${result.node.version}`);
|
|
346
383
|
console.log(` Claude CLI: ${result.claude.found ? '✓' : '✗'}${result.claude.path ? ` (${result.claude.path})` : ''}`);
|
|
347
384
|
console.log(` Gemini CLI: ${result.gemini.found ? '✓' : '✗'}${result.gemini.path ? ` (${result.gemini.path})` : ''}`);
|
|
385
|
+
// Config resolution — show which files are loaded
|
|
386
|
+
console.log('');
|
|
387
|
+
console.log('Config sources:');
|
|
388
|
+
try {
|
|
389
|
+
const projectDir = opts.project ?? process.cwd();
|
|
390
|
+
const { sources } = await resolveConfig({ projectDir });
|
|
391
|
+
sources.forEach((src, i) => {
|
|
392
|
+
const label = src === 'defaults' ? 'defaults (built-in)' : src;
|
|
393
|
+
console.log(` ${i + 1}. ${label}`);
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
catch {
|
|
397
|
+
console.log(' (unable to resolve config — run `zora-agent init` first)');
|
|
398
|
+
}
|
|
348
399
|
if (!result.node.found) {
|
|
349
400
|
console.log('\n⚠️ Node.js 20+ is required. Please upgrade.');
|
|
350
401
|
}
|
|
@@ -362,6 +413,7 @@ registerEditCommands(program, configDir);
|
|
|
362
413
|
registerTeamCommands(program, configDir);
|
|
363
414
|
registerSteerCommands(program, configDir);
|
|
364
415
|
registerSkillCommands(program);
|
|
416
|
+
registerHookCommands(program, configDir);
|
|
365
417
|
registerInitCommand(program);
|
|
366
418
|
program.parse();
|
|
367
419
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAChC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAEjE,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB;;GAEG;AACH,SAAS,eAAe,CAAC,MAAkB;IACzC,MAAM,SAAS,GAAkB,EAAE,CAAC;IAEpC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,SAAS;QAE/B,kEAAkE;QAClE,mEAAmE;QACnE,0EAA0E;QAC1E,MAAM,YAAY,GAAG,OAAO,CAAC,IAAyB,CAAC;QAEvD,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,YAAY;gBACf,SAAS,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gBACxD,MAAM;YACR,KAAK,YAAY;gBACf,SAAS,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gBACxD,MAAM;YACR,KAAK,QAAQ;gBACX,SAAS,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gBACxD,MAAM;YACR,OAAO,CAAC,CAAC,CAAC;gBACR,gEAAgE;gBAChE,6DAA6D;gBAC7D,MAAM,WAAW,GAAU,YAAY,CAAC;gBACxC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,iCAAiC,CAAC,CAAC;gBACxF,KAAK,WAAW,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,UAAmB;IACzC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,YAAY,CAAC,UAAmB;IAC7C,MAAM,GAAG,GAAG,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAExC,gCAAgC;IAChC,IAAI,MAAkB,CAAC;IACvB,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1D,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QACzB,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,+CAA+C;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QACnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;QACxF,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,2BAA2B,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,8BAA8B;IAC9B,IAAI,MAAkB,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,8DAA8D;IAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAE9F,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC;IAE7B,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;IAE3B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AACxG,CAAC;AAED,oDAAoD;AACpD,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,kDAAkD,CAAC;KAC/D,QAAQ,CAAC,UAAU,EAAE,oCAAoC,CAAC;KAC1D,MAAM,CAAC,qBAAqB,EAAE,2DAA2D,CAAC;KAC1F,MAAM,CAAC,wBAAwB,EAAE,qDAAqD,CAAC;KACvF,MAAM,CAAC,iBAAiB,EAAE,eAAe,EAAE,QAAQ,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;IAC7B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;IAEhD,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACrE,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;IAE1B,IAAI,CAAC;QACH,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC;YAC3C,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,yEAAyE;gBACzE,IAAI,aAAa,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;oBACrG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC3B,aAAa,GAAG,KAAK,CAAC;gBACxB,CAAC;gBAED,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;oBACnB,KAAK,MAAM;wBACT,YAAY,GAAG,IAAI,CAAC;wBACpB,OAAO,CAAC,GAAG,CAAE,KAAK,CAAC,OAA4B,CAAC,IAAI,CAAC,CAAC;wBACtD,MAAM;oBACR,KAAK,WAAW,CAAC,CAAC,CAAC;wBACjB,MAAM,CAAC,GAAG,KAAK,CAAC,OAA2B,CAAC;wBAC5C,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC;wBAC7C,MAAM;oBACR,CAAC;oBACD,KAAK,OAAO;wBACV,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAG,KAAK,CAAC,OAA+B,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;wBACrF,MAAM;gBACV,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACjC,CAAC;QAED,yDAAyD;QACzD,IAAI,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,2BAA2B;AAC3B,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAEvD,qDAAqD;IACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,iFAAiF,CAAC,CAAC;QAC/F,OAAO;IACT,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IAEjC,IAAI,YAAY,GAAG,SAAS,CAAC;IAC7B,IAAI,SAAS,GAAkB,IAAI,CAAC;IAEpC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAClE,4BAA4B;YAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAC3B,YAAY,GAAG,SAAS,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,YAAY,GAAG,yBAAyB,CAAC;YACzC,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,aAAa,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,SAAS,CAAC,MAAM,aAAa,CAAC,CAAC;IAClE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL;;GAEG;AACH,KAAK,UAAU,WAAW,CAAC,IAA0C;IACnE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACjD,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAE3C,2BAA2B;IAC3B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,wCAAwC,WAAW,IAAI,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;YAC1B,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,gCAAgC;IAChC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC1D,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAE1F,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE;QACnC,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,UAAU,EAAE;KACtD,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAExD,iEAAiE;QACjE,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;YACvE,aAAa,GAAG,cAAc,CAAC,QAAQ,CAAC,cAAc,IAAI,IAAI,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;QACD,MAAM,YAAY,GAAG,oBAAoB,aAAa,EAAE,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,cAAc,YAAY,EAAE,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,YAAY,EAAE,CAAC,CAAC;gBACxD,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,YAAY,EAAE,CAAC,CAAC;oBAC3D,YAAY,YAAY,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU;IACvB,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IAEjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAElE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,qCAAqC,GAAG,qCAAqC,CAAC,CAAC;QAE3F,MAAM,SAAS,GAAG,IAAI,CAAC;QACvB,MAAM,cAAc,GAAG,GAAG,CAAC;QAC3B,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,OAAO,MAAM,GAAG,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;YACtD,MAAM,IAAI,cAAc,CAAC;YACzB,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,kBAAkB;QACpB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,0BAA0B;AAC1B,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,2CAA2C,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAE7C,yBAAyB;AACzB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;AAEpC,wEAAwE;AACxE,MAAM,SAAS,GAAG,OAAO;KACtB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,yBAAyB,CAAC,CAAC;AAE1C,SAAS;KACN,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,2CAA2C,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAE7C,SAAS;KACN,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;AAEpC,SAAS;KACN,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC5F,CAAC,CAAC,CAAC;AAEL,6CAA6C;AAC7C,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IAEvC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvH,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEvH,kDAAkD;IAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACjD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACzB,MAAM,KAAK,GAAG,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IACtE,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,8BAA8B;AAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AACnD,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC9C,qBAAqB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;AAC1E,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACzC,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACzC,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC1C,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACzC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAE7B,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-command.d.ts","sourceRoot":"","sources":["../../src/cli/init-command.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"init-command.d.ts","sourceRoot":"","sources":["../../src/cli/init-command.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAkC/C;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EAAE,EACrB,UAAU,EAAE,MAAM,EAAE,GACnB,MAAM,CAoBR;AAUD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAmH/D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAOzD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKnD;AAoWD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgB1D"}
|
package/dist/cli/init-command.js
CHANGED
|
@@ -12,6 +12,8 @@ import { stringify as stringifyTOML } from 'smol-toml';
|
|
|
12
12
|
import { parse as parseTOML } from 'smol-toml';
|
|
13
13
|
import { PRESETS, TOOL_STACKS } from './presets.js';
|
|
14
14
|
import { runDoctorChecks } from './doctor.js';
|
|
15
|
+
import { createLogger } from '../utils/logger.js';
|
|
16
|
+
const log = createLogger('init');
|
|
15
17
|
const ZORA_DIR = path.join(os.homedir(), '.zora');
|
|
16
18
|
/**
|
|
17
19
|
* Directories to scaffold under ~/.zora/
|
|
@@ -78,7 +80,7 @@ capabilities = ["reasoning", "coding", "creative"]
|
|
|
78
80
|
cost_tier = "included"
|
|
79
81
|
enabled = true
|
|
80
82
|
auth_method = "mac_session"
|
|
81
|
-
model = "claude-sonnet-4-
|
|
83
|
+
model = "claude-sonnet-4-6"
|
|
82
84
|
max_turns = 200`);
|
|
83
85
|
rank++;
|
|
84
86
|
}
|
|
@@ -146,6 +148,7 @@ context_days = 7
|
|
|
146
148
|
max_context_items = 20
|
|
147
149
|
max_category_summaries = 5
|
|
148
150
|
auto_extract_interval = 10
|
|
151
|
+
auto_extract = true
|
|
149
152
|
|
|
150
153
|
[security]
|
|
151
154
|
policy_file = "~/.zora/policy.toml"
|
|
@@ -162,7 +165,7 @@ jit_secret_decryption = true
|
|
|
162
165
|
[steering]
|
|
163
166
|
enabled = true
|
|
164
167
|
poll_interval = "5s"
|
|
165
|
-
dashboard_port =
|
|
168
|
+
dashboard_port = 8070
|
|
166
169
|
notify_on_flag = true
|
|
167
170
|
flag_timeout = "10m"
|
|
168
171
|
auto_approve_low_risk = true
|
|
@@ -239,13 +242,12 @@ async function runWizard(opts) {
|
|
|
239
242
|
fs.existsSync(configPath) ? 'config.toml' : null,
|
|
240
243
|
fs.existsSync(policyPath) ? 'policy.toml' : null,
|
|
241
244
|
].filter(Boolean).join(' and ');
|
|
242
|
-
|
|
243
|
-
console.error('Use --force to overwrite.');
|
|
245
|
+
log.error({ existing, dir: ZORA_DIR }, 'Existing configuration found. Use --force to overwrite.');
|
|
244
246
|
process.exit(1);
|
|
245
247
|
}
|
|
246
248
|
// Validate preset name early
|
|
247
249
|
if (opts.preset && !PRESET_ALIASES[opts.preset]) {
|
|
248
|
-
|
|
250
|
+
log.error({ preset: opts.preset, validPresets: Object.keys(PRESET_ALIASES) }, 'Unknown preset');
|
|
249
251
|
process.exit(1);
|
|
250
252
|
}
|
|
251
253
|
// ── Step 1: Welcome + Trust explanation ──────────────────────────
|
|
@@ -359,6 +361,7 @@ async function runWizard(opts) {
|
|
|
359
361
|
{ value: 'python', label: 'Python', hint: 'python3, pip, pip3' },
|
|
360
362
|
{ value: 'rust', label: 'Rust', hint: 'cargo, rustc, rustup' },
|
|
361
363
|
{ value: 'go', label: 'Go', hint: 'go' },
|
|
364
|
+
{ value: 'mcp', label: 'MCP', hint: 'mcp-cli (bridge to MCP servers)' },
|
|
362
365
|
{ value: 'general', label: 'General CLI', hint: 'ls, pwd, cat, head, grep, find, etc.' },
|
|
363
366
|
],
|
|
364
367
|
initialValues: ['node', 'general'],
|
|
@@ -397,14 +400,14 @@ async function runWizard(opts) {
|
|
|
397
400
|
parseTOML(policyToml);
|
|
398
401
|
}
|
|
399
402
|
catch (e) {
|
|
400
|
-
|
|
403
|
+
log.error({ err: e }, 'Generated policy.toml is invalid TOML');
|
|
401
404
|
process.exit(1);
|
|
402
405
|
}
|
|
403
406
|
try {
|
|
404
407
|
parseTOML(configToml);
|
|
405
408
|
}
|
|
406
409
|
catch (e) {
|
|
407
|
-
|
|
410
|
+
log.error({ err: e }, 'Generated config.toml is invalid TOML');
|
|
408
411
|
process.exit(1);
|
|
409
412
|
}
|
|
410
413
|
// Scaffold and write
|
|
@@ -419,11 +422,101 @@ Try it:
|
|
|
419
422
|
|
|
420
423
|
Or start the dashboard:
|
|
421
424
|
zora-agent start
|
|
422
|
-
Then open http://localhost:
|
|
425
|
+
Then open http://localhost:8070
|
|
423
426
|
|
|
424
427
|
To expand permissions later:
|
|
425
428
|
Edit ~/.zora/policy.toml or re-run: zora-agent init --force`);
|
|
426
429
|
}
|
|
430
|
+
/**
|
|
431
|
+
* Generate a minimal project config.toml.
|
|
432
|
+
* Only includes agent.name (from dir name) and dashboard_port.
|
|
433
|
+
*/
|
|
434
|
+
function generateProjectConfigToml(dirName, dashboardPort) {
|
|
435
|
+
return `# Zora Project Configuration — overrides ~/.zora/config.toml
|
|
436
|
+
# Only specify what differs from global. Everything else inherits.
|
|
437
|
+
|
|
438
|
+
[agent]
|
|
439
|
+
name = "${dirName}"
|
|
440
|
+
|
|
441
|
+
[steering]
|
|
442
|
+
dashboard_port = ${dashboardPort}
|
|
443
|
+
`;
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
446
|
+
* Generate a minimal project policy.toml.
|
|
447
|
+
* Scopes filesystem to the project directory.
|
|
448
|
+
*/
|
|
449
|
+
function generateProjectPolicyToml(projectDir) {
|
|
450
|
+
const tildeDir = projectDir.replace(os.homedir(), '~');
|
|
451
|
+
return `# Zora Project Policy — overrides ~/.zora/policy.toml
|
|
452
|
+
# Only specify what differs from global. Everything else inherits.
|
|
453
|
+
|
|
454
|
+
[filesystem]
|
|
455
|
+
allowed_paths = ["${tildeDir}"]
|
|
456
|
+
`;
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Run project-level init: creates .zora/ in the current directory
|
|
460
|
+
* with minimal overrides.
|
|
461
|
+
*/
|
|
462
|
+
async function initProject(opts) {
|
|
463
|
+
const projectDir = process.cwd();
|
|
464
|
+
const zoraDir = path.join(projectDir, '.zora');
|
|
465
|
+
const configPath = path.join(zoraDir, 'config.toml');
|
|
466
|
+
const policyPath = path.join(zoraDir, 'policy.toml');
|
|
467
|
+
// Check for existing global config (project init requires global init first)
|
|
468
|
+
const globalConfig = path.join(os.homedir(), '.zora', 'config.toml');
|
|
469
|
+
if (!fs.existsSync(globalConfig)) {
|
|
470
|
+
log.error('Global config not found. Run `zora-agent init` first, then `zora-agent init --project`.');
|
|
471
|
+
process.exit(1);
|
|
472
|
+
}
|
|
473
|
+
// Guard: refuse to overwrite unless --force
|
|
474
|
+
if (!opts.force && fs.existsSync(configPath)) {
|
|
475
|
+
log.error({ dir: zoraDir }, 'Project .zora/ already exists. Use --force to overwrite.');
|
|
476
|
+
process.exit(1);
|
|
477
|
+
}
|
|
478
|
+
const dirName = path.basename(projectDir);
|
|
479
|
+
// Auto-assign a dashboard port offset from the global default (8070)
|
|
480
|
+
// Use a simple hash of the dir name to pick a port in 8071-8099 range
|
|
481
|
+
let portOffset = 1;
|
|
482
|
+
for (const ch of dirName) {
|
|
483
|
+
portOffset = ((portOffset * 31) + ch.charCodeAt(0)) % 29; // 0-28
|
|
484
|
+
}
|
|
485
|
+
const dashboardPort = 8071 + portOffset;
|
|
486
|
+
const configToml = generateProjectConfigToml(dirName, dashboardPort);
|
|
487
|
+
const policyToml = generateProjectPolicyToml(projectDir);
|
|
488
|
+
// Validate generated TOML
|
|
489
|
+
try {
|
|
490
|
+
parseTOML(configToml);
|
|
491
|
+
parseTOML(policyToml);
|
|
492
|
+
}
|
|
493
|
+
catch (e) {
|
|
494
|
+
log.error({ err: e }, 'Generated TOML is invalid');
|
|
495
|
+
process.exit(1);
|
|
496
|
+
}
|
|
497
|
+
// Create .zora/ directory structure
|
|
498
|
+
if (!fs.existsSync(zoraDir)) {
|
|
499
|
+
fs.mkdirSync(zoraDir, { recursive: true });
|
|
500
|
+
}
|
|
501
|
+
for (const sub of ['state', 'sessions', 'memory', 'memory/daily', 'memory/items', 'memory/categories']) {
|
|
502
|
+
const dir = path.join(zoraDir, sub);
|
|
503
|
+
if (!fs.existsSync(dir)) {
|
|
504
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
fs.writeFileSync(configPath, configToml, 'utf-8');
|
|
508
|
+
fs.writeFileSync(policyPath, policyToml, 'utf-8');
|
|
509
|
+
clack.intro('Project initialized');
|
|
510
|
+
clack.note([
|
|
511
|
+
`Created: ${zoraDir}/`,
|
|
512
|
+
` config.toml (agent: ${dirName}, port: ${dashboardPort})`,
|
|
513
|
+
` policy.toml (filesystem scoped to ${projectDir})`,
|
|
514
|
+
'',
|
|
515
|
+
'Edit these to override global ~/.zora/ settings.',
|
|
516
|
+
'Start with: zora-agent start',
|
|
517
|
+
].join('\n'), 'Project .zora/');
|
|
518
|
+
clack.outro('Project config ready. Global settings inherited for everything else.');
|
|
519
|
+
}
|
|
427
520
|
/**
|
|
428
521
|
* Register the `zora-agent init` command on the commander program.
|
|
429
522
|
*/
|
|
@@ -431,12 +524,18 @@ export function registerInitCommand(program) {
|
|
|
431
524
|
program
|
|
432
525
|
.command('init')
|
|
433
526
|
.description('Set up Zora — generate config, policy, and directory structure')
|
|
527
|
+
.option('--project', 'Initialize project-level .zora/ in the current directory')
|
|
434
528
|
.option('--preset <preset>', 'Security preset: locked, safe, balanced, or power')
|
|
435
529
|
.option('--dev-path <path>', 'Path to your code directory')
|
|
436
530
|
.option('-y, --yes', 'Accept all defaults (non-interactive)')
|
|
437
531
|
.option('--force', 'Overwrite existing config files')
|
|
438
532
|
.action(async (opts) => {
|
|
439
|
-
|
|
533
|
+
if (opts.project) {
|
|
534
|
+
await initProject(opts);
|
|
535
|
+
}
|
|
536
|
+
else {
|
|
537
|
+
await runWizard(opts);
|
|
538
|
+
}
|
|
440
539
|
});
|
|
441
540
|
}
|
|
442
541
|
//# sourceMappingURL=init-command.js.map
|