crewly 1.20.130 → 1.20.132
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/config/skills/agent/core/find-skill/SKILL.md +58 -0
- package/config/skills/agent/core/find-skill/execute.sh +67 -0
- package/config/skills/agent/core/find-skill/execute.test.sh +69 -0
- package/config/skills/agent/core/generate-pdf/SKILL.md +24 -29
- package/config/skills/agent/core/generate-pdf/execute.sh +22 -78
- package/config/skills/agent/core/generate-pdf/execute.test.sh +45 -0
- package/config/skills/agent/core/install-skill/SKILL.md +67 -0
- package/config/skills/agent/core/install-skill/execute.sh +80 -0
- package/config/skills/agent/core/install-skill/execute.test.sh +74 -0
- package/config/skills/agent/pdf-tools/SKILL.md +103 -0
- package/config/skills/agent/pdf-tools/execute.sh +301 -0
- package/config/skills/agent/pdf-tools/execute.test.sh +218 -0
- package/config/skills/agent/pdf-tools/instructions.md +14 -0
- package/config/skills/agent/pdf-tools/pdf_tools.py +268 -0
- package/config/skills/agent/pdf-tools/skill.json +103 -0
- package/config/skills/agent/pdf-tools/style.css +143 -0
- package/config/skills/agent/transcribe-audio/SKILL.md +42 -5
- package/config/skills/agent/transcribe-audio/execute.sh +44 -11
- package/config/skills/agent/transcribe-audio/execute.test.sh +90 -0
- package/config/skills/agent/transcribe-audio/install-whisper-cpp.sh +126 -0
- package/config/skills/agent/transcribe-audio/install-whisper-cpp.test.sh +69 -0
- package/config/skills/agent/transcribe-audio/skill.json +67 -6
- package/config/skills/marketplace-registry.ts +8 -1
- package/config/skills/registry.json +337 -3
- package/dist/backend/backend/src/constants.d.ts +71 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +96 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/skill-setup/skill-setup.controller.d.ts +49 -0
- package/dist/backend/backend/src/controllers/skill-setup/skill-setup.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/skill-setup/skill-setup.controller.js +185 -0
- package/dist/backend/backend/src/controllers/skill-setup/skill-setup.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/skill-setup/skill-setup.routes.d.ts +21 -0
- package/dist/backend/backend/src/controllers/skill-setup/skill-setup.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/skill-setup/skill-setup.routes.js +29 -0
- package/dist/backend/backend/src/controllers/skill-setup/skill-setup.routes.js.map +1 -0
- package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.js +5 -0
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts +14 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +33 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js +7 -0
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
- package/dist/backend/backend/src/services/marketplace/marketplace.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/marketplace/marketplace.service.js +11 -3
- package/dist/backend/backend/src/services/marketplace/marketplace.service.js.map +1 -1
- package/dist/backend/backend/src/services/skill-setup/skill-discovery.service.d.ts +281 -0
- package/dist/backend/backend/src/services/skill-setup/skill-discovery.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/skill-setup/skill-discovery.service.js +559 -0
- package/dist/backend/backend/src/services/skill-setup/skill-discovery.service.js.map +1 -0
- package/dist/backend/backend/src/services/skill-setup/skill-install-job.service.d.ts +243 -0
- package/dist/backend/backend/src/services/skill-setup/skill-install-job.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/skill-setup/skill-install-job.service.js +439 -0
- package/dist/backend/backend/src/services/skill-setup/skill-install-job.service.js.map +1 -0
- package/dist/backend/backend/src/services/skill-setup/skill-setup-manifest.d.ts +138 -0
- package/dist/backend/backend/src/services/skill-setup/skill-setup-manifest.d.ts.map +1 -0
- package/dist/backend/backend/src/services/skill-setup/skill-setup-manifest.js +281 -0
- package/dist/backend/backend/src/services/skill-setup/skill-setup-manifest.js.map +1 -0
- package/dist/backend/backend/src/services/skill-setup/skill-setup-runner.service.d.ts +338 -0
- package/dist/backend/backend/src/services/skill-setup/skill-setup-runner.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/skill-setup/skill-setup-runner.service.js +761 -0
- package/dist/backend/backend/src/services/skill-setup/skill-setup-runner.service.js.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +6 -0
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/types/marketplace.types.d.ts +16 -1
- package/dist/backend/backend/src/types/marketplace.types.d.ts.map +1 -1
- package/dist/backend/backend/src/utils/inbound-file-hint.utils.d.ts +55 -0
- package/dist/backend/backend/src/utils/inbound-file-hint.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/inbound-file-hint.utils.js +78 -0
- package/dist/backend/backend/src/utils/inbound-file-hint.utils.js.map +1 -0
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +71 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +96 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts +14 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +33 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/cli/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/event-bus/event-bus.service.js +7 -0
- package/dist/cli/backend/src/services/event-bus/event-bus.service.js.map +1 -1
- package/dist/cli/backend/src/services/marketplace/marketplace.service.d.ts +101 -0
- package/dist/cli/backend/src/services/marketplace/marketplace.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/marketplace/marketplace.service.js +392 -0
- package/dist/cli/backend/src/services/marketplace/marketplace.service.js.map +1 -0
- package/dist/cli/backend/src/services/skill-setup/skill-discovery.service.d.ts +281 -0
- package/dist/cli/backend/src/services/skill-setup/skill-discovery.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/skill-setup/skill-discovery.service.js +559 -0
- package/dist/cli/backend/src/services/skill-setup/skill-discovery.service.js.map +1 -0
- package/dist/cli/backend/src/services/skill-setup/skill-setup-manifest.d.ts +138 -0
- package/dist/cli/backend/src/services/skill-setup/skill-setup-manifest.d.ts.map +1 -0
- package/dist/cli/backend/src/services/skill-setup/skill-setup-manifest.js +281 -0
- package/dist/cli/backend/src/services/skill-setup/skill-setup-manifest.js.map +1 -0
- package/dist/cli/backend/src/services/skill-setup/skill-setup-runner.service.d.ts +338 -0
- package/dist/cli/backend/src/services/skill-setup/skill-setup-runner.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/skill-setup/skill-setup-runner.service.js +761 -0
- package/dist/cli/backend/src/services/skill-setup/skill-setup-runner.service.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +6 -0
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/cli/backend/src/types/marketplace.types.d.ts +219 -0
- package/dist/cli/backend/src/types/marketplace.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/marketplace.types.js +6 -0
- package/dist/cli/backend/src/types/marketplace.types.js.map +1 -0
- package/dist/cli/backend/src/utils/inbound-file-hint.utils.d.ts +55 -0
- package/dist/cli/backend/src/utils/inbound-file-hint.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/inbound-file-hint.utils.js +78 -0
- package/dist/cli/backend/src/utils/inbound-file-hint.utils.js.map +1 -0
- package/dist/cli/backend/src/utils/package-root.d.ts +15 -0
- package/dist/cli/backend/src/utils/package-root.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/package-root.js +38 -0
- package/dist/cli/backend/src/utils/package-root.js.map +1 -0
- package/dist/cli/cli/src/commands/install.d.ts +13 -1
- package/dist/cli/cli/src/commands/install.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/install.js +40 -3
- package/dist/cli/cli/src/commands/install.js.map +1 -1
- package/dist/cli/cli/src/commands/skills.d.ts +58 -0
- package/dist/cli/cli/src/commands/skills.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/skills.js +132 -0
- package/dist/cli/cli/src/commands/skills.js.map +1 -0
- package/dist/cli/cli/src/index.js +12 -3
- package/dist/cli/cli/src/index.js.map +1 -1
- package/dist/cli/cli/src/utils/archive-creator.d.ts +14 -0
- package/dist/cli/cli/src/utils/archive-creator.d.ts.map +1 -1
- package/dist/cli/cli/src/utils/archive-creator.js +24 -3
- package/dist/cli/cli/src/utils/archive-creator.js.map +1 -1
- package/dist/cli/cli/src/utils/package-validator.d.ts +2 -0
- package/dist/cli/cli/src/utils/package-validator.d.ts.map +1 -1
- package/dist/cli/cli/src/utils/package-validator.js +16 -0
- package/dist/cli/cli/src/utils/package-validator.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill discovery — find a skill for a capability, locally or in the marketplace.
|
|
3
|
+
*
|
|
4
|
+
* Backs `find-skill` and `install-skill` (specs/skill-auto-install.md). It
|
|
5
|
+
* merges three sources into one candidate list:
|
|
6
|
+
*
|
|
7
|
+
* 1. **Bundled** skills shipped in the npm package (`config/skills/agent/**`).
|
|
8
|
+
* They are present on every install, so `find-skill` works for them even
|
|
9
|
+
* when the registry has no entry or the network is down.
|
|
10
|
+
* 2. **Installed** marketplace skills (`~/.crewly/marketplace/skills/<id>`).
|
|
11
|
+
* 3. **Registry** entries (public GitHub registry + crewlyai.com), fetched
|
|
12
|
+
* with the existing marketplace service (cached, deduplicated).
|
|
13
|
+
*
|
|
14
|
+
* ## What "official" means
|
|
15
|
+
*
|
|
16
|
+
* A skill is official — and may be installed by an agent without asking — when
|
|
17
|
+
* it is **bundled with Crewly**, or it is listed in an **official registry**
|
|
18
|
+
* (the public GitHub registry or crewlyai.com, both curated by Crewly
|
|
19
|
+
* maintainers) with `author` "Crewly Team" / "crewly" or `metadata.verified:
|
|
20
|
+
* true`. Entries from the machine-local registry (`local-registry.json`,
|
|
21
|
+
* written by local publishing) are never official, whatever author they claim.
|
|
22
|
+
* A marketplace skill installed earlier counts as official only when the
|
|
23
|
+
* registry still lists it as official.
|
|
24
|
+
*
|
|
25
|
+
* @module services/skill-setup/skill-discovery.service
|
|
26
|
+
*/
|
|
27
|
+
import type { MarketplaceItem, MarketplaceRegistry, InstalledItemsManifest } from '../../types/marketplace.types.js';
|
|
28
|
+
import { type SkillSetupManifest } from './skill-setup-manifest.js';
|
|
29
|
+
import { type SkillSetupRunner } from './skill-setup-runner.service.js';
|
|
30
|
+
/** Where a candidate was found. */
|
|
31
|
+
export type SkillSource = 'bundled' | 'installed' | 'registry';
|
|
32
|
+
/** Setup state reported for a candidate. */
|
|
33
|
+
export interface CandidateSetup {
|
|
34
|
+
/** The skill declares a setup block */
|
|
35
|
+
declared: boolean;
|
|
36
|
+
/** Minutes a first-time setup takes (quoted to the user) */
|
|
37
|
+
estimatedMinutes?: number;
|
|
38
|
+
/** Result of a check-only probe (undefined when not probed) */
|
|
39
|
+
satisfied?: boolean;
|
|
40
|
+
/** Steps that are missing (check-only probe) */
|
|
41
|
+
missing?: string[];
|
|
42
|
+
}
|
|
43
|
+
/** One skill that could provide a capability. */
|
|
44
|
+
export interface SkillCandidate {
|
|
45
|
+
/** The id `install-skill --id` takes */
|
|
46
|
+
id: string;
|
|
47
|
+
name: string;
|
|
48
|
+
description: string;
|
|
49
|
+
tags: string[];
|
|
50
|
+
triggers: string[];
|
|
51
|
+
source: SkillSource;
|
|
52
|
+
official: boolean;
|
|
53
|
+
/** Why it is (or is not) official, in words */
|
|
54
|
+
officialReason: string;
|
|
55
|
+
author?: string;
|
|
56
|
+
version?: string;
|
|
57
|
+
/** The skill's files are on this machine */
|
|
58
|
+
installed: boolean;
|
|
59
|
+
/** Installed and its setup (if any) is satisfied — usable right now */
|
|
60
|
+
ready?: boolean;
|
|
61
|
+
/** Local skill directory */
|
|
62
|
+
skillDir?: string;
|
|
63
|
+
/** Local entry point (`<skillDir>/execute.sh`) */
|
|
64
|
+
executePath?: string;
|
|
65
|
+
/** Registry id when it differs from `id` */
|
|
66
|
+
registryId?: string;
|
|
67
|
+
setup: CandidateSetup;
|
|
68
|
+
/** Ranking score (higher is better) */
|
|
69
|
+
score: number;
|
|
70
|
+
}
|
|
71
|
+
/** A candidate plus the internals install-skill needs. */
|
|
72
|
+
export interface ResolvedSkill extends SkillCandidate {
|
|
73
|
+
/** Parsed, validated setup manifest (local copy preferred, registry fallback) */
|
|
74
|
+
manifest?: SkillSetupManifest;
|
|
75
|
+
/** Setup block that failed validation (message) */
|
|
76
|
+
manifestError?: string;
|
|
77
|
+
/** The registry entry, when there is one */
|
|
78
|
+
registryItem?: MarketplaceItem;
|
|
79
|
+
}
|
|
80
|
+
/** Injectable dependencies. */
|
|
81
|
+
export interface SkillDiscoveryDeps {
|
|
82
|
+
/** Root of bundled agent skills (default: `<package>/config/skills/agent`) */
|
|
83
|
+
bundledRoot?: string;
|
|
84
|
+
/** Directory of marketplace-installed skills */
|
|
85
|
+
installedRoot?: string;
|
|
86
|
+
fetchRegistry?: () => Promise<MarketplaceRegistry>;
|
|
87
|
+
loadManifest?: () => Promise<InstalledItemsManifest>;
|
|
88
|
+
runner?: SkillSetupRunner;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Split a query into lower-case tokens, dropping stopwords.
|
|
92
|
+
*
|
|
93
|
+
* @param text - Free text
|
|
94
|
+
* @returns Tokens (CJK runs stay whole)
|
|
95
|
+
*/
|
|
96
|
+
export declare function tokenize(text: string): string[];
|
|
97
|
+
/**
|
|
98
|
+
* Expand tokens with synonyms (QUERY_SYNONYMS). CJK tokens also match a
|
|
99
|
+
* synonym key they contain ("语音消息" contains "语音").
|
|
100
|
+
*
|
|
101
|
+
* @param tokens - Query tokens
|
|
102
|
+
* @returns Original tokens (weight 1) and synonyms (weight 0.6), deduplicated
|
|
103
|
+
*/
|
|
104
|
+
export declare function expandTokens(tokens: string[]): Array<{
|
|
105
|
+
token: string;
|
|
106
|
+
weight: number;
|
|
107
|
+
}>;
|
|
108
|
+
/** The text fields a candidate is scored on. */
|
|
109
|
+
export interface ScoredDoc {
|
|
110
|
+
id: string;
|
|
111
|
+
name: string;
|
|
112
|
+
tags: string[];
|
|
113
|
+
triggers: string[];
|
|
114
|
+
description: string;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Score how well a skill matches a query.
|
|
118
|
+
*
|
|
119
|
+
* Each query token (and synonym, at reduced weight) takes its best match:
|
|
120
|
+
* exact id/name 10, exact tag 6, id/name contains 5, trigger contains 3,
|
|
121
|
+
* tag overlap 3, description contains 1.5. The whole query appearing in a
|
|
122
|
+
* trigger or the description adds 4.
|
|
123
|
+
*
|
|
124
|
+
* @param query - Free-text need ("transcribe a voice message")
|
|
125
|
+
* @param doc - Candidate fields
|
|
126
|
+
* @returns Score (0 = no match)
|
|
127
|
+
*/
|
|
128
|
+
export declare function scoreSkill(query: string, doc: ScoredDoc): number;
|
|
129
|
+
/**
|
|
130
|
+
* Whether a registry entry is official (see module docs).
|
|
131
|
+
*
|
|
132
|
+
* @param item - Registry entry (with registrySource set by fetchRegistry)
|
|
133
|
+
* @returns `{ official, reason }`
|
|
134
|
+
*/
|
|
135
|
+
export declare function registryOfficial(item: MarketplaceItem): {
|
|
136
|
+
official: boolean;
|
|
137
|
+
reason: string;
|
|
138
|
+
};
|
|
139
|
+
/** Finds and describes skills. */
|
|
140
|
+
export declare class SkillDiscoveryService {
|
|
141
|
+
private readonly bundledRoot;
|
|
142
|
+
private readonly installedRoot;
|
|
143
|
+
private readonly fetchRegistryFn;
|
|
144
|
+
private readonly loadManifestFn;
|
|
145
|
+
private readonly runner;
|
|
146
|
+
/**
|
|
147
|
+
* @param deps - Injectable dependencies (all optional)
|
|
148
|
+
*/
|
|
149
|
+
constructor(deps?: SkillDiscoveryDeps);
|
|
150
|
+
/**
|
|
151
|
+
* `<package root>/config/skills/agent`, or null when the package root cannot be found.
|
|
152
|
+
*
|
|
153
|
+
* @returns Absolute path or null
|
|
154
|
+
*/
|
|
155
|
+
static defaultBundledRoot(): string | null;
|
|
156
|
+
/**
|
|
157
|
+
* Where to start looking for the package root.
|
|
158
|
+
*
|
|
159
|
+
* The compiled backend and CLI are ES modules, where `__dirname` does not
|
|
160
|
+
* exist (a bare reference throws); under ts-jest it does. The entry script
|
|
161
|
+
* (`process.argv[1]`, realpath'd through the global `bin` symlink) is
|
|
162
|
+
* always inside the package at runtime, so it is the anchor that works
|
|
163
|
+
* for `crewly` and the backend alike; cwd is the last resort.
|
|
164
|
+
*
|
|
165
|
+
* @returns Candidate start directories, most reliable first
|
|
166
|
+
*/
|
|
167
|
+
static packageSearchStarts(): string[];
|
|
168
|
+
/**
|
|
169
|
+
* Find skills for a need, best first.
|
|
170
|
+
*
|
|
171
|
+
* @param query - What the agent needs ("transcribe voice message", "read pdf")
|
|
172
|
+
* @param options - `limit` (default FIND_MAX_RESULTS); `probe` runs check-only setup on the top few (default true)
|
|
173
|
+
* @returns Ranked candidates (score > 0) and whether the registry was reachable
|
|
174
|
+
*
|
|
175
|
+
* @example
|
|
176
|
+
* ```ts
|
|
177
|
+
* const { candidates } = await discovery.find('transcribe a voice message');
|
|
178
|
+
* candidates[0].id; // 'transcribe-audio'
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
181
|
+
find(query: string, options?: {
|
|
182
|
+
limit?: number;
|
|
183
|
+
probe?: boolean;
|
|
184
|
+
}): Promise<{
|
|
185
|
+
candidates: SkillCandidate[];
|
|
186
|
+
registryAvailable: boolean;
|
|
187
|
+
}>;
|
|
188
|
+
/**
|
|
189
|
+
* Resolve one skill by id (local id, directory name or registry id).
|
|
190
|
+
*
|
|
191
|
+
* @param id - Skill id
|
|
192
|
+
* @returns The skill, or null when neither bundled, installed nor in the registry
|
|
193
|
+
*/
|
|
194
|
+
resolve(id: string): Promise<ResolvedSkill | null>;
|
|
195
|
+
/**
|
|
196
|
+
* Resolve a skill that is on this machine (bundled or installed) without
|
|
197
|
+
* touching the network — for `crewly skills setup` offline.
|
|
198
|
+
*
|
|
199
|
+
* Official status of an installed marketplace skill needs the registry, so
|
|
200
|
+
* here it is reported as not official; bundled skills are official.
|
|
201
|
+
*
|
|
202
|
+
* @param id - Skill id or directory name
|
|
203
|
+
* @returns The skill, or null when it is not on this machine
|
|
204
|
+
*/
|
|
205
|
+
resolveLocal(id: string): Promise<ResolvedSkill | null>;
|
|
206
|
+
/**
|
|
207
|
+
* Pick a candidate by id, registry id or directory name.
|
|
208
|
+
*
|
|
209
|
+
* @param id - Wanted id
|
|
210
|
+
* @param all - Candidates
|
|
211
|
+
* @returns The match or null
|
|
212
|
+
*/
|
|
213
|
+
private pick;
|
|
214
|
+
/**
|
|
215
|
+
* Run a check-only setup probe and record the result on the candidate.
|
|
216
|
+
*
|
|
217
|
+
* @param c - Candidate (mutated)
|
|
218
|
+
* @returns The same candidate
|
|
219
|
+
*/
|
|
220
|
+
probe(c: ResolvedSkill): Promise<ResolvedSkill>;
|
|
221
|
+
/**
|
|
222
|
+
* Strip internals for API output.
|
|
223
|
+
*
|
|
224
|
+
* @param c - Resolved candidate
|
|
225
|
+
* @returns Public candidate
|
|
226
|
+
*/
|
|
227
|
+
publicView(c: ResolvedSkill): SkillCandidate;
|
|
228
|
+
/**
|
|
229
|
+
* Build every candidate from all sources.
|
|
230
|
+
*
|
|
231
|
+
* @param options - `registry: false` skips the registry fetch
|
|
232
|
+
* @returns Candidates and registry reachability
|
|
233
|
+
*/
|
|
234
|
+
private collect;
|
|
235
|
+
/**
|
|
236
|
+
* Candidate for a local (bundled or installed) skill.
|
|
237
|
+
*
|
|
238
|
+
* @param local - Local skill
|
|
239
|
+
* @param item - Matching registry entry, if any
|
|
240
|
+
* @returns Candidate
|
|
241
|
+
*/
|
|
242
|
+
private fromLocal;
|
|
243
|
+
/**
|
|
244
|
+
* Candidate for a registry-only skill.
|
|
245
|
+
*
|
|
246
|
+
* @param item - Registry entry
|
|
247
|
+
* @param installed - The marketplace manifest lists it (files may still be missing)
|
|
248
|
+
* @returns Candidate
|
|
249
|
+
*/
|
|
250
|
+
private fromRegistry;
|
|
251
|
+
/**
|
|
252
|
+
* Validate a raw setup block and record it on the candidate.
|
|
253
|
+
*
|
|
254
|
+
* @param c - Candidate (mutated)
|
|
255
|
+
* @param raw - Raw `setup` value
|
|
256
|
+
*/
|
|
257
|
+
private attachSetup;
|
|
258
|
+
/**
|
|
259
|
+
* Scan a skills root: direct skill dirs, and one level of category dirs.
|
|
260
|
+
*
|
|
261
|
+
* @param root - Directory
|
|
262
|
+
* @param source - Label for what is found
|
|
263
|
+
* @returns Local skills
|
|
264
|
+
*/
|
|
265
|
+
private scanRoot;
|
|
266
|
+
/**
|
|
267
|
+
* Read one skill directory (SKILL.md frontmatter wins over skill.json, as in the registry builder).
|
|
268
|
+
*
|
|
269
|
+
* @param dir - Skill directory
|
|
270
|
+
* @param source - Label
|
|
271
|
+
* @returns The skill, or null when the directory has no manifest
|
|
272
|
+
*/
|
|
273
|
+
private readLocal;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* The process-wide discovery service.
|
|
277
|
+
*
|
|
278
|
+
* @returns The service
|
|
279
|
+
*/
|
|
280
|
+
export declare function getSkillDiscoveryService(): SkillDiscoveryService;
|
|
281
|
+
//# sourceMappingURL=skill-discovery.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-discovery.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/skill-setup/skill-discovery.service.ts"],"names":[],"mappings":"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"}
|