@ghl-ai/aw 0.1.35-beta.2 → 0.1.35-beta.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/commands/nuke.mjs +1 -1
- package/commands/search.mjs +1 -1
- package/link.mjs +1 -1
- package/package.json +1 -1
- package/paths.mjs +1 -1
- package/plan.mjs +4 -3
- package/registry.mjs +2 -2
package/commands/nuke.mjs
CHANGED
|
@@ -16,7 +16,7 @@ const GLOBAL_AW_DIR = join(HOME, '.aw_registry');
|
|
|
16
16
|
const MANIFEST_PATH = join(GLOBAL_AW_DIR, '.aw-manifest.json');
|
|
17
17
|
|
|
18
18
|
const IDE_DIRS = ['.claude', '.cursor', '.codex', '.agents'];
|
|
19
|
-
const CONTENT_TYPES = ['agents', 'skills', 'commands', 'evals'];
|
|
19
|
+
const CONTENT_TYPES = ['agents', 'skills', 'commands', 'evals', 'hooks'];
|
|
20
20
|
|
|
21
21
|
function loadManifest() {
|
|
22
22
|
if (!existsSync(MANIFEST_PATH)) return null;
|
package/commands/search.mjs
CHANGED
|
@@ -94,7 +94,7 @@ function searchLocal(workspaceDir, query) {
|
|
|
94
94
|
if (!nsEntry.isDirectory() || nsEntry.name.startsWith('.')) continue;
|
|
95
95
|
const ns = nsEntry.name;
|
|
96
96
|
|
|
97
|
-
for (const type of ['agents', 'skills', 'commands', 'evals']) {
|
|
97
|
+
for (const type of ['agents', 'skills', 'commands', 'evals', 'hooks']) {
|
|
98
98
|
const typeDir = join(workspaceDir, ns, type);
|
|
99
99
|
if (!existsSync(typeDir)) continue;
|
|
100
100
|
|
package/link.mjs
CHANGED
|
@@ -13,7 +13,7 @@ function forceSymlink(target, linkPath) {
|
|
|
13
13
|
const IDE_DIRS = ['.claude', '.cursor', '.codex'];
|
|
14
14
|
// Per-file symlink types
|
|
15
15
|
const FILE_TYPES = ['agents'];
|
|
16
|
-
const ALL_KNOWN_TYPES = new Set([...FILE_TYPES, 'skills', 'commands', 'evals', 'docs']);
|
|
16
|
+
const ALL_KNOWN_TYPES = new Set([...FILE_TYPES, 'skills', 'commands', 'evals', 'hooks', 'docs']);
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* List namespace directories inside .aw_registry/ (skip dotfiles).
|
package/package.json
CHANGED
package/paths.mjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { existsSync, statSync, lstatSync, readlinkSync } from 'node:fs';
|
|
4
4
|
import { join, resolve, relative, basename, dirname } from 'node:path';
|
|
5
5
|
|
|
6
|
-
const VALID_TYPES = new Set(['agents', 'skills', 'commands', 'evals']);
|
|
6
|
+
const VALID_TYPES = new Set(['agents', 'skills', 'commands', 'evals', 'hooks']);
|
|
7
7
|
|
|
8
8
|
// IDE dirs that may contain symlinks into .aw_registry/
|
|
9
9
|
const IDE_PREFIXES = ['.claude/', '.cursor/', '.codex/', '.agents/'];
|
package/plan.mjs
CHANGED
|
@@ -46,8 +46,9 @@ export function computePlan(registryDirs, workspaceDir, includePatterns = [], {
|
|
|
46
46
|
targetFilename = `${entry.namespacePath}/${entry.type}/${entry.slug}/${entry.skillRelPath}`;
|
|
47
47
|
targetPath = join(workspaceDir, entry.namespacePath, entry.type, entry.slug, entry.skillRelPath);
|
|
48
48
|
} else {
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
const fileName = entry.filename || `${entry.slug}.md`;
|
|
50
|
+
targetFilename = `${entry.namespacePath}/${entry.type}/${fileName}`;
|
|
51
|
+
targetPath = join(workspaceDir, entry.namespacePath, entry.type, fileName);
|
|
51
52
|
}
|
|
52
53
|
|
|
53
54
|
const manifestKey = targetFilename;
|
|
@@ -113,7 +114,7 @@ export function computePlan(registryDirs, workspaceDir, includePatterns = [], {
|
|
|
113
114
|
const parts = manifestKey.split('/');
|
|
114
115
|
let typeIdx = -1;
|
|
115
116
|
for (let i = 0; i < parts.length; i++) {
|
|
116
|
-
if (['agents', 'skills', 'commands', 'evals'].includes(parts[i])) {
|
|
117
|
+
if (['agents', 'skills', 'commands', 'evals', 'hooks'].includes(parts[i])) {
|
|
117
118
|
typeIdx = i;
|
|
118
119
|
break;
|
|
119
120
|
}
|
package/registry.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import { readFileSync, existsSync, readdirSync, statSync } from 'node:fs';
|
|
|
4
4
|
import { join, relative } from 'node:path';
|
|
5
5
|
import { createHash } from 'node:crypto';
|
|
6
6
|
|
|
7
|
-
const TYPE_DIRS = new Set(['agents', 'skills', 'commands', 'evals']);
|
|
7
|
+
const TYPE_DIRS = new Set(['agents', 'skills', 'commands', 'evals', 'hooks']);
|
|
8
8
|
const SKIP_DIRS = new Set(['docs']);
|
|
9
9
|
|
|
10
10
|
export function sha256(content) {
|
|
@@ -84,7 +84,7 @@ export function walkRegistryTree(baseDir, baseName) {
|
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
86
|
} else {
|
|
87
|
-
// Agents, commands — flat files
|
|
87
|
+
// Agents, commands, hooks — flat files
|
|
88
88
|
for (const fileEntry of readdirSync(fullPath)) {
|
|
89
89
|
if (fileEntry === '.gitkeep' || fileEntry.startsWith('.')) continue;
|
|
90
90
|
const filePath = join(fullPath, fileEntry);
|