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 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: path.join(hovclawHome, "agents"),
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: path.join(hovclawHome, "agents"),
902
+ agentsDir,
893
903
  skillsDir: sharedSkillsDir,
894
904
  storeDir: path.join(hovclawHome, "store"),
895
905
  dataDir: path.join(hovclawHome, "data"),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hovclaw",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Multi-channel AI agent gateway",
5
5
  "license": "MIT",
6
6
  "type": "module",