@tiangong-ai/cli 0.0.37 → 0.0.39

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/AGENTS.md CHANGED
@@ -17,8 +17,8 @@ checkPaths:
17
17
  - .docpact/config.yaml
18
18
  - docs/agents/**
19
19
  - src/**
20
- lastReviewedAt: 2026-08-16
21
- lastReviewedCommit: 622103bad4c33f09cfadda86d68f8ef113fa6804
20
+ lastReviewedAt: 2026-08-17
21
+ lastReviewedCommit: d14c542100d6e1efdd82798c2d92e68a5bc3bba2
22
22
  ---
23
23
 
24
24
  # Tiangong AI CLI Contract
package/README.md CHANGED
@@ -12,8 +12,8 @@ checkPaths:
12
12
  - package.json
13
13
  - bin/**
14
14
  - src/**
15
- lastReviewedAt: 2026-08-16
16
- lastReviewedCommit: b8c2d6acaf44de0b9c7ea4530e54baff84ad034b
15
+ lastReviewedAt: 2026-08-17
16
+ lastReviewedCommit: d14c542100d6e1efdd82798c2d92e68a5bc3bba2
17
17
  ---
18
18
 
19
19
  # Tiangong AI CLI
@@ -235,6 +235,72 @@ the default; global writes, network downloads, live provider checks, synthetic
235
235
  document uploads, and paid agent smokes each require their applicable
236
236
  confirmation.
237
237
 
238
+ ### Declarative setup
239
+
240
+ For repeatable provisioning without a TTY, generate a safe workspace-local
241
+ template:
242
+
243
+ ```bash
244
+ tiangong-ai research setup init \
245
+ --workspace /absolute/path/to/workspace --json
246
+ ```
247
+
248
+ This no-overwrite command creates:
249
+
250
+ - `.tiangong-research/setup.yaml`: non-secret selections, settings, license
251
+ acceptances, agent routes, verification choices, and explicit confirmations;
252
+ - `.tiangong-research/setup.env.example`: credential variable names with empty
253
+ values; copy it to `setup.env` only when a file-based secret source is needed;
254
+ - `.tiangong-research/.gitignore`: excludes `setup.env`.
255
+
256
+ Review the catalog, edit `setup.yaml`, and never put a key or token in it. For a
257
+ file-based credential source:
258
+
259
+ ```bash
260
+ cp .tiangong-research/setup.env.example .tiangong-research/setup.env
261
+ chmod 600 .tiangong-research/setup.env
262
+ # Edit setup.env locally; use only NAME=value entries referenced by
263
+ # credentialEnvironment in setup.yaml.
264
+ ```
265
+
266
+ Then run the ordinary command:
267
+
268
+ ```bash
269
+ tiangong-ai research setup \
270
+ --workspace /absolute/path/to/workspace --json
271
+ ```
272
+
273
+ Bare setup checks only the fixed workspace-local `setup.yaml`; it never scans a
274
+ parent directory. When the file exists, setup is fully non-interactive and does
275
+ not fall back to the Wizard after a parse, schema, permission, credential, or
276
+ readiness failure. Use absolute `--config` and `--env-file` paths only for an
277
+ explicit alternative. Use `research setup wizard` to explicitly choose the
278
+ interactive path even when a declaration exists.
279
+
280
+ The YAML parser rejects duplicate keys, aliases, anchors, custom/unknown
281
+ fields, and incomplete verification. `setup.env` must be a regular non-symlink
282
+ file, no larger than 64 KiB, owner-only on POSIX, and may contain only referenced
283
+ variable names. It is read as literal data without shell expansion. A differing
284
+ value in the ambient environment and `setup.env` is an error; setup never
285
+ chooses between them silently. Secret values are imported into the existing
286
+ owner-only logical stores before downloads and never enter the YAML, immutable
287
+ plan, declaration binding, output, report, or journal.
288
+
289
+ The semantic YAML hash is bound to the immutable plan. Re-running unchanged
290
+ configuration reuses that exact plan and reruns all verification. A changed
291
+ declaration stops until the owner reviews it and sets
292
+ `replaceExistingPlan: true`; the prior plan and declaration binding are archived
293
+ before replacement.
294
+
295
+ Declarative setup requires live provider checks and the independent reviewer
296
+ CLI agent smoke, including explicit cost authorization. Interactive setup
297
+ recommends both by default while retaining explicit quota/cost consent. Apply,
298
+ status, doctor, and the Wizard return success only when
299
+ `overallReadiness=READY`; skipped checks, warnings, missing dependencies, and
300
+ optional selected-component failures remain visible as a non-zero incomplete
301
+ setup instead of a false success. The native producer is still not launched as
302
+ a child process.
303
+
238
304
  If the full orchestrator was selected, accepted apply creates a separate
239
305
  project-local `tiangong-auto-research-recovery` Skill after credentials are
240
306
  stored and before source checkout. This CLI-generated, plan-bound shim can only
@@ -283,9 +349,14 @@ tiangong-ai research policy status top-journal-paper \
283
349
  ```
284
350
 
285
351
  The Wizard resolves only the verified project-installed
286
- `tiangong-auto-research` tree. It copies a baseline plus one article type,
287
- field, journal class, project brief, and four reviewer rubrics. Generic defaults
288
- are clearly reported and require a separate acknowledgement. An exact-journal
352
+ `tiangong-auto-research` tree. Before catalog use, the CLI parses every Markdown
353
+ template in every category of that exact locked tree; setup doctor performs the
354
+ same compatibility check before any provider live check or reviewer smoke. The
355
+ baseline must require the scientific-design contract, ordered early reviews,
356
+ and real-record construct canary, and those safeguards must remain true in the
357
+ resolved Policy. The Wizard then copies a baseline plus one article type, field,
358
+ journal class, project brief, and four reviewer rubrics. Generic defaults are
359
+ clearly reported and require a separate acknowledgement. An exact-journal
289
360
  Policy additionally requires a current official HTTPS guideline URL, retrieval
290
361
  date, and substantive human content for all journal-specific sections. Approval
291
362
  binds the manifest and every document by SHA-256; edits, manifest tampering, or
@@ -5,6 +5,7 @@ import { stringifyJson, write } from "../io.js";
5
5
  import { parseStrictArgs, strictBoolean, strictString } from "../strict-args.js";
6
6
  import { EXTERNAL_SKILL_CONTEXT_PROFILE, EXTERNAL_SKILL_MEDIA_PROFILE, EXTERNAL_SKILL_PROFILE, } from "./workspace/external-skills.js";
7
7
  import { inspectResearchSetupCatalog } from "./workspace/setup-catalog.js";
8
+ import { discoverResearchSetupDeclaration, executeResearchSetupDeclaration, initializeResearchSetupDeclaration, } from "./workspace/setup-declarative.js";
8
9
  import { applyResearchSetupPlan, checkResearchSetupUpdates, createResearchSetupPlan, createResearchSetupUpgradePlan, doctorResearchSetup, inspectResearchSetupStatus, retryResearchSetup, runResearchSetupCompanion, setResearchSetupCredentialFromEnvironment, setResearchSetupCredentialValue, } from "./workspace/setup.js";
9
10
  import { isObject, workspacePaths } from "./workspace/storage.js";
10
11
  import { promptResearchSetupCredentialValue, readResearchSetupCredentialStdin, runResearchSetupWizard, } from "./workspace/setup-wizard.js";
@@ -12,8 +13,11 @@ const COMMON_OPTIONS = { help: "boolean", json: "boolean" };
12
13
  const WORKSPACE_OPTIONS = { ...COMMON_OPTIONS, workspace: "string" };
13
14
  export async function runResearchSetupCommand(argv, io) {
14
15
  const [action, ...rest] = argv;
15
- if (!action || action === "wizard" || action.startsWith("-")) {
16
- return runResearchSetupWizard(action === "wizard" ? rest : argv, io);
16
+ if (!action || action.startsWith("-")) {
17
+ return runSetupEntry(argv, io);
18
+ }
19
+ if (action === "wizard") {
20
+ return runResearchSetupWizard(rest, io);
17
21
  }
18
22
  if (action === "--help" || action === "-h" || action === "help") {
19
23
  write(io.stdout, researchSetupHelp());
@@ -21,6 +25,8 @@ export async function runResearchSetupCommand(argv, io) {
21
25
  }
22
26
  if (action === "catalog")
23
27
  return runCatalog(rest, io);
28
+ if (action === "init")
29
+ return runDeclarationInit(rest, io);
24
30
  if (action === "plan")
25
31
  return runPlan(rest, io);
26
32
  if (action === "apply")
@@ -46,8 +52,12 @@ export async function runResearchSetupCommand(argv, io) {
46
52
  }
47
53
  export function researchSetupHelp() {
48
54
  return `Research setup commands:
49
- tiangong-ai research setup
50
- Interactive, user-initiated setup Wizard (TTY required).
55
+ tiangong-ai research setup [--workspace <absolute-path>] [--config <absolute-yaml>] [--env-file <absolute-owner-only-env>] [--json]
56
+ Auto-runs a discovered .tiangong-research/setup.yaml declaration; otherwise starts the interactive Wizard.
57
+ tiangong-ai research setup wizard [--workspace <absolute-path>] [--credential-stdin <logical-id[,logical-id...]>] [--json]
58
+ Explicitly start the interactive, user-initiated setup Wizard (TTY required).
59
+ tiangong-ai research setup init [--workspace <absolute-path>] [--json]
60
+ Create no-overwrite setup.yaml and setup.env.example templates.
51
61
  tiangong-ai research setup catalog [--workspace <absolute-path>] [--scope project|global] [--agents codex,claude-code] [--json]
52
62
  tiangong-ai research setup plan --workspace <absolute-path> --mode smoke-test|production-research --evidence-profile none|brave-baseline|brave-context|brave-media [--skills <csv>] [--scope project|global] [--agents <csv>] [--accept-license <csv>] [--settings <absolute-json>] [--credential-env <absolute-json>] [--agent-routes <absolute-json>] [--confirm-network-downloads] [--confirm-global] [--live] [--allow-synthetic-unstructure-upload] [--agent-smoke --confirm-agent-smoke-cost] [--replace-plan] [--json]
53
63
  tiangong-ai research setup apply [--plan <absolute-json>] [--workspace <absolute-path>] [--skip-doctor] [--json]
@@ -67,8 +77,66 @@ Safety defaults:
67
77
  bounded stdin, or named owner environment variables; values are never printed.
68
78
  Every selected Skill requires its displayed license id and an explicit
69
79
  network-download confirmation; an empty smoke-test plan requires neither.
80
+ Declarative setup never scans parent directories. Its setup.env is optional,
81
+ owner-only (0600), literal, and may contain only names referenced by setup.yaml.
82
+ Declarative apply always runs live provider checks and independent reviewer
83
+ smoke; setup succeeds only when overallReadiness is READY.
70
84
  `;
71
85
  }
86
+ async function runSetupEntry(argv, io) {
87
+ const args = parseStrictArgs(argv, {
88
+ ...WORKSPACE_OPTIONS,
89
+ config: "string",
90
+ "env-file": "string",
91
+ "credential-stdin": "string",
92
+ }, "research setup");
93
+ if (strictBoolean(args, "help"))
94
+ return writeSetupHelp(io);
95
+ rejectPositionals(args.positionals, "research setup");
96
+ const workspace = workspaceArgument(args);
97
+ const configurationPath = strictString(args, "config");
98
+ const environmentPath = strictString(args, "env-file");
99
+ const credentialStdin = strictString(args, "credential-stdin");
100
+ const discovered = await discoverResearchSetupDeclaration(workspace, {
101
+ ...(configurationPath === undefined ? {} : { configurationPath }),
102
+ ...(environmentPath === undefined ? {} : { environmentPath }),
103
+ });
104
+ if (discovered) {
105
+ if (credentialStdin) {
106
+ throw invalidSetupArgument("--credential-stdin belongs to the Wizard and cannot be combined with declarative setup.");
107
+ }
108
+ const result = await executeResearchSetupDeclaration({
109
+ workspace,
110
+ configurationPath: discovered.configurationPath,
111
+ ...(discovered.environmentPath === null
112
+ ? {}
113
+ : { environmentPath: discovered.environmentPath }),
114
+ environment: io.env,
115
+ });
116
+ writeSetupJson(io, result, args);
117
+ return result.exitCode;
118
+ }
119
+ if (configurationPath || environmentPath) {
120
+ throw new CliError("Declarative setup was requested but setup.yaml was not found.", {
121
+ code: "RESEARCH_SETUP_DECLARATION_NOT_FOUND",
122
+ exitCode: 2,
123
+ details: {
124
+ step: "declarative-discovery",
125
+ minimumAction: "Run research setup init or remove --config/--env-file to use the Wizard.",
126
+ },
127
+ });
128
+ }
129
+ return runResearchSetupWizard(argv, io);
130
+ }
131
+ async function runDeclarationInit(argv, io) {
132
+ const args = parseStrictArgs(argv, WORKSPACE_OPTIONS, "research setup init");
133
+ if (strictBoolean(args, "help"))
134
+ return writeSetupHelp(io);
135
+ rejectPositionals(args.positionals, "research setup init");
136
+ const result = await initializeResearchSetupDeclaration(workspaceArgument(args));
137
+ writeSetupJson(io, result, args);
138
+ return 0;
139
+ }
72
140
  async function runCatalog(argv, io) {
73
141
  const args = parseStrictArgs(argv, { ...WORKSPACE_OPTIONS, scope: "string", agents: "string" }, "research setup catalog");
74
142
  if (strictBoolean(args, "help"))
@@ -150,7 +218,7 @@ async function runApply(argv, io) {
150
218
  const root = workspaceArgument(args);
151
219
  const result = await applyResearchSetupPlan(planPath ? resolve(planPath) : workspacePaths(root).setupPlan, { environment: io.env, skipDoctor: strictBoolean(args, "skip-doctor") });
152
220
  writeSetupJson(io, result, args);
153
- return result.state.status === "blocked" ? 3 : 0;
221
+ return result.state.status === "ready" ? 0 : 3;
154
222
  }
155
223
  async function runStatus(argv, io) {
156
224
  const args = parseStrictArgs(argv, WORKSPACE_OPTIONS, "research setup status");
@@ -159,7 +227,7 @@ async function runStatus(argv, io) {
159
227
  rejectPositionals(args.positionals, "research setup status");
160
228
  const result = await inspectResearchSetupStatus(workspaceArgument(args), io.env);
161
229
  writeSetupJson(io, result, args);
162
- return result.state.status === "blocked" ? 3 : 0;
230
+ return result.state.status === "ready" ? 0 : 3;
163
231
  }
164
232
  async function runDoctor(argv, io) {
165
233
  const args = parseStrictArgs(argv, {
@@ -192,7 +260,7 @@ async function runDoctor(argv, io) {
192
260
  environment: io.env,
193
261
  });
194
262
  writeSetupJson(io, result, args);
195
- return result.readiness === "READY" ? 0 : 3;
263
+ return result.overallReadiness === "READY" ? 0 : 3;
196
264
  }
197
265
  async function runCredential(argv, io) {
198
266
  const [action, ...rest] = argv;
@@ -1 +1 @@
1
- {"version":3,"file":"setup-command.js","sourceRoot":"","sources":["../../src/research/setup-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,8BAA8B,EAC9B,mBAAmB,EACnB,0BAA0B,EAC1B,kBAAkB,EAClB,yBAAyB,EACzB,yCAAyC,EACzC,+BAA+B,GAGhC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EACL,kCAAkC,EAClC,gCAAgC,EAChC,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AAErC,MAAM,cAAc,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAW,CAAC;AACrE,MAAM,iBAAiB,GAAG,EAAE,GAAG,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAW,CAAC;AAE9E,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAc,EAAE,EAAS;IACrE,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7D,OAAO,sBAAsB,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAChE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACtD,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClD,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,MAAM,KAAK,YAAY;QAAE,OAAO,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5D,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1D,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClD,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,IAAI,QAAQ,CAAC,kCAAkC,MAAM,EAAE,EAAE;QAC7D,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO;;;;;;;;;;;;;;;;;;;;;;CAsBR,CAAC;AACF,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAc,EAAE,EAAS;IACjD,MAAM,IAAI,GAAG,eAAe,CAC1B,IAAI,EACJ,EAAE,GAAG,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAC3D,wBAAwB,CACzB,CAAC;IACF,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3D,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC;QAC/C,YAAY,EAAE,iBAAiB,CAAC,IAAI,CAAC;QACrC,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACjD,WAAW,EAAE,EAAE,CAAC,GAAG;KACpB,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,IAAc,EAAE,EAAS;IAC9C,MAAM,IAAI,GAAG,eAAe,CAC1B,IAAI,EACJ;QACE,GAAG,iBAAiB;QACpB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,kBAAkB,EAAE,QAAQ;QAC5B,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,QAAQ;QAChB,gBAAgB,EAAE,QAAQ;QAC1B,QAAQ,EAAE,QAAQ;QAClB,gBAAgB,EAAE,QAAQ;QAC1B,cAAc,EAAE,QAAQ;QACxB,IAAI,EAAE,SAAS;QACf,oCAAoC,EAAE,SAAS;QAC/C,aAAa,EAAE,SAAS;QACxB,2BAA2B,EAAE,SAAS;QACtC,gBAAgB,EAAE,SAAS;QAC3B,0BAA0B,EAAE,SAAS;QACrC,cAAc,EAAE,SAAS;KAC1B,EACD,qBAAqB,CACtB,CAAC;IACF,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3D,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,oBAAoB,CAAC,YAAY,CAAC,IAAI,EAAE,kBAAkB,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3F,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;IAC1F,MAAM,qBAAqB,GAAG,MAAM,oBAAoB,CACtD,YAAY,CAAC,IAAI,EAAE,gBAAgB,CAAC,EACpC,kBAAkB,CACnB,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC;QACzC,SAAS;QACT,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACvC,IAAI;QACJ,eAAe;QACf,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3C,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACjD,kBAAkB,EAAE,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAC7D,qBAAqB;QACrB,QAAQ;QACR,WAAW;QACX,UAAU,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QACvC,+BAA+B,EAAE,aAAa,CAAC,IAAI,EAAE,oCAAoC,CAAC;QAC1F,UAAU,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC;QAC9C,uBAAuB,EAAE,aAAa,CAAC,IAAI,EAAE,2BAA2B,CAAC;QACzE,qBAAqB,EAAE,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC;QAC5D,qBAAqB,EAAE,aAAa,CAAC,IAAI,EAAE,0BAA0B,CAAC;QACtE,WAAW,EAAE,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC;QAChD,WAAW,EAAE,EAAE,CAAC,GAAG;KACpB,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAc,EAAE,EAAS;IAC/C,MAAM,IAAI,GAAG,eAAe,CAC1B,IAAI,EACJ,EAAE,GAAG,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,EAClE,sBAAsB,CACvB,CAAC;IACF,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3D,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,MAAM,oBAAoB,CAAC,uCAAuC,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,sBAAsB,CACzC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,EAC7D,EAAE,WAAW,EAAE,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CACxE,CAAC;IACF,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAc,EAAE,EAAS;IAChD,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,iBAAiB,EAAE,uBAAuB,CAAC,CAAC;IAC/E,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3D,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACjF,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAc,EAAE,EAAS;IAChD,MAAM,IAAI,GAAG,eAAe,CAC1B,IAAI,EACJ;QACE,GAAG,iBAAiB;QACpB,IAAI,EAAE,SAAS;QACf,oCAAoC,EAAE,SAAS;QAC/C,aAAa,EAAE,SAAS;QACxB,0BAA0B,EAAE,SAAS;KACtC,EACD,uBAAuB,CACxB,CAAC;IACF,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3D,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAC7D,IAAI,aAAa,CAAC,IAAI,EAAE,oCAAoC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;QAC9F,MAAM,oBAAoB,CAAC,mEAAmE,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,0BAA0B,CAAC,EAAE,CAAC;QAC3F,MAAM,IAAI,QAAQ,CAChB,4EAA4E,EAC5E;YACE,IAAI,EAAE,sCAAsC;YAC5C,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,aAAa,EAAE,wDAAwD;aACxE;SACF,CACF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;QAChE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QACjC,+BAA+B,EAAE,aAAa,CAAC,IAAI,EAAE,oCAAoC,CAAC;QAC1F,UAAU,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC;QAC9C,WAAW,EAAE,EAAE,CAAC,GAAG;KACpB,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAc,EAAE,EAAS;IACpD,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/B,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;IACtE,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,MAAM,IAAI,QAAQ,CAAC,6CAA6C,MAAM,IAAI,SAAS,EAAE,EAAE;YACrF,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAC1B,IAAI,EACJ;QACE,GAAG,iBAAiB;QACpB,EAAE,EAAE,QAAQ;QACZ,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,SAAS;QACvB,UAAU,EAAE,QAAQ;KACrB,EACD,+BAA+B,CAChC,CAAC;IACF,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3D,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,+BAA+B,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1F,IAAI,CAAC,YAAY,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,oBAAoB,CACxB,uGAAuG,CACxG,CAAC;IACJ,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,yCAAyC,CAAC;YAC7D,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC;YAClC,YAAY;YACZ,eAAe;YACf,WAAW,EAAE,EAAE,CAAC,GAAG;SACpB,CAAC,CAAC;QACH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACjC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,CAAC;QACH,KAAK,GAAG,MAAM;YACZ,CAAC,CAAC,MAAM,kCAAkC,CAAC,EAAE,EAAE,YAAY,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACzF,CAAC,CAAC,CAAC,MAAM,gCAAgC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAE,CAAC;QACtF,MAAM,MAAM,GAAG,MAAM,+BAA+B,CAAC;YACnD,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC;YAClC,YAAY;YACZ,KAAK;YACL,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO;SAC/C,CAAC,CAAC;QACH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACjC,OAAO,CAAC,CAAC;IACX,CAAC;YAAS,CAAC;QACT,KAAK,GAAG,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAc,EAAE,EAAS;IACnD,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/B,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;IACtE,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,MAAM,IAAI,QAAQ,CAAC,4CAA4C,MAAM,IAAI,SAAS,EAAE,EAAE;YACpF,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAC1B,IAAI,EACJ;QACE,GAAG,iBAAiB;QACpB,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,QAAQ;KAClB,EACD,8BAA8B,CAC/B,CAAC;IACF,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3D,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,8BAA8B,CAAC,CAAC;IACpE,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,MAAM,cAAc,GAAG,uBAAuB,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;IAC3F,IAAI,MAAM,CAAC;IACX,IAAI,EAAE,KAAK,sCAAsC,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,MAAM,oBAAoB,CAAC,uDAAuD,CAAC,CAAC;QACtF,CAAC;QACD,oBAAoB,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1E,MAAM,GAAG,MAAM,yBAAyB,CACtC;YACE,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC;YAClC,OAAO,EAAE,EAAE;YACX,SAAS;YACT,UAAU;YACV,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC;SAC5D,EACD,EAAE,WAAW,EAAE,EAAE,CAAC,GAAG,EAAE,CACxB,CAAC;IACJ,CAAC;SAAM,IAAI,EAAE,KAAK,kCAAkC,EAAE,CAAC;QACrD,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,oBAAoB,CAAC,8CAA8C,CAAC,CAAC;QAC7E,CAAC;QACD,oBAAoB,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,uBAAuB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,GAAG,MAAM,yBAAyB,CACtC;YACE,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC;YAClC,OAAO,EAAE,EAAE;YACX,eAAe;YACf,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;YACrC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;YACzC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;YAC3C,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YACvC,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC;SAC5D,EACD,EAAE,WAAW,EAAE,EAAE,CAAC,GAAG,EAAE,CACxB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,oBAAoB,CACxB,wFAAwF,CACzF,CAAC;IACJ,CAAC;IACD,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,MAAM,KAAK,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAc,EAAE,EAAS;IAC/C,MAAM,IAAI,GAAG,eAAe,CAC1B,IAAI,EACJ;QACE,GAAG,iBAAiB;QACpB,IAAI,EAAE,QAAQ;QACd,kBAAkB,EAAE,SAAS;QAC7B,0BAA0B,EAAE,SAAS;KACtC,EACD,sBAAsB,CACvB,CAAC;IACF,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3D,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI;QAAE,MAAM,oBAAoB,CAAC,uCAAuC,CAAC,CAAC;IAC/E,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACtD,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,0BAA0B,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,QAAQ,CAAC,sEAAsE,EAAE;YACzF,IAAI,EAAE,sCAAsC;YAC5C,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;QACtC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC;QAClC,IAAI;QACJ,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,GAAG,EAAE;KACjC,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAc,EAAE,EAAS;IAChD,MAAM,IAAI,GAAG,eAAe,CAC1B,IAAI,EACJ,EAAE,GAAG,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,EAC1C,uBAAuB,CACxB,CAAC;IACF,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3D,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAC7D,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,oBAAoB,CAAC,0DAA0D,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChF,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAc,EAAE,EAAS;IACjD,MAAM,IAAI,GAAG,eAAe,CAC1B,IAAI,EACJ;QACE,GAAG,iBAAiB;QACpB,IAAI,EAAE,SAAS;QACf,iBAAiB,EAAE,SAAS;QAC5B,gBAAgB,EAAE,QAAQ;KAC3B,EACD,wBAAwB,CACzB,CAAC;IACF,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3D,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC;IAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;QACjC,MAAM,oBAAoB,CACxB,uEAAuE,CACxE,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC;QAClD,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC;QAClC,kBAAkB,EAAE,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAC7D,cAAc,EAAE,aAAa,CAAC,IAAI,EAAE,iBAAiB,CAAC;QACtD,WAAW,EAAE,EAAE,CAAC,GAAG;KACpB,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAwC;IACjE,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAwC;IACzE,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,MAAM,oBAAoB,CAAC,4DAA4D,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB;IAC3C,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACpD,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACrC,MAAM,oBAAoB,CAAC,4BAA4B,KAAK,GAAG,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,aAAa,CAAC,EAAE,CAAC;QAChG,MAAM,oBAAoB,CAAC,sDAAsD,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAmC,CAAC;AAChE,CAAC;AAED,SAAS,SAAS,CAAC,KAAyB,EAAE,QAAiB;IAC7D,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,qBAAqB;QAAE,OAAO,KAAK,CAAC;IAC5E,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ;QAAE,OAAO,qBAAqB,CAAC;IACtD,MAAM,oBAAoB,CAAC,mDAAmD,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAyB,EACzB,QAAiB;IAEjB,IACE,KAAK,KAAK,MAAM;QAChB,KAAK,KAAK,sBAAsB;QAChC,KAAK,KAAK,8BAA8B;QACxC,KAAK,KAAK,4BAA4B,EACtC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,KAAK,gBAAgB;QAAE,OAAO,sBAAsB,CAAC;IAC9D,IAAI,KAAK,KAAK,eAAe;QAAE,OAAO,8BAA8B,CAAC;IACrE,IAAI,KAAK,KAAK,aAAa;QAAE,OAAO,4BAA4B,CAAC;IACjE,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ;QAAE,OAAO,sBAAsB,CAAC;IACvD,MAAM,oBAAoB,CACxB,iFAAiF,CAClF,CAAC;AACJ,CAAC;AAED,SAAS,GAAG,CAAC,KAAyB;IACpC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,KAAK;SACjB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3C,MAAM,oBAAoB,CAAC,gDAAgD,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAyB,EAAE,KAAa;IACvE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,oBAAoB,CAAC,GAAG,KAAK,sCAAsC,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,oBAAoB,CAAC,GAAG,KAAK,0CAA0C,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAwC,EACxC,KAAe,EACf,OAAe;IAEf,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,oBAAoB,CACxB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,OAAO,GAAG,CAC/E,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,IAAwB,EACxB,KAAa;IAEb,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;QACtF,MAAM,oBAAoB,CAAC,GAAG,KAAK,iDAAiD,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,KAA+B,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,IAAwB;IAExB,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC7D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,oBAAoB,CAAC,8CAA8C,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,KAA6C,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,KAAa;IACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,MAAM,oBAAoB,CAAC,GAAG,KAAK,iCAAiC,CAAC,CAAC;IAC7F,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY,CAAC;IAC7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAAC,GAAG,KAAK,8BAA8B,EAAE;YACzD,IAAI,EAAE,8BAA8B;YACpC,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;SACzC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAqB,EAAE,OAAe;IAC/D,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,QAAQ,CAAC,GAAG,OAAO,wCAAwC,EAAE;YACrE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,EAAE,WAAW,EAAE;SACzB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe;IAC3C,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,cAAc,CAAC,EAAS,EAAE,KAAc,EAAE,IAAwC;IACzF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,cAAc,CAAC,EAAS;IAC/B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"setup-command.js","sourceRoot":"","sources":["../../src/research/setup-command.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,21 @@ export interface ResearchPolicyStatus {
16
16
  targetJournal: string | null;
17
17
  guidance: string;
18
18
  }
19
+ export interface ResearchPolicyPackValidation {
20
+ schemaVersion: 1;
21
+ sourceTreeSha256: string;
22
+ templateCount: number;
23
+ categories: {
24
+ articleTypes: string[];
25
+ fields: string[];
26
+ journalClasses: string[];
27
+ };
28
+ defaults: {
29
+ baseline: string;
30
+ reviewers: string[];
31
+ publicationBrief: string;
32
+ };
33
+ }
19
34
  export declare function inspectResearchPolicyCatalog(sourceRoot: string): Promise<{
20
35
  schemaVersion: 1;
21
36
  sourceTreeSha256: string;
@@ -30,6 +45,7 @@ export declare function inspectResearchPolicyCatalog(sourceRoot: string): Promis
30
45
  publicationBrief: string;
31
46
  };
32
47
  }>;
48
+ export declare function validateResearchPolicyPack(sourceRoot: string): Promise<ResearchPolicyPackValidation>;
33
49
  export declare function initializeResearchPolicy(input: {
34
50
  root: string;
35
51
  projectId: string;
@@ -98,25 +98,78 @@ const KNOWN_CONSTRAINTS = new Map([
98
98
  ["requireRecallAudit", "boolean"],
99
99
  ["requireCentralDimensionsCovered", "boolean"],
100
100
  ["requireIndependentReproduction", "boolean"],
101
+ ["requireScientificDesignContract", "boolean"],
102
+ ["requireEarlyScientificReviews", "boolean"],
103
+ ["requireRealRecordConstructCanary", "boolean"],
101
104
  ]);
105
+ const REQUIRED_TOP_JOURNAL_BOOLEAN_CONSTRAINTS = [
106
+ "requireScientificDesignContract",
107
+ "requireEarlyScientificReviews",
108
+ "requireRealRecordConstructCanary",
109
+ ];
110
+ const POLICY_PACK_CATEGORIES = [
111
+ { directory: "baseline", kind: "baseline" },
112
+ { directory: "article-types", kind: "article-type" },
113
+ { directory: "fields", kind: "field" },
114
+ { directory: "journal-classes", kind: "journal-class" },
115
+ { directory: "journals", kind: "exact-journal" },
116
+ { directory: "reviewer-rubrics", kind: "reviewer-rubric" },
117
+ { directory: "project", kind: "publication-brief" },
118
+ ];
102
119
  export async function inspectResearchPolicyCatalog(sourceRoot) {
120
+ const validation = await validateResearchPolicyPack(sourceRoot);
121
+ return {
122
+ schemaVersion: 1,
123
+ sourceTreeSha256: validation.sourceTreeSha256,
124
+ categories: validation.categories,
125
+ defaults: validation.defaults,
126
+ };
127
+ }
128
+ export async function validateResearchPolicyPack(sourceRoot) {
103
129
  const root = await requirePolicySourceRoot(sourceRoot);
104
130
  const policyRoot = policyTemplateRoot(root);
105
- const baseline = join(policyRoot, "baseline", "top-journal.md");
106
- const brief = join(policyRoot, "project", "publication-brief.md");
107
- const reviewers = await markdownBasenames(join(policyRoot, "reviewer-rubrics"));
108
- await Promise.all([
109
- parsePolicyFile(baseline, false),
110
- parsePolicyFile(brief, false),
111
- ...reviewers.map((name) => parsePolicyFile(join(policyRoot, "reviewer-rubrics", `${name}.md`), false)),
112
- ]);
131
+ const namesByDirectory = new Map();
132
+ const ids = new Set();
133
+ const parsedDocuments = [];
134
+ for (const category of POLICY_PACK_CATEGORIES) {
135
+ const names = await markdownBasenames(join(policyRoot, category.directory));
136
+ if (names.length === 0) {
137
+ throw policyError("RESEARCH_POLICY_SOURCE_INVALID", `Policy category is empty: ${category.directory}`);
138
+ }
139
+ namesByDirectory.set(category.directory, names);
140
+ for (const name of names) {
141
+ const logicalPath = `${category.directory}/${name}.md`;
142
+ const parsed = await parsePolicyFile(join(policyRoot, logicalPath), false);
143
+ if (parsed.kind !== category.kind) {
144
+ throw policyError("RESEARCH_POLICY_INVALID", `Policy kind does not match its category: ${logicalPath}`);
145
+ }
146
+ if (ids.has(parsed.id)) {
147
+ throw policyError("RESEARCH_POLICY_INVALID", `Policy pack contains a duplicate document ID: ${parsed.id}`);
148
+ }
149
+ ids.add(parsed.id);
150
+ parsedDocuments.push({ ...parsed, logicalPath });
151
+ }
152
+ }
153
+ const baseline = parsedDocuments.find((document) => document.logicalPath === "baseline/top-journal.md");
154
+ if (!baseline) {
155
+ throw policyError("RESEARCH_POLICY_SOURCE_INVALID", "Policy pack does not contain baseline/top-journal.md.");
156
+ }
157
+ if (!parsedDocuments.some((document) => document.logicalPath === "project/publication-brief.md")) {
158
+ throw policyError("RESEARCH_POLICY_SOURCE_INVALID", "Policy pack does not contain project/publication-brief.md.");
159
+ }
160
+ if (!parsedDocuments.some((document) => document.logicalPath === "journals/exact-journal-template.md")) {
161
+ throw policyError("RESEARCH_POLICY_SOURCE_INVALID", "Policy pack does not contain journals/exact-journal-template.md.");
162
+ }
163
+ assertRequiredTopJournalConstraints(baseline.constraints, "the pinned baseline/top-journal.md template");
164
+ const reviewers = namesByDirectory.get("reviewer-rubrics") ?? [];
113
165
  return {
114
166
  schemaVersion: 1,
115
167
  sourceTreeSha256: await hashRegularTree(root),
168
+ templateCount: parsedDocuments.length,
116
169
  categories: {
117
- articleTypes: await markdownBasenames(join(policyRoot, "article-types")),
118
- fields: await markdownBasenames(join(policyRoot, "fields")),
119
- journalClasses: await markdownBasenames(join(policyRoot, "journal-classes")),
170
+ articleTypes: namesByDirectory.get("article-types") ?? [],
171
+ fields: namesByDirectory.get("fields") ?? [],
172
+ journalClasses: namesByDirectory.get("journal-classes") ?? [],
120
173
  },
121
174
  defaults: {
122
175
  baseline: "top-journal",
@@ -360,6 +413,7 @@ export async function approveResearchPolicy(rootInput, projectId, options) {
360
413
  const expiresAt = new Date(Date.parse(approvedAt) + reviewAfterDays * 86_400_000).toISOString();
361
414
  const resolvedRules = [...new Set(documents.flatMap((document) => document.rules))].sort();
362
415
  const resolvedConstraints = mergePolicyConstraints(documents);
416
+ assertRequiredTopJournalConstraints(resolvedConstraints, `the resolved Policy for ${projectId}`);
363
417
  const requiredReviewers = [
364
418
  ...new Set(documents.flatMap((document) => document.requiredReviewers)),
365
419
  ].sort();
@@ -763,6 +817,7 @@ async function loadPolicyApproval(root, projectId) {
763
817
  if (sha256Text(canonicalJson(base)) !== approvalSha256) {
764
818
  throw policyError("RESEARCH_POLICY_INVALID", "Research Policy approval hash is invalid.");
765
819
  }
820
+ assertRequiredTopJournalConstraints(approval.resolvedConstraints, `the approved Policy for ${projectId}`);
766
821
  return approval;
767
822
  }
768
823
  function statusResult(root, projectId, status, documents, invalidDocuments, approval, guidanceParts, conflicts = []) {
@@ -821,6 +876,13 @@ function mergePolicyConstraints(documents) {
821
876
  }
822
877
  return Object.fromEntries(Object.entries(resolved).sort(([left], [right]) => left.localeCompare(right)));
823
878
  }
879
+ function assertRequiredTopJournalConstraints(constraints, context) {
880
+ for (const key of REQUIRED_TOP_JOURNAL_BOOLEAN_CONSTRAINTS) {
881
+ if (constraints[key] !== true) {
882
+ throw policyError("RESEARCH_POLICY_INVALID", `Top-journal Policy constraint ${key} must resolve to true in ${context}.`);
883
+ }
884
+ }
885
+ }
824
886
  function policyConflicts(manifest, documents) {
825
887
  const conflicts = [];
826
888
  const expectedIdentity = [