@alexandrealvaro/agentic 0.9.2-beta.1 → 0.9.3-beta.1

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/package.json +1 -1
  2. package/src/lib/install.js +20 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alexandrealvaro/agentic",
3
- "version": "0.9.2-beta.1",
3
+ "version": "0.9.3-beta.1",
4
4
  "description": "Bootstrap and audit AGENTS.md, ARCHITECTURE.md, ADRs, skills, and subagents for engineering production code with LLMs",
5
5
  "type": "module",
6
6
  "bin": {
@@ -10,7 +10,7 @@ import {
10
10
  unlinkSync,
11
11
  } from 'node:fs';
12
12
  import { fileURLToPath } from 'node:url';
13
- import { basename, dirname, join, relative } from 'node:path';
13
+ import { basename, dirname, join, relative, sep as PATH_SEP } from 'node:path';
14
14
  import { SCHEMA_VERSION } from './state.js';
15
15
 
16
16
  const __dirname = dirname(fileURLToPath(import.meta.url));
@@ -18,6 +18,17 @@ const KIT_ROOT = join(__dirname, '..', '..');
18
18
 
19
19
  const MANIFEST_FILE = 'manifest.json';
20
20
 
21
+ /**
22
+ * Normalize a filesystem path to forward-slash form so internal
23
+ * comparisons (manifest subagent declarations, state-file paths, action
24
+ * report paths) are platform-independent. Manifests and state files are
25
+ * authored with `/`; on Windows, native `path.join` and `path.relative`
26
+ * produce `\\`, which breaks Set/Map lookups against the canonical form.
27
+ */
28
+ function toPosix(p) {
29
+ return PATH_SEP === '/' ? p : p.split(PATH_SEP).join('/');
30
+ }
31
+
21
32
  const AGENT_LAYOUT = {
22
33
  'claude-code': {
23
34
  skillsDir: '.claude/skills',
@@ -45,7 +56,10 @@ function walkSkill(srcRoot) {
45
56
  if (statSync(abs).isDirectory()) {
46
57
  walk(abs, rel);
47
58
  } else {
48
- out.push({ src: abs, rel });
59
+ // `rel` is the manifest-comparable path; force posix form so
60
+ // Windows backslashes do not break Set/Map lookups against
61
+ // forward-slash declarations in manifest.json.
62
+ out.push({ src: abs, rel: toPosix(rel) });
49
63
  }
50
64
  }
51
65
  }
@@ -200,7 +214,10 @@ export async function installSkills({
200
214
 
201
215
  const target = targetForRel(rel, layout, targetRoot, cwd, subagentSet);
202
216
  if (!target) continue;
203
- const relForReport = relative(cwd, target);
217
+ // Force posix form so the path is identical across platforms in
218
+ // the action log and in the per-agent state file. Windows users
219
+ // sharing a state file with macOS / Linux teammates depend on it.
220
+ const relForReport = toPosix(relative(cwd, target));
204
221
  const prevSha = prevByPath.has(relForReport)
205
222
  ? prevByPath.get(relForReport)
206
223
  : null;