@tiangong-ai/cli 0.0.20 → 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.
- package/AGENTS.md +2 -2
- package/README.md +148 -11
- package/dist/cli.js +1 -1
- package/dist/research/orchestration.js +166 -11
- package/dist/research/orchestration.js.map +1 -1
- package/dist/research/workspace/broker.js +407 -31
- package/dist/research/workspace/broker.js.map +1 -1
- package/dist/research/workspace/capabilities.js +65 -0
- package/dist/research/workspace/capabilities.js.map +1 -1
- package/dist/research/workspace/constants.d.ts +1 -1
- package/dist/research/workspace/constants.js +4 -0
- package/dist/research/workspace/constants.js.map +1 -1
- package/dist/research/workspace/evidence.d.ts +32 -0
- package/dist/research/workspace/evidence.js +235 -0
- package/dist/research/workspace/evidence.js.map +1 -0
- package/dist/research/workspace/executor.d.ts +11 -1
- package/dist/research/workspace/executor.js +678 -105
- package/dist/research/workspace/executor.js.map +1 -1
- package/dist/research/workspace/input-plan.d.ts +5 -0
- package/dist/research/workspace/input-plan.js +319 -0
- package/dist/research/workspace/input-plan.js.map +1 -0
- package/dist/research/workspace/journal.js +2 -1
- package/dist/research/workspace/journal.js.map +1 -1
- package/dist/research/workspace/preflight.d.ts +108 -0
- package/dist/research/workspace/preflight.js +261 -0
- package/dist/research/workspace/preflight.js.map +1 -0
- package/dist/research/workspace/projects.d.ts +5 -2
- package/dist/research/workspace/projects.js +290 -6
- package/dist/research/workspace/projects.js.map +1 -1
- package/dist/research/workspace/runtime.d.ts +5 -1
- package/dist/research/workspace/runtime.js +1314 -196
- package/dist/research/workspace/runtime.js.map +1 -1
- package/dist/research/workspace/sanitization.d.ts +5 -0
- package/dist/research/workspace/sanitization.js +72 -0
- package/dist/research/workspace/sanitization.js.map +1 -0
- package/dist/research/workspace/schemas.d.ts +17 -0
- package/dist/research/workspace/schemas.js +342 -0
- package/dist/research/workspace/schemas.js.map +1 -0
- package/dist/research/workspace/storage.js +4 -0
- package/dist/research/workspace/storage.js.map +1 -1
- package/dist/research/workspace/types.d.ts +160 -0
- package/dist/research/workspace/workspace.d.ts +14 -3
- package/dist/research/workspace/workspace.js +374 -12
- package/dist/research/workspace/workspace.js.map +1 -1
- package/package.json +2 -1
package/AGENTS.md
CHANGED
|
@@ -15,8 +15,8 @@ checkPaths:
|
|
|
15
15
|
- .docpact/config.yaml
|
|
16
16
|
- docs/agents/**
|
|
17
17
|
- src/**
|
|
18
|
-
lastReviewedAt: 2026-08-
|
|
19
|
-
lastReviewedCommit:
|
|
18
|
+
lastReviewedAt: 2026-08-06
|
|
19
|
+
lastReviewedCommit: f5d031588a8eb2694573b8c3c83ff07c6ecd2b6f
|
|
20
20
|
---
|
|
21
21
|
|
|
22
22
|
# Tiangong AI CLI Contract
|
package/README.md
CHANGED
|
@@ -177,7 +177,7 @@ region are resolved by the AWS SDK, including `AWS_ACCESS_KEY_ID`,
|
|
|
177
177
|
|
|
178
178
|
## Research Workspaces
|
|
179
179
|
|
|
180
|
-
Create a bounded
|
|
180
|
+
Create a bounded smoke-test workspace and register a question:
|
|
181
181
|
|
|
182
182
|
```bash
|
|
183
183
|
tiangong-ai research workspace init /absolute/path/to/workspace
|
|
@@ -186,6 +186,38 @@ tiangong-ai research project init gpu-resource-impact \
|
|
|
186
186
|
--question "How do advanced GPU process nodes change environmental resource burdens?"
|
|
187
187
|
```
|
|
188
188
|
|
|
189
|
+
`smoke-test` is the default and is intended for deterministic fixtures and
|
|
190
|
+
low-cost canaries. Formal work must use `--mode production-research`, explicit
|
|
191
|
+
producer/reviewer model IDs and pricing in `config.json`, a requirements JSON
|
|
192
|
+
file, and budget confirmation when `maxCostUsd` exceeds
|
|
193
|
+
`confirmationCostUsd`:
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
tiangong-ai research workspace init /absolute/path/to/workspace \
|
|
197
|
+
--mode production-research
|
|
198
|
+
tiangong-ai research project preflight \
|
|
199
|
+
--workspace /absolute/path/to/workspace \
|
|
200
|
+
--question "How do advanced GPU process nodes change environmental resource burdens?" \
|
|
201
|
+
--requirements /absolute/path/to/evidence-requirements.json --json
|
|
202
|
+
tiangong-ai research project init gpu-resource-impact \
|
|
203
|
+
--workspace /absolute/path/to/workspace \
|
|
204
|
+
--question "How do advanced GPU process nodes change environmental resource burdens?" \
|
|
205
|
+
--requirements /absolute/path/to/evidence-requirements.json \
|
|
206
|
+
--confirm-budget --json
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
The requirements object declares `dimensions`, `sourceTypes`, `minSources`,
|
|
210
|
+
`minFullTextSources`, `minDatedSources`, and optional inclusive
|
|
211
|
+
`publicationDateFrom` / `publicationDateTo` boundaries (`YYYY-MM-DD` or
|
|
212
|
+
`null`). After discovery, a mechanical coverage gate verifies the declared
|
|
213
|
+
source, full-text, publication-date, and dimension summary before analysis.
|
|
214
|
+
For large local sources, pass an immutable `--input-plan` to both preflight and
|
|
215
|
+
project initialization. Each plan entry may expose either a separate
|
|
216
|
+
`contextPath` or non-overlapping, one-based `contextRanges`; the producer sees
|
|
217
|
+
only that bounded context, while independent review receives the hash-verified
|
|
218
|
+
full source. Symlinks, duplicate content, changed hashes, and context above
|
|
219
|
+
`maxInputContextTokens` are rejected.
|
|
220
|
+
|
|
189
221
|
The workspace stores its current protocol state under `.tiangong-research/`.
|
|
190
222
|
Each project follows five ordered stages: evidence discovery, analysis,
|
|
191
223
|
synthesis, independent review, and mechanical closure. Producer work defaults
|
|
@@ -204,19 +236,98 @@ tiangong-ai research project input add gpu-resource-impact \
|
|
|
204
236
|
--path /absolute/path/to/inventory.csv \
|
|
205
237
|
--role primary
|
|
206
238
|
tiangong-ai research workspace doctor --workspace /absolute/path/to/workspace
|
|
207
|
-
tiangong-ai research
|
|
239
|
+
tiangong-ai research workspace doctor --workspace /absolute/path/to/workspace \
|
|
240
|
+
--agent-smoke
|
|
241
|
+
tiangong-ai research run --workspace /absolute/path/to/workspace \
|
|
242
|
+
--project gpu-resource-impact --progress-jsonl
|
|
208
243
|
tiangong-ai research status --workspace /absolute/path/to/workspace --json
|
|
209
244
|
```
|
|
210
245
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
246
|
+
Use `research run --project <id>` for an auditable project-scoped run: only
|
|
247
|
+
that project is checked, scheduled, summarized, and bound to the top-level
|
|
248
|
+
JSON/JSONL `projectId`, so historical blocked siblings do not alter its exit
|
|
249
|
+
status. Omit `--project` and use `--max-parallel` only for an intentional
|
|
250
|
+
workspace-wide run.
|
|
251
|
+
|
|
252
|
+
Inputs are admitted by SHA-256. Agent work runs with a dedicated capsule HOME
|
|
253
|
+
in an ephemeral platform sandbox. Only the minimal supported agent auth file is
|
|
254
|
+
copied into that HOME. For Claude, an owner-only user `settings.json` is never
|
|
255
|
+
copied; only the whitelisted API key/token and HTTPS base URL fields from its
|
|
256
|
+
`env` object are injected in memory. Permissions, hooks, additional directories,
|
|
257
|
+
and unrelated settings are not admitted. The workspace credential file and the
|
|
258
|
+
rest of the host home are not admitted. Production doctor is blocked until
|
|
259
|
+
`--agent-smoke` actually starts both routes inside this boundary. A successful
|
|
260
|
+
smoke creates a 24-hour attestation bound to workspace config, capability lock,
|
|
261
|
+
output schema, and the resolved agent binary/wrapper fingerprints. Production
|
|
262
|
+
execution stops before invocation if the attestation expires or any bound value
|
|
263
|
+
drifts.
|
|
264
|
+
Use the exact `codex` / `claude` route by default. A custom wrapper must use an
|
|
265
|
+
absolute `binary` plus an absolute `wrapperTargetBinary`; the runtime injects
|
|
266
|
+
the resolved target path and independently hashes the target executable, route
|
|
267
|
+
launcher/wrapper, and internal adapter. A wrapper that performs an unpinned
|
|
268
|
+
PATH lookup is not a reproducible route.
|
|
269
|
+
|
|
270
|
+
The CLI owns the authoritative JSON Schemas for discovery, analysis,
|
|
271
|
+
synthesis, and review. Inspect one with `research schema show <stage> --json`.
|
|
272
|
+
Codex and Claude receive the schema through their structured-output options;
|
|
273
|
+
the CLI materializes the validated final object. A syntax/schema failure gets
|
|
274
|
+
at most one separately budgeted formatting repair, never a full blind retry.
|
|
275
|
+
The same isolated repair may correct mechanically diagnosed provenance or
|
|
276
|
+
finding/source bindings; it has no broker or research tools and cannot add new
|
|
277
|
+
facts.
|
|
278
|
+
|
|
279
|
+
Total, per-package, output, repair, broker-response bytes, estimated broker
|
|
280
|
+
context tokens, context items, wall-time, output-count, output-size, and attempt
|
|
281
|
+
limits live in `.tiangong-research/config.json`.
|
|
282
|
+
Before an agent starts, the runtime reserves the package token and conservative
|
|
283
|
+
price budget. The call-level check accounts for prompt and schema bytes at
|
|
284
|
+
three bytes per token, repeats input allowance for every permitted API turn,
|
|
285
|
+
and adds primary output plus a potential isolated repair's input and output;
|
|
286
|
+
insufficient package or remaining project budget prevents invocation. The
|
|
287
|
+
provider cost cap is the current package reservation, not the remaining
|
|
288
|
+
workspace allowance. Tool-free primary stages allow two protocol turns because
|
|
289
|
+
Claude structured output uses a `StructuredOutput` call plus its follow-up
|
|
290
|
+
result; external tools remain disabled. Formatting repair omits the provider
|
|
291
|
+
schema tool, uses one plain-JSON turn, and remains subject to the CLI schema and
|
|
292
|
+
semantic validators. Current Codex and Claude CLI adapters report
|
|
293
|
+
output usage only after execution, so preflight identifies
|
|
294
|
+
`outputTokenLimitEnforcement` as `post-execution`; captured bytes provide a
|
|
295
|
+
separate process bound, and over-limit output fails without promotion.
|
|
296
|
+
Preflight also reports per-stage `maxTurns` and `turnLimitEnforcement`: Claude
|
|
297
|
+
receives a provider-side turn cap, while the current Codex CLI exposes no such
|
|
298
|
+
flag, so its turn allowance is reservation guidance plus post-execution
|
|
299
|
+
accounting and rejection. Usage records separate input, cached-input, and output
|
|
300
|
+
tokens; `inputTokens` excludes
|
|
301
|
+
the separately reported cached portion. Configured pricing fills cost when the
|
|
302
|
+
provider does not report it. Run records and JSONL progress also preserve
|
|
303
|
+
sanitized event/item counts, provider turns, tool calls, reasoning tokens, and
|
|
304
|
+
bounded provider errors.
|
|
215
305
|
|
|
216
306
|
Every evidence source must resolve to an admitted input or a completed broker
|
|
217
|
-
receipt.
|
|
218
|
-
|
|
219
|
-
|
|
307
|
+
receipt. Successful broker bodies are immutable content-addressed objects under
|
|
308
|
+
`.tiangong-research/evidence/objects`; receipts are project-scoped and verified
|
|
309
|
+
for existence, size, and SHA-256 before every capsule stages them. Independent
|
|
310
|
+
review binds the requirements, receipts, permanent evidence objects, inputs,
|
|
311
|
+
and artifact hashes. Its exact packet and merged bounded evidence context are
|
|
312
|
+
also content-addressed under the project `review/packets/` and
|
|
313
|
+
`review/contexts/` directories. Mechanical closure re-verifies the packet,
|
|
314
|
+
context, broker objects, and registered local input hashes before recording
|
|
315
|
+
their safe locators. Capsule deletion therefore does not delete the durable
|
|
316
|
+
review chain.
|
|
317
|
+
|
|
318
|
+
Discovery alone may use the capability broker and workspace-read tools.
|
|
319
|
+
Analyze and synthesize receive bounded, hash-verified prior-stage artifacts in
|
|
320
|
+
their prompt with tools disabled. Review is also tool-free and limited to the
|
|
321
|
+
two turns required by the structured-output protocol:
|
|
322
|
+
its prompt embeds the complete generated artifacts, persistent packet, local
|
|
323
|
+
bounded contexts, and each cited broker receipt's exact bounded view. Full
|
|
324
|
+
local files and raw broker objects are hash-bound for durable human/mechanical
|
|
325
|
+
audit, but the model must not claim to have read beyond those embedded views.
|
|
326
|
+
The CLI mechanically derives local full-text availability, source types,
|
|
327
|
+
counts, date coverage, source IDs, and the coverage decision. A `partial`
|
|
328
|
+
dimension is usable but incomplete; a missing dimension or unmet declared
|
|
329
|
+
minimum blocks downstream work. Qualitative gaps remain visible without
|
|
330
|
+
silently changing those mechanical fields.
|
|
220
331
|
|
|
221
332
|
Method skills are declared in `.tiangong-research/capabilities.json` with
|
|
222
333
|
absolute skill paths and explicit permissions, then frozen before execution:
|
|
@@ -226,7 +337,11 @@ tiangong-ai research capability lock --workspace /absolute/path/to/workspace
|
|
|
226
337
|
tiangong-ai research capability verify --workspace /absolute/path/to/workspace
|
|
227
338
|
```
|
|
228
339
|
|
|
229
|
-
A capability using `brokered-network` must declare exact `allowedHosts
|
|
340
|
+
A capability using `brokered-network` must declare exact `allowedHosts` and may
|
|
341
|
+
declare an `http` policy with one exact `accept` value,
|
|
342
|
+
`allowedContentTypes`, `maxResponseBytes`, and `maxItems`. Its optional
|
|
343
|
+
`coverage` block declares dimensions, source types, full-text availability,
|
|
344
|
+
and publication-date availability for the preflight gap report.
|
|
230
345
|
Optional credentials declare logical IDs, exact host scopes, header names, and
|
|
231
346
|
prefixes. Put only the logical value map in `.tiangong-research/.env`:
|
|
232
347
|
|
|
@@ -236,7 +351,29 @@ TIANGONG_RESEARCH_CAPABILITY_CREDENTIALS_JSON={"source.example.api":"owner-provi
|
|
|
236
351
|
|
|
237
352
|
The broker injects declared credentials only for admitted HTTPS hosts. Agent
|
|
238
353
|
processes do not receive this variable. Keep the file owner-only (`chmod 600`)
|
|
239
|
-
and use `research workspace doctor` before a run.
|
|
354
|
+
and use `research workspace doctor` before a run. The broker preserves a
|
|
355
|
+
sanitized non-2xx excerpt, safe request ID, and `Retry-After`; it supports JSON
|
|
356
|
+
Pointer extraction, bounded item and estimated-token views, and an explicit
|
|
357
|
+
public-response cache. For a JSON collection, use the returned
|
|
358
|
+
`contextNextOffset` as the next `item_offset`; this creates a distinct bounded
|
|
359
|
+
context receipt while reusing the same verified raw object instead of
|
|
360
|
+
refetching it. Follow upstream pagination with its next admitted HTTPS URL.
|
|
361
|
+
The recorded estimate is `ceil(contextBytes / 3)`. Use `cache_mode=bypass` for
|
|
362
|
+
a fresh public request and always for credentialed requests. Raw URLs and
|
|
363
|
+
credential values are never journaled.
|
|
364
|
+
|
|
365
|
+
Retry policy is classified: deterministic configuration/4xx/output failures
|
|
366
|
+
stop, schema failures use the formatting repair path, and rate limits or
|
|
367
|
+
transient server failures alone may schedule another attempt. Explicit recovery
|
|
368
|
+
uses append-only management events:
|
|
369
|
+
|
|
370
|
+
```bash
|
|
371
|
+
tiangong-ai research project retry gpu-resource-impact --package analyze \
|
|
372
|
+
--workspace /absolute/path/to/workspace
|
|
373
|
+
tiangong-ai research project fork gpu-resource-impact \
|
|
374
|
+
--to gpu-resource-impact-v2 --resume-through analyze \
|
|
375
|
+
--workspace /absolute/path/to/workspace
|
|
376
|
+
```
|
|
240
377
|
|
|
241
378
|
## Research Search
|
|
242
379
|
|
package/dist/cli.js
CHANGED
|
@@ -2695,7 +2695,7 @@ Usage:
|
|
|
2695
2695
|
tiangong-ai kb collections list [--capability upload]
|
|
2696
2696
|
tiangong-ai kb course fulltext --document-id <id> --tags <tag>
|
|
2697
2697
|
tiangong-ai research workspace init <absolute-path>
|
|
2698
|
-
tiangong-ai research run [--workspace <absolute-path>] [--max-parallel 1]
|
|
2698
|
+
tiangong-ai research run [--workspace <absolute-path>] [--project <project-id>] [--max-parallel 1]
|
|
2699
2699
|
tiangong-ai research search --input <request.json>|--query <query> [--sources default|all|sci|report|patent|esg]
|
|
2700
2700
|
tiangong-ai education search --input <request.json>|--query <query> [--sources default|all|course|edu|textbook]
|
|
2701
2701
|
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { isAbsolute } from "node:path";
|
|
1
3
|
import { CliError } from "../errors.js";
|
|
2
4
|
import { stringifyJson, write } from "../io.js";
|
|
3
5
|
import { parseStrictArgs, strictBoolean, strictString } from "../strict-args.js";
|
|
4
6
|
import { lockCapabilities, verifyCapabilities } from "./workspace/capabilities.js";
|
|
5
7
|
import { inspectResearchContext } from "./workspace/context.js";
|
|
6
8
|
import { appendJournalEvent } from "./workspace/journal.js";
|
|
7
|
-
import {
|
|
9
|
+
import { readAndVerifyProjectInputPlan } from "./workspace/input-plan.js";
|
|
10
|
+
import { addProjectInput, initializeProject, forkProject, listProjects, loadProject, nextReadyPackage, normalizeEvidenceRequirements, refreshProject, retryProjectPackage, } from "./workspace/projects.js";
|
|
11
|
+
import { evaluateProjectPreflight } from "./workspace/preflight.js";
|
|
8
12
|
import { runResearchWorkspace } from "./workspace/runtime.js";
|
|
13
|
+
import { schemaForStage } from "./workspace/schemas.js";
|
|
9
14
|
import { workspacePaths } from "./workspace/storage.js";
|
|
10
15
|
import { doctorResearchWorkspace, initializeResearchWorkspace, requireResearchWorkspace, withWorkspaceLock, } from "./workspace/workspace.js";
|
|
11
16
|
const COMMON_OPTIONS = { help: "boolean", json: "boolean" };
|
|
@@ -19,6 +24,8 @@ export async function runResearchOrchestrationCommand(subcommand, argv, io) {
|
|
|
19
24
|
return runCapability(argv, io);
|
|
20
25
|
if (subcommand === "project")
|
|
21
26
|
return runProject(argv, io);
|
|
27
|
+
if (subcommand === "schema")
|
|
28
|
+
return runSchema(argv, io);
|
|
22
29
|
if (subcommand === "status")
|
|
23
30
|
return runStatus(argv, io);
|
|
24
31
|
if (subcommand === "run")
|
|
@@ -28,16 +35,41 @@ export async function runResearchOrchestrationCommand(subcommand, argv, io) {
|
|
|
28
35
|
export function researchOrchestrationHelp() {
|
|
29
36
|
return `Research workspace commands:
|
|
30
37
|
tiangong-ai research context inspect [--path <absolute-path>] [--json]
|
|
31
|
-
tiangong-ai research workspace init <absolute-path> [--name <name>] [--json]
|
|
32
|
-
tiangong-ai research workspace doctor [--workspace <absolute-path>] [--json]
|
|
38
|
+
tiangong-ai research workspace init <absolute-path> [--name <name>] [--mode smoke-test|production-research] [--json]
|
|
39
|
+
tiangong-ai research workspace doctor [--workspace <absolute-path>] [--agent-smoke] [--json]
|
|
33
40
|
tiangong-ai research capability lock [--workspace <absolute-path>] [--json]
|
|
34
41
|
tiangong-ai research capability verify [--workspace <absolute-path>] [--json]
|
|
35
|
-
tiangong-ai research project init <project-id> --question <question> [--workspace <path>] [--json]
|
|
42
|
+
tiangong-ai research project init <project-id> --question <question> [--requirements <absolute-json>] [--input-plan <absolute-json>] [--confirm-budget] [--workspace <path>] [--json]
|
|
43
|
+
tiangong-ai research project preflight --question <question> [--requirements <absolute-json>] [--input-plan <absolute-json>] [--workspace <path>] [--json]
|
|
36
44
|
tiangong-ai research project input add <project-id> --path <absolute-file> [--role primary|reference|replication] [--workspace <path>] [--json]
|
|
45
|
+
tiangong-ai research project retry <project-id> [--package <package-id>] [--workspace <path>] [--json]
|
|
46
|
+
tiangong-ai research project fork <source-project-id> --to <target-project-id> [--resume-through discover|analyze|synthesize] [--workspace <path>] [--json]
|
|
47
|
+
tiangong-ai research schema show <discover|analyze|synthesize|review|doctor> [--json]
|
|
37
48
|
tiangong-ai research status [--project <project-id>] [--workspace <absolute-path>] [--json]
|
|
38
|
-
tiangong-ai research run [--max-parallel <1-8>] [--max-cycles <1-100>] [--dry-run] [--workspace <absolute-path>] [--json]
|
|
49
|
+
tiangong-ai research run [--project <project-id>] [--max-parallel <1-8>] [--max-cycles <1-100>] [--dry-run] [--progress-jsonl] [--workspace <absolute-path>] [--json]
|
|
39
50
|
`;
|
|
40
51
|
}
|
|
52
|
+
async function runSchema(argv, io) {
|
|
53
|
+
const [action, ...rest] = argv;
|
|
54
|
+
if (!action || action === "--help" || action === "-h")
|
|
55
|
+
return writeHelp(io);
|
|
56
|
+
if (action !== "show")
|
|
57
|
+
throw unknownAction("research schema", action);
|
|
58
|
+
const args = parseStrictArgs(rest, COMMON_OPTIONS, "research schema show");
|
|
59
|
+
const stage = onePositional(args.positionals, "research schema show");
|
|
60
|
+
if (stage !== "discover" &&
|
|
61
|
+
stage !== "analyze" &&
|
|
62
|
+
stage !== "synthesize" &&
|
|
63
|
+
stage !== "review" &&
|
|
64
|
+
stage !== "doctor") {
|
|
65
|
+
throw new CliError(`Unsupported research schema stage: ${stage}`, {
|
|
66
|
+
code: "RESEARCH_SCHEMA_INVALID",
|
|
67
|
+
exitCode: 2,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
writeJson(io, schemaForStage(stage), args);
|
|
71
|
+
return 0;
|
|
72
|
+
}
|
|
41
73
|
async function runContext(argv, io) {
|
|
42
74
|
const [action, ...rest] = argv;
|
|
43
75
|
if (!action || action === "--help" || action === "-h")
|
|
@@ -55,16 +87,19 @@ async function runWorkspace(argv, io) {
|
|
|
55
87
|
if (!action || action === "--help" || action === "-h")
|
|
56
88
|
return writeHelp(io);
|
|
57
89
|
if (action === "init") {
|
|
58
|
-
const args = parseStrictArgs(rest, { ...COMMON_OPTIONS, name: "string" }, "research workspace init");
|
|
90
|
+
const args = parseStrictArgs(rest, { ...COMMON_OPTIONS, name: "string", mode: "string" }, "research workspace init");
|
|
59
91
|
const target = onePositional(args.positionals, "research workspace init");
|
|
60
|
-
const result = await initializeResearchWorkspace(target, strictString(args, "name"));
|
|
92
|
+
const result = await initializeResearchWorkspace(target, strictString(args, "name"), researchMode(strictString(args, "mode")));
|
|
61
93
|
writeJson(io, result, args);
|
|
62
94
|
return 0;
|
|
63
95
|
}
|
|
64
96
|
if (action === "doctor") {
|
|
65
|
-
const args = parseStrictArgs(rest, WORKSPACE_OPTIONS, "research workspace doctor");
|
|
97
|
+
const args = parseStrictArgs(rest, { ...WORKSPACE_OPTIONS, "agent-smoke": "boolean" }, "research workspace doctor");
|
|
66
98
|
rejectPositionals(args.positionals, "research workspace doctor");
|
|
67
|
-
const result = await doctorResearchWorkspace(strictString(args, "workspace") ?? process.cwd()
|
|
99
|
+
const result = await doctorResearchWorkspace(strictString(args, "workspace") ?? process.cwd(), {
|
|
100
|
+
agentSmoke: strictBoolean(args, "agent-smoke"),
|
|
101
|
+
environment: io.env,
|
|
102
|
+
});
|
|
68
103
|
writeJson(io, result, args);
|
|
69
104
|
return result.status === "ready" ? 0 : 3;
|
|
70
105
|
}
|
|
@@ -100,7 +135,13 @@ async function runProject(argv, io) {
|
|
|
100
135
|
if (!action || action === "--help" || action === "-h")
|
|
101
136
|
return writeHelp(io);
|
|
102
137
|
if (action === "init") {
|
|
103
|
-
const args = parseStrictArgs(rest, {
|
|
138
|
+
const args = parseStrictArgs(rest, {
|
|
139
|
+
...WORKSPACE_OPTIONS,
|
|
140
|
+
question: "string",
|
|
141
|
+
requirements: "string",
|
|
142
|
+
"input-plan": "string",
|
|
143
|
+
"confirm-budget": "boolean",
|
|
144
|
+
}, "research project init");
|
|
104
145
|
const projectId = onePositional(args.positionals, "research project init");
|
|
105
146
|
const question = strictString(args, "question");
|
|
106
147
|
if (!question) {
|
|
@@ -110,10 +151,36 @@ async function runProject(argv, io) {
|
|
|
110
151
|
});
|
|
111
152
|
}
|
|
112
153
|
const root = await workspaceFromArgs(args);
|
|
113
|
-
const
|
|
154
|
+
const requirementsPath = strictString(args, "requirements");
|
|
155
|
+
const inputPlanPath = strictString(args, "input-plan");
|
|
156
|
+
const project = await initializeProject(root, projectId, question, requirementsPath ? await readEvidenceRequirements(requirementsPath) : undefined, strictBoolean(args, "confirm-budget"), inputPlanPath ? await readAndVerifyProjectInputPlan(inputPlanPath) : undefined);
|
|
114
157
|
writeJson(io, project, args);
|
|
115
158
|
return 0;
|
|
116
159
|
}
|
|
160
|
+
if (action === "preflight") {
|
|
161
|
+
const args = parseStrictArgs(rest, {
|
|
162
|
+
...WORKSPACE_OPTIONS,
|
|
163
|
+
question: "string",
|
|
164
|
+
requirements: "string",
|
|
165
|
+
"input-plan": "string",
|
|
166
|
+
}, "research project preflight");
|
|
167
|
+
rejectPositionals(args.positionals, "research project preflight");
|
|
168
|
+
const question = strictString(args, "question")?.trim();
|
|
169
|
+
if (!question) {
|
|
170
|
+
throw new CliError("research project preflight requires --question.", {
|
|
171
|
+
code: "RESEARCH_QUESTION_REQUIRED",
|
|
172
|
+
exitCode: 2,
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
const root = await workspaceFromArgs(args);
|
|
176
|
+
const requirementsPath = strictString(args, "requirements");
|
|
177
|
+
const requirements = requirementsPath ? await readEvidenceRequirements(requirementsPath) : null;
|
|
178
|
+
const inputPlanPath = strictString(args, "input-plan");
|
|
179
|
+
const inputPlan = inputPlanPath ? await readAndVerifyProjectInputPlan(inputPlanPath) : null;
|
|
180
|
+
const result = await evaluateProjectPreflight(root, question, requirements, inputPlan);
|
|
181
|
+
writeJson(io, result, args);
|
|
182
|
+
return result.readyToInitialize ? 0 : 3;
|
|
183
|
+
}
|
|
117
184
|
if (action === "input") {
|
|
118
185
|
const [inputAction, ...inputRest] = rest;
|
|
119
186
|
if (inputAction !== "add")
|
|
@@ -133,6 +200,29 @@ async function runProject(argv, io) {
|
|
|
133
200
|
writeJson(io, input, args);
|
|
134
201
|
return 0;
|
|
135
202
|
}
|
|
203
|
+
if (action === "retry") {
|
|
204
|
+
const args = parseStrictArgs(rest, { ...WORKSPACE_OPTIONS, package: "string" }, "research project retry");
|
|
205
|
+
const projectId = onePositional(args.positionals, "research project retry");
|
|
206
|
+
const root = await workspaceFromArgs(args);
|
|
207
|
+
const project = await retryProjectPackage(root, projectId, strictString(args, "package"));
|
|
208
|
+
writeJson(io, project, args);
|
|
209
|
+
return 0;
|
|
210
|
+
}
|
|
211
|
+
if (action === "fork") {
|
|
212
|
+
const args = parseStrictArgs(rest, { ...WORKSPACE_OPTIONS, to: "string", "resume-through": "string" }, "research project fork");
|
|
213
|
+
const sourceProjectId = onePositional(args.positionals, "research project fork");
|
|
214
|
+
const targetProjectId = strictString(args, "to");
|
|
215
|
+
if (!targetProjectId) {
|
|
216
|
+
throw new CliError("research project fork requires --to.", {
|
|
217
|
+
code: "RESEARCH_PROJECT_FORK_INVALID",
|
|
218
|
+
exitCode: 2,
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
const root = await workspaceFromArgs(args);
|
|
222
|
+
const project = await forkProject(root, sourceProjectId, targetProjectId, resumeStage(strictString(args, "resume-through")));
|
|
223
|
+
writeJson(io, project, args);
|
|
224
|
+
return 0;
|
|
225
|
+
}
|
|
136
226
|
throw unknownAction("research project", action);
|
|
137
227
|
}
|
|
138
228
|
async function runStatus(argv, io) {
|
|
@@ -163,19 +253,84 @@ async function runWorkspaceExecution(argv, io) {
|
|
|
163
253
|
...WORKSPACE_OPTIONS,
|
|
164
254
|
"max-parallel": "string",
|
|
165
255
|
"max-cycles": "string",
|
|
256
|
+
project: "string",
|
|
166
257
|
"dry-run": "boolean",
|
|
258
|
+
"progress-jsonl": "boolean",
|
|
167
259
|
}, "research run");
|
|
168
260
|
rejectPositionals(args.positionals, "research run");
|
|
169
261
|
const root = await workspaceFromArgs(args);
|
|
262
|
+
const progressJsonl = strictBoolean(args, "progress-jsonl");
|
|
263
|
+
const projectId = strictString(args, "project");
|
|
170
264
|
const result = await runResearchWorkspace(root, {
|
|
171
265
|
maxParallel: integerOption(strictString(args, "max-parallel"), 1, "--max-parallel"),
|
|
172
266
|
maxCycles: integerOption(strictString(args, "max-cycles"), 20, "--max-cycles"),
|
|
173
267
|
dryRun: strictBoolean(args, "dry-run"),
|
|
174
268
|
environment: io.env,
|
|
269
|
+
...(projectId ? { projectId } : {}),
|
|
270
|
+
...(progressJsonl
|
|
271
|
+
? { onProgress: (event) => write(io.stderr, `${JSON.stringify(event)}\n`) }
|
|
272
|
+
: {}),
|
|
175
273
|
});
|
|
176
274
|
writeJson(io, result, args);
|
|
177
275
|
return result.status === "blocked" ? 3 : 0;
|
|
178
276
|
}
|
|
277
|
+
async function readEvidenceRequirements(path) {
|
|
278
|
+
if (!isAbsolute(path)) {
|
|
279
|
+
throw new CliError("--requirements must be an absolute JSON file path.", {
|
|
280
|
+
code: "RESEARCH_EVIDENCE_REQUIREMENTS_INVALID",
|
|
281
|
+
exitCode: 2,
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
let value;
|
|
285
|
+
try {
|
|
286
|
+
value = JSON.parse(await readFile(path, "utf8"));
|
|
287
|
+
}
|
|
288
|
+
catch (error) {
|
|
289
|
+
throw new CliError("Evidence requirements file is missing or invalid JSON.", {
|
|
290
|
+
code: "RESEARCH_EVIDENCE_REQUIREMENTS_INVALID",
|
|
291
|
+
exitCode: 2,
|
|
292
|
+
details: { error: String(error) },
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
if (!value ||
|
|
296
|
+
typeof value !== "object" ||
|
|
297
|
+
Array.isArray(value) ||
|
|
298
|
+
!Array.isArray(value.dimensions) ||
|
|
299
|
+
!Array.isArray(value.sourceTypes) ||
|
|
300
|
+
typeof value.minSources !== "number" ||
|
|
301
|
+
typeof value.minFullTextSources !== "number" ||
|
|
302
|
+
typeof value.minDatedSources !== "number" ||
|
|
303
|
+
!(value.publicationDateFrom === null ||
|
|
304
|
+
typeof value.publicationDateFrom === "string") ||
|
|
305
|
+
!(value.publicationDateTo === null ||
|
|
306
|
+
typeof value.publicationDateTo === "string")) {
|
|
307
|
+
throw new CliError("Evidence requirements file has an unsupported shape.", {
|
|
308
|
+
code: "RESEARCH_EVIDENCE_REQUIREMENTS_INVALID",
|
|
309
|
+
exitCode: 2,
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
return normalizeEvidenceRequirements(value);
|
|
313
|
+
}
|
|
314
|
+
function researchMode(value) {
|
|
315
|
+
if (!value || value === "smoke-test")
|
|
316
|
+
return "smoke-test";
|
|
317
|
+
if (value === "production-research")
|
|
318
|
+
return value;
|
|
319
|
+
throw new CliError(`Unsupported research mode: ${value}`, {
|
|
320
|
+
code: "RESEARCH_MODE_INVALID",
|
|
321
|
+
exitCode: 2,
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
function resumeStage(value) {
|
|
325
|
+
if (!value)
|
|
326
|
+
return undefined;
|
|
327
|
+
if (value === "discover" || value === "analyze" || value === "synthesize")
|
|
328
|
+
return value;
|
|
329
|
+
throw new CliError(`Unsupported --resume-through stage: ${value}`, {
|
|
330
|
+
code: "RESEARCH_PROJECT_FORK_INVALID",
|
|
331
|
+
exitCode: 2,
|
|
332
|
+
});
|
|
333
|
+
}
|
|
179
334
|
async function workspaceFromArgs(args) {
|
|
180
335
|
return requireResearchWorkspace(strictString(args, "workspace") ?? process.cwd());
|
|
181
336
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestration.js","sourceRoot":"","sources":["../../src/research/orchestration.ts"],"names":[],"mappings":"AAEA,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,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAElC,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,+BAA+B,CACnD,UAAkB,EAClB,IAAc,EACd,EAAS;IAET,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1D,IAAI,UAAU,KAAK,WAAW;QAAE,OAAO,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9D,IAAI,UAAU,KAAK,YAAY;QAAE,OAAO,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAChE,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1D,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACxD,IAAI,UAAU,KAAK,KAAK;QAAE,OAAO,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO;;;;;;;;;;CAUR,CAAC;AACF,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAc,EAAE,EAAS;IACjD,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,aAAa,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,eAAe,CAC1B,IAAI,EACJ,EAAE,GAAG,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,EACrC,0BAA0B,CAC3B,CAAC;IACF,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzF,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAc,EAAE,EAAS;IACnD,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,eAAe,CAC1B,IAAI,EACJ,EAAE,GAAG,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,EACrC,yBAAyB,CAC1B,CAAC;QACF,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACrF,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;QACnF,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/F,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,aAAa,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAc,EAAE,EAAS;IACpD,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ;QAAE,MAAM,aAAa,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACjG,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,iBAAiB,EAAE,uBAAuB,MAAM,EAAE,CAAC,CAAC;IACvF,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,uBAAuB,MAAM,EAAE,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE;gBACvF,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM;gBAChC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;aACzF,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACpD,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAClC,OAAO,YAAY,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAc,EAAE,EAAS;IACjD,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,eAAe,CAC1B,IAAI,EACJ,EAAE,GAAG,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAC5C,uBAAuB,CACxB,CAAC;QACF,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,QAAQ,CAAC,4CAA4C,EAAE;gBAC/D,IAAI,EAAE,4BAA4B;gBAClC,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACnE,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,MAAM,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;QACzC,IAAI,WAAW,KAAK,KAAK;YAAE,MAAM,aAAa,CAAC,wBAAwB,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;QAC5F,MAAM,IAAI,GAAG,eAAe,CAC1B,SAAS,EACT,EAAE,GAAG,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EACxD,4BAA4B,CAC7B,CAAC;QACF,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,4BAA4B,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,QAAQ,CAAC,6CAA6C,EAAE;gBAChE,IAAI,EAAE,yBAAyB;gBAC/B,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACtE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,aAAa,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAc,EAAE,EAAS;IAChD,MAAM,IAAI,GAAG,eAAe,CAC1B,IAAI,EACJ,EAAE,GAAG,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,EAC3C,iBAAiB,CAClB,CAAC;IACF,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,eAAe;QAC9B,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAC5C,CAAC,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACnC,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM;YACtC,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,IAAI;YACnD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;KACJ,CAAC;IACF,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAAc,EAAE,EAAS;IAC5D,MAAM,IAAI,GAAG,eAAe,CAC1B,IAAI,EACJ;QACE,GAAG,iBAAiB;QACpB,cAAc,EAAE,QAAQ;QACxB,YAAY,EAAE,QAAQ;QACtB,SAAS,EAAE,SAAS;KACrB,EACD,cAAc,CACf,CAAC;IACF,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE;QAC9C,WAAW,EAAE,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC;QACnF,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC;QAC9E,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC;QACtC,WAAW,EAAE,EAAE,CAAC,GAAG;KACpB,CAAC,CAAC;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAAwC;IACvE,OAAO,wBAAwB,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,SAAS,CAAC,EAAS,EAAE,KAAc,EAAE,IAAwC;IACpF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,SAAS,CAAC,EAAS;IAC1B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,aAAa,CAAC,WAAqB,EAAE,OAAe;IAC3D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,QAAQ,CAAC,GAAG,OAAO,4CAA4C,EAAE;YACzE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,EAAE,WAAW,EAAE;SACzB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,WAAW,CAAC,CAAC,CAAE,CAAC;AACzB,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,SAAS,CAAC,KAAyB;IAC1C,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACpD,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,aAAa;QAAE,OAAO,KAAK,CAAC;IACnE,MAAM,IAAI,QAAQ,CAAC,oCAAoC,KAAK,EAAE,EAAE;QAC9D,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAyB,EAAE,QAAgB,EAAE,KAAa;IAC/E,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,QAAQ,CAAC,GAAG,KAAK,sBAAsB,EAAE;YACjD,IAAI,EAAE,6BAA6B;YACnC,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,OAAe,EAAE,MAAc;IACpD,OAAO,IAAI,QAAQ,CAAC,WAAW,OAAO,YAAY,MAAM,EAAE,EAAE;QAC1D,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"orchestration.js","sourceRoot":"","sources":["../../src/research/orchestration.ts"],"names":[],"mappings":"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"}
|