@rbbtsn0w/adg 0.1.0-alpha.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.
- package/LICENSE +21 -0
- package/README.md +308 -0
- package/bin/adg.ts +758 -0
- package/docs/agents-spec.md +132 -0
- package/docs/authoring.md +352 -0
- package/package.json +50 -0
- package/schemas/adg-plugin.schema.json +77 -0
- package/schemas/marketplace.schema.json +86 -0
- package/schemas/plugin-lock.schema.json +90 -0
- package/src/adapters/anthropic.ts +54 -0
- package/src/adapters/index.ts +24 -0
- package/src/adapters/openai.ts +37 -0
- package/src/adapters/reverse.ts +60 -0
- package/src/agents/claude.ts +124 -0
- package/src/agents/codex.ts +67 -0
- package/src/agents/index.ts +12 -0
- package/src/agents/registry.ts +30 -0
- package/src/agents/types.ts +47 -0
- package/src/commands/adapt.ts +36 -0
- package/src/commands/import.ts +69 -0
- package/src/commands/init.ts +146 -0
- package/src/commands/install.ts +411 -0
- package/src/commands/link.ts +61 -0
- package/src/commands/list.ts +28 -0
- package/src/commands/marketplace.ts +198 -0
- package/src/commands/migrate.ts +84 -0
- package/src/commands/multiselect-skills.ts +137 -0
- package/src/commands/remove.ts +136 -0
- package/src/commands/select-agents.ts +45 -0
- package/src/commands/select-components.ts +66 -0
- package/src/commands/select-plugins.ts +28 -0
- package/src/commands/select-scope.ts +21 -0
- package/src/commands/update.ts +85 -0
- package/src/commands/validate.ts +57 -0
- package/src/components.ts +90 -0
- package/src/deps.ts +64 -0
- package/src/fsutil.ts +38 -0
- package/src/hash.ts +61 -0
- package/src/lock.ts +57 -0
- package/src/manifest.ts +113 -0
- package/src/marketplace.ts +41 -0
- package/src/package.ts +74 -0
- package/src/paths.ts +129 -0
- package/src/semver.ts +67 -0
- package/src/skills.ts +88 -0
- package/src/sources.ts +159 -0
- package/src/types.ts +140 -0
- package/vendor/skills/LICENSE +29 -0
- package/vendor/skills/PROVENANCE.md +60 -0
- package/vendor/skills/ThirdPartyNoticeText.txt +117 -0
- package/vendor/skills/package.json +143 -0
- package/vendor/skills/src/add.ts +1999 -0
- package/vendor/skills/src/agents.ts +755 -0
- package/vendor/skills/src/blob.ts +567 -0
- package/vendor/skills/src/cli.ts +387 -0
- package/vendor/skills/src/constants.ts +3 -0
- package/vendor/skills/src/detect-agent.ts +62 -0
- package/vendor/skills/src/find.ts +357 -0
- package/vendor/skills/src/frontmatter.ts +16 -0
- package/vendor/skills/src/git-tree.ts +36 -0
- package/vendor/skills/src/git.ts +277 -0
- package/vendor/skills/src/install.ts +91 -0
- package/vendor/skills/src/installer.ts +1097 -0
- package/vendor/skills/src/list.ts +231 -0
- package/vendor/skills/src/local-lock.ts +182 -0
- package/vendor/skills/src/plugin-manifest.ts +183 -0
- package/vendor/skills/src/prompts/search-multiselect.ts +387 -0
- package/vendor/skills/src/providers/index.ts +14 -0
- package/vendor/skills/src/providers/registry.ts +51 -0
- package/vendor/skills/src/providers/types.ts +97 -0
- package/vendor/skills/src/providers/wellknown.ts +804 -0
- package/vendor/skills/src/remove.ts +323 -0
- package/vendor/skills/src/sanitize.ts +65 -0
- package/vendor/skills/src/self-cli.ts +20 -0
- package/vendor/skills/src/skill-lock.ts +329 -0
- package/vendor/skills/src/skills.ts +316 -0
- package/vendor/skills/src/source-parser.ts +438 -0
- package/vendor/skills/src/sync.ts +478 -0
- package/vendor/skills/src/telemetry.ts +186 -0
- package/vendor/skills/src/test-utils.ts +73 -0
- package/vendor/skills/src/types.ts +128 -0
- package/vendor/skills/src/update-source.ts +90 -0
- package/vendor/skills/src/update.ts +749 -0
- package/vendor/skills/src/use.ts +675 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import * as p from '@clack/prompts';
|
|
2
|
+
import pc from 'picocolors';
|
|
3
|
+
import { readLocalLock } from './local-lock.ts';
|
|
4
|
+
import { runAdd } from './add.ts';
|
|
5
|
+
import { runSync, parseSyncOptions } from './sync.ts';
|
|
6
|
+
import { getUniversalAgents } from './agents.ts';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Install all skills from the local skills-lock.json.
|
|
10
|
+
* Groups skills by source and calls `runAdd` for each group.
|
|
11
|
+
*
|
|
12
|
+
* Only installs to .agents/skills/ (universal agents) -- the canonical
|
|
13
|
+
* project-level location. Does not install to agent-specific directories.
|
|
14
|
+
*
|
|
15
|
+
* node_modules skills are handled via experimental_sync.
|
|
16
|
+
*/
|
|
17
|
+
export async function runInstallFromLock(args: string[]): Promise<void> {
|
|
18
|
+
const cwd = process.cwd();
|
|
19
|
+
const lock = await readLocalLock(cwd);
|
|
20
|
+
const skillEntries = Object.entries(lock.skills);
|
|
21
|
+
|
|
22
|
+
if (skillEntries.length === 0) {
|
|
23
|
+
p.log.warn('No project skills found in skills-lock.json');
|
|
24
|
+
p.log.info(
|
|
25
|
+
`Add project-level skills with ${pc.cyan('npx skills add <package>')} (without ${pc.cyan('-g')})`
|
|
26
|
+
);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Only install to .agents/skills/ (universal agents)
|
|
31
|
+
const universalAgentNames = getUniversalAgents();
|
|
32
|
+
|
|
33
|
+
// Separate node_modules skills from remote skills
|
|
34
|
+
const nodeModuleSkills: string[] = [];
|
|
35
|
+
const bySource = new Map<string, { sourceType: string; skills: string[] }>();
|
|
36
|
+
|
|
37
|
+
for (const [skillName, entry] of skillEntries) {
|
|
38
|
+
if (entry.sourceType === 'node_modules') {
|
|
39
|
+
nodeModuleSkills.push(skillName);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const installSource = entry.ref ? `${entry.source}#${entry.ref}` : entry.source;
|
|
44
|
+
const existing = bySource.get(installSource);
|
|
45
|
+
if (existing) {
|
|
46
|
+
existing.skills.push(skillName);
|
|
47
|
+
} else {
|
|
48
|
+
bySource.set(installSource, {
|
|
49
|
+
sourceType: entry.sourceType,
|
|
50
|
+
skills: [skillName],
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const remoteCount = skillEntries.length - nodeModuleSkills.length;
|
|
56
|
+
if (remoteCount > 0) {
|
|
57
|
+
p.log.info(
|
|
58
|
+
`Restoring ${pc.cyan(String(remoteCount))} skill${remoteCount !== 1 ? 's' : ''} from skills-lock.json into ${pc.dim('.agents/skills/')}`
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Install remote skills grouped by source
|
|
63
|
+
for (const [source, { skills }] of bySource) {
|
|
64
|
+
try {
|
|
65
|
+
await runAdd([source], {
|
|
66
|
+
skill: skills,
|
|
67
|
+
agent: universalAgentNames,
|
|
68
|
+
yes: true,
|
|
69
|
+
});
|
|
70
|
+
} catch (error) {
|
|
71
|
+
p.log.error(
|
|
72
|
+
`Failed to install from ${pc.cyan(source)}: ${error instanceof Error ? error.message : 'Unknown error'}`
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Handle node_modules skills via sync
|
|
78
|
+
if (nodeModuleSkills.length > 0) {
|
|
79
|
+
p.log.info(
|
|
80
|
+
`${pc.cyan(String(nodeModuleSkills.length))} skill${nodeModuleSkills.length !== 1 ? 's' : ''} from node_modules`
|
|
81
|
+
);
|
|
82
|
+
try {
|
|
83
|
+
const { options: syncOptions } = parseSyncOptions(args);
|
|
84
|
+
await runSync(args, { ...syncOptions, yes: true, agent: universalAgentNames });
|
|
85
|
+
} catch (error) {
|
|
86
|
+
p.log.error(
|
|
87
|
+
`Failed to sync node_modules skills: ${error instanceof Error ? error.message : 'Unknown error'}`
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|