hovclaw 0.1.1 → 0.1.2
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 +1 -0
- package/dist/hovclaw.js +11 -1
- package/dist/index.js +11 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -117,6 +117,7 @@ Security defaults in this release are intentionally strict:
|
|
|
117
117
|
|
|
118
118
|
Agent and skill definitions are loaded from:
|
|
119
119
|
- `~/.hovclaw/agents/<name>/agent.json` (`CLAUDE.md`, `cron.json`)
|
|
120
|
+
- missing `~/.hovclaw/agents/main/agent.json` is auto-bootstrapped with a minimal scaffold (`name`, `skills`)
|
|
120
121
|
- `~/.agents/skills/<name>/SKILL.md`
|
|
121
122
|
- legacy `~/.hovclaw/skills` content is copied once when shared skills are empty
|
|
122
123
|
|
package/dist/hovclaw.js
CHANGED
|
@@ -673,6 +673,14 @@ function ensureHomeContentDirs(projectRoot, hovclawHome) {
|
|
|
673
673
|
});
|
|
674
674
|
}
|
|
675
675
|
}
|
|
676
|
+
function ensureMainAgentConfig(agentsDir) {
|
|
677
|
+
const mainAgentPath = path.join(agentsDir, "main", "agent.json");
|
|
678
|
+
if (fs.existsSync(mainAgentPath)) return;
|
|
679
|
+
writeJsonFile(mainAgentPath, {
|
|
680
|
+
name: "Main",
|
|
681
|
+
skills: []
|
|
682
|
+
});
|
|
683
|
+
}
|
|
676
684
|
function ensureHomeStateDirs(projectRoot, hovclawHome) {
|
|
677
685
|
for (const dirName of USER_STATE_DIRS) {
|
|
678
686
|
const destinationDir = path.join(hovclawHome, dirName);
|
|
@@ -1022,8 +1030,10 @@ function isLegacyProjectRootWorkspace(workspacePath, projectRoot) {
|
|
|
1022
1030
|
function loadConfig(env = process.env) {
|
|
1023
1031
|
const merged = applyEnvOverrides(loadConfigFile(env), env);
|
|
1024
1032
|
const hovclawHome = getHovclawHome(env);
|
|
1033
|
+
const agentsDir = path.join(hovclawHome, "agents");
|
|
1025
1034
|
ensureHomeContentDirsOnce(PROJECT_ROOT, hovclawHome);
|
|
1026
1035
|
ensureHomeStateDirsOnce(PROJECT_ROOT, hovclawHome);
|
|
1036
|
+
ensureMainAgentConfig(agentsDir);
|
|
1027
1037
|
const sharedSkillsDir = ensureSharedSkillsDirOnce(hovclawHome, env);
|
|
1028
1038
|
const defaultWorkspace = path.join(hovclawHome, "workspace");
|
|
1029
1039
|
const configuredWorkspace = merged.agents.defaults.workspace.trim();
|
|
@@ -1034,7 +1044,7 @@ function loadConfig(env = process.env) {
|
|
|
1034
1044
|
hovclawHome,
|
|
1035
1045
|
configPath: getConfigPath(env),
|
|
1036
1046
|
credentialsPath: getCredentialsPath(env),
|
|
1037
|
-
agentsDir
|
|
1047
|
+
agentsDir,
|
|
1038
1048
|
skillsDir: sharedSkillsDir,
|
|
1039
1049
|
storeDir: path.join(hovclawHome, "store"),
|
|
1040
1050
|
dataDir: path.join(hovclawHome, "data"),
|
package/dist/index.js
CHANGED
|
@@ -528,6 +528,14 @@ function ensureHomeContentDirs(projectRoot, hovclawHome) {
|
|
|
528
528
|
});
|
|
529
529
|
}
|
|
530
530
|
}
|
|
531
|
+
function ensureMainAgentConfig(agentsDir) {
|
|
532
|
+
const mainAgentPath = path.join(agentsDir, "main", "agent.json");
|
|
533
|
+
if (fs.existsSync(mainAgentPath)) return;
|
|
534
|
+
writeJsonFile(mainAgentPath, {
|
|
535
|
+
name: "Main",
|
|
536
|
+
skills: []
|
|
537
|
+
});
|
|
538
|
+
}
|
|
531
539
|
function ensureHomeStateDirs(projectRoot, hovclawHome) {
|
|
532
540
|
for (const dirName of USER_STATE_DIRS) {
|
|
533
541
|
const destinationDir = path.join(hovclawHome, dirName);
|
|
@@ -877,8 +885,10 @@ function isLegacyProjectRootWorkspace(workspacePath, projectRoot) {
|
|
|
877
885
|
function loadConfig(env = process.env) {
|
|
878
886
|
const merged = applyEnvOverrides(loadConfigFile(env), env);
|
|
879
887
|
const hovclawHome = getHovclawHome(env);
|
|
888
|
+
const agentsDir = path.join(hovclawHome, "agents");
|
|
880
889
|
ensureHomeContentDirsOnce(PROJECT_ROOT, hovclawHome);
|
|
881
890
|
ensureHomeStateDirsOnce(PROJECT_ROOT, hovclawHome);
|
|
891
|
+
ensureMainAgentConfig(agentsDir);
|
|
882
892
|
const sharedSkillsDir = ensureSharedSkillsDirOnce(hovclawHome, env);
|
|
883
893
|
const defaultWorkspace = path.join(hovclawHome, "workspace");
|
|
884
894
|
const configuredWorkspace = merged.agents.defaults.workspace.trim();
|
|
@@ -889,7 +899,7 @@ function loadConfig(env = process.env) {
|
|
|
889
899
|
hovclawHome,
|
|
890
900
|
configPath: getConfigPath(env),
|
|
891
901
|
credentialsPath: getCredentialsPath(env),
|
|
892
|
-
agentsDir
|
|
902
|
+
agentsDir,
|
|
893
903
|
skillsDir: sharedSkillsDir,
|
|
894
904
|
storeDir: path.join(hovclawHome, "store"),
|
|
895
905
|
dataDir: path.join(hovclawHome, "data"),
|