@tacuchi/agent-workflow-cli 19.0.0 → 19.2.0
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 +2 -2
- package/dist/adapters/node-file-system.js +4 -4
- package/dist/adapters/node-file-system.js.map +1 -1
- package/dist/application/branch-resolver.d.ts +1 -1
- package/dist/application/branch-resolver.js +1 -1
- package/dist/application/check-branch-service.js +0 -1
- package/dist/application/check-branch-service.js.map +1 -1
- package/dist/application/checkpoint/state-reader.js +2 -2
- package/dist/application/checkpoint/state-reader.js.map +1 -1
- package/dist/application/checkpoint-service.d.ts +4 -4
- package/dist/application/checkpoint-service.d.ts.map +1 -1
- package/dist/application/checkpoint-service.js +4 -6
- package/dist/application/checkpoint-service.js.map +1 -1
- package/dist/application/git-flow-service.js +2 -2
- package/dist/application/git-flow-service.js.map +1 -1
- package/dist/application/humanize-es.d.ts.map +1 -1
- package/dist/application/humanize-es.js +0 -1
- package/dist/application/humanize-es.js.map +1 -1
- package/dist/application/markdown.d.ts.map +1 -1
- package/dist/application/markdown.js +0 -4
- package/dist/application/markdown.js.map +1 -1
- package/dist/application/mcp-dbhub-launcher.js +1 -1
- package/dist/application/mcp-dbhub-launcher.js.map +1 -1
- package/dist/application/mcp-host-paths.d.ts +8 -8
- package/dist/application/mcp-host-paths.js +8 -8
- package/dist/application/mcp-host-reader.js +2 -2
- package/dist/application/mcp-host-reader.js.map +1 -1
- package/dist/application/mcp-host-writer.js +3 -3
- package/dist/application/mcp-host-writer.js.map +1 -1
- package/dist/application/mcp-test-connection-service.d.ts +4 -4
- package/dist/application/mcp-test-connection-service.d.ts.map +1 -1
- package/dist/application/mcp-test-connection-service.js +6 -6
- package/dist/application/mcp-test-connection-service.js.map +1 -1
- package/dist/application/mcp-warp-postinstall-hint.js +4 -4
- package/dist/application/mcp-warp-postinstall-hint.js.map +1 -1
- package/dist/application/multiroot/claude.js +3 -3
- package/dist/application/multiroot/claude.js.map +1 -1
- package/dist/application/multiroot/warp.d.ts.map +1 -1
- package/dist/application/multiroot/warp.js +0 -1
- package/dist/application/multiroot/warp.js.map +1 -1
- package/dist/application/parsers/project-block.js +0 -2
- package/dist/application/parsers/project-block.js.map +1 -1
- package/dist/application/plugin-doctor-service.js +5 -5
- package/dist/application/plugin-doctor-service.js.map +1 -1
- package/dist/application/project-md-upsert-service.d.ts +4 -4
- package/dist/application/project-md-upsert-service.d.ts.map +1 -1
- package/dist/application/project-md-upsert-service.js +1 -1
- package/dist/application/project-md-upsert-service.js.map +1 -1
- package/dist/application/project-tab-data.d.ts +25 -25
- package/dist/application/project-tab-data.d.ts.map +1 -1
- package/dist/application/project-tab-data.js +24 -34
- package/dist/application/project-tab-data.js.map +1 -1
- package/dist/application/release-data/artifacts.js +2 -2
- package/dist/application/release-data/artifacts.js.map +1 -1
- package/dist/application/release-data/sessions.js +1 -1
- package/dist/application/release-data/sessions.js.map +1 -1
- package/dist/application/render/project-block.js +6 -6
- package/dist/application/render/project-block.js.map +1 -1
- package/dist/application/self/clean-legacy.d.ts +1 -0
- package/dist/application/self/clean-legacy.d.ts.map +1 -1
- package/dist/application/self/clean-legacy.js +6 -2
- package/dist/application/self/clean-legacy.js.map +1 -1
- package/dist/application/self/detect-hosts.js +5 -5
- package/dist/application/self/detect-hosts.js.map +1 -1
- package/dist/application/self/install-hooks.d.ts.map +1 -1
- package/dist/application/self/install-hooks.js +0 -1
- package/dist/application/self/install-hooks.js.map +1 -1
- package/dist/application/self/install-plugin-skills-git.js +3 -3
- package/dist/application/self/install-plugin-skills-git.js.map +1 -1
- package/dist/application/self/install-plugin-skills.js +4 -4
- package/dist/application/self/install-plugin-skills.js.map +1 -1
- package/dist/application/self/install-skill.d.ts +18 -1
- package/dist/application/self/install-skill.d.ts.map +1 -1
- package/dist/application/self/install-skill.js +81 -19
- package/dist/application/self/install-skill.js.map +1 -1
- package/dist/application/self/install-targets.d.ts +2 -0
- package/dist/application/self/install-targets.d.ts.map +1 -1
- package/dist/application/self/install-targets.js +30 -1
- package/dist/application/self/install-targets.js.map +1 -1
- package/dist/application/self/skills-manager.d.ts +34 -24
- package/dist/application/self/skills-manager.d.ts.map +1 -1
- package/dist/application/self/skills-manager.js +151 -110
- package/dist/application/self/skills-manager.js.map +1 -1
- package/dist/application/self/skills-registry.d.ts +10 -10
- package/dist/application/self/skills-registry.d.ts.map +1 -1
- package/dist/application/self/skills-registry.js +12 -12
- package/dist/application/self/skills-registry.js.map +1 -1
- package/dist/application/self/uninstall.d.ts +1 -0
- package/dist/application/self/uninstall.d.ts.map +1 -1
- package/dist/application/self/uninstall.js +38 -13
- package/dist/application/self/uninstall.js.map +1 -1
- package/dist/application/session-resolver.d.ts +1 -1
- package/dist/application/session-resolver.d.ts.map +1 -1
- package/dist/application/source-launch-scripts-service.js +0 -3
- package/dist/application/source-launch-scripts-service.js.map +1 -1
- package/dist/application/source-remove-service.d.ts +7 -7
- package/dist/application/source-remove-service.js +13 -13
- package/dist/application/source-remove-service.js.map +1 -1
- package/dist/application/templates/session.d.ts +2 -2
- package/dist/application/templates/session.d.ts.map +1 -1
- package/dist/application/templates/session.js +2 -6
- package/dist/application/templates/session.js.map +1 -1
- package/dist/application/terminal-launch.d.ts +1 -1
- package/dist/application/terminal-launch.js +1 -1
- package/dist/application/visibility-doctor-service.js +4 -4
- package/dist/application/visibility-doctor-service.js.map +1 -1
- package/dist/application/workspace-init-service.d.ts +1 -1
- package/dist/application/workspace-init-service.d.ts.map +1 -1
- package/dist/application/workspace-init-service.js +0 -3
- package/dist/application/workspace-init-service.js.map +1 -1
- package/dist/cli/commands/check-branch.js +1 -1
- package/dist/cli/commands/check-branch.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts +1 -1
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +4 -4
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/release-data.js +1 -1
- package/dist/cli/main.js +5 -5
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/parser.d.ts.map +1 -1
- package/dist/cli/parser.js +1 -3
- package/dist/cli/parser.js.map +1 -1
- package/dist/cli/parsers/fuentes.js +3 -3
- package/dist/cli/parsers/fuentes.js.map +1 -1
- package/dist/cli/tui/app.d.ts +1 -1
- package/dist/cli/tui/app.d.ts.map +1 -1
- package/dist/cli/tui/app.js +36 -36
- package/dist/cli/tui/app.js.map +1 -1
- package/dist/cli/tui/components/detail-panel.d.ts +8 -7
- package/dist/cli/tui/components/detail-panel.d.ts.map +1 -1
- package/dist/cli/tui/components/detail-panel.js +11 -11
- package/dist/cli/tui/components/detail-panel.js.map +1 -1
- package/dist/cli/tui/components/focus-row.d.ts +10 -10
- package/dist/cli/tui/components/focus-row.d.ts.map +1 -1
- package/dist/cli/tui/components/focus-row.js +10 -10
- package/dist/cli/tui/components/focus-row.js.map +1 -1
- package/dist/cli/tui/components/home-footer.d.ts +1 -1
- package/dist/cli/tui/components/home-footer.d.ts.map +1 -1
- package/dist/cli/tui/components/home-header.js +4 -4
- package/dist/cli/tui/components/host-admin-section.d.ts.map +1 -1
- package/dist/cli/tui/components/host-admin-section.js +6 -7
- package/dist/cli/tui/components/host-admin-section.js.map +1 -1
- package/dist/cli/tui/components/list-row.d.ts +2 -2
- package/dist/cli/tui/components/list-row.js +10 -10
- package/dist/cli/tui/components/list-row.js.map +1 -1
- package/dist/cli/tui/components/notification-banner.d.ts +8 -7
- package/dist/cli/tui/components/notification-banner.d.ts.map +1 -1
- package/dist/cli/tui/components/notification-banner.js +9 -8
- package/dist/cli/tui/components/notification-banner.js.map +1 -1
- package/dist/cli/tui/components/notification-stack.d.ts +6 -6
- package/dist/cli/tui/components/notification-stack.d.ts.map +1 -1
- package/dist/cli/tui/components/notification-stack.js +5 -5
- package/dist/cli/tui/components/page-head.d.ts +5 -5
- package/dist/cli/tui/components/page-head.d.ts.map +1 -1
- package/dist/cli/tui/components/screen-frame.d.ts.map +1 -1
- package/dist/cli/tui/components/screen-frame.js +6 -5
- package/dist/cli/tui/components/screen-frame.js.map +1 -1
- package/dist/cli/tui/components/tab-bar.d.ts +5 -5
- package/dist/cli/tui/components/tab-bar.d.ts.map +1 -1
- package/dist/cli/tui/components/tab-bar.js +3 -3
- package/dist/cli/tui/components/tabs-config.d.ts +1 -1
- package/dist/cli/tui/components/tabs-config.d.ts.map +1 -1
- package/dist/cli/tui/components/tabs-config.js +3 -6
- package/dist/cli/tui/components/tabs-config.js.map +1 -1
- package/dist/cli/tui/components/workspace-init-alias.d.ts +2 -2
- package/dist/cli/tui/components/workspace-init-alias.d.ts.map +1 -1
- package/dist/cli/tui/components/workspace-init-alias.js +6 -6
- package/dist/cli/tui/components/workspace-init-alias.js.map +1 -1
- package/dist/cli/tui/components/workspace-init-form.js +3 -3
- package/dist/cli/tui/components/workspace-init-form.js.map +1 -1
- package/dist/cli/tui/data/recommended-skills.js +11 -11
- package/dist/cli/tui/data/recommended-skills.js.map +1 -1
- package/dist/cli/tui/data/workflow-content.js +11 -11
- package/dist/cli/tui/data/workflow-content.js.map +1 -1
- package/dist/cli/tui/hosts.d.ts +5 -5
- package/dist/cli/tui/hosts.d.ts.map +1 -1
- package/dist/cli/tui/hosts.js +7 -9
- package/dist/cli/tui/hosts.js.map +1 -1
- package/dist/cli/tui/notification-center.d.ts +11 -11
- package/dist/cli/tui/notification-center.d.ts.map +1 -1
- package/dist/cli/tui/notification-center.js +3 -3
- package/dist/cli/tui/notification-center.js.map +1 -1
- package/dist/cli/tui/row-width.d.ts +9 -10
- package/dist/cli/tui/row-width.d.ts.map +1 -1
- package/dist/cli/tui/row-width.js +9 -10
- package/dist/cli/tui/row-width.js.map +1 -1
- package/dist/cli/tui/run.d.ts.map +1 -1
- package/dist/cli/tui/run.js +13 -12
- package/dist/cli/tui/run.js.map +1 -1
- package/dist/cli/tui/tabs/config-tab.d.ts +1 -1
- package/dist/cli/tui/tabs/config-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/config-tab.js +6 -6
- package/dist/cli/tui/tabs/config-tab.js.map +1 -1
- package/dist/cli/tui/tabs/mcp-tab.js +8 -8
- package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
- package/dist/cli/tui/tabs/project-tab.js +38 -37
- package/dist/cli/tui/tabs/project-tab.js.map +1 -1
- package/dist/cli/tui/tabs/skills-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/skills-tab.js +30 -26
- package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
- package/dist/cli/tui/tabs/status-tab.d.ts +4 -4
- package/dist/cli/tui/tabs/status-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/status-tab.js +7 -7
- package/dist/cli/tui/tabs/status-tab.js.map +1 -1
- package/dist/cli/tui/tabs/workflow-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/workflow-tab.js +4 -5
- package/dist/cli/tui/tabs/workflow-tab.js.map +1 -1
- package/dist/cli/tui/theme.d.ts +3 -2
- package/dist/cli/tui/theme.d.ts.map +1 -1
- package/dist/cli/tui/theme.js +23 -22
- package/dist/cli/tui/theme.js.map +1 -1
- package/dist/cli/tui/tui-prefs.d.ts +3 -3
- package/dist/cli/tui/tui-prefs.d.ts.map +1 -1
- package/dist/cli/tui/tui-prefs.js +5 -5
- package/dist/cli/tui/tui-prefs.js.map +1 -1
- package/dist/cli/tui/use-list-cursor.d.ts +1 -1
- package/dist/cli/tui/use-list-cursor.d.ts.map +1 -1
- package/dist/cli/tui/use-list-cursor.js +2 -2
- package/dist/cli/tui/use-list-cursor.js.map +1 -1
- package/dist/cli/tui/use-terminal-size.js +5 -5
- package/dist/cli/tui/use-terminal-size.js.map +1 -1
- package/dist/domain/harnesses.d.ts.map +1 -1
- package/dist/domain/harnesses.js +11 -2
- package/dist/domain/harnesses.js.map +1 -1
- package/dist/domain/mcp-entry.js +3 -3
- package/dist/domain/mcp-entry.js.map +1 -1
- package/dist/domain/session.d.ts +2 -3
- package/dist/domain/session.d.ts.map +1 -1
- package/dist/domain/types.d.ts +2 -2
- package/package.json +2 -2
- package/skills/w/harness/HARNESS.md +1 -1
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
//
|
|
2
|
-
// (
|
|
3
|
-
// ~/.claude/skills/<n>
|
|
1
|
+
// Standalone-skills engine (skills.sh model): canonical copy in
|
|
2
|
+
// ~/.agents/skills/<n> (the open-standard anchor that non-Claude hosts scan)
|
|
3
|
+
// + replica in ~/.claude/skills/<n> via symlink, with a copy fallback
|
|
4
|
+
// (Windows without links).
|
|
4
5
|
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
// real
|
|
8
|
-
// skills
|
|
9
|
-
// -
|
|
10
|
-
// -
|
|
11
|
-
// `installedAt`
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
//
|
|
6
|
+
// The user-level registry (skills-registry.ts) is the source of truth for WHAT
|
|
7
|
+
// this engine manages. Ownership guards (the engine writes under the user's
|
|
8
|
+
// real HOME, which also hosts the `w` bundle, plugin skills and manual
|
|
9
|
+
// skills):
|
|
10
|
+
// - every operation requires a registered name (SKILL_NOT_REGISTERED);
|
|
11
|
+
// - the canonical dir is only created/deleted if this engine materialized it
|
|
12
|
+
// — signal: `installedAt` in the registry (SKILL_NAME_COLLISION when
|
|
13
|
+
// colliding with a foreign dir; on uninstall/remove the foreign dir is
|
|
14
|
+
// preserved with a warning);
|
|
15
|
+
// - the Claude replica is ours only if it is a symlink THAT POINTS AT the
|
|
16
|
+
// canonical or a dir with registered mode:"copy" (FOREIGN_REPLICA
|
|
17
|
+
// otherwise), verified BEFORE mutating anything;
|
|
18
|
+
// - an unreadable registry (read warning) aborts every mutation: never
|
|
19
|
+
// rewrite over entries that could not be read.
|
|
18
20
|
import { readFile, readdir, readlink, rename } from "node:fs/promises";
|
|
19
21
|
import { mkdtemp, rm } from "node:fs/promises";
|
|
20
22
|
import { tmpdir } from "node:os";
|
|
@@ -23,7 +25,7 @@ import { gitClone } from "./install-plugin-skills-git.js";
|
|
|
23
25
|
import { copyDir, hasValidFrontmatter } from "./install-plugin-skills.js";
|
|
24
26
|
import { COMMAND_SKILL_PREFIX, LEGACY_SKILL_NAMES, SKILL_DIR_NAME } from "./install-skill.js";
|
|
25
27
|
import { isValidSkillName, readSkillsRegistry, readSkillsShLockSources, writeSkillsRegistry, } from "./skills-registry.js";
|
|
26
|
-
// skills/<
|
|
28
|
+
// skills/<category>/<skill> (mattpocock/skills) fits within 3 levels below the root.
|
|
27
29
|
const MAX_SCAN_DEPTH = 3;
|
|
28
30
|
export function canonicalSkillsRoot(home) {
|
|
29
31
|
return join(home, ".agents", "skills");
|
|
@@ -31,17 +33,29 @@ export function canonicalSkillsRoot(home) {
|
|
|
31
33
|
export function claudeReplicaRoot(home) {
|
|
32
34
|
return join(home, ".claude", "skills");
|
|
33
35
|
}
|
|
36
|
+
export function geminiReplicaRoot(home) {
|
|
37
|
+
return join(home, ".gemini", "skills");
|
|
38
|
+
}
|
|
39
|
+
// Ownership marker for COPY replicas (counterpart of the symlink, which
|
|
40
|
+
// authenticates by pointing at our canonical): without it, a same-named real
|
|
41
|
+
// dir from another origin would be indistinguishable from our copy and
|
|
42
|
+
// teardown/reinstall could clobber it.
|
|
43
|
+
export const REPLICA_MARKER_FILENAME = ".aw-replica";
|
|
44
|
+
const REPLICA_HOSTS = [
|
|
45
|
+
{ key: "claude", root: claudeReplicaRoot, preferSymlink: true },
|
|
46
|
+
{ key: "gemini", root: geminiReplicaRoot, preferSymlink: false },
|
|
47
|
+
];
|
|
34
48
|
/**
|
|
35
|
-
*
|
|
36
|
-
* (→ GitHub)
|
|
37
|
-
*
|
|
49
|
+
* Normalizes the user's source: git URL (with `#ref`), `owner/repo` shorthand
|
|
50
|
+
* (→ GitHub) or absolute local path. Relative paths are rejected on purpose:
|
|
51
|
+
* the registry must resolve from any future cwd.
|
|
38
52
|
*/
|
|
39
53
|
export function resolveSkillSource(raw, ref) {
|
|
40
54
|
const trimmed = raw.trim();
|
|
41
55
|
if (trimmed.length === 0)
|
|
42
56
|
return { error: "la fuente no puede estar vacía" };
|
|
43
|
-
// file://
|
|
44
|
-
// repos
|
|
57
|
+
// file:// counts as git (clone over local transport) — lets users register
|
|
58
|
+
// local repos WITH history, unlike a plain path.
|
|
45
59
|
if (/^(https?:\/\/|git@|ssh:\/\/|file:\/\/)/.test(trimmed)) {
|
|
46
60
|
const hashIdx = trimmed.indexOf("#");
|
|
47
61
|
const url = hashIdx >= 0 ? trimmed.slice(0, hashIdx) : trimmed;
|
|
@@ -50,8 +64,8 @@ export function resolveSkillSource(raw, ref) {
|
|
|
50
64
|
}
|
|
51
65
|
if (isAbsolute(trimmed))
|
|
52
66
|
return { kind: "local", path: trimmed };
|
|
53
|
-
//
|
|
54
|
-
//
|
|
67
|
+
// The GitHub shorthand requires segments starting alphanumeric: "./x" or
|
|
68
|
+
// "../x" are relative paths (rejected), not owner/repo.
|
|
55
69
|
if (/^[A-Za-z0-9][\w.-]*\/[A-Za-z0-9][\w.-]*$/.test(trimmed)) {
|
|
56
70
|
return { kind: "git", url: `https://github.com/${trimmed}.git`, ...(ref ? { ref } : {}) };
|
|
57
71
|
}
|
|
@@ -67,14 +81,14 @@ async function isSkillDir(dir) {
|
|
|
67
81
|
return false;
|
|
68
82
|
}
|
|
69
83
|
}
|
|
70
|
-
/** `name:`
|
|
71
|
-
*
|
|
84
|
+
/** Frontmatter `name:` — the skill's real name when the source IS a skill dir
|
|
85
|
+
* (the basename of a temp clone is random, never usable). */
|
|
72
86
|
function frontmatterName(content) {
|
|
73
87
|
const block = content.match(/^---[ \t]*\r?\n([\s\S]*?)\r?\n---/)?.[1] ?? "";
|
|
74
88
|
return block.match(/^name:\s*(\S[^\r\n]*)/m)?.[1]?.trim() ?? null;
|
|
75
89
|
}
|
|
76
|
-
/**
|
|
77
|
-
* dot-dirs, node_modules
|
|
90
|
+
/** Bounded walk: nested skills up to skills/<category>/<skill>; skips
|
|
91
|
+
* dot-dirs, node_modules and symlinks (a link's Dirent is not isDirectory). */
|
|
78
92
|
async function walkSkillDirs(dir, depth) {
|
|
79
93
|
if (depth >= MAX_SCAN_DEPTH)
|
|
80
94
|
return [];
|
|
@@ -101,8 +115,8 @@ async function walkSkillDirs(dir, depth) {
|
|
|
101
115
|
}
|
|
102
116
|
return out;
|
|
103
117
|
}
|
|
104
|
-
/** Skill dirs
|
|
105
|
-
* frontmatter)
|
|
118
|
+
/** Skill dirs of a source: the dir itself (if it IS a skill, named by its
|
|
119
|
+
* frontmatter) or the tree; duplicate or invalid names are discarded. */
|
|
106
120
|
async function collectCandidates(dir) {
|
|
107
121
|
if (await isSkillDir(dir)) {
|
|
108
122
|
const content = await readFile(join(dir, "SKILL.md"), "utf8");
|
|
@@ -118,7 +132,7 @@ async function collectCandidates(dir) {
|
|
|
118
132
|
}
|
|
119
133
|
return [...byName.values()];
|
|
120
134
|
}
|
|
121
|
-
/**
|
|
135
|
+
/** Brings the source into a readable dir and lists its skills (temp clone for git). */
|
|
122
136
|
async function fetchSourceCandidates(resolved, ctx) {
|
|
123
137
|
if (resolved.kind === "local") {
|
|
124
138
|
if (!(await ctx.fs.exists(resolved.path))) {
|
|
@@ -139,8 +153,8 @@ async function fetchSourceCandidates(resolved, ctx) {
|
|
|
139
153
|
}
|
|
140
154
|
return { candidates: await collectCandidates(temp), cleanup };
|
|
141
155
|
}
|
|
142
|
-
/**
|
|
143
|
-
*
|
|
156
|
+
/** Read preceding a mutation: an unreadable registry ABORTS — the first write
|
|
157
|
+
* after a failed read would clobber every prior entry. */
|
|
144
158
|
async function readRegistryForWrite(ctx) {
|
|
145
159
|
const read = await readSkillsRegistry(ctx);
|
|
146
160
|
if (read.warning) {
|
|
@@ -151,8 +165,8 @@ async function readRegistryForWrite(ctx) {
|
|
|
151
165
|
}
|
|
152
166
|
return { registry: read.registry };
|
|
153
167
|
}
|
|
154
|
-
/**
|
|
155
|
-
*
|
|
168
|
+
/** Side-effect-free inspection: lists a source's skills so the wizard can show
|
|
169
|
+
* the picker + third-party warning BEFORE registering anything. */
|
|
156
170
|
export async function probeSkillSource(ctx, input) {
|
|
157
171
|
const resolved = resolveSkillSource(input.source, input.ref);
|
|
158
172
|
if ("error" in resolved)
|
|
@@ -203,14 +217,14 @@ export async function registerSkill(ctx, input) {
|
|
|
203
217
|
if (registry.skills[picked.name]) {
|
|
204
218
|
return fail("SKILL_ALREADY_REGISTERED", `'${picked.name}' ya está registrada (fuente: ${registry.skills[picked.name]?.source})`);
|
|
205
219
|
}
|
|
206
|
-
// `w-*`
|
|
207
|
-
// (install-skill.ts) —
|
|
208
|
-
//
|
|
220
|
+
// `w-*` is the namespace of the bundle's synthesized wrappers
|
|
221
|
+
// (install-skill.ts) — registering a standalone skill there would leave it
|
|
222
|
+
// at the mercy of the install/uninstall sweep over the same roots.
|
|
209
223
|
if (picked.name.startsWith(COMMAND_SKILL_PREFIX)) {
|
|
210
224
|
return fail("RESERVED_SKILL_PREFIX", `'${picked.name}' usa el prefijo reservado '${COMMAND_SKILL_PREFIX}' (wrappers del bundle) — elegí otro nombre`);
|
|
211
225
|
}
|
|
212
|
-
//
|
|
213
|
-
// (
|
|
226
|
+
// Ownership guard: an existing UNregistered canonical dir belongs to someone
|
|
227
|
+
// else (`w` bundle, plugin skill, manual install) — we never adopt it.
|
|
214
228
|
const canonical = join(canonicalSkillsRoot(ctx.env.homeDir()), picked.name);
|
|
215
229
|
if (await ctx.fs.exists(canonical)) {
|
|
216
230
|
return fail("SKILL_NAME_COLLISION", `ya existe ${canonical} y no está en el registro de sueltas — elegí otro nombre o resolvé la colisión a mano`);
|
|
@@ -266,11 +280,15 @@ export async function installSkill(ctx, name, opts = { refetch: true }) {
|
|
|
266
280
|
return notRegistered(name);
|
|
267
281
|
const home = ctx.env.homeDir();
|
|
268
282
|
const canonical = join(canonicalSkillsRoot(home), name);
|
|
269
|
-
// Pre-flight
|
|
270
|
-
//
|
|
271
|
-
const
|
|
272
|
-
|
|
273
|
-
|
|
283
|
+
// Pre-flight BEFORE mutating anything: a foreign replica (on any host) or a
|
|
284
|
+
// canonical collision aborts without touching the prior install or the foreign dir.
|
|
285
|
+
const replicaStates = new Map();
|
|
286
|
+
for (const host of REPLICA_HOSTS) {
|
|
287
|
+
const state = await inspectReplica(ctx, name, entry.mode, host);
|
|
288
|
+
if (state === "foreign") {
|
|
289
|
+
return fail("FOREIGN_REPLICA", `ya existe ${join(host.root(home), name)} y no lo creó este manager — resolvé la colisión a mano`);
|
|
290
|
+
}
|
|
291
|
+
replicaStates.set(host.key, state);
|
|
274
292
|
}
|
|
275
293
|
if (opts.refetch && !entry.installedAt && (await ctx.fs.exists(canonical))) {
|
|
276
294
|
return fail("SKILL_NAME_COLLISION", `ya existe ${canonical} y este manager no lo materializó — resolvé la colisión a mano`);
|
|
@@ -297,20 +315,27 @@ export async function installSkill(ctx, name, opts = { refetch: true }) {
|
|
|
297
315
|
}
|
|
298
316
|
}
|
|
299
317
|
else if (!entry.installedAt || !(await ctx.fs.exists(canonical))) {
|
|
300
|
-
// Reinstall
|
|
301
|
-
// installedAt,
|
|
318
|
+
// Reinstall requires THIS manager to have materialized the canonical dir:
|
|
319
|
+
// without installedAt, an existing same-named dir is foreign and is not replicated.
|
|
302
320
|
return fail("SKILL_NOT_INSTALLED", `'${name}' no está instalada (no existe ${canonical} materializada por este manager); usá Install/Update`);
|
|
303
321
|
}
|
|
304
|
-
const
|
|
305
|
-
|
|
306
|
-
|
|
322
|
+
const replicas = [];
|
|
323
|
+
for (const host of REPLICA_HOSTS) {
|
|
324
|
+
replicas.push(await replicateToHost(ctx, name, replicaStates.get(host.key) ?? "absent", host));
|
|
325
|
+
}
|
|
326
|
+
// The registered mode is still the Claude replica's (the primary one): the
|
|
327
|
+
// TUI's "(copy)" badge flags ITS degradation (Windows without symlinks);
|
|
328
|
+
// the gemini copy is by-design and authenticates via marker, not mode.
|
|
329
|
+
const claudeReplica = replicas[0] ?? { path: canonical, mode: "symlink" };
|
|
330
|
+
// Re-read before writing: the clone can take a while and another invocation
|
|
331
|
+
// may have touched the registry in between — never write a stale snapshot.
|
|
307
332
|
const fresh = await readRegistryForWrite(ctx);
|
|
308
333
|
if ("error" in fresh)
|
|
309
334
|
return fail(fresh.code, fresh.error);
|
|
310
335
|
const current = fresh.registry.skills[name] ?? entry;
|
|
311
336
|
fresh.registry.skills[name] = {
|
|
312
337
|
...current,
|
|
313
|
-
mode:
|
|
338
|
+
mode: claudeReplica.mode,
|
|
314
339
|
...(opts.refetch ? { installedAt: new Date().toISOString() } : {}),
|
|
315
340
|
};
|
|
316
341
|
await writeSkillsRegistry(ctx, fresh.registry);
|
|
@@ -320,19 +345,22 @@ export async function installSkill(ctx, name, opts = { refetch: true }) {
|
|
|
320
345
|
status: opts.refetch ? "installed" : "reinstalled",
|
|
321
346
|
name,
|
|
322
347
|
canonical,
|
|
323
|
-
replica:
|
|
324
|
-
mode:
|
|
325
|
-
|
|
348
|
+
replica: claudeReplica.path,
|
|
349
|
+
mode: claudeReplica.mode,
|
|
350
|
+
replicas: replicas.map((r) => ({ host: r.host, path: r.path, mode: r.mode })),
|
|
351
|
+
summary: `Skill '${name}' materializada en ${canonical} (réplicas: ${replicas
|
|
352
|
+
.map((r) => `${r.host} ${r.mode}`)
|
|
353
|
+
.join(" · ")}).`,
|
|
326
354
|
},
|
|
327
355
|
exitCode: 0,
|
|
328
356
|
};
|
|
329
357
|
}
|
|
330
|
-
/** Reinstall:
|
|
358
|
+
/** Reinstall: repairs canonical→replica without touching the source (offline-safe). */
|
|
331
359
|
export async function reinstallSkill(ctx, name) {
|
|
332
360
|
return installSkill(ctx, name, { refetch: false });
|
|
333
361
|
}
|
|
334
|
-
/** Update: re-
|
|
335
|
-
*
|
|
362
|
+
/** Update: re-fetches the registered ref; git sources only. Staging+swap: a
|
|
363
|
+
* fetch failure leaves the prior install intact. */
|
|
336
364
|
export async function updateSkill(ctx, name) {
|
|
337
365
|
const read = await readRegistryForWrite(ctx);
|
|
338
366
|
if ("error" in read)
|
|
@@ -404,9 +432,9 @@ export async function removeSkill(ctx, name) {
|
|
|
404
432
|
exitCode: 0,
|
|
405
433
|
};
|
|
406
434
|
}
|
|
407
|
-
/**
|
|
408
|
-
*
|
|
409
|
-
* → registered → recommended;
|
|
435
|
+
/** Single list for the TUI: registered (installed or not) + canonicals outside
|
|
436
|
+
* the registry (`unmanaged`) + unregistered seed. Order: installed → unmanaged
|
|
437
|
+
* → registered → recommended; alphabetical within each group. */
|
|
410
438
|
export async function listSkills(ctx, seed) {
|
|
411
439
|
const { registry, warning } = await readSkillsRegistry(ctx);
|
|
412
440
|
const home = ctx.env.homeDir();
|
|
@@ -415,6 +443,7 @@ export async function listSkills(ctx, seed) {
|
|
|
415
443
|
for (const [name, entry] of Object.entries(registry.skills)) {
|
|
416
444
|
const canonical = await ctx.fs.exists(join(canonicalSkillsRoot(home), name));
|
|
417
445
|
const replica = (await ctx.fs.lstat(join(claudeReplicaRoot(home), name))) !== null;
|
|
446
|
+
const gemini = (await ctx.fs.lstat(join(geminiReplicaRoot(home), name))) !== null;
|
|
418
447
|
const description = seedByName.get(name)?.description;
|
|
419
448
|
items.push({
|
|
420
449
|
name,
|
|
@@ -424,16 +453,17 @@ export async function listSkills(ctx, seed) {
|
|
|
424
453
|
...(entry.installedAt ? { installedAt: entry.installedAt } : {}),
|
|
425
454
|
...(description ? { description } : {}),
|
|
426
455
|
status: canonical ? "installed" : "registered",
|
|
427
|
-
replicas: { agents: canonical, claude: replica },
|
|
456
|
+
replicas: { agents: canonical, claude: replica, gemini },
|
|
428
457
|
});
|
|
429
458
|
}
|
|
430
|
-
//
|
|
431
|
-
//
|
|
432
|
-
// (guard
|
|
433
|
-
//
|
|
434
|
-
// `w-*`
|
|
435
|
-
// "
|
|
436
|
-
//
|
|
459
|
+
// Canonicals outside the registry (skills.sh, manual): shown as `unmanaged`
|
|
460
|
+
// so the tab reflects the WHOLE anchor, without making them operable
|
|
461
|
+
// (ownership guard intact). The source comes from the skills.sh lock when it
|
|
462
|
+
// knows it; "" when nobody does. Excluded: the `w` bundle and its
|
|
463
|
+
// synthesized `w-*` namespace (skill-as-command) + legacy names (managed by
|
|
464
|
+
// [Workflows], not "someone else's"). With an UNREADABLE registry nothing is
|
|
465
|
+
// classified: entries could belong to this engine and would be mislabeled as
|
|
466
|
+
// foreign.
|
|
437
467
|
const bundleOwned = new Set([SKILL_DIR_NAME, ...LEGACY_SKILL_NAMES]);
|
|
438
468
|
const unmanaged = new Set();
|
|
439
469
|
const root = canonicalSkillsRoot(home);
|
|
@@ -441,8 +471,8 @@ export async function listSkills(ctx, seed) {
|
|
|
441
471
|
try {
|
|
442
472
|
const lockSources = await readSkillsShLockSources(ctx);
|
|
443
473
|
for (const entry of await ctx.fs.list(root)) {
|
|
444
|
-
//
|
|
445
|
-
//
|
|
474
|
+
// A symlink-to-dir is typed "other" (Dirent does not resolve it); only
|
|
475
|
+
// files are discarded — isSkillDir reads THROUGH the link and decides.
|
|
446
476
|
if (entry.type === "file" || entry.name.startsWith("."))
|
|
447
477
|
continue;
|
|
448
478
|
if (bundleOwned.has(entry.name) || entry.name.startsWith(COMMAND_SKILL_PREFIX))
|
|
@@ -453,25 +483,26 @@ export async function listSkills(ctx, seed) {
|
|
|
453
483
|
continue;
|
|
454
484
|
unmanaged.add(entry.name);
|
|
455
485
|
const replica = (await ctx.fs.lstat(join(claudeReplicaRoot(home), entry.name))) !== null;
|
|
486
|
+
const gemini = (await ctx.fs.lstat(join(geminiReplicaRoot(home), entry.name))) !== null;
|
|
456
487
|
items.push({
|
|
457
488
|
name: entry.name,
|
|
458
489
|
source: lockSources[entry.name] ?? "",
|
|
459
490
|
status: "unmanaged",
|
|
460
|
-
replicas: { agents: true, claude: replica },
|
|
491
|
+
replicas: { agents: true, claude: replica, gemini },
|
|
461
492
|
});
|
|
462
493
|
}
|
|
463
494
|
}
|
|
464
495
|
catch {
|
|
465
|
-
//
|
|
466
|
-
//
|
|
496
|
+
// Anchor absent or unreadable (e.g. permissions): the scan is best-effort —
|
|
497
|
+
// managed skills are already listed; never empty the tab over this.
|
|
467
498
|
}
|
|
468
499
|
}
|
|
469
500
|
for (const s of seed) {
|
|
470
501
|
if (Object.hasOwn(registry.skills, s.name) || unmanaged.has(s.name))
|
|
471
502
|
continue;
|
|
472
|
-
//
|
|
473
|
-
//
|
|
474
|
-
//
|
|
503
|
+
// Same-named canonical the scan did not list (invalid frontmatter, file,
|
|
504
|
+
// unreadable registry): offering Install guarantees SKILL_NAME_COLLISION —
|
|
505
|
+
// better not to offer the seed.
|
|
475
506
|
if (await ctx.fs.exists(join(root, s.name)))
|
|
476
507
|
continue;
|
|
477
508
|
items.push({
|
|
@@ -479,7 +510,7 @@ export async function listSkills(ctx, seed) {
|
|
|
479
510
|
source: s.source,
|
|
480
511
|
description: s.description,
|
|
481
512
|
status: "recommended",
|
|
482
|
-
replicas: { agents: false, claude: false },
|
|
513
|
+
replicas: { agents: false, claude: false, gemini: false },
|
|
483
514
|
});
|
|
484
515
|
}
|
|
485
516
|
const rank = {
|
|
@@ -490,11 +521,11 @@ export async function listSkills(ctx, seed) {
|
|
|
490
521
|
};
|
|
491
522
|
return items.sort((a, b) => rank[a.status] - rank[b.status] || a.name.localeCompare(b.name));
|
|
492
523
|
}
|
|
493
|
-
// ---
|
|
524
|
+
// --- internals ---
|
|
494
525
|
/**
|
|
495
|
-
*
|
|
496
|
-
*
|
|
497
|
-
* `renameFn`
|
|
526
|
+
* Copies src into a hidden staging dir and swaps it with the canonical one;
|
|
527
|
+
* the .bak is only discarded once the swap completed — a failure restores the
|
|
528
|
+
* previous state. `renameFn` is injectable to test the restore branch.
|
|
498
529
|
*/
|
|
499
530
|
export async function materializeCanonical(ctx, srcDir, canonical, name, renameFn = rename) {
|
|
500
531
|
const root = canonicalSkillsRoot(ctx.env.homeDir());
|
|
@@ -522,12 +553,14 @@ export async function materializeCanonical(ctx, srcDir, canonical, name, renameF
|
|
|
522
553
|
await ctx.fs.remove(staging);
|
|
523
554
|
}
|
|
524
555
|
}
|
|
525
|
-
/**
|
|
526
|
-
*
|
|
527
|
-
*
|
|
528
|
-
|
|
556
|
+
/** Replica ownership on a host: ours only if it is a symlink pointing at OUR
|
|
557
|
+
* canonical, a real dir with the `.aw-replica` marker, or — legacy
|
|
558
|
+
* (pre-marker copies, Windows) — a real dir with registered mode:"copy". A
|
|
559
|
+
* user's symlink pointing elsewhere is foreign — never re-pointed. */
|
|
560
|
+
async function inspectReplica(ctx, name, registeredMode, host) {
|
|
529
561
|
const home = ctx.env.homeDir();
|
|
530
|
-
const
|
|
562
|
+
const replicaRoot = host.root(home);
|
|
563
|
+
const replica = join(replicaRoot, name);
|
|
531
564
|
const existing = await ctx.fs.lstat(replica);
|
|
532
565
|
if (!existing)
|
|
533
566
|
return "absent";
|
|
@@ -535,45 +568,53 @@ async function inspectReplica(ctx, name, registeredMode) {
|
|
|
535
568
|
try {
|
|
536
569
|
const target = await readlink(replica);
|
|
537
570
|
const canonical = join(canonicalSkillsRoot(home), name);
|
|
538
|
-
return resolve(
|
|
539
|
-
? "ours"
|
|
540
|
-
: "foreign";
|
|
571
|
+
return resolve(replicaRoot, target) === resolve(canonical) ? "ours" : "foreign";
|
|
541
572
|
}
|
|
542
573
|
catch {
|
|
543
574
|
return "foreign";
|
|
544
575
|
}
|
|
545
576
|
}
|
|
546
|
-
|
|
577
|
+
if (await ctx.fs.exists(join(replica, REPLICA_MARKER_FILENAME)))
|
|
578
|
+
return "ours";
|
|
579
|
+
// Legacy: pre-marker copies on the claude host authenticated only via the
|
|
580
|
+
// registered mode.
|
|
581
|
+
return host.key === "claude" && registeredMode === "copy" ? "ours" : "foreign";
|
|
547
582
|
}
|
|
548
|
-
/**
|
|
549
|
-
async function
|
|
583
|
+
/** Materializes the replica on a host (pre-flight already ensured it is not foreign). */
|
|
584
|
+
async function replicateToHost(ctx, name, state, host) {
|
|
550
585
|
const home = ctx.env.homeDir();
|
|
551
586
|
const canonical = join(canonicalSkillsRoot(home), name);
|
|
552
|
-
const
|
|
587
|
+
const replicaRoot = host.root(home);
|
|
588
|
+
const replica = join(replicaRoot, name);
|
|
553
589
|
if (state === "ours")
|
|
554
590
|
await ctx.fs.remove(replica);
|
|
555
|
-
await ctx.fs.mkdirp(
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
591
|
+
await ctx.fs.mkdirp(replicaRoot);
|
|
592
|
+
if (host.preferSymlink) {
|
|
593
|
+
try {
|
|
594
|
+
await ctx.fs.symlink(canonical, replica);
|
|
595
|
+
return { host: host.key, path: replica, mode: "symlink" };
|
|
596
|
+
}
|
|
597
|
+
catch {
|
|
598
|
+
// No symlinks (Windows without Developer Mode / EPERM) → real copy.
|
|
599
|
+
}
|
|
564
600
|
}
|
|
601
|
+
await copyDir(canonical, replica);
|
|
602
|
+
await ctx.fs.writeText(join(replica, REPLICA_MARKER_FILENAME), `${canonical}\n`);
|
|
603
|
+
return { host: host.key, path: replica, mode: "copy" };
|
|
565
604
|
}
|
|
566
|
-
/**
|
|
567
|
-
*
|
|
605
|
+
/** Tears down replicas and the canonical dir respecting ownership; returns a
|
|
606
|
+
* warning if a same-named foreign dir was preserved. */
|
|
568
607
|
async function teardownSkill(ctx, name, entry) {
|
|
569
608
|
const home = ctx.env.homeDir();
|
|
570
609
|
const warnings = [];
|
|
571
|
-
const
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
610
|
+
for (const host of REPLICA_HOSTS) {
|
|
611
|
+
const replica = join(host.root(home), name);
|
|
612
|
+
const replicaState = await inspectReplica(ctx, name, entry.mode, host);
|
|
613
|
+
if (replicaState === "ours")
|
|
614
|
+
await ctx.fs.remove(replica);
|
|
615
|
+
else if (replicaState === "foreign") {
|
|
616
|
+
warnings.push(`se conservó ${replica}: existe pero no lo creó este manager`);
|
|
617
|
+
}
|
|
577
618
|
}
|
|
578
619
|
const canonical = join(canonicalSkillsRoot(home), name);
|
|
579
620
|
if (entry.installedAt) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-manager.js","sourceRoot":"","sources":["../../../src/application/self/skills-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skills-manager.js","sourceRoot":"","sources":["../../../src/application/self/skills-manager.ts"],"names":[],"mappings":"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"}
|