@volter/supercode-orchestrator 0.5.128 → 0.5.129

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.
Files changed (2) hide show
  1. package/hermes-home.mjs +11 -2
  2. package/package.json +2 -2
package/hermes-home.mjs CHANGED
@@ -10,7 +10,7 @@
10
10
  // skillSources(dir) every skill a profile has, by name, and where it lives
11
11
  // adoptMcp(dir) `.mcp.json` the source, `config.yaml`'s `mcp_servers:` its shadow, an edit on
12
12
  // either side carried to the other against the last state written (row 4)
13
- import { existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, readlinkSync, renameSync, rmdirSync, rmSync, symlinkSync, writeFileSync } from 'node:fs';
13
+ import { copyFileSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, readlinkSync, renameSync, rmdirSync, rmSync, statSync, symlinkSync, writeFileSync } from 'node:fs';
14
14
  import { dirname, join, relative, resolve } from 'node:path';
15
15
  import { homedir } from 'node:os';
16
16
  import { createHash } from 'node:crypto';
@@ -39,7 +39,16 @@ const kind = (path) => { try { const s = lstatSync(path); return s.isSymbolicLin
39
39
  export function linkTo(path, target) {
40
40
  if (kind(path) === 'link' && readlinkSync(path) === target) return false;
41
41
  rmSync(path, { force: true });
42
- symlinkSync(target, path);
42
+ try { symlinkSync(target, path); }
43
+ catch (error) {
44
+ // Windows lets only an elevated or developer-mode user make a symlink (EPERM otherwise, and every board launch
45
+ // there failed on its agent home's SOUL.md): a folder is linked as a junction, which needs no grant, and a file is
46
+ // copied, which each refresh of the home copies again
47
+ if (process.platform !== 'win32' || error.code !== 'EPERM') throw error;
48
+ const source = resolve(dirname(path), target);
49
+ if (statSync(source).isDirectory()) symlinkSync(source, path, 'junction');
50
+ else copyFileSync(source, path);
51
+ }
43
52
  return true;
44
53
  }
45
54
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volter/supercode-orchestrator",
3
- "version": "0.5.128",
3
+ "version": "0.5.129",
4
4
  "type": "module",
5
5
  "description": "The orchestrator runtime over the Volter Harness ontology: one typed operational model whose folder is its serialization, read and written through the harness orchestration doors (docs/ORCHESTRATOR-IR.md)",
6
6
  "exports": {
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@volter/supercode-harness-sdk": "^0.3.60",
28
- "@volter/teams": "0.2.51",
28
+ "@volter/teams": "0.2.52",
29
29
  "@volter/ztrack": "^2.4.23",
30
30
  "yaml": "^2.9.0"
31
31
  },