auriga-cli 1.18.2 → 1.18.3

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/dist/catalog.d.ts CHANGED
@@ -1,6 +1,14 @@
1
1
  export interface CatalogEntry {
2
2
  name: string;
3
3
  description: string;
4
+ /** Build-time-baked plugin version. Set ONLY for plugin entries whose
5
+ * source lives in this repo's `plugins/<name>/` directory — the scanner
6
+ * uses it to surface "update-available" when the user's installed copy
7
+ * is older. Absent for skill / hook entries and for external-marketplace
8
+ * plugins (whose manifest lives upstream). Must be baked at build time
9
+ * because `plugins/<name>/.claude-plugin/plugin.json` is NOT shipped in
10
+ * the npm tarball (see `package.json` `files` field). */
11
+ expectedVersion?: string;
4
12
  }
5
13
  export interface Catalog {
6
14
  generatedAt: string;
package/dist/catalog.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "generatedAt": "2026-05-12T13:41:34.719Z",
2
+ "generatedAt": "2026-05-12T13:58:42.583Z",
3
3
  "workflowSkills": [
4
4
  {
5
5
  "name": "brainstorming",
@@ -87,19 +87,23 @@
87
87
  },
88
88
  {
89
89
  "name": "auriga-go",
90
- "description": "(Claude/Codex) Workflow autopilot for the auriga workflow. Reminder-based navigation across CLAUDE.md's phases. Bundles a /goalify skill that plans an autonomous goal from a spec or work-in-progress and dispatches it via Claude Code's built-in /goal command."
90
+ "description": "(Claude/Codex) Workflow autopilot for the auriga workflow. Reminder-based navigation across CLAUDE.md's phases. Bundles a /goalify skill that plans an autonomous goal from a spec or work-in-progress and dispatches it via Claude Code's built-in /goal command.",
91
+ "expectedVersion": "1.1.0"
91
92
  },
92
93
  {
93
94
  "name": "auriga-git-guards",
94
- "description": "(Claude/Codex) Git lifecycle guardrails: commit-reminder + PR-create snapshot inject + PR-ready structural block. Bundles the git-workflow skill (Claude Code + Codex)."
95
+ "description": "(Claude/Codex) Git lifecycle guardrails: commit-reminder + PR-create snapshot inject + PR-ready structural block. Bundles the git-workflow skill (Claude Code + Codex).",
96
+ "expectedVersion": "1.1.0"
95
97
  },
96
98
  {
97
99
  "name": "deep-review",
98
- "description": "(Claude/Codex) Multi-dimensional PR review orchestrator. Dispatches parallel reviewers (spec-conformance, correctness, test-quality, docs-sync, robustness, security, ux, performance, structure, code-quality, skill-plugin-quality) and synthesizes findings into an actionable punch list. Supports project-level custom reviewers via docs/rules/review/ and ships a reviewer-creator skill for scaffolding them."
100
+ "description": "(Claude/Codex) Multi-dimensional PR review orchestrator. Dispatches parallel reviewers (spec-conformance, correctness, test-quality, docs-sync, robustness, security, ux, performance, structure, code-quality, skill-plugin-quality) and synthesizes findings into an actionable punch list. Supports project-level custom reviewers via docs/rules/review/ and ships a reviewer-creator skill for scaffolding them.",
101
+ "expectedVersion": "0.3.1"
99
102
  },
100
103
  {
101
104
  "name": "session-instructions-loader",
102
- "description": "(Codex) Injects extra instruction files on session start"
105
+ "description": "(Codex) Injects extra instruction files on session start",
106
+ "expectedVersion": "1.0.0"
103
107
  }
104
108
  ],
105
109
  "hooks": [
@@ -31,30 +31,6 @@ async function sha256SkillMd(skillsRoot, name) {
31
31
  return "";
32
32
  }
33
33
  }
34
- /** Read `plugins/<name>/.claude-plugin/plugin.json` (or `.codex-plugin/plugin.json`
35
- * as fallback) and return the `version` field. Returns "" when no manifest
36
- * exists or the JSON is malformed — the scanner then leaves expectedVersion
37
- * unset, which means external-marketplace plugins (whose source lives
38
- * upstream, not in this repo) get the "trust installed" classification. */
39
- async function readPluginManifestVersion(packageRoot, name) {
40
- const candidates = [
41
- path.join(packageRoot, "plugins", name, ".claude-plugin", "plugin.json"),
42
- path.join(packageRoot, "plugins", name, ".codex-plugin", "plugin.json"),
43
- ];
44
- for (const p of candidates) {
45
- try {
46
- const raw = await readFile(p, "utf8");
47
- const parsed = JSON.parse(raw);
48
- if (typeof parsed.version === "string" && parsed.version.length > 0) {
49
- return parsed.version;
50
- }
51
- }
52
- catch {
53
- /* try next candidate */
54
- }
55
- }
56
- return "";
57
- }
58
34
  const WORKFLOW_VERSION_RE = /^#\s*auriga Workflow\s*\(v([\d.]+)\)/m;
59
35
  async function tryReadFile(p) {
60
36
  try {
@@ -138,19 +114,18 @@ export async function buildScanCatalog(packageRoot) {
138
114
  agents.push("codex");
139
115
  if (agents.length === 0)
140
116
  agents.push("claude"); // unknown defaults to claude
141
- // Bake expectedVersion from the owned plugin's manifest. For Claude-side
142
- // plugins prefer plugins/<name>/.claude-plugin/plugin.json; fall back to
143
- // .codex-plugin/plugin.json for codex-only plugins (e.g.
144
- // session-instructions-loader). External-marketplace plugins (skill-creator,
145
- // claude-md-management, codex) have no local manifest they install from
146
- // their upstream marketplace, so we deliberately leave expectedVersion
147
- // undefined. The scanner then falls through to "trust whatever is installed",
148
- // which matches what the user agreed to when they registered the upstream.
149
- const expectedVersion = await readPluginManifestVersion(packageRoot, entry.name);
117
+ // expectedVersion comes from the build-time-baked field in dist/catalog.json
118
+ // (populated by `src/build/generate-catalog.ts` from
119
+ // `plugins/<name>/.claude-plugin/plugin.json`). It MUST be baked at build
120
+ // time because `plugins/<name>/` is NOT shipped in the npm tarball
121
+ // (`package.json` `files` field allowlists only `dist/`), so reading it
122
+ // at runtime from packageRoot would silently fail for npm-installed users.
150
123
  plugins[entry.name] = {
151
124
  description: entry.description,
152
125
  agents,
153
- ...(expectedVersion ? { expectedVersion } : {}),
126
+ ...(typeof entry.expectedVersion === "string" && entry.expectedVersion.length > 0
127
+ ? { expectedVersion: entry.expectedVersion }
128
+ : {}),
154
129
  };
155
130
  }
156
131
  // Hooks: the scanner reads <scope>/.claude/settings.json and matches by
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "auriga-cli",
3
- "version": "1.18.2",
3
+ "version": "1.18.3",
4
4
  "description": "Interactive CLI to install Claude Code harness modules (Workflow, Skills, Recommended Skills, Plugins, Hooks)",
5
5
  "license": "MIT",
6
6
  "repository": {