cyber-agentkit 1.1.0 → 2.0.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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.cursor-plugin/plugin.json +1 -1
- package/CHANGELOG.md +181 -0
- package/dist/cli.js +8668 -4165
- package/dist/commands.d.ts +159 -87
- package/dist/commands.js +1099 -838
- package/dist/index.d.ts +426 -70
- package/dist/index.js +608 -22
- package/dist/reference-where-BsBpwLyg.d.ts +735 -0
- package/dist/{reference-where-C84J6MsR.js → reference-where-CVmGFOwR.js} +5468 -1864
- package/package.json +3 -2
- package/plugin.json +3 -2
- package/readme.md +59 -26
- package/skills/asset/scripts/asset.mjs +95 -61
- package/skills/prose-update/README.md +24 -0
- package/skills/prose-update/SKILL.md +58 -0
- package/skills/prose-update/scripts/prose-update.mjs +233 -0
- package/skills/reference/README.md +7 -7
- package/skills/reference/SKILL.md +64 -58
- package/skills/reference/references/create.md +29 -24
- package/skills/reference/references/customize.md +82 -0
- package/skills/reference/references/load.md +58 -37
- package/skills/reference/scripts/reference.mjs +95 -61
- package/dist/resolve-reference-D62VJZc0.d.ts +0 -246
|
@@ -0,0 +1,735 @@
|
|
|
1
|
+
import { t as HarnessId } from "./harness-id-BgKL-x6C.js";
|
|
2
|
+
//#region src/harness/platform.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* An operating-system platform, spelled as `process.platform` reports it.
|
|
5
|
+
*
|
|
6
|
+
* The queries branch on `darwin`, `linux`, and `win32`; every other platform follows the POSIX
|
|
7
|
+
* (`linux`) layout. The union lists every value Node.js reports, so `process.platform` is assignable
|
|
8
|
+
* to it, but it is declared here rather than as `NodeJS.Platform` so the published types do not
|
|
9
|
+
* depend on `@types/node`.
|
|
10
|
+
*/
|
|
11
|
+
type Platform = 'aix' | 'android' | 'cygwin' | 'darwin' | 'freebsd' | 'haiku' | 'linux' | 'netbsd' | 'openbsd' | 'sunos' | 'win32';
|
|
12
|
+
//#endregion
|
|
13
|
+
//#region src/assets/asset-layers.d.ts
|
|
14
|
+
/** Where an asset lives. Listed highest first. */
|
|
15
|
+
type AssetTier = 'managed' | 'project' | 'user' | 'plugin' | 'default';
|
|
16
|
+
/** A fault that never stops a name from resolving. The `code` is stable; the `message` is for a person. */
|
|
17
|
+
type AssetWarning = {
|
|
18
|
+
code: 'default-folder-missing' | 'default-in-tier' | 'file-ignored' | 'selection-invalid';
|
|
19
|
+
message: string;
|
|
20
|
+
};
|
|
21
|
+
type AssetPlugin = {
|
|
22
|
+
/** Its manifest `name`, which a qualified `<plugin>/<name>` uses. */
|
|
23
|
+
name: string;
|
|
24
|
+
/** The plugin root, which holds its `assets/`. */
|
|
25
|
+
root: string;
|
|
26
|
+
};
|
|
27
|
+
type AssetLayerOptions = {
|
|
28
|
+
root: string;
|
|
29
|
+
home: string;
|
|
30
|
+
platform: Platform;
|
|
31
|
+
/** The plugin running the resolver. Its `assets/` is the first plugin layer. */
|
|
32
|
+
plugin?: AssetPlugin | undefined;
|
|
33
|
+
/** The calling skill's folder: its `assets/<name>.<ext>` forms the `default` tier. */
|
|
34
|
+
defaultSkill?: string | undefined;
|
|
35
|
+
/** Detects the harness and reads its settings. Defaults to `process.env`. */
|
|
36
|
+
env?: Readonly<Record<string, string | undefined>>;
|
|
37
|
+
};
|
|
38
|
+
//#endregion
|
|
39
|
+
//#region src/skills/skill-folder.d.ts
|
|
40
|
+
/**
|
|
41
|
+
* The `name` in a skill folder's `SKILL.md`, else the folder's own name; `undefined` when the folder
|
|
42
|
+
* holds no `SKILL.md`. A package manager may link a skill under another folder name, such as pnpm's
|
|
43
|
+
* `pnpm-<package>-<skill>` (E-PM-PNPM-4), so the folder name is only a fallback.
|
|
44
|
+
*/
|
|
45
|
+
declare function skillName(folder: string): string | undefined;
|
|
46
|
+
type FoundSkill = {
|
|
47
|
+
/** The `name` its `SKILL.md` gives. */
|
|
48
|
+
name: string;
|
|
49
|
+
/** The folder, with symlinks resolved. */
|
|
50
|
+
folder: string;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* The skills in each folder: the folder itself when it holds a `SKILL.md`, else each skill directly
|
|
54
|
+
* under it, one level deep. A symlinked skill folder is followed, since pnpm and `npx skills` link
|
|
55
|
+
* skills rather than copy them (E-PM-SK-2, E-PM-SK-7); one real folder reached twice is listed once.
|
|
56
|
+
*/
|
|
57
|
+
declare function skillsIn(folders: readonly string[]): FoundSkill[];
|
|
58
|
+
//#endregion
|
|
59
|
+
//#region src/references/reference-codes.d.ts
|
|
60
|
+
/**
|
|
61
|
+
* Every code a reference command or library function emits, and this table is its one home: one code,
|
|
62
|
+
* one kind, one description (R104). Adding a code is not breaking; removing or renaming one is.
|
|
63
|
+
*
|
|
64
|
+
* A kind fixes the exit value of a command that ends on the code (R43): a name `status` and a
|
|
65
|
+
* `notice` are answers (exit 0), a `refused` request is a state of the files (exit 1), a `usage`
|
|
66
|
+
* error is a wrong invocation (exit 2), and a `warning` never changes the exit value.
|
|
67
|
+
*
|
|
68
|
+
* A failed `check` is an entry in its result, not a code here: its `check` is the check's name.
|
|
69
|
+
*/
|
|
70
|
+
declare const referenceCodes: {
|
|
71
|
+
readonly 'reference-missing': {
|
|
72
|
+
readonly kind: 'status';
|
|
73
|
+
readonly when: 'no tier holds the name, or the plugin a qualified name asks for is not installed (UC1.1)';
|
|
74
|
+
};
|
|
75
|
+
readonly 'reference-removed': {
|
|
76
|
+
readonly kind: 'status';
|
|
77
|
+
readonly when: 'a `missing` name a `remove` turned off (UC1.1, R49)';
|
|
78
|
+
};
|
|
79
|
+
readonly 'reference-ambiguous': {
|
|
80
|
+
readonly kind: 'status';
|
|
81
|
+
readonly when: 'contributions that cannot be put in one order, or a name two names list as an alias (UC1.2, R98)';
|
|
82
|
+
};
|
|
83
|
+
readonly 'reference-invalid': {
|
|
84
|
+
readonly kind: 'status';
|
|
85
|
+
readonly when: 'not a name (UC1.3, R1)';
|
|
86
|
+
};
|
|
87
|
+
readonly 'frontmatter-invalid': {
|
|
88
|
+
readonly kind: 'warning';
|
|
89
|
+
readonly when: 'malformed frontmatter (R105)';
|
|
90
|
+
};
|
|
91
|
+
readonly 'merge-unknown': {
|
|
92
|
+
readonly kind: 'warning';
|
|
93
|
+
readonly when: 'an unknown `merge` value (R7)';
|
|
94
|
+
};
|
|
95
|
+
readonly 'marker-unknown': {
|
|
96
|
+
readonly kind: 'warning';
|
|
97
|
+
readonly when: 'an unknown merge marker (R7)';
|
|
98
|
+
};
|
|
99
|
+
readonly 'marker-unmatched': {
|
|
100
|
+
readonly kind: 'warning';
|
|
101
|
+
readonly when: 'an explicit marker that matches nothing below (R7)';
|
|
102
|
+
};
|
|
103
|
+
readonly 'heading-repeated': {
|
|
104
|
+
readonly kind: 'warning';
|
|
105
|
+
readonly when: 'a document repeating a heading (R7)';
|
|
106
|
+
};
|
|
107
|
+
readonly 'remove-body-ignored': {
|
|
108
|
+
readonly kind: 'warning';
|
|
109
|
+
readonly when: 'a `remove` with a body (R49)';
|
|
110
|
+
};
|
|
111
|
+
readonly 'extends-invalid': {
|
|
112
|
+
readonly kind: 'warning';
|
|
113
|
+
readonly when: 'a malformed `extends` (R106)';
|
|
114
|
+
};
|
|
115
|
+
readonly 'extends-self': {
|
|
116
|
+
readonly kind: 'warning';
|
|
117
|
+
readonly when: 'a plugin listing itself (R54)';
|
|
118
|
+
};
|
|
119
|
+
readonly 'extends-step-missing': {
|
|
120
|
+
readonly kind: 'warning';
|
|
121
|
+
readonly when: 'a step that cannot be used (R55)';
|
|
122
|
+
};
|
|
123
|
+
readonly 'extends-all-missing': {
|
|
124
|
+
readonly kind: 'warning';
|
|
125
|
+
readonly when: 'every step cannot be used (R55)';
|
|
126
|
+
};
|
|
127
|
+
readonly 'extends-not-used': {
|
|
128
|
+
readonly kind: 'warning';
|
|
129
|
+
readonly when: 'a lower `extends` that builds a different stack (R53); picks written under a managed `extends` that builds it (R109)';
|
|
130
|
+
};
|
|
131
|
+
readonly 'section-not-held': {
|
|
132
|
+
readonly kind: 'warning';
|
|
133
|
+
readonly when: 'a `sections` entry the plugin does not hold (R52)';
|
|
134
|
+
};
|
|
135
|
+
readonly 'default-not-selected': {
|
|
136
|
+
readonly kind: 'warning';
|
|
137
|
+
readonly when: 'a plugin answering over the default with no `extends` naming either, and no own `extends` of the plugin naming `default` (R56)';
|
|
138
|
+
};
|
|
139
|
+
readonly 'plugin-not-selected': {
|
|
140
|
+
readonly kind: 'warning';
|
|
141
|
+
readonly when: 'a plugin holding the name that the `repo` or `user` `extends` building the stack neither places nor declines (R113)';
|
|
142
|
+
};
|
|
143
|
+
readonly 'default-folder-missing': {
|
|
144
|
+
readonly kind: 'warning';
|
|
145
|
+
readonly when: 'a `--default` folder that does not exist (R41)';
|
|
146
|
+
};
|
|
147
|
+
readonly 'default-in-tier': {
|
|
148
|
+
readonly kind: 'warning';
|
|
149
|
+
readonly when: 'a `<name>.default.md` in a tier folder (R51)';
|
|
150
|
+
};
|
|
151
|
+
readonly 'file-ignored': {
|
|
152
|
+
readonly kind: 'warning';
|
|
153
|
+
readonly when: "a second file for a name in one folder, one under an older name beside the new name's included (R67, R97)";
|
|
154
|
+
};
|
|
155
|
+
readonly 'format-mismatch': {
|
|
156
|
+
readonly kind: 'warning';
|
|
157
|
+
readonly when: 'a Markdown contribution above a non-Markdown one (R68)';
|
|
158
|
+
};
|
|
159
|
+
readonly 'metadata-ignored': {
|
|
160
|
+
readonly kind: 'warning';
|
|
161
|
+
readonly when: 'a misplaced metadata file, or a body, `merge`, or `implements` in one (R94)';
|
|
162
|
+
};
|
|
163
|
+
readonly 'project-section-key-ignored': {
|
|
164
|
+
readonly kind: 'warning';
|
|
165
|
+
readonly when: '`merge`, `extends`, `implements`, or `aliases` in a project section, or dropped from one `create --in --template` writes (R27, R110)';
|
|
166
|
+
};
|
|
167
|
+
readonly 'interface-not-composed': {
|
|
168
|
+
readonly kind: 'warning';
|
|
169
|
+
readonly when: '`extends`, `merge`, or a higher copy on an interface document (R14)';
|
|
170
|
+
};
|
|
171
|
+
readonly 'interface-check': {
|
|
172
|
+
readonly kind: 'warning';
|
|
173
|
+
readonly when: 'a loaded document failing its interface check (R37)';
|
|
174
|
+
};
|
|
175
|
+
readonly 'base-moved': {
|
|
176
|
+
readonly kind: 'warning';
|
|
177
|
+
readonly when: '`check` on a plugin or default file whose extended base has a newer version (R86)';
|
|
178
|
+
};
|
|
179
|
+
readonly 'reference-stale': {
|
|
180
|
+
readonly kind: 'warning';
|
|
181
|
+
readonly when: 'a generated document or project section with a changed or missing source (R101)';
|
|
182
|
+
};
|
|
183
|
+
readonly 'reference-renamed': {
|
|
184
|
+
readonly kind: 'warning';
|
|
185
|
+
readonly when: "a name or file under an older name, or an interface's older id (R96, R97)";
|
|
186
|
+
};
|
|
187
|
+
readonly 'alias-not-used': {
|
|
188
|
+
readonly kind: 'warning';
|
|
189
|
+
readonly when: 'an alias a name holds as its own (R98)';
|
|
190
|
+
};
|
|
191
|
+
readonly 'alias-invalid': {
|
|
192
|
+
readonly kind: 'warning';
|
|
193
|
+
readonly when: 'an invalid or misplaced alias (R96)';
|
|
194
|
+
};
|
|
195
|
+
readonly 'project-section-not-markdown': {
|
|
196
|
+
readonly kind: 'warning';
|
|
197
|
+
readonly when: 'a Markdown project section for a name whose main document is not Markdown, or a non-Markdown file in a project folder (R99)';
|
|
198
|
+
};
|
|
199
|
+
readonly 'reference-hidden': {
|
|
200
|
+
readonly kind: 'warning';
|
|
201
|
+
readonly when: 'a file hidden by a `replace` or `remove` above it: one `create` or `customize` wrote (R26), or one `check` finds (R112)';
|
|
202
|
+
};
|
|
203
|
+
readonly 'repo-hides-user': {
|
|
204
|
+
readonly kind: 'warning';
|
|
205
|
+
readonly when: "a `user` file this repository's `repo` contribution hides (R26, R112)";
|
|
206
|
+
};
|
|
207
|
+
readonly 'root-missing': {
|
|
208
|
+
readonly kind: 'refused';
|
|
209
|
+
readonly when: 'a `--root` that does not exist (R12)';
|
|
210
|
+
};
|
|
211
|
+
readonly 'file-unreadable': {
|
|
212
|
+
readonly kind: 'refused';
|
|
213
|
+
readonly when: 'a `--request` or `--body` file that cannot be read (R81, R82)';
|
|
214
|
+
};
|
|
215
|
+
readonly 'folder-invalid': {
|
|
216
|
+
readonly kind: 'refused';
|
|
217
|
+
readonly when: 'a `--plugin` or `--default` folder that does not qualify (R24)';
|
|
218
|
+
};
|
|
219
|
+
readonly 'file-exists': {
|
|
220
|
+
readonly kind: 'refused';
|
|
221
|
+
readonly when: '`create` on a file with a body, or where the target folder holds a file answering the name in another form (R60)';
|
|
222
|
+
};
|
|
223
|
+
readonly 'extends-replace': {
|
|
224
|
+
readonly kind: 'refused';
|
|
225
|
+
readonly when: 'a `--plugin` or `--default` file extending a plugin with `replace` (R103)';
|
|
226
|
+
};
|
|
227
|
+
readonly 'interface-invalid': {
|
|
228
|
+
readonly kind: 'refused';
|
|
229
|
+
readonly when: '`--implements` with an unknown interface (R28, R111)';
|
|
230
|
+
};
|
|
231
|
+
readonly 'interface-unknown': {
|
|
232
|
+
readonly kind: 'refused';
|
|
233
|
+
readonly when: '`implementations` of an unknown interface (R35)';
|
|
234
|
+
};
|
|
235
|
+
readonly 'template-title': {
|
|
236
|
+
readonly kind: 'refused';
|
|
237
|
+
readonly when: 'a title template (R32)';
|
|
238
|
+
};
|
|
239
|
+
readonly 'template-invalid': {
|
|
240
|
+
readonly kind: 'refused';
|
|
241
|
+
readonly when: 'an unreadable template, or one whose frontmatter is not a mapping (R32)';
|
|
242
|
+
};
|
|
243
|
+
readonly 'extends-file-invalid': {
|
|
244
|
+
readonly kind: 'refused';
|
|
245
|
+
readonly when: 'an `--extends-file` that is unreadable or not a YAML `extends` list (R79)';
|
|
246
|
+
};
|
|
247
|
+
readonly 'step-invalid': {
|
|
248
|
+
readonly kind: 'refused';
|
|
249
|
+
readonly when: 'a step neither `default` nor a plugin holding the name (R79)';
|
|
250
|
+
};
|
|
251
|
+
readonly 'no-selection': {
|
|
252
|
+
readonly kind: 'notice';
|
|
253
|
+
readonly when: '`--extends none` with no `extends` there: a no-op (R80)';
|
|
254
|
+
};
|
|
255
|
+
readonly 'body-not-generated': {
|
|
256
|
+
readonly kind: 'refused';
|
|
257
|
+
readonly when: '`--request` on a body that records no request (R82)';
|
|
258
|
+
};
|
|
259
|
+
readonly 'pick-required': {
|
|
260
|
+
readonly kind: 'refused';
|
|
261
|
+
readonly when: '`--request` without `--extends` on an `ambiguous` name (R82)';
|
|
262
|
+
};
|
|
263
|
+
readonly 'name-outside-interface': {
|
|
264
|
+
readonly kind: 'refused';
|
|
265
|
+
readonly when: "`customize --implements` on a name outside the interface's namespace (R111)";
|
|
266
|
+
};
|
|
267
|
+
readonly 'implements-required': {
|
|
268
|
+
readonly kind: 'refused';
|
|
269
|
+
readonly when: "`--request` without `--implements` on a `missing` name under a found interface's namespace (R111)";
|
|
270
|
+
};
|
|
271
|
+
readonly 'in-not-markdown': {
|
|
272
|
+
readonly kind: 'refused';
|
|
273
|
+
readonly when: '`create --in` or `customize --in` for a name whose main document is not Markdown, which has no project sections (R82)';
|
|
274
|
+
};
|
|
275
|
+
readonly 'in-folder-missing': {
|
|
276
|
+
readonly kind: 'refused';
|
|
277
|
+
readonly when: '`--in` on `create`, `customize`, or `delete` naming a folder that does not exist (J8)';
|
|
278
|
+
};
|
|
279
|
+
readonly 'in-folder-ignored': {
|
|
280
|
+
readonly kind: 'refused';
|
|
281
|
+
readonly when: '`--in` on `create`, `customize`, or `delete` naming a folder git ignores (J8)';
|
|
282
|
+
};
|
|
283
|
+
readonly 'no-file': {
|
|
284
|
+
readonly kind: 'notice';
|
|
285
|
+
readonly when: '`delete` with no file there: a no-op (R30)';
|
|
286
|
+
};
|
|
287
|
+
readonly 'name-missing': {
|
|
288
|
+
readonly kind: 'usage';
|
|
289
|
+
readonly when: 'a command that needs a name, given none (UC1.7)';
|
|
290
|
+
};
|
|
291
|
+
readonly 'name-invalid': {
|
|
292
|
+
readonly kind: 'usage';
|
|
293
|
+
readonly when: 'a write given a string that is not a name, such as `../x` (J1, R1)';
|
|
294
|
+
};
|
|
295
|
+
readonly 'reference-qualified': {
|
|
296
|
+
readonly kind: 'usage';
|
|
297
|
+
readonly when: 'a qualified name given to a write (R25)';
|
|
298
|
+
};
|
|
299
|
+
readonly 'query-missing': {
|
|
300
|
+
readonly kind: 'usage';
|
|
301
|
+
readonly when: '`search` with an empty query (UC3.2)';
|
|
302
|
+
};
|
|
303
|
+
readonly 'change-missing': {
|
|
304
|
+
readonly kind: 'usage';
|
|
305
|
+
readonly when: '`customize` with neither `--extends` nor `--request` (R82)';
|
|
306
|
+
};
|
|
307
|
+
readonly 'options-conflict': {
|
|
308
|
+
readonly kind: 'usage';
|
|
309
|
+
readonly when: 'flags that exclude each other, such as two of `--scope`, `--in`, `--plugin`, `--default` on `create` and `delete`, `--scope` with `--in` on `customize`, or `--merge` or `--extends` with `--in` (R24, R27, R82)';
|
|
310
|
+
};
|
|
311
|
+
readonly 'options-missing': {
|
|
312
|
+
readonly kind: 'usage';
|
|
313
|
+
readonly when: 'a flag given without the one it needs: `--request` without `--body`, or the reverse (R82)';
|
|
314
|
+
};
|
|
315
|
+
readonly 'option-invalid': {
|
|
316
|
+
readonly kind: 'usage';
|
|
317
|
+
readonly when: 'a flag given a value it does not accept, such as an unknown `--merge` operation (R27)';
|
|
318
|
+
};
|
|
319
|
+
readonly 'in-not-below-root': {
|
|
320
|
+
readonly kind: 'usage';
|
|
321
|
+
readonly when: '`--in` naming the root or a folder outside it (R24)';
|
|
322
|
+
};
|
|
323
|
+
readonly 'remove-with-template': {
|
|
324
|
+
readonly kind: 'usage';
|
|
325
|
+
readonly when: '`--merge remove` with `--template` (R27)';
|
|
326
|
+
};
|
|
327
|
+
readonly 'template-with-implements': {
|
|
328
|
+
readonly kind: 'usage';
|
|
329
|
+
readonly when: '`--template` with `--implements` (R28)';
|
|
330
|
+
};
|
|
331
|
+
};
|
|
332
|
+
type ReferenceCodeKind = 'status' | 'warning' | 'refused' | 'notice' | 'usage';
|
|
333
|
+
type ReferenceCode = keyof typeof referenceCodes;
|
|
334
|
+
type CodesOf<K extends ReferenceCodeKind> = { [C in ReferenceCode]: (typeof referenceCodes)[C]['kind'] extends K ? C : never; }[ReferenceCode];
|
|
335
|
+
/** The code of a name that is not `found`. */
|
|
336
|
+
type ReferenceStatusCode = CodesOf<'status'>;
|
|
337
|
+
type ReferenceWarningCode = CodesOf<'warning'>;
|
|
338
|
+
/** The code of a no-op's answer, carried in the result. */
|
|
339
|
+
type ReferenceNoticeCode = CodesOf<'notice'>;
|
|
340
|
+
/** The code of a request that cannot complete (exit 1) or was called wrongly (exit 2). */
|
|
341
|
+
type ReferenceErrorCode = CodesOf<'refused' | 'usage'>;
|
|
342
|
+
/** The exit value of a command that ends on `code`; `undefined` for a warning, which leaves it alone. */
|
|
343
|
+
declare function referenceCodeExit(code: ReferenceCode): 0 | 1 | 2 | undefined;
|
|
344
|
+
/**
|
|
345
|
+
* A fault that never stops a name from resolving. The `code` is stable; the `message` is for a
|
|
346
|
+
* person and is not a contract.
|
|
347
|
+
*/
|
|
348
|
+
type ReferenceWarning = {
|
|
349
|
+
code: ReferenceWarningCode;
|
|
350
|
+
message: string;
|
|
351
|
+
};
|
|
352
|
+
//#endregion
|
|
353
|
+
//#region src/references/reference-projects.d.ts
|
|
354
|
+
/** A folder strictly below the root holding a `.agents/references/`, whose files are that folder's project sections. */
|
|
355
|
+
type ProjectFolder = {
|
|
356
|
+
/** The folder, relative to the root, with `/` between segments. */
|
|
357
|
+
folder: string;
|
|
358
|
+
/** Its `.agents/references/` folder, absolute. */
|
|
359
|
+
dir: string;
|
|
360
|
+
};
|
|
361
|
+
/** What one discovery found below a root: the folders to read, the ones git ignores, and the files git lists. */
|
|
362
|
+
type ProjectFolders = {
|
|
363
|
+
/** The folders whose `.agents/references/` git does not ignore, in path order. */
|
|
364
|
+
folders: ProjectFolder[];
|
|
365
|
+
/**
|
|
366
|
+
* The folders whose `.agents/references/` git ignores, in path order: one an ignore file names, or
|
|
367
|
+
* one whose every listed file is ignored. A folder inside an ignored folder is not looked for, so
|
|
368
|
+
* discovery never walks an ignored tree such as `node_modules/`.
|
|
369
|
+
*/
|
|
370
|
+
ignored: ProjectFolder[];
|
|
371
|
+
/** Each file below the root git lists and does not ignore, relative with `/`; `undefined` outside git, where nothing is ignored. */
|
|
372
|
+
listed?: ReadonlySet<string> | undefined;
|
|
373
|
+
/**
|
|
374
|
+
* The folders strictly below the root holding a `package.json` git does not ignore, in path order,
|
|
375
|
+
* relative with `/`. Outside git, every one not inside a `node_modules/` folder.
|
|
376
|
+
*/
|
|
377
|
+
packages: string[];
|
|
378
|
+
};
|
|
379
|
+
/** One discovery per root, so one run asks git once per root. */
|
|
380
|
+
type ProjectFolderCache = Map<string, ProjectFolders>;
|
|
381
|
+
//#endregion
|
|
382
|
+
//#region src/references/reference-sources.d.ts
|
|
383
|
+
/**
|
|
384
|
+
* A contribution a generated document is built from (K34): a plugin, as `{plugin, version}`, or a
|
|
385
|
+
* skill's default, as `{default: <skill>}`, with the plugin and version of the plugin that ships the
|
|
386
|
+
* skill, when one does. A source with no version is stale only when it is gone.
|
|
387
|
+
*/
|
|
388
|
+
type ReferenceSource = {
|
|
389
|
+
plugin: string;
|
|
390
|
+
version?: string;
|
|
391
|
+
} | {
|
|
392
|
+
default: string;
|
|
393
|
+
plugin?: string;
|
|
394
|
+
version?: string;
|
|
395
|
+
};
|
|
396
|
+
/**
|
|
397
|
+
* What a generated document records in its frontmatter (K25): each source with its plugin's version,
|
|
398
|
+
* and the customizer's request. A project section records these alone; a whole document from an
|
|
399
|
+
* interface's stub records `implements` and the request, and no sources.
|
|
400
|
+
*/
|
|
401
|
+
type GeneratedRecord = {
|
|
402
|
+
sources?: ReferenceSource[];
|
|
403
|
+
request?: string;
|
|
404
|
+
};
|
|
405
|
+
/** A plugin installed where the name resolves, with the version load compares a recorded one to (C5). */
|
|
406
|
+
type ReferenceSourcePlugin = {
|
|
407
|
+
plugin: string;
|
|
408
|
+
version?: string | undefined;
|
|
409
|
+
origin?: PluginOrigin | undefined;
|
|
410
|
+
};
|
|
411
|
+
/** One recorded source, as the trace reports it: its recorded and installed versions, and whether it changed. */
|
|
412
|
+
type ReferenceTraceSource = {
|
|
413
|
+
plugin?: string;
|
|
414
|
+
default?: string;
|
|
415
|
+
recorded?: string;
|
|
416
|
+
installed?: string;
|
|
417
|
+
/** `current`; `changed` when the installed plugin's version differs; `missing` when the source is gone. */
|
|
418
|
+
status: 'current' | 'changed' | 'missing';
|
|
419
|
+
};
|
|
420
|
+
//#endregion
|
|
421
|
+
//#region src/references/reference-layers.d.ts
|
|
422
|
+
/**
|
|
423
|
+
* Where a contribution lives. Listed highest first; the stack (plugins and `default`) is ordered by
|
|
424
|
+
* `extends`. `project` is a `.agents/references/` folder below the root, which adds a project section
|
|
425
|
+
* rather than a layer.
|
|
426
|
+
*/
|
|
427
|
+
type ReferenceTier = 'managed' | 'repo' | 'project' | 'user' | 'plugin' | 'default';
|
|
428
|
+
/**
|
|
429
|
+
* How a plugin came to be read: the plugin running the resolver, one a harness enabled, a dependency
|
|
430
|
+
* of the root's `package.json`, or one a `package.json` below the root declares, which adds project
|
|
431
|
+
* sections for its folder and no layer (K36).
|
|
432
|
+
*/
|
|
433
|
+
type PluginOrigin = 'host' | 'enabled' | 'dependency' | 'package';
|
|
434
|
+
type ReferenceLayer = {
|
|
435
|
+
tier: ReferenceTier;
|
|
436
|
+
/** The folder read for contributions. */
|
|
437
|
+
dir: string;
|
|
438
|
+
/** The plugin tier: the plugin's manifest `name`, which a qualified `<plugin>/<name>` uses. */
|
|
439
|
+
plugin?: string | undefined;
|
|
440
|
+
/** The default tier: the skill's `SKILL.md` `name`. */
|
|
441
|
+
skill?: string | undefined;
|
|
442
|
+
/** The plugin tier: how the plugin came to be read. */
|
|
443
|
+
origin?: PluginOrigin | undefined;
|
|
444
|
+
/** The plugin tier: the installed version, from the install record, else the plugin manifest, else `package.json`. */
|
|
445
|
+
version?: string | undefined;
|
|
446
|
+
/** Set when the layer is never read, and why: policy held in MDM, a plugin with no install folder. */
|
|
447
|
+
skipped?: string | undefined;
|
|
448
|
+
/** Raised on every name resolved through this layer, such as a `--default` folder that does not exist. */
|
|
449
|
+
warning?: ReferenceWarning | undefined;
|
|
450
|
+
};
|
|
451
|
+
type ReferenceLayerOptions = {
|
|
452
|
+
/**
|
|
453
|
+
* The repository root. Its `.agents/references/` is the `repo` tier and its `package.json` names the
|
|
454
|
+
* dependency plugins. When given, it must exist, or the call throws `root-missing`. Defaults to the
|
|
455
|
+
* nearest folder at or above `cwd` holding `.git`, else `cwd`.
|
|
456
|
+
*/
|
|
457
|
+
root?: string | undefined;
|
|
458
|
+
/** The working folder the root is found from. Defaults to `process.cwd()`. */
|
|
459
|
+
cwd?: string | undefined;
|
|
460
|
+
home: string;
|
|
461
|
+
platform: Platform;
|
|
462
|
+
/**
|
|
463
|
+
* The plugin running the resolver. Its `references/` is the first plugin layer, and its install,
|
|
464
|
+
* when a harness has it enabled, is not read a second time.
|
|
465
|
+
*/
|
|
466
|
+
plugin?: ReferencePlugin | undefined;
|
|
467
|
+
/** The calling skill's folder: its `references/<name>.default.md` forms the `default` tier. */
|
|
468
|
+
defaultSkill?: string | undefined;
|
|
469
|
+
/** Detects the harness and reads its settings. Defaults to `process.env`. */
|
|
470
|
+
env?: Readonly<Record<string, string | undefined>>;
|
|
471
|
+
};
|
|
472
|
+
type ReferencePlugin = {
|
|
473
|
+
/** Its manifest `name`, which a qualified `<plugin>/<name>` uses. */
|
|
474
|
+
name: string;
|
|
475
|
+
/** The plugin root, which holds its `references/`. */
|
|
476
|
+
root: string;
|
|
477
|
+
};
|
|
478
|
+
type ReferenceLayers = {
|
|
479
|
+
/** Highest first: managed, repo, user, plugin, default. */
|
|
480
|
+
layers: ReferenceLayer[];
|
|
481
|
+
/** The repository root the layers were read from. Its folders below hold the project sections. */
|
|
482
|
+
root?: string | undefined;
|
|
483
|
+
/** The project folders found below the root, kept for the run so git is asked once. */
|
|
484
|
+
projects?: ProjectFolderCache | undefined;
|
|
485
|
+
/** The harnesses detected, whose managed folders and enabled plugins were read. */
|
|
486
|
+
harnesses: readonly HarnessId[];
|
|
487
|
+
/** The installed skills that hold a default, which `list`, `search`, and `check` reach. */
|
|
488
|
+
skills?: SkillDefaults | undefined;
|
|
489
|
+
/**
|
|
490
|
+
* Every plugin read, with its installed version and origin, whether or not it ships `references/`:
|
|
491
|
+
* a generated document's recorded sources are compared to these (R101).
|
|
492
|
+
*/
|
|
493
|
+
plugins?: ReferenceSourcePlugin[] | undefined;
|
|
494
|
+
};
|
|
495
|
+
/** The installed skills holding a default contribution, found in the skill folders the detected harnesses read. */
|
|
496
|
+
type SkillDefaults = {
|
|
497
|
+
skills: FoundSkill[];
|
|
498
|
+
/** Why some skills' defaults are not listed: no harness detected, or one whose skill folders are not verified. */
|
|
499
|
+
unverified?: string | undefined;
|
|
500
|
+
};
|
|
501
|
+
declare function repoReferencesDir(root: string): string;
|
|
502
|
+
declare function userReferencesDir(home: string): string;
|
|
503
|
+
/** The `default` tier for the skill at `folder`; a folder that does not exist warns and adds no contribution. */
|
|
504
|
+
declare function defaultLayer(folder: string): ReferenceLayer;
|
|
505
|
+
declare function referenceLayers({ root: given, cwd, home, platform, plugin, defaultSkill, env }: ReferenceLayerOptions): Promise<ReferenceLayers>;
|
|
506
|
+
//#endregion
|
|
507
|
+
//#region src/references/reference-document.d.ts
|
|
508
|
+
/**
|
|
509
|
+
* How a contribution applies over what is below it. `replace` puts it in place of everything below;
|
|
510
|
+
* `patch` keeps what is below and puts each section's text in place of the text it matches;
|
|
511
|
+
* `combine` keeps what is below and adds each section's text after the text it matches; `remove`
|
|
512
|
+
* drops what is below.
|
|
513
|
+
*/
|
|
514
|
+
type MergeOperation = 'replace' | 'patch' | 'combine' | 'remove';
|
|
515
|
+
/** Which contribution supplied a section's text, and how. */
|
|
516
|
+
type SectionSource = {
|
|
517
|
+
contribution: string;
|
|
518
|
+
operation: MergeOperation;
|
|
519
|
+
};
|
|
520
|
+
//#endregion
|
|
521
|
+
//#region src/references/reference-format.d.ts
|
|
522
|
+
/** The format of a reference file: `markdown`, or the extension of a data file. */
|
|
523
|
+
type ReferenceFormat = 'markdown' | 'json' | 'yaml' | 'toml' | 'txt';
|
|
524
|
+
//#endregion
|
|
525
|
+
//#region src/references/reference-name.d.ts
|
|
526
|
+
type ReferenceName = {
|
|
527
|
+
/** As asked. */
|
|
528
|
+
raw: string;
|
|
529
|
+
/** The bare name. */
|
|
530
|
+
name: string;
|
|
531
|
+
/** The plugin a qualified `<plugin>/<name>` asks for, by its manifest's `name`. */
|
|
532
|
+
plugin?: string | undefined;
|
|
533
|
+
/** Why the value is not a reference name. Set only on an invalid one; nothing is read for it. */
|
|
534
|
+
invalid?: string | undefined;
|
|
535
|
+
};
|
|
536
|
+
/**
|
|
537
|
+
* Rejects rather than sanitizes — silently answering a different question is how untrusted input
|
|
538
|
+
* reads a file outside a layer. The plugin qualifier is only ever compared with plugin names, never
|
|
539
|
+
* joined into a path. A bad name comes back `invalid`, never thrown, so the other names still resolve.
|
|
540
|
+
*/
|
|
541
|
+
declare function parseReferenceName(value: string): ReferenceName;
|
|
542
|
+
//#endregion
|
|
543
|
+
//#region src/references/reference-project-sections.d.ts
|
|
544
|
+
/** A project section as load delivers it: what one folder below the root adds after the main document. */
|
|
545
|
+
type ResolvedProjectSection = {
|
|
546
|
+
/** The folder it applies to, relative to the root, `/`-separated, with no leading `./` or trailing slash. */
|
|
547
|
+
folder: string;
|
|
548
|
+
/** The file that answered. */
|
|
549
|
+
path: string;
|
|
550
|
+
/** Its text, the managed contribution applied over it, with its own heading levels. */
|
|
551
|
+
content: string;
|
|
552
|
+
/** Its frontmatter, less the keys a project section does not carry. */
|
|
553
|
+
metadata: Record<string, unknown>;
|
|
554
|
+
/** Set when a package plugin (K36) supplied it: that plugin's manifest `name`. */
|
|
555
|
+
plugin?: string;
|
|
556
|
+
};
|
|
557
|
+
/** A project section the trace reports: one delivered, or one in a folder git ignores. */
|
|
558
|
+
type ReferenceTraceProjectSection = {
|
|
559
|
+
folder: string;
|
|
560
|
+
/** The file matched, or the folder checked when the folder is ignored. */
|
|
561
|
+
path: string;
|
|
562
|
+
/** The file that answered, relative to the folder: `<name>.md` or `<name>/README.md`. */
|
|
563
|
+
file?: string;
|
|
564
|
+
/** Its frontmatter as written. */
|
|
565
|
+
frontmatter?: Record<string, unknown>;
|
|
566
|
+
/** `used`; `stale`; `shadowed by <managed> (replace|remove)`; `not used (...)`; or `not read (ignored)`. */
|
|
567
|
+
outcome: string;
|
|
568
|
+
/** A generated section: each source of the main document it was written against, recorded and installed (R9). */
|
|
569
|
+
sources?: ReferenceTraceSource[];
|
|
570
|
+
/** A generated section: the request it records. */
|
|
571
|
+
request?: string;
|
|
572
|
+
/** When the managed contribution changed it: each section by heading path, with what supplied its text. */
|
|
573
|
+
sections?: ReferenceTraceSection[];
|
|
574
|
+
/** A section filed under an older name of the name (R97): that older name. */
|
|
575
|
+
alias?: string;
|
|
576
|
+
/** Set when a package plugin (K36) supplied it: that plugin's manifest `name`. */
|
|
577
|
+
plugin?: string;
|
|
578
|
+
/** A package plugin's installed version. */
|
|
579
|
+
version?: string;
|
|
580
|
+
};
|
|
581
|
+
//#endregion
|
|
582
|
+
//#region src/references/resolve-reference.d.ts
|
|
583
|
+
type ReferenceStatus = 'found' | 'missing' | 'ambiguous' | 'invalid';
|
|
584
|
+
/** Why an ambiguous name's contributions cannot be put in one order. */
|
|
585
|
+
type AmbiguousCause = 'unordered' | 'cycle' | 'repeat' | 'alias';
|
|
586
|
+
/** Where a contribution's operation came from: its own `merge`, a step's key, or the default `patch`. */
|
|
587
|
+
type OperationSource = 'contribution' | 'step' | 'default';
|
|
588
|
+
/** One layer checked, as the trace reports it. */
|
|
589
|
+
type ReferenceTraceLayer = {
|
|
590
|
+
tier: ReferenceTier;
|
|
591
|
+
plugin?: string;
|
|
592
|
+
skill?: string;
|
|
593
|
+
/** The file matched, or the folder checked when none matched. */
|
|
594
|
+
path: string;
|
|
595
|
+
/** The file that answered, relative to the folder: `<name>.md`, `<name>/README.md`, `<name>.default.md`, or the same with a data extension. */
|
|
596
|
+
file?: string;
|
|
597
|
+
/** Its frontmatter as written. */
|
|
598
|
+
frontmatter?: Record<string, unknown>;
|
|
599
|
+
operation?: MergeOperation;
|
|
600
|
+
operationFrom?: OperationSource;
|
|
601
|
+
/** `used`; `stale`; `shadowed by ...`; `not used (...)`; `not read (...)`; `ambiguous`; or `missing`. */
|
|
602
|
+
outcome: string;
|
|
603
|
+
/** A generated `repo` or `user` document: each recorded source with its recorded and installed versions (R9). */
|
|
604
|
+
sources?: ReferenceTraceSource[];
|
|
605
|
+
/** A generated `repo` or `user` document: the request it records. */
|
|
606
|
+
request?: string;
|
|
607
|
+
/** Set when its `extends` was written but did not build the stack, and why. */
|
|
608
|
+
extendsOutcome?: string;
|
|
609
|
+
description?: string;
|
|
610
|
+
/** A contribution with `extends` and no body: it picks the stack and changes nothing else. */
|
|
611
|
+
selection?: boolean;
|
|
612
|
+
/** A contribution with no body, which changes nothing unless it is a `remove`. */
|
|
613
|
+
empty?: boolean;
|
|
614
|
+
/** A file filed under an older name of the name (R97): that older name. */
|
|
615
|
+
alias?: string;
|
|
616
|
+
};
|
|
617
|
+
type ReferenceTraceContribution = {
|
|
618
|
+
tier: ReferenceTier;
|
|
619
|
+
plugin?: string;
|
|
620
|
+
skill?: string;
|
|
621
|
+
path: string;
|
|
622
|
+
operation: MergeOperation;
|
|
623
|
+
};
|
|
624
|
+
type ReferenceTraceSection = {
|
|
625
|
+
/** The heading path, such as `Review > Checklist`. */
|
|
626
|
+
path: string;
|
|
627
|
+
/** The contributions that supplied its text, bottom first, each with the operation it applied. */
|
|
628
|
+
contributions: SectionSource[];
|
|
629
|
+
/** Set on a section a `remove` dropped: the contribution that dropped it. */
|
|
630
|
+
removedBy?: string;
|
|
631
|
+
};
|
|
632
|
+
type ReferenceTrace = {
|
|
633
|
+
/** The plugins and `default` the name builds on, bottom first. */
|
|
634
|
+
stack: string[];
|
|
635
|
+
/** What built the stack: the contribution whose `extends` was used, a plugin's own `extends`, or `none`. */
|
|
636
|
+
builtBy: string;
|
|
637
|
+
/** The contributions whose text the document holds, bottom first. */
|
|
638
|
+
contributions: ReferenceTraceContribution[];
|
|
639
|
+
sections: ReferenceTraceSection[];
|
|
640
|
+
/** Every layer checked, highest first. */
|
|
641
|
+
layers: ReferenceTraceLayer[];
|
|
642
|
+
/** The harnesses detected, whose managed folders and enabled plugins were read. */
|
|
643
|
+
harnesses: string[];
|
|
644
|
+
/** When a `remove` turned the whole name off (`reference-removed`): that contribution. */
|
|
645
|
+
removedBy?: string;
|
|
646
|
+
/** Each project section found, in path order, delivered or not, and each one in a folder git ignores. */
|
|
647
|
+
projectSections: ReferenceTraceProjectSection[];
|
|
648
|
+
/** An older name asked for: the alias followed to the name resolved (R98). */
|
|
649
|
+
alias?: {
|
|
650
|
+
name: string;
|
|
651
|
+
resolvedAs: string;
|
|
652
|
+
};
|
|
653
|
+
};
|
|
654
|
+
/** A name resolved, with every field: the command prints a subset. A bad name is a status, never thrown. */
|
|
655
|
+
type ResolvedReference = {
|
|
656
|
+
name: string;
|
|
657
|
+
status: ReferenceStatus;
|
|
658
|
+
/** Set when not `found`. */
|
|
659
|
+
code?: ReferenceStatusCode;
|
|
660
|
+
/** Why it is not `found`, for a person. */
|
|
661
|
+
message?: string;
|
|
662
|
+
content?: string;
|
|
663
|
+
/** Set when `found`: `markdown`, or the format of the data file that answered whole. */
|
|
664
|
+
format?: ReferenceFormat;
|
|
665
|
+
/** The composed frontmatter, key by key with the higher contribution winning, without `merge`, `extends`, `sources`, and `request`. */
|
|
666
|
+
metadata?: Record<string, unknown>;
|
|
667
|
+
/** When `found`: what each folder below the root adds after the main document, in path order (R99). */
|
|
668
|
+
projectSections: ResolvedProjectSection[];
|
|
669
|
+
/** When `ambiguous`: each `<plugin>/<name>`, and `default` when the skill has one. */
|
|
670
|
+
options?: string[];
|
|
671
|
+
cause?: AmbiguousCause;
|
|
672
|
+
warnings: ReferenceWarning[];
|
|
673
|
+
trace: ReferenceTrace;
|
|
674
|
+
};
|
|
675
|
+
type ResolveOptions = {
|
|
676
|
+
/** How a path is shown in a label or a warning — the command collapses the home directory. */
|
|
677
|
+
display?: (path: string) => string;
|
|
678
|
+
/** A file read as absent, so `delete --dry-run` can report what answers once it is gone. */
|
|
679
|
+
without?: string | undefined;
|
|
680
|
+
/** Read only the layers below this folder, so `where` can report the document below a file it would write. */
|
|
681
|
+
below?: string | undefined;
|
|
682
|
+
/** `false` reads no project section, so `check` checks the main document alone (R118). */
|
|
683
|
+
projectSections?: boolean | undefined;
|
|
684
|
+
};
|
|
685
|
+
type Source = ReferenceLayers | readonly ReferenceLayer[];
|
|
686
|
+
/**
|
|
687
|
+
* Resolves one name: reads each layer, puts the contributions in one order (the stack under the
|
|
688
|
+
* user, repo, and managed tiers), and composes them bottom first, each with its operation.
|
|
689
|
+
*/
|
|
690
|
+
declare function resolveReference(input: string | ReferenceName, source: Source, options?: ResolveOptions): ResolvedReference;
|
|
691
|
+
declare function referenceNames(source: Source): string[];
|
|
692
|
+
//#endregion
|
|
693
|
+
//#region src/references/reference-where.d.ts
|
|
694
|
+
/** A file a customization or a selection of the name is written to. A plugin's or a default's is read-only, never one. */
|
|
695
|
+
type ReferenceWhereFile = {
|
|
696
|
+
/** `repo`, `user`, or the `--in` folder, relative to the root with `/`. */
|
|
697
|
+
scope: string;
|
|
698
|
+
/** The file that answers there now, else the `<name>.md` a write creates; relative to the root, except a `user` one. */
|
|
699
|
+
path: string;
|
|
700
|
+
/** Who a file there reaches. */
|
|
701
|
+
reaches: string;
|
|
702
|
+
/** The contribution above that hides a file there, file there or not (R57, UC2.10). */
|
|
703
|
+
hiddenBy?: string;
|
|
704
|
+
};
|
|
705
|
+
type ReferenceWhereReport = {
|
|
706
|
+
name: string;
|
|
707
|
+
status: ReferenceStatus;
|
|
708
|
+
files: ReferenceWhereFile[];
|
|
709
|
+
/** The main document's heading paths, which a section operation can target. */
|
|
710
|
+
headings: string[];
|
|
711
|
+
/** The plugins and `default` the stack uses, bottom first: read-only. */
|
|
712
|
+
used: string[];
|
|
713
|
+
/** When `ambiguous`: the options a selection written to a file chooses between. */
|
|
714
|
+
options?: string[];
|
|
715
|
+
/** Every layer checked, highest first; a plugin's or a default contribution is read-only. */
|
|
716
|
+
layers: ReferenceTraceLayer[];
|
|
717
|
+
warnings: ReferenceWarning[];
|
|
718
|
+
};
|
|
719
|
+
type WhereOptions = {
|
|
720
|
+
/** Absolute; a repo write goes to its `.agents/references/`, and a repo path is shown relative to it. */
|
|
721
|
+
root: string;
|
|
722
|
+
/** How a path outside the project is shown, such as with the home directory collapsed to `~`. */
|
|
723
|
+
display?: ((path: string) => string) | undefined;
|
|
724
|
+
/** A folder strictly below the root, whose project section file is also given (`in-not-below-root` otherwise). */
|
|
725
|
+
in?: string | undefined;
|
|
726
|
+
};
|
|
727
|
+
/**
|
|
728
|
+
* The files a customization of `name` is written to, `repo` and `user` and, with `in`, that folder's
|
|
729
|
+
* project section, each with who it reaches and what hides it; the main document's heading paths;
|
|
730
|
+
* and the plugins the stack uses, which are read-only. An `ambiguous` name is an answer, with its
|
|
731
|
+
* options.
|
|
732
|
+
*/
|
|
733
|
+
declare function whereReference(input: string | ReferenceName, source: ReferenceLayers | readonly ReferenceLayer[], { root, display, in: folder }: WhereOptions): ReferenceWhereReport;
|
|
734
|
+
//#endregion
|
|
735
|
+
export { AssetPlugin as $, referenceLayers as A, ReferenceCode as B, ReferenceLayer as C, ReferenceTier as D, ReferencePlugin as E, ReferenceSourcePlugin as F, ReferenceWarning as G, ReferenceErrorCode as H, ReferenceTraceSource as I, referenceCodes as J, ReferenceWarningCode as K, ProjectFolder as L, userReferencesDir as M, GeneratedRecord as N, SkillDefaults as O, ReferenceSource as P, AssetLayerOptions as Q, ProjectFolderCache as R, PluginOrigin as S, ReferenceLayers as T, ReferenceNoticeCode as U, ReferenceCodeKind as V, ReferenceStatusCode as W, skillName as X, FoundSkill as Y, skillsIn as Z, ResolvedProjectSection as _, AmbiguousCause as a, MergeOperation as b, ReferenceTrace as c, ReferenceTraceSection as d, AssetTier as et, ResolveOptions as f, ReferenceTraceProjectSection as g, resolveReference as h, whereReference as i, repoReferencesDir as j, defaultLayer as k, ReferenceTraceContribution as l, referenceNames as m, ReferenceWhereReport as n, Platform as nt, OperationSource as o, ResolvedReference as p, referenceCodeExit as q, WhereOptions as r, ReferenceStatus as s, ReferenceWhereFile as t, AssetWarning as tt, ReferenceTraceLayer as u, ReferenceName as v, ReferenceLayerOptions as w, SectionSource as x, parseReferenceName as y, ProjectFolders as z };
|