@tiangong-ai/cli 0.0.19 → 0.0.21

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.
Files changed (58) hide show
  1. package/AGENTS.md +8 -2
  2. package/README.md +209 -4
  3. package/dist/cli.js +2 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/research/commands.js +6 -0
  6. package/dist/research/commands.js.map +1 -1
  7. package/dist/research/orchestration.d.ts +3 -0
  8. package/dist/research/orchestration.js +391 -0
  9. package/dist/research/orchestration.js.map +1 -0
  10. package/dist/research/workspace/broker.d.ts +5 -0
  11. package/dist/research/workspace/broker.js +729 -0
  12. package/dist/research/workspace/broker.js.map +1 -0
  13. package/dist/research/workspace/capabilities.d.ts +10 -0
  14. package/dist/research/workspace/capabilities.js +356 -0
  15. package/dist/research/workspace/capabilities.js.map +1 -0
  16. package/dist/research/workspace/constants.d.ts +8 -0
  17. package/dist/research/workspace/constants.js +41 -0
  18. package/dist/research/workspace/constants.js.map +1 -0
  19. package/dist/research/workspace/context.d.ts +3 -0
  20. package/dist/research/workspace/context.js +77 -0
  21. package/dist/research/workspace/context.js.map +1 -0
  22. package/dist/research/workspace/evidence.d.ts +32 -0
  23. package/dist/research/workspace/evidence.js +235 -0
  24. package/dist/research/workspace/evidence.js.map +1 -0
  25. package/dist/research/workspace/executor.d.ts +22 -0
  26. package/dist/research/workspace/executor.js +926 -0
  27. package/dist/research/workspace/executor.js.map +1 -0
  28. package/dist/research/workspace/input-plan.d.ts +5 -0
  29. package/dist/research/workspace/input-plan.js +319 -0
  30. package/dist/research/workspace/input-plan.js.map +1 -0
  31. package/dist/research/workspace/journal.d.ts +7 -0
  32. package/dist/research/workspace/journal.js +105 -0
  33. package/dist/research/workspace/journal.js.map +1 -0
  34. package/dist/research/workspace/preflight.d.ts +108 -0
  35. package/dist/research/workspace/preflight.js +261 -0
  36. package/dist/research/workspace/preflight.js.map +1 -0
  37. package/dist/research/workspace/projects.d.ts +12 -0
  38. package/dist/research/workspace/projects.js +514 -0
  39. package/dist/research/workspace/projects.js.map +1 -0
  40. package/dist/research/workspace/runtime.d.ts +31 -0
  41. package/dist/research/workspace/runtime.js +1637 -0
  42. package/dist/research/workspace/runtime.js.map +1 -0
  43. package/dist/research/workspace/sanitization.d.ts +5 -0
  44. package/dist/research/workspace/sanitization.js +72 -0
  45. package/dist/research/workspace/sanitization.js.map +1 -0
  46. package/dist/research/workspace/schemas.d.ts +17 -0
  47. package/dist/research/workspace/schemas.js +342 -0
  48. package/dist/research/workspace/schemas.js.map +1 -0
  49. package/dist/research/workspace/storage.d.ts +25 -0
  50. package/dist/research/workspace/storage.js +222 -0
  51. package/dist/research/workspace/storage.js.map +1 -0
  52. package/dist/research/workspace/types.d.ts +341 -0
  53. package/dist/research/workspace/types.js +2 -0
  54. package/dist/research/workspace/types.js.map +1 -0
  55. package/dist/research/workspace/workspace.d.ts +23 -0
  56. package/dist/research/workspace/workspace.js +702 -0
  57. package/dist/research/workspace/workspace.js.map +1 -0
  58. package/package.json +4 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../src/research/workspace/broker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { CapabilityDeclarations, CapabilityLock } from "./types.js";
2
+ export declare function loadCapabilityDeclarations(root: string): Promise<CapabilityDeclarations>;
3
+ export declare function lockCapabilities(root: string): Promise<CapabilityLock>;
4
+ export declare function verifyCapabilities(root: string): Promise<{
5
+ status: "verified" | "drifted";
6
+ checked: number;
7
+ errors: string[];
8
+ }>;
9
+ export declare function stageLockedCapabilities(root: string, destination: string): Promise<string[]>;
10
+ export declare function declaredCredentialIds(root: string): Promise<Set<string>>;
@@ -0,0 +1,356 @@
1
+ import { createHash } from "node:crypto";
2
+ import { readFile, writeFile } from "node:fs/promises";
3
+ import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
4
+ import { CliError } from "../../errors.js";
5
+ import { ALLOWED_CAPABILITY_PERMISSIONS } from "./constants.js";
6
+ import { canonicalJson, ensureDirectory, hashRegularTree, isObject, pathExists, readJsonFile, regularTreeFiles, workspacePaths, writeJsonAtomic, } from "./storage.js";
7
+ export async function loadCapabilityDeclarations(root) {
8
+ const value = await readJsonFile(workspacePaths(root).capabilityDeclarations, "Research capability declarations");
9
+ if (!isObject(value) || value.schemaVersion !== 1 || !Array.isArray(value.capabilities)) {
10
+ throw new CliError("Research capability declarations have an unsupported shape.", {
11
+ code: "RESEARCH_CAPABILITY_INVALID",
12
+ exitCode: 2,
13
+ });
14
+ }
15
+ const capabilities = value.capabilities.map((item, index) => parseCapability(item, index));
16
+ assertUnique(capabilities.map((item) => item.id), "capability ID");
17
+ assertUnique(capabilities.flatMap((item) => item.credentials.map((credential) => credential.id)), "credential ID");
18
+ return { schemaVersion: 1, capabilities };
19
+ }
20
+ export async function lockCapabilities(root) {
21
+ const declarations = await loadCapabilityDeclarations(root);
22
+ const records = await Promise.all(declarations.capabilities.map(async (declaration) => lockCapability(declaration)));
23
+ records.sort((left, right) => left.id.localeCompare(right.id));
24
+ assertUnique(records.map((record) => record.skillName), "capability skill name");
25
+ const lock = {
26
+ schemaVersion: 1,
27
+ generatedAt: new Date().toISOString(),
28
+ capabilities: records,
29
+ };
30
+ await writeJsonAtomic(workspacePaths(root).capabilityLock, lock, 0o444);
31
+ return lock;
32
+ }
33
+ export async function verifyCapabilities(root) {
34
+ const declarations = await loadCapabilityDeclarations(root);
35
+ const lockPath = workspacePaths(root).capabilityLock;
36
+ if (!(await pathExists(lockPath))) {
37
+ if (declarations.capabilities.length === 0) {
38
+ return { status: "verified", checked: 0, errors: [] };
39
+ }
40
+ return { status: "drifted", checked: 0, errors: ["capability lock is missing"] };
41
+ }
42
+ const lock = await readJsonFile(lockPath, "Research capability lock");
43
+ if (!isCapabilityLock(lock)) {
44
+ return { status: "drifted", checked: 0, errors: ["capability lock shape is invalid"] };
45
+ }
46
+ const lockedById = new Map(lock.capabilities.map((record) => [record.id, record]));
47
+ const errors = [];
48
+ for (const declaration of declarations.capabilities) {
49
+ const record = lockedById.get(declaration.id);
50
+ if (!record) {
51
+ errors.push(`${declaration.id}: missing lock record`);
52
+ continue;
53
+ }
54
+ try {
55
+ const current = await lockCapability(declaration);
56
+ if (JSON.stringify(current) !== JSON.stringify(record)) {
57
+ errors.push(`${declaration.id}: installed skill differs from its lock`);
58
+ }
59
+ }
60
+ catch (error) {
61
+ errors.push(`${declaration.id}: ${error instanceof Error ? error.message : String(error)}`);
62
+ }
63
+ }
64
+ for (const record of lock.capabilities) {
65
+ if (!declarations.capabilities.some((item) => item.id === record.id)) {
66
+ errors.push(`${record.id}: lock record has no declaration`);
67
+ }
68
+ }
69
+ return {
70
+ status: errors.length ? "drifted" : "verified",
71
+ checked: declarations.capabilities.length,
72
+ errors,
73
+ };
74
+ }
75
+ export async function stageLockedCapabilities(root, destination) {
76
+ const declarations = await loadCapabilityDeclarations(root);
77
+ if (declarations.capabilities.length === 0)
78
+ return [];
79
+ const verification = await verifyCapabilities(root);
80
+ if (verification.status !== "verified") {
81
+ throw new CliError("Research capabilities must be locked and verified before execution.", {
82
+ code: "RESEARCH_CAPABILITY_DRIFT",
83
+ exitCode: 3,
84
+ details: verification,
85
+ });
86
+ }
87
+ const lock = await readJsonFile(workspacePaths(root).capabilityLock, "Research capability lock");
88
+ const staged = [];
89
+ for (const record of lock.capabilities) {
90
+ const target = join(destination, record.skillName);
91
+ await copyRegularTree(record.skillPath, target);
92
+ staged.push(target);
93
+ }
94
+ return staged;
95
+ }
96
+ export async function declaredCredentialIds(root) {
97
+ const declarations = await loadCapabilityDeclarations(root);
98
+ return new Set(declarations.capabilities.flatMap((capability) => capability.credentials.map((credential) => credential.id)));
99
+ }
100
+ async function lockCapability(declaration) {
101
+ const skillPath = resolve(declaration.skillPath);
102
+ if (skillPath !== declaration.skillPath) {
103
+ throw new CliError(`Capability skill path must be absolute: ${declaration.skillPath}`, {
104
+ code: "RESEARCH_CAPABILITY_INVALID",
105
+ exitCode: 2,
106
+ });
107
+ }
108
+ const skillEntry = join(skillPath, "SKILL.md");
109
+ const skillText = await readFile(skillEntry, "utf8").catch(() => {
110
+ throw new CliError(`Capability is missing SKILL.md: ${skillPath}`, {
111
+ code: "RESEARCH_CAPABILITY_INVALID",
112
+ exitCode: 2,
113
+ });
114
+ });
115
+ const skillName = skillFrontmatterName(skillText);
116
+ if (basename(skillPath) !== skillName) {
117
+ throw new CliError(`Capability directory and skill name differ: ${skillPath}`, {
118
+ code: "RESEARCH_CAPABILITY_INVALID",
119
+ exitCode: 2,
120
+ });
121
+ }
122
+ return {
123
+ id: declaration.id,
124
+ skillName,
125
+ skillPath,
126
+ treeSha256: await hashRegularTree(skillPath),
127
+ policySha256: policyHash(declaration),
128
+ permissions: [...declaration.permissions].sort(),
129
+ credentialIds: declaration.credentials.map((item) => item.id).sort(),
130
+ };
131
+ }
132
+ function parseCapability(value, index) {
133
+ if (!isObject(value))
134
+ invalid(index, "must be an object");
135
+ const id = value.id;
136
+ const skillPath = value.skillPath;
137
+ const permissions = value.permissions;
138
+ const allowedHosts = value.allowedHosts ?? [];
139
+ const http = value.http;
140
+ const coverage = value.coverage;
141
+ const credentials = value.credentials ?? [];
142
+ if (typeof id !== "string" || !/^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)+$/.test(id)) {
143
+ invalid(index, "id must be a namespaced logical identifier");
144
+ }
145
+ if (typeof skillPath !== "string" || !isAbsolute(skillPath)) {
146
+ invalid(index, "skillPath must be absolute");
147
+ }
148
+ if (!Array.isArray(permissions) ||
149
+ permissions.some((permission) => typeof permission !== "string" || !ALLOWED_CAPABILITY_PERMISSIONS.has(permission))) {
150
+ invalid(index, "permissions contain an unsupported value");
151
+ }
152
+ if (!Array.isArray(credentials))
153
+ invalid(index, "credentials must be an array");
154
+ if (!Array.isArray(allowedHosts) || allowedHosts.some((host) => typeof host !== "string")) {
155
+ invalid(index, "allowedHosts must be an array of exact host names");
156
+ }
157
+ const parsedAllowedHosts = [
158
+ ...new Set(allowedHosts.map((host) => normalizeAllowedHost(host, index))),
159
+ ].sort();
160
+ const brokeredNetwork = permissions.includes("brokered-network");
161
+ if (brokeredNetwork && parsedAllowedHosts.length === 0) {
162
+ invalid(index, "must declare allowedHosts for brokered-network");
163
+ }
164
+ if (!brokeredNetwork && parsedAllowedHosts.length > 0) {
165
+ invalid(index, "cannot declare allowedHosts without brokered-network");
166
+ }
167
+ const parsedHttp = brokeredNetwork ? parseHttpPolicy(http, index) : null;
168
+ if (!brokeredNetwork && http !== undefined && http !== null) {
169
+ invalid(index, "cannot declare http policy without brokered-network");
170
+ }
171
+ const parsedCredentials = credentials.map((credential, credentialIndex) => {
172
+ if (!isObject(credential))
173
+ invalid(index, `credential ${credentialIndex} must be an object`);
174
+ if (typeof credential.id !== "string" ||
175
+ !/^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)+$/.test(credential.id) ||
176
+ !Array.isArray(credential.allowedHosts) ||
177
+ credential.allowedHosts.length === 0 ||
178
+ credential.allowedHosts.some((host) => typeof host !== "string") ||
179
+ typeof credential.headerName !== "string" ||
180
+ !/^[A-Za-z][A-Za-z0-9-]*$/.test(credential.headerName) ||
181
+ typeof credential.prefix !== "string") {
182
+ invalid(index, `credential ${credentialIndex} is malformed`);
183
+ }
184
+ const credentialHosts = [
185
+ ...new Set(credential.allowedHosts.map((host) => normalizeAllowedHost(host, index, credentialIndex))),
186
+ ].sort();
187
+ if (!brokeredNetwork || credentialHosts.some((host) => !parsedAllowedHosts.includes(host))) {
188
+ invalid(index, `credential ${credentialIndex} hosts must be within capability allowedHosts`);
189
+ }
190
+ return {
191
+ id: credential.id,
192
+ allowedHosts: credentialHosts,
193
+ headerName: credential.headerName,
194
+ prefix: credential.prefix,
195
+ };
196
+ });
197
+ assertUnique(parsedCredentials.map((item) => item.id), `credential ID in ${id}`);
198
+ return {
199
+ id,
200
+ skillPath,
201
+ permissions: [...new Set(permissions)],
202
+ allowedHosts: parsedAllowedHosts,
203
+ http: parsedHttp,
204
+ coverage: parseCoverage(coverage, index),
205
+ credentials: parsedCredentials,
206
+ };
207
+ }
208
+ function isCapabilityLock(value) {
209
+ return (isObject(value) &&
210
+ value.schemaVersion === 1 &&
211
+ typeof value.generatedAt === "string" &&
212
+ Array.isArray(value.capabilities) &&
213
+ value.capabilities.every((record) => isObject(record) &&
214
+ typeof record.id === "string" &&
215
+ typeof record.skillName === "string" &&
216
+ typeof record.skillPath === "string" &&
217
+ typeof record.treeSha256 === "string" &&
218
+ typeof record.policySha256 === "string" &&
219
+ Array.isArray(record.permissions) &&
220
+ Array.isArray(record.credentialIds)));
221
+ }
222
+ function policyHash(declaration) {
223
+ return hashText(canonicalJson({
224
+ permissions: [...declaration.permissions].sort(),
225
+ allowedHosts: [...declaration.allowedHosts].sort(),
226
+ http: declaration.http,
227
+ coverage: declaration.coverage,
228
+ credentials: declaration.credentials
229
+ .map((credential) => ({
230
+ id: credential.id,
231
+ allowedHosts: [...credential.allowedHosts].sort(),
232
+ headerName: credential.headerName.toLowerCase(),
233
+ prefix: credential.prefix,
234
+ }))
235
+ .sort((left, right) => left.id.localeCompare(right.id)),
236
+ }));
237
+ }
238
+ function parseCoverage(value, index) {
239
+ if (value === undefined || value === null)
240
+ return null;
241
+ if (!isObject(value) ||
242
+ !Array.isArray(value.dimensions) ||
243
+ value.dimensions.some((item) => !validCoverageId(item)) ||
244
+ !Array.isArray(value.sourceTypes) ||
245
+ value.sourceTypes.some((item) => !validCoverageId(item)) ||
246
+ typeof value.fullText !== "boolean" ||
247
+ typeof value.publicationDates !== "boolean") {
248
+ invalid(index, "coverage declaration is malformed");
249
+ }
250
+ return {
251
+ dimensions: [...new Set(value.dimensions)].sort(),
252
+ sourceTypes: [...new Set(value.sourceTypes)].sort(),
253
+ fullText: value.fullText,
254
+ publicationDates: value.publicationDates,
255
+ };
256
+ }
257
+ function validCoverageId(value) {
258
+ return typeof value === "string" && /^[a-z0-9][a-z0-9._:-]{0,127}$/.test(value);
259
+ }
260
+ function parseHttpPolicy(value, index) {
261
+ if (value === undefined || value === null) {
262
+ return {
263
+ accept: "application/json",
264
+ allowedContentTypes: ["application/json"],
265
+ maxResponseBytes: 512 * 1024,
266
+ maxItems: 100,
267
+ };
268
+ }
269
+ if (!isObject(value) ||
270
+ typeof value.accept !== "string" ||
271
+ !value.accept.trim() ||
272
+ /[\r\n]/.test(value.accept) ||
273
+ !Array.isArray(value.allowedContentTypes) ||
274
+ value.allowedContentTypes.length === 0 ||
275
+ value.allowedContentTypes.some((item) => typeof item !== "string" || !/^[a-z0-9.+-]+\/[a-z0-9.+*-]+$/i.test(item)) ||
276
+ typeof value.maxResponseBytes !== "number" ||
277
+ !Number.isInteger(value.maxResponseBytes) ||
278
+ value.maxResponseBytes < 1 ||
279
+ value.maxResponseBytes > 20 * 1024 * 1024 ||
280
+ typeof value.maxItems !== "number" ||
281
+ !Number.isInteger(value.maxItems) ||
282
+ value.maxItems < 1 ||
283
+ value.maxItems > 10_000) {
284
+ invalid(index, "http policy is malformed");
285
+ }
286
+ return {
287
+ accept: value.accept.trim(),
288
+ allowedContentTypes: [...new Set(value.allowedContentTypes.map((item) => item.toLowerCase()))],
289
+ maxResponseBytes: value.maxResponseBytes,
290
+ maxItems: value.maxItems,
291
+ };
292
+ }
293
+ function hashText(value) {
294
+ return createHash("sha256").update(value, "utf8").digest("hex");
295
+ }
296
+ function normalizeAllowedHost(value, index, credentialIndex) {
297
+ const label = credentialIndex === undefined ? "allowedHosts" : `credential ${credentialIndex} host`;
298
+ const candidate = value.trim().toLowerCase();
299
+ let parsed;
300
+ try {
301
+ parsed = new URL(`https://${candidate}`);
302
+ }
303
+ catch {
304
+ invalid(index, `${label} contains an invalid host`);
305
+ }
306
+ if (!candidate ||
307
+ candidate.includes("*") ||
308
+ parsed.username ||
309
+ parsed.password ||
310
+ parsed.hostname.endsWith(".") ||
311
+ parsed.pathname !== "/" ||
312
+ parsed.search ||
313
+ parsed.hash) {
314
+ invalid(index, `${label} must contain exact HTTPS host names without paths or wildcards`);
315
+ }
316
+ return parsed.host;
317
+ }
318
+ function skillFrontmatterName(content) {
319
+ const match = content.match(/^---\s*\n([\s\S]*?)\n---(?:\s*\n|$)/);
320
+ const name = match?.[1]?.match(/^name:\s*["']?([a-z0-9-]+)["']?\s*$/m)?.[1];
321
+ if (!name) {
322
+ throw new CliError("Capability SKILL.md has no valid name frontmatter.", {
323
+ code: "RESEARCH_CAPABILITY_INVALID",
324
+ exitCode: 2,
325
+ });
326
+ }
327
+ return name;
328
+ }
329
+ async function copyRegularTree(source, target) {
330
+ const files = await regularTreeFiles(source);
331
+ for (const path of files) {
332
+ const logical = relative(source, path);
333
+ const destination = join(target, logical);
334
+ await ensureDirectory(dirname(destination));
335
+ await writeFile(destination, await readFile(path), { mode: 0o600 });
336
+ }
337
+ }
338
+ function assertUnique(values, label) {
339
+ const seen = new Set();
340
+ for (const value of values) {
341
+ if (seen.has(value)) {
342
+ throw new CliError(`Duplicate ${label}: ${value}`, {
343
+ code: "RESEARCH_CAPABILITY_INVALID",
344
+ exitCode: 2,
345
+ });
346
+ }
347
+ seen.add(value);
348
+ }
349
+ }
350
+ function invalid(index, detail) {
351
+ throw new CliError(`Capability declaration ${index} ${detail}.`, {
352
+ code: "RESEARCH_CAPABILITY_INVALID",
353
+ exitCode: 2,
354
+ });
355
+ }
356
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/research/workspace/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnF,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC;AAQtB,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAAY;IAC3D,MAAM,KAAK,GAAG,MAAM,YAAY,CAC9B,cAAc,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAC3C,kCAAkC,CACnC,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QACxF,MAAM,IAAI,QAAQ,CAAC,6DAA6D,EAAE;YAChF,IAAI,EAAE,6BAA6B;YACnC,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC;IACD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3F,YAAY,CACV,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EACnC,eAAe,CAChB,CAAC;IACF,YAAY,CACV,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EACnF,eAAe,CAChB,CAAC;IACF,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY;IACjD,MAAM,YAAY,GAAG,MAAM,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAClF,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,YAAY,CACV,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EACzC,uBAAuB,CACxB,CAAC;IACF,MAAM,IAAI,GAAmB;QAC3B,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,YAAY,EAAE,OAAO;KACtB,CAAC;IACF,MAAM,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACxE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY;IAKnD,MAAM,YAAY,GAAG,MAAM,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC;IACrD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAClC,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,4BAA4B,CAAC,EAAE,CAAC;IACnF,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAU,QAAQ,EAAE,0BAA0B,CAAC,CAAC;IAC/E,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,kCAAkC,CAAC,EAAE,CAAC;IACzF,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,WAAW,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,EAAE,uBAAuB,CAAC,CAAC;YACtD,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;YAClD,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvD,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,EAAE,yCAAyC,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,EAAE,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YACrE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,kCAAkC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;QAC9C,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC,MAAM;QACzC,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAY,EACZ,WAAmB;IAEnB,MAAM,YAAY,GAAG,MAAM,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACtD,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,YAAY,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACvC,MAAM,IAAI,QAAQ,CAAC,qEAAqE,EAAE;YACxF,IAAI,EAAE,2BAA2B;YACjC,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B,cAAc,CAAC,IAAI,CAAC,CAAC,cAAc,EACnC,0BAA0B,CAC3B,CAAC;IACF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAY;IACtD,MAAM,YAAY,GAAG,MAAM,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO,IAAI,GAAG,CACZ,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAC/C,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAC1D,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,WAAkC;IAC9D,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,SAAS,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,IAAI,QAAQ,CAAC,2CAA2C,WAAW,CAAC,SAAS,EAAE,EAAE;YACrF,IAAI,EAAE,6BAA6B;YACnC,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAC9D,MAAM,IAAI,QAAQ,CAAC,mCAAmC,SAAS,EAAE,EAAE;YACjE,IAAI,EAAE,6BAA6B;YACnC,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAClD,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,IAAI,QAAQ,CAAC,+CAA+C,SAAS,EAAE,EAAE;YAC7E,IAAI,EAAE,6BAA6B;YACnC,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,EAAE,EAAE,WAAW,CAAC,EAAE;QAClB,SAAS;QACT,SAAS;QACT,UAAU,EAAE,MAAM,eAAe,CAAC,SAAS,CAAC;QAC5C,YAAY,EAAE,UAAU,CAAC,WAAW,CAAC;QACrC,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE;QAChD,aAAa,EAAE,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;KACrE,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,KAAa;IACpD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACpB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IACtC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;IAC5C,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7E,OAAO,CAAC,KAAK,EAAE,4CAA4C,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5D,OAAO,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;IAC/C,CAAC;IACD,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QAC3B,WAAW,CAAC,IAAI,CACd,CAAC,UAAU,EAAE,EAAE,CACb,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,UAAU,CAAC,CACpF,EACD,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,0CAA0C,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,CAAC,KAAK,EAAE,8BAA8B,CAAC,CAAC;IAChF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC1F,OAAO,CAAC,KAAK,EAAE,mDAAmD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,kBAAkB,GAAG;QACzB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;KAC1E,CAAC,IAAI,EAAE,CAAC;IACT,MAAM,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACjE,IAAI,eAAe,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,KAAK,EAAE,gDAAgD,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,eAAe,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,KAAK,EAAE,sDAAsD,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,IAAI,CAAC,eAAe,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC5D,OAAO,CAAC,KAAK,EAAE,qDAAqD,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE;QACxE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,OAAO,CAAC,KAAK,EAAE,cAAc,eAAe,oBAAoB,CAAC,CAAC;QAC7F,IACE,OAAO,UAAU,CAAC,EAAE,KAAK,QAAQ;YACjC,CAAC,oCAAoC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACzD,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;YACvC,UAAU,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YACpC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;YAChE,OAAO,UAAU,CAAC,UAAU,KAAK,QAAQ;YACzC,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACtD,OAAO,UAAU,CAAC,MAAM,KAAK,QAAQ,EACrC,CAAC;YACD,OAAO,CAAC,KAAK,EAAE,cAAc,eAAe,eAAe,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,eAAe,GAAG;YACtB,GAAG,IAAI,GAAG,CACR,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAC1F;SACF,CAAC,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC3F,OAAO,CAAC,KAAK,EAAE,cAAc,eAAe,+CAA+C,CAAC,CAAC;QAC/F,CAAC;QACD,OAAO;YACL,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,YAAY,EAAE,eAAe;YAC7B,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,YAAY,CACV,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EACxC,oBAAoB,EAAE,EAAE,CACzB,CAAC;IACF,OAAO;QACL,EAAE;QACF,SAAS;QACT,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,YAAY,EAAE,kBAAkB;QAChC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC;QACxC,WAAW,EAAE,iBAAiB;KAC/B,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,KAAK,CAAC,aAAa,KAAK,CAAC;QACzB,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;QACrC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;QACjC,KAAK,CAAC,YAAY,CAAC,KAAK,CACtB,CAAC,MAAM,EAAE,EAAE,CACT,QAAQ,CAAC,MAAM,CAAC;YAChB,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ;YAC7B,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;YACpC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;YACpC,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;YACrC,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;YACvC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CACtC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,WAAkC;IACpD,OAAO,QAAQ,CACb,aAAa,CAAC;QACZ,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE;QAChD,YAAY,EAAE,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE;QAClD,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,WAAW,EAAE,WAAW,CAAC,WAAW;aACjC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACpB,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE;YACjD,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE;YAC/C,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KAC1D,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,KAAa;IAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACvD,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;QAChC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;QACjC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS;QACnC,OAAO,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAC3C,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,mCAAmC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO;QACL,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;QACjD,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE;QACnD,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,KAAa;IACpD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO;YACL,MAAM,EAAE,kBAAkB;YAC1B,mBAAmB,EAAE,CAAC,kBAAkB,CAAC;YACzC,gBAAgB,EAAE,GAAG,GAAG,IAAI;YAC5B,QAAQ,EAAE,GAAG;SACd,CAAC;IACJ,CAAC;IACD,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QAChC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;QACpB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3B,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC;QACzC,KAAK,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC;QACtC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAC5B,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,CACnF;QACD,OAAO,KAAK,CAAC,gBAAgB,KAAK,QAAQ;QAC1C,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACzC,KAAK,CAAC,gBAAgB,GAAG,CAAC;QAC1B,KAAK,CAAC,gBAAgB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI;QACzC,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAClC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QACjC,KAAK,CAAC,QAAQ,GAAG,CAAC;QAClB,KAAK,CAAC,QAAQ,GAAG,MAAM,EACvB,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;QAC3B,mBAAmB,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC9F,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa,EAAE,KAAa,EAAE,eAAwB;IAClF,MAAM,KAAK,GACT,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,eAAe,OAAO,CAAC;IACxF,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7C,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,SAAS,EAAE,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,EAAE,GAAG,KAAK,2BAA2B,CAAC,CAAC;IACtD,CAAC;IACD,IACE,CAAC,SAAS;QACV,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;QACvB,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC7B,MAAM,CAAC,QAAQ,KAAK,GAAG;QACvB,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,IAAI,EACX,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,GAAG,KAAK,iEAAiE,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,sCAAsC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5E,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,QAAQ,CAAC,oDAAoD,EAAE;YACvE,IAAI,EAAE,6BAA6B;YACnC,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,MAAc,EAAE,MAAc;IAC3D,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5C,MAAM,SAAS,CAAC,WAAW,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAAgB,EAAE,KAAa;IACnD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,QAAQ,CAAC,aAAa,KAAK,KAAK,KAAK,EAAE,EAAE;gBACjD,IAAI,EAAE,6BAA6B;gBACnC,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,KAAa,EAAE,MAAc;IAC5C,MAAM,IAAI,QAAQ,CAAC,0BAA0B,KAAK,IAAI,MAAM,GAAG,EAAE;QAC/D,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare const RESEARCH_CONTROL_DIRECTORY = ".tiangong-research";
2
+ export declare const RESEARCH_PROTOCOL_VERSION: 1;
3
+ export declare const RESEARCH_PACKAGE_NAME: "@tiangong-ai/cli";
4
+ export declare const ALLOWED_CAPABILITY_PERMISSIONS: Set<string>;
5
+ export declare const WORKSPACE_OPERATIONS: readonly ["research.context.inspect", "research.workspace.doctor", "research.capability.lock", "research.capability.verify", "research.project.init", "research.project.preflight", "research.project.input.add", "research.project.retry", "research.project.fork", "research.schema.show", "research.status", "research.run"];
6
+ export declare const UNMANAGED_OPERATIONS: readonly ["research.context.inspect", "research.workspace.init"];
7
+ export declare const INVALID_OPERATIONS: readonly ["research.context.inspect"];
8
+ export declare function packageVersion(): string;
@@ -0,0 +1,41 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { dirname, resolve } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ export const RESEARCH_CONTROL_DIRECTORY = ".tiangong-research";
5
+ export const RESEARCH_PROTOCOL_VERSION = 1;
6
+ export const RESEARCH_PACKAGE_NAME = "@tiangong-ai/cli";
7
+ export const ALLOWED_CAPABILITY_PERMISSIONS = new Set([
8
+ "project-read",
9
+ "candidate-write",
10
+ "brokered-network",
11
+ "controlled-command",
12
+ ]);
13
+ export const WORKSPACE_OPERATIONS = [
14
+ "research.context.inspect",
15
+ "research.workspace.doctor",
16
+ "research.capability.lock",
17
+ "research.capability.verify",
18
+ "research.project.init",
19
+ "research.project.preflight",
20
+ "research.project.input.add",
21
+ "research.project.retry",
22
+ "research.project.fork",
23
+ "research.schema.show",
24
+ "research.status",
25
+ "research.run",
26
+ ];
27
+ export const UNMANAGED_OPERATIONS = [
28
+ "research.context.inspect",
29
+ "research.workspace.init",
30
+ ];
31
+ export const INVALID_OPERATIONS = ["research.context.inspect"];
32
+ export function packageVersion() {
33
+ const moduleDirectory = dirname(fileURLToPath(import.meta.url));
34
+ const packagePath = resolve(moduleDirectory, "../../../package.json");
35
+ const value = JSON.parse(readFileSync(packagePath, "utf8"));
36
+ if (typeof value.version !== "string" || !value.version.trim()) {
37
+ throw new Error("Package version is unavailable.");
38
+ }
39
+ return value.version;
40
+ }
41
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/research/workspace/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,MAAM,0BAA0B,GAAG,oBAAoB,CAAC;AAC/D,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAU,CAAC;AACpD,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAA2B,CAAC;AAEjE,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,GAAG,CAAC;IACpD,cAAc;IACd,iBAAiB;IACjB,kBAAkB;IAClB,oBAAoB;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,0BAA0B;IAC1B,2BAA2B;IAC3B,0BAA0B;IAC1B,4BAA4B;IAC5B,uBAAuB;IACvB,4BAA4B;IAC5B,4BAA4B;IAC5B,wBAAwB;IACxB,uBAAuB;IACvB,sBAAsB;IACtB,iBAAiB;IACjB,cAAc;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,0BAA0B;IAC1B,yBAAyB;CACjB,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,0BAA0B,CAAU,CAAC;AAExE,MAAM,UAAU,cAAc;IAC5B,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAA0B,CAAC;IACrF,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ContextInspection, WorkspaceMarker } from "./types.js";
2
+ export declare function inspectResearchContext(selectedPath: string): Promise<ContextInspection>;
3
+ export declare function isWorkspaceMarker(value: unknown): value is WorkspaceMarker;
@@ -0,0 +1,77 @@
1
+ import { lstat } from "node:fs/promises";
2
+ import { dirname, join, parse, resolve } from "node:path";
3
+ import { INVALID_OPERATIONS, RESEARCH_CONTROL_DIRECTORY, UNMANAGED_OPERATIONS, WORKSPACE_OPERATIONS, } from "./constants.js";
4
+ import { isObject, pathExists, readJsonFile } from "./storage.js";
5
+ export async function inspectResearchContext(selectedPath) {
6
+ const canonical = resolve(selectedPath);
7
+ const info = await lstat(canonical).catch(() => undefined);
8
+ let cursor = info?.isFile() ? dirname(canonical) : canonical;
9
+ while (true) {
10
+ const control = join(cursor, RESEARCH_CONTROL_DIRECTORY);
11
+ if (await pathExists(control)) {
12
+ const markerPath = join(control, "workspace.json");
13
+ if (!(await pathExists(markerPath))) {
14
+ return {
15
+ role: "invalid",
16
+ selectedPath: canonical,
17
+ root: cursor,
18
+ allowedOperations: [...INVALID_OPERATIONS],
19
+ violations: [
20
+ {
21
+ code: "WORKSPACE_MARKER_MISSING",
22
+ message: `${RESEARCH_CONTROL_DIRECTORY} exists without workspace.json.`,
23
+ },
24
+ ],
25
+ };
26
+ }
27
+ try {
28
+ const marker = await readJsonFile(markerPath, "Research workspace marker");
29
+ if (!isWorkspaceMarker(marker)) {
30
+ return invalidMarker(canonical, cursor, "workspace.json has an unsupported shape.");
31
+ }
32
+ return {
33
+ role: "workspace",
34
+ selectedPath: canonical,
35
+ root: cursor,
36
+ allowedOperations: [...WORKSPACE_OPERATIONS],
37
+ violations: [],
38
+ };
39
+ }
40
+ catch (error) {
41
+ return invalidMarker(canonical, cursor, String(error));
42
+ }
43
+ }
44
+ const parent = dirname(cursor);
45
+ if (cursor === parent || cursor === parse(cursor).root)
46
+ break;
47
+ cursor = parent;
48
+ }
49
+ return {
50
+ role: "unmanaged",
51
+ selectedPath: canonical,
52
+ root: null,
53
+ allowedOperations: [...UNMANAGED_OPERATIONS],
54
+ violations: [],
55
+ };
56
+ }
57
+ export function isWorkspaceMarker(value) {
58
+ return (isObject(value) &&
59
+ value.schemaVersion === 1 &&
60
+ value.kind === "tiangong-research-workspace" &&
61
+ typeof value.workspaceId === "string" &&
62
+ value.workspaceId.length > 0 &&
63
+ typeof value.name === "string" &&
64
+ value.name.length > 0 &&
65
+ typeof value.createdAt === "string" &&
66
+ value.createdAt.length > 0);
67
+ }
68
+ function invalidMarker(selectedPath, root, message) {
69
+ return {
70
+ role: "invalid",
71
+ selectedPath,
72
+ root,
73
+ allowedOperations: [...INVALID_OPERATIONS],
74
+ violations: [{ code: "WORKSPACE_MARKER_INVALID", message }],
75
+ };
76
+ }
77
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/research/workspace/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export interface BrokerEvidenceReceipt {
2
+ schemaVersion: 1;
3
+ attemptId: string;
4
+ projectId: string;
5
+ capabilityId: string;
6
+ credentialId: string | null;
7
+ status: number;
8
+ contentType: string;
9
+ bytes: number;
10
+ sha256: string;
11
+ sourceSha256: string;
12
+ locator: string;
13
+ contextLocator: string;
14
+ contextSha256: string;
15
+ contextBytes: number;
16
+ contextEstimatedTokens: number;
17
+ contextItems: number | null;
18
+ contextOffset?: number;
19
+ contextTotalItems?: number | null;
20
+ contextNextOffset?: number | null;
21
+ contextTruncated: boolean;
22
+ retrievedAt: string;
23
+ servedAt: string;
24
+ cacheHit: boolean;
25
+ }
26
+ export declare function persistBrokerEvidence(root: string, receipt: Omit<BrokerEvidenceReceipt, "schemaVersion" | "bytes" | "sha256" | "locator" | "contextLocator" | "contextSha256" | "contextBytes" | "contextEstimatedTokens" | "servedAt">, bytes: Uint8Array, contextBytes?: Uint8Array): Promise<BrokerEvidenceReceipt>;
27
+ export declare function loadProjectEvidenceReceipts(root: string, projectId: string): Promise<BrokerEvidenceReceipt[]>;
28
+ export declare function verifyEvidenceReceipt(root: string, receipt: BrokerEvidenceReceipt): Promise<string>;
29
+ export declare function stageProjectEvidence(root: string, projectId: string, capsuleProject: string): Promise<BrokerEvidenceReceipt[]>;
30
+ export declare function cloneProjectEvidenceReceipts(root: string, sourceProjectId: string, targetProjectId: string): Promise<BrokerEvidenceReceipt[]>;
31
+ export declare function loadBrokerEvidenceCache(root: string, cacheKeySha256: string): Promise<BrokerEvidenceReceipt | null>;
32
+ export declare function storeBrokerEvidenceCache(root: string, cacheKeySha256: string, receipt: BrokerEvidenceReceipt): Promise<void>;