skill-flow 1.0.8 → 1.3.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/README.md +209 -131
- package/README.zh.md +170 -131
- package/dist/bridge-command.d.ts +9 -0
- package/dist/bridge-command.js +422 -0
- package/dist/bridge-command.js.map +1 -0
- package/dist/cli.js +68 -8
- package/dist/cli.js.map +1 -1
- package/package.json +11 -2
- package/dist/adapters/channel-adapters.d.ts +0 -8
- package/dist/adapters/channel-adapters.js +0 -64
- package/dist/adapters/channel-adapters.js.map +0 -1
- package/dist/domain/types.d.ts +0 -234
- package/dist/domain/types.js +0 -2
- package/dist/domain/types.js.map +0 -1
- package/dist/services/config-coordinator.d.ts +0 -38
- package/dist/services/config-coordinator.js +0 -83
- package/dist/services/config-coordinator.js.map +0 -1
- package/dist/services/deployment-applier.d.ts +0 -10
- package/dist/services/deployment-applier.js +0 -84
- package/dist/services/deployment-applier.js.map +0 -1
- package/dist/services/deployment-planner.d.ts +0 -16
- package/dist/services/deployment-planner.js +0 -366
- package/dist/services/deployment-planner.js.map +0 -1
- package/dist/services/doctor-service.d.ts +0 -7
- package/dist/services/doctor-service.js +0 -204
- package/dist/services/doctor-service.js.map +0 -1
- package/dist/services/inventory-service.d.ts +0 -17
- package/dist/services/inventory-service.js +0 -216
- package/dist/services/inventory-service.js.map +0 -1
- package/dist/services/skill-flow.d.ts +0 -136
- package/dist/services/skill-flow.js +0 -1210
- package/dist/services/skill-flow.js.map +0 -1
- package/dist/services/source-service.d.ts +0 -57
- package/dist/services/source-service.js +0 -809
- package/dist/services/source-service.js.map +0 -1
- package/dist/services/workflow-service.d.ts +0 -5
- package/dist/services/workflow-service.js +0 -45
- package/dist/services/workflow-service.js.map +0 -1
- package/dist/services/workspace-bootstrap-service.d.ts +0 -25
- package/dist/services/workspace-bootstrap-service.js +0 -140
- package/dist/services/workspace-bootstrap-service.js.map +0 -1
- package/dist/state/store.d.ts +0 -35
- package/dist/state/store.js +0 -151
- package/dist/state/store.js.map +0 -1
- package/dist/tests/add-flow-model.test.d.ts +0 -1
- package/dist/tests/add-flow-model.test.js +0 -108
- package/dist/tests/add-flow-model.test.js.map +0 -1
- package/dist/tests/add-flow-ui.test.d.ts +0 -1
- package/dist/tests/add-flow-ui.test.js +0 -16
- package/dist/tests/add-flow-ui.test.js.map +0 -1
- package/dist/tests/add-prepare-flow.test.d.ts +0 -1
- package/dist/tests/add-prepare-flow.test.js +0 -166
- package/dist/tests/add-prepare-flow.test.js.map +0 -1
- package/dist/tests/add-selection-and-find-command.test.d.ts +0 -1
- package/dist/tests/add-selection-and-find-command.test.js +0 -89
- package/dist/tests/add-selection-and-find-command.test.js.map +0 -1
- package/dist/tests/clawhub.test.d.ts +0 -1
- package/dist/tests/clawhub.test.js +0 -63
- package/dist/tests/clawhub.test.js.map +0 -1
- package/dist/tests/cli-utils.test.d.ts +0 -1
- package/dist/tests/cli-utils.test.js +0 -24
- package/dist/tests/cli-utils.test.js.map +0 -1
- package/dist/tests/config-coordinator.test.d.ts +0 -1
- package/dist/tests/config-coordinator.test.js +0 -219
- package/dist/tests/config-coordinator.test.js.map +0 -1
- package/dist/tests/config-integration.test.d.ts +0 -1
- package/dist/tests/config-integration.test.js +0 -276
- package/dist/tests/config-integration.test.js.map +0 -1
- package/dist/tests/config-ui-utils.test.d.ts +0 -1
- package/dist/tests/config-ui-utils.test.js +0 -523
- package/dist/tests/config-ui-utils.test.js.map +0 -1
- package/dist/tests/find-and-naming-utils.test.d.ts +0 -1
- package/dist/tests/find-and-naming-utils.test.js +0 -127
- package/dist/tests/find-and-naming-utils.test.js.map +0 -1
- package/dist/tests/inventory-service-precedence.test.d.ts +0 -1
- package/dist/tests/inventory-service-precedence.test.js +0 -42
- package/dist/tests/inventory-service-precedence.test.js.map +0 -1
- package/dist/tests/skill-flow.test.d.ts +0 -1
- package/dist/tests/skill-flow.test.js +0 -991
- package/dist/tests/skill-flow.test.js.map +0 -1
- package/dist/tests/source-lifecycle.test.d.ts +0 -1
- package/dist/tests/source-lifecycle.test.js +0 -644
- package/dist/tests/source-lifecycle.test.js.map +0 -1
- package/dist/tests/source-parsing-compatibility.test.d.ts +0 -1
- package/dist/tests/source-parsing-compatibility.test.js +0 -72
- package/dist/tests/source-parsing-compatibility.test.js.map +0 -1
- package/dist/tests/target-definitions.test.d.ts +0 -1
- package/dist/tests/target-definitions.test.js +0 -51
- package/dist/tests/target-definitions.test.js.map +0 -1
- package/dist/tests/test-helpers.d.ts +0 -18
- package/dist/tests/test-helpers.js +0 -123
- package/dist/tests/test-helpers.js.map +0 -1
- package/dist/tui/add-flow-model.d.ts +0 -62
- package/dist/tui/add-flow-model.js +0 -206
- package/dist/tui/add-flow-model.js.map +0 -1
- package/dist/tui/add-flow.d.ts +0 -25
- package/dist/tui/add-flow.js +0 -534
- package/dist/tui/add-flow.js.map +0 -1
- package/dist/tui/config-app.d.ts +0 -178
- package/dist/tui/config-app.js +0 -1551
- package/dist/tui/config-app.js.map +0 -1
- package/dist/tui/find-app.d.ts +0 -9
- package/dist/tui/find-app.js +0 -150
- package/dist/tui/find-app.js.map +0 -1
- package/dist/tui/selection-state.d.ts +0 -8
- package/dist/tui/selection-state.js +0 -32
- package/dist/tui/selection-state.js.map +0 -1
- package/dist/utils/builtin-git-sources.d.ts +0 -5
- package/dist/utils/builtin-git-sources.js +0 -23
- package/dist/utils/builtin-git-sources.js.map +0 -1
- package/dist/utils/clawhub.d.ts +0 -41
- package/dist/utils/clawhub.js +0 -94
- package/dist/utils/clawhub.js.map +0 -1
- package/dist/utils/cli.d.ts +0 -2
- package/dist/utils/cli.js +0 -19
- package/dist/utils/cli.js.map +0 -1
- package/dist/utils/constants.d.ts +0 -23
- package/dist/utils/constants.js +0 -195
- package/dist/utils/constants.js.map +0 -1
- package/dist/utils/find-command.d.ts +0 -2
- package/dist/utils/find-command.js +0 -29
- package/dist/utils/find-command.js.map +0 -1
- package/dist/utils/format.d.ts +0 -7
- package/dist/utils/format.js +0 -68
- package/dist/utils/format.js.map +0 -1
- package/dist/utils/fs.d.ts +0 -16
- package/dist/utils/fs.js +0 -144
- package/dist/utils/fs.js.map +0 -1
- package/dist/utils/git.d.ts +0 -3
- package/dist/utils/git.js +0 -12
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/github-catalog.d.ts +0 -1
- package/dist/utils/github-catalog.js +0 -25
- package/dist/utils/github-catalog.js.map +0 -1
- package/dist/utils/naming.d.ts +0 -29
- package/dist/utils/naming.js +0 -115
- package/dist/utils/naming.js.map +0 -1
- package/dist/utils/result.d.ts +0 -4
- package/dist/utils/result.js +0 -15
- package/dist/utils/result.js.map +0 -1
- package/dist/utils/source-id.d.ts +0 -2
- package/dist/utils/source-id.js +0 -49
- package/dist/utils/source-id.js.map +0 -1
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs/promises";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { hashDirectory, pathExists, slugify } from "../utils/fs.js";
|
|
4
|
-
export class InventoryService {
|
|
5
|
-
static IGNORED_DIRECTORIES = new Set([
|
|
6
|
-
".git",
|
|
7
|
-
"node_modules",
|
|
8
|
-
]);
|
|
9
|
-
async scanSource(sourceId, checkoutPath, rootLinkName = sourceId) {
|
|
10
|
-
const skillFiles = await this.findSkillFiles(checkoutPath);
|
|
11
|
-
const candidates = [];
|
|
12
|
-
const invalidLeafs = [];
|
|
13
|
-
const duplicateLeafs = [];
|
|
14
|
-
for (const skillFilePath of skillFiles) {
|
|
15
|
-
const leafRoot = path.dirname(skillFilePath);
|
|
16
|
-
const relativePath = path.relative(checkoutPath, leafRoot) || ".";
|
|
17
|
-
const raw = await fs.readFile(skillFilePath, "utf8");
|
|
18
|
-
const linkName = relativePath === "."
|
|
19
|
-
? rootLinkName
|
|
20
|
-
: (path.basename(leafRoot) || rootLinkName);
|
|
21
|
-
const parsed = this.parseSkillFile(raw, linkName);
|
|
22
|
-
if (!parsed.valid) {
|
|
23
|
-
invalidLeafs.push({
|
|
24
|
-
path: relativePath,
|
|
25
|
-
reason: parsed.reason,
|
|
26
|
-
});
|
|
27
|
-
continue;
|
|
28
|
-
}
|
|
29
|
-
const safeName = slugify(parsed.name) || linkName || sourceId;
|
|
30
|
-
candidates.push({
|
|
31
|
-
id: `${sourceId}:${relativePath}`,
|
|
32
|
-
sourceId,
|
|
33
|
-
name: safeName,
|
|
34
|
-
linkName,
|
|
35
|
-
title: parsed.title,
|
|
36
|
-
description: parsed.description,
|
|
37
|
-
relativePath,
|
|
38
|
-
absolutePath: leafRoot,
|
|
39
|
-
skillFilePath,
|
|
40
|
-
contentHash: await hashDirectory(leafRoot),
|
|
41
|
-
metadataWarnings: parsed.metadataWarnings,
|
|
42
|
-
valid: true,
|
|
43
|
-
dedupeKey: `${parsed.name}\n${parsed.description}`,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
const leafs = this.dedupeCandidates(candidates, duplicateLeafs);
|
|
47
|
-
leafs.sort((left, right) => left.relativePath.localeCompare(right.relativePath));
|
|
48
|
-
duplicateLeafs.sort((left, right) => left.path.localeCompare(right.path));
|
|
49
|
-
invalidLeafs.sort((left, right) => left.path.localeCompare(right.path));
|
|
50
|
-
return {
|
|
51
|
-
leafs,
|
|
52
|
-
invalidLeafs,
|
|
53
|
-
duplicateLeafs,
|
|
54
|
-
skillFileCount: skillFiles.length,
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
async findSkillFiles(rootPath) {
|
|
58
|
-
const discovered = [];
|
|
59
|
-
const seen = new Set();
|
|
60
|
-
const rootSkillPath = path.join(rootPath, "SKILL.md");
|
|
61
|
-
if (await pathExists(rootSkillPath)) {
|
|
62
|
-
discovered.push(rootSkillPath);
|
|
63
|
-
seen.add(rootSkillPath);
|
|
64
|
-
}
|
|
65
|
-
await this.walkSkillTree(path.join(rootPath, "skills"), discovered, seen, false);
|
|
66
|
-
await this.walkSkillTree(path.join(rootPath, "skills", ".curated"), discovered, seen, true);
|
|
67
|
-
await this.walkSkillTree(path.join(rootPath, "skills", ".experimental"), discovered, seen, true);
|
|
68
|
-
await this.walkSkillTree(path.join(rootPath, "skills", ".system"), discovered, seen, true);
|
|
69
|
-
await this.walkSkillTree(rootPath, discovered, seen, true);
|
|
70
|
-
return discovered;
|
|
71
|
-
}
|
|
72
|
-
async walkSkillTree(currentPath, discovered, seen, includeHiddenDirectories) {
|
|
73
|
-
if (!(await pathExists(currentPath))) {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
const entries = await fs.readdir(currentPath, { withFileTypes: true });
|
|
77
|
-
const files = entries
|
|
78
|
-
.filter((entry) => entry.isFile())
|
|
79
|
-
.sort((left, right) => left.name.localeCompare(right.name));
|
|
80
|
-
const visibleDirectories = entries
|
|
81
|
-
.filter((entry) => entry.isDirectory() &&
|
|
82
|
-
!InventoryService.IGNORED_DIRECTORIES.has(entry.name) &&
|
|
83
|
-
!entry.name.startsWith("."))
|
|
84
|
-
.sort((left, right) => left.name.localeCompare(right.name));
|
|
85
|
-
const hiddenDirectories = includeHiddenDirectories
|
|
86
|
-
? entries
|
|
87
|
-
.filter((entry) => entry.isDirectory() &&
|
|
88
|
-
!InventoryService.IGNORED_DIRECTORIES.has(entry.name) &&
|
|
89
|
-
entry.name.startsWith("."))
|
|
90
|
-
.sort((left, right) => left.name.localeCompare(right.name))
|
|
91
|
-
: [];
|
|
92
|
-
for (const entry of files) {
|
|
93
|
-
if (entry.name !== "SKILL.md") {
|
|
94
|
-
continue;
|
|
95
|
-
}
|
|
96
|
-
const skillFilePath = path.join(currentPath, entry.name);
|
|
97
|
-
if (seen.has(skillFilePath)) {
|
|
98
|
-
continue;
|
|
99
|
-
}
|
|
100
|
-
seen.add(skillFilePath);
|
|
101
|
-
discovered.push(skillFilePath);
|
|
102
|
-
}
|
|
103
|
-
for (const entry of [...visibleDirectories, ...hiddenDirectories]) {
|
|
104
|
-
await this.walkSkillTree(path.join(currentPath, entry.name), discovered, seen, includeHiddenDirectories);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
parseSkillFile(raw, parentDirName) {
|
|
108
|
-
const lines = raw.split(/\r?\n/);
|
|
109
|
-
const frontmatter = this.parseFrontmatter(lines);
|
|
110
|
-
if (!frontmatter) {
|
|
111
|
-
return { valid: false, reason: "SKILL.md must start with YAML frontmatter" };
|
|
112
|
-
}
|
|
113
|
-
if (!Object.hasOwn(frontmatter.data, "name")) {
|
|
114
|
-
return {
|
|
115
|
-
valid: false,
|
|
116
|
-
reason: "SKILL.md frontmatter must include required field 'name'",
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
if (!Object.hasOwn(frontmatter.data, "description")) {
|
|
120
|
-
return {
|
|
121
|
-
valid: false,
|
|
122
|
-
reason: "SKILL.md frontmatter must include required field 'description'",
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
const bodyLines = lines.slice(frontmatter.bodyStartLine);
|
|
126
|
-
const firstHeading = bodyLines.find((line) => line.trim().startsWith("# "));
|
|
127
|
-
const rawName = (frontmatter.data.name ?? "").trim();
|
|
128
|
-
const rawDescription = frontmatter.data.description ?? "";
|
|
129
|
-
const metadataWarnings = [];
|
|
130
|
-
if (rawName.length < 1 ||
|
|
131
|
-
rawName.length > 64 ||
|
|
132
|
-
!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(rawName)) {
|
|
133
|
-
metadataWarnings.push("name should be 1-64 chars, lowercase letters/numbers/hyphens only, with no leading/trailing hyphen or consecutive '--'");
|
|
134
|
-
}
|
|
135
|
-
if (rawName !== parentDirName) {
|
|
136
|
-
metadataWarnings.push(`name should match parent directory name '${parentDirName}'`);
|
|
137
|
-
}
|
|
138
|
-
if (rawDescription.trim().length === 0) {
|
|
139
|
-
metadataWarnings.push("description should be non-empty");
|
|
140
|
-
}
|
|
141
|
-
if (rawDescription.length > 1024) {
|
|
142
|
-
metadataWarnings.push("description should be at most 1024 characters");
|
|
143
|
-
}
|
|
144
|
-
const title = firstHeading?.trim().slice(2).trim() || rawName || "Untitled skill";
|
|
145
|
-
return {
|
|
146
|
-
valid: true,
|
|
147
|
-
name: rawName,
|
|
148
|
-
title,
|
|
149
|
-
description: rawDescription.trim(),
|
|
150
|
-
metadataWarnings,
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
dedupeCandidates(candidates, duplicateLeafs) {
|
|
154
|
-
const keptByKey = new Map();
|
|
155
|
-
for (const candidate of candidates) {
|
|
156
|
-
if (keptByKey.has(candidate.dedupeKey)) {
|
|
157
|
-
const kept = keptByKey.get(candidate.dedupeKey);
|
|
158
|
-
duplicateLeafs.push({
|
|
159
|
-
path: candidate.relativePath,
|
|
160
|
-
keptPath: kept.relativePath,
|
|
161
|
-
});
|
|
162
|
-
continue;
|
|
163
|
-
}
|
|
164
|
-
const { dedupeKey: _dedupeKey, ...leaf } = candidate;
|
|
165
|
-
keptByKey.set(candidate.dedupeKey, leaf);
|
|
166
|
-
}
|
|
167
|
-
return [...keptByKey.values()];
|
|
168
|
-
}
|
|
169
|
-
parseFrontmatter(lines) {
|
|
170
|
-
if (lines[0]?.trim() !== "---") {
|
|
171
|
-
return undefined;
|
|
172
|
-
}
|
|
173
|
-
const data = {};
|
|
174
|
-
let index = 1;
|
|
175
|
-
while (index < lines.length) {
|
|
176
|
-
const line = lines[index] ?? "";
|
|
177
|
-
if (line.trim() === "---") {
|
|
178
|
-
return { data, bodyStartLine: index + 1 };
|
|
179
|
-
}
|
|
180
|
-
const pair = line.match(/^([A-Za-z0-9_-]+):\s*(.*)$/);
|
|
181
|
-
if (!pair) {
|
|
182
|
-
index += 1;
|
|
183
|
-
continue;
|
|
184
|
-
}
|
|
185
|
-
const key = pair[1];
|
|
186
|
-
const rest = pair[2];
|
|
187
|
-
if (!key || rest === undefined) {
|
|
188
|
-
index += 1;
|
|
189
|
-
continue;
|
|
190
|
-
}
|
|
191
|
-
if (rest === "|" || rest === ">") {
|
|
192
|
-
const blockLines = [];
|
|
193
|
-
index += 1;
|
|
194
|
-
while (index < lines.length) {
|
|
195
|
-
const blockLine = lines[index] ?? "";
|
|
196
|
-
if (blockLine.length === 0) {
|
|
197
|
-
blockLines.push("");
|
|
198
|
-
index += 1;
|
|
199
|
-
continue;
|
|
200
|
-
}
|
|
201
|
-
if (!blockLine.startsWith(" ")) {
|
|
202
|
-
break;
|
|
203
|
-
}
|
|
204
|
-
blockLines.push(blockLine.slice(2));
|
|
205
|
-
index += 1;
|
|
206
|
-
}
|
|
207
|
-
data[key] = blockLines.join("\n").trim();
|
|
208
|
-
continue;
|
|
209
|
-
}
|
|
210
|
-
data[key] = rest.trim();
|
|
211
|
-
index += 1;
|
|
212
|
-
}
|
|
213
|
-
return undefined;
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
//# sourceMappingURL=inventory-service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inventory-service.js","sourceRoot":"","sources":["../../src/services/inventory-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAmBpE,MAAM,OAAO,gBAAgB;IACnB,MAAM,CAAU,mBAAmB,GAAG,IAAI,GAAG,CAAC;QACpD,MAAM;QACN,cAAc;KACf,CAAC,CAAC;IAEH,KAAK,CAAC,UAAU,CACd,QAAgB,EAChB,YAAoB,EACpB,YAAY,GAAG,QAAQ;QAEvB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC3D,MAAM,UAAU,GAA8C,EAAE,CAAC;QACjE,MAAM,YAAY,GAAwB,EAAE,CAAC;QAC7C,MAAM,cAAc,GAA0B,EAAE,CAAC;QAEjD,KAAK,MAAM,aAAa,IAAI,UAAU,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC;YAClE,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACrD,MAAM,QAAQ,GACZ,YAAY,KAAK,GAAG;gBAClB,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAElD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClB,YAAY,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,YAAY;oBAClB,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,IAAI,QAAQ,CAAC;YAE9D,UAAU,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,GAAG,QAAQ,IAAI,YAAY,EAAE;gBACjC,QAAQ;gBACR,IAAI,EAAE,QAAQ;gBACd,QAAQ;gBACR,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,YAAY;gBACZ,YAAY,EAAE,QAAQ;gBACtB,aAAa;gBACb,WAAW,EAAE,MAAM,aAAa,CAAC,QAAQ,CAAC;gBAC1C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,EAAE;aACnD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAChE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QACjF,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1E,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAExE,OAAO;YACL,KAAK;YACL,YAAY;YACZ,cAAc;YACd,cAAc,EAAE,UAAU,CAAC,MAAM;SAClC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,QAAgB;QAC3C,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtD,IAAI,MAAM,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACpC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACjF,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5F,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACjG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3F,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAE3D,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,WAAmB,EACnB,UAAoB,EACpB,IAAiB,EACjB,wBAAiC;QAEjC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,OAAO;aAClB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aACjC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,MAAM,kBAAkB,GAAG,OAAO;aAC/B,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,WAAW,EAAE;YACnB,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACrD,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAC9B;aACA,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,MAAM,iBAAiB,GAAG,wBAAwB;YAChD,CAAC,CAAC,OAAO;iBACJ,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,WAAW,EAAE;gBACnB,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBACrD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAC7B;iBACA,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/D,CAAC,CAAC,EAAE,CAAC;QAEP,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC9B,SAAS;YACX,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC5B,SAAS;YACX,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,kBAAkB,EAAE,GAAG,iBAAiB,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,CAAC,aAAa,CACtB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,EAClC,UAAU,EACV,IAAI,EACJ,wBAAwB,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,GAAW,EAAE,aAAqB;QACvD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,2CAA2C,EAAE,CAAC;QAC/E,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;YAC7C,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,yDAAyD;aAClE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC;YACpD,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,gEAAgE;aACzE,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QAC1D,MAAM,gBAAgB,GAAa,EAAE,CAAC;QAEtC,IACE,OAAO,CAAC,MAAM,GAAG,CAAC;YAClB,OAAO,CAAC,MAAM,GAAG,EAAE;YACnB,CAAC,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,EAC3C,CAAC;YACD,gBAAgB,CAAC,IAAI,CACnB,wHAAwH,CACzH,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;YAC9B,gBAAgB,CAAC,IAAI,CACnB,4CAA4C,aAAa,GAAG,CAC7D,CAAC;QACJ,CAAC;QAED,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,gBAAgB,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YACjC,gBAAgB,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,KAAK,GAAG,YAAY,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,OAAO,IAAI,gBAAgB,CAAC;QAElF,OAAO;YACL,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,OAAO;YACb,KAAK;YACL,WAAW,EAAE,cAAc,CAAC,IAAI,EAAE;YAClC,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAEO,gBAAgB,CACtB,UAAqD,EACrD,cAAqC;QAErC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAC;QAChD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAE,CAAC;gBACjD,cAAc,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,SAAS,CAAC,YAAY;oBAC5B,QAAQ,EAAE,IAAI,CAAC,YAAY;iBAC5B,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,CAAC;YACrD,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;IAEO,gBAAgB,CACtB,KAAe;QAEf,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YAC/B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,GAA2B,EAAE,CAAC;QACxC,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;gBAC1B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;YAC5C,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,KAAK,IAAI,CAAC,CAAC;gBACX,SAAS;YACX,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,GAAG,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC/B,KAAK,IAAI,CAAC,CAAC;gBACX,SAAS;YACX,CAAC;YAED,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjC,MAAM,UAAU,GAAa,EAAE,CAAC;gBAChC,KAAK,IAAI,CAAC,CAAC;gBACX,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;oBACrC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC3B,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACpB,KAAK,IAAI,CAAC,CAAC;wBACX,SAAS;oBACX,CAAC;oBACD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChC,MAAM;oBACR,CAAC;oBACD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpC,KAAK,IAAI,CAAC,CAAC;gBACb,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACzC,SAAS;YACX,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC"}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import type { AddSourceDraftOptions, AddSourcePreparation, DraftBinding, DeploymentAction, DeploymentPlan, DeploymentTargetName, DoctorReport, LockFile, Manifest, Result, SkillCandidate, SourceBinding, SourceUpdateResult, WorkflowSummary } from "../domain/types.js";
|
|
2
|
-
import { StateStore } from "../state/store.js";
|
|
3
|
-
import { DeploymentApplier } from "./deployment-applier.js";
|
|
4
|
-
import { ConfigCoordinator } from "./config-coordinator.js";
|
|
5
|
-
import { DeploymentPlanner } from "./deployment-planner.js";
|
|
6
|
-
import { DoctorService } from "./doctor-service.js";
|
|
7
|
-
import { InventoryService } from "./inventory-service.js";
|
|
8
|
-
import { SourceService } from "./source-service.js";
|
|
9
|
-
import { WorkflowService } from "./workflow-service.js";
|
|
10
|
-
import type { AddSourceOptions, SourceSnapshot } from "./source-service.js";
|
|
11
|
-
import { WorkspaceBootstrapService, type BootstrapEvent } from "./workspace-bootstrap-service.js";
|
|
12
|
-
type SkillFlowAddOptions = AddSourceOptions & AddSourceDraftOptions & {
|
|
13
|
-
project?: boolean;
|
|
14
|
-
};
|
|
15
|
-
type AddSourceResult = SourceSnapshot & AddSourcePreparation & {
|
|
16
|
-
projected: boolean;
|
|
17
|
-
};
|
|
18
|
-
export declare class SkillFlowApp {
|
|
19
|
-
readonly store: StateStore;
|
|
20
|
-
readonly adapters: import("../adapters/channel-adapters.js").ChannelAdapter[];
|
|
21
|
-
readonly inventoryService: InventoryService;
|
|
22
|
-
readonly sourceService: SourceService;
|
|
23
|
-
readonly planner: DeploymentPlanner;
|
|
24
|
-
readonly applier: DeploymentApplier;
|
|
25
|
-
readonly doctorService: DoctorService;
|
|
26
|
-
readonly workflowService: WorkflowService;
|
|
27
|
-
readonly workspaceBootstrapService: WorkspaceBootstrapService;
|
|
28
|
-
readonly configCoordinator: ConfigCoordinator;
|
|
29
|
-
private mutationQueue;
|
|
30
|
-
constructor();
|
|
31
|
-
addSource(locator: string, options?: SkillFlowAddOptions): Promise<Result<AddSourceResult>>;
|
|
32
|
-
prepareAddSource(locator: string, options?: SkillFlowAddOptions): Promise<Result<AddSourceResult>>;
|
|
33
|
-
private addSourceImpl;
|
|
34
|
-
private prepareAddSourceImpl;
|
|
35
|
-
rollbackPreparedSource(sourceId: string): Promise<Result<{
|
|
36
|
-
removed: string[];
|
|
37
|
-
}>>;
|
|
38
|
-
findSkills(query: string): Promise<Result<{
|
|
39
|
-
candidates: SkillCandidate[];
|
|
40
|
-
}>>;
|
|
41
|
-
listWorkflows(): Promise<Result<{
|
|
42
|
-
summaries: WorkflowSummary[];
|
|
43
|
-
}>>;
|
|
44
|
-
private listWorkflowsImpl;
|
|
45
|
-
getConfigData(): Promise<Result<{
|
|
46
|
-
manifest: Manifest;
|
|
47
|
-
lockFile: LockFile;
|
|
48
|
-
summaries: WorkflowSummary[];
|
|
49
|
-
}>>;
|
|
50
|
-
private getConfigDataImpl;
|
|
51
|
-
bootstrapWorkspaceState(onEvent?: (event: BootstrapEvent) => void): Promise<Result<{
|
|
52
|
-
availableTargets: DeploymentTargetName[];
|
|
53
|
-
manifest: Manifest;
|
|
54
|
-
lockFile: LockFile;
|
|
55
|
-
summaries: WorkflowSummary[];
|
|
56
|
-
initialDrafts: Record<string, DraftBinding>;
|
|
57
|
-
audit: DoctorReport;
|
|
58
|
-
importedSourceIds: string[];
|
|
59
|
-
}>>;
|
|
60
|
-
private bootstrapWorkspaceStateImpl;
|
|
61
|
-
getAvailableTargets(): Promise<DeploymentTargetName[]>;
|
|
62
|
-
previewDraft(sourceId: string, draft: DraftBinding): Promise<Result<{
|
|
63
|
-
plan: DeploymentPlan;
|
|
64
|
-
manifest: Manifest;
|
|
65
|
-
lockFile: LockFile;
|
|
66
|
-
}>>;
|
|
67
|
-
applyDraft(sourceId: string, draft: DraftBinding): Promise<Result<{
|
|
68
|
-
actions: DeploymentAction[];
|
|
69
|
-
draft: DraftBinding;
|
|
70
|
-
}>>;
|
|
71
|
-
private applyDraftImpl;
|
|
72
|
-
updateSources(sourceIds?: string[]): Promise<Result<SourceUpdateResult>>;
|
|
73
|
-
private updateSourcesImpl;
|
|
74
|
-
doctor(): Promise<Result<DoctorReport>>;
|
|
75
|
-
private doctorImpl;
|
|
76
|
-
repairTargets(sourceIds?: string[]): Promise<Result<{
|
|
77
|
-
actions: DeploymentAction[];
|
|
78
|
-
}>>;
|
|
79
|
-
private repairTargetsImpl;
|
|
80
|
-
repairSource(sourceIds?: string[]): Promise<Result<SourceUpdateResult>>;
|
|
81
|
-
private repairSourceImpl;
|
|
82
|
-
repairState(sourceIds?: string[]): Promise<Result<{
|
|
83
|
-
repairedSourceIds: string[];
|
|
84
|
-
removedDeploymentCount: number;
|
|
85
|
-
}>>;
|
|
86
|
-
private repairStateImpl;
|
|
87
|
-
uninstall(sourceIds: string[]): Promise<Result<{
|
|
88
|
-
removed: string[];
|
|
89
|
-
removedRefs: Array<{
|
|
90
|
-
id: string;
|
|
91
|
-
locator: string;
|
|
92
|
-
displayName: string;
|
|
93
|
-
}>;
|
|
94
|
-
warnings: string[];
|
|
95
|
-
}>>;
|
|
96
|
-
private uninstallImpl;
|
|
97
|
-
bindingFromDraft(draft: DraftBinding): SourceBinding;
|
|
98
|
-
private pruneMissingCheckoutsImpl;
|
|
99
|
-
private getTargetRootMap;
|
|
100
|
-
private isPathInsideManagedTargetRoot;
|
|
101
|
-
private persistNormalizedBindings;
|
|
102
|
-
private runSerializedMutation;
|
|
103
|
-
private normalizeBindings;
|
|
104
|
-
private draftFromBinding;
|
|
105
|
-
private selectLeafIdsForRequestedPath;
|
|
106
|
-
private buildAddDraft;
|
|
107
|
-
private resolveSelectedLeafIds;
|
|
108
|
-
private resolveRequestedTargets;
|
|
109
|
-
private normalizeRequestedPath;
|
|
110
|
-
private rollbackPreparedSourceInternal;
|
|
111
|
-
private prepareManifestForDraft;
|
|
112
|
-
private findExactDuplicateLeafSelections;
|
|
113
|
-
private getExactDuplicateKey;
|
|
114
|
-
private planForAffectedSources;
|
|
115
|
-
private planForSources;
|
|
116
|
-
private planAndApplySources;
|
|
117
|
-
private rebuildDeploymentState;
|
|
118
|
-
private buildProjectedLinkNameMap;
|
|
119
|
-
private findManagedDeploymentOnDisk;
|
|
120
|
-
private matchesManagedProjection;
|
|
121
|
-
private getDeploymentKey;
|
|
122
|
-
private hasActiveTargets;
|
|
123
|
-
private buildLocalCandidates;
|
|
124
|
-
private searchBuiltinGitSource;
|
|
125
|
-
private getBuiltinCatalogSkillPaths;
|
|
126
|
-
private matchesQuery;
|
|
127
|
-
private compareCandidates;
|
|
128
|
-
private getSourceRank;
|
|
129
|
-
private getQueryScore;
|
|
130
|
-
private getCandidateKey;
|
|
131
|
-
private getCandidateTitle;
|
|
132
|
-
private normalizeSearchQuery;
|
|
133
|
-
private formatSourceLabel;
|
|
134
|
-
private applySourceUpdateResults;
|
|
135
|
-
}
|
|
136
|
-
export {};
|