@tiangong-ai/cli 0.0.32 → 0.0.34
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 +7 -2
- package/README.md +72 -19
- package/dist/research/commands.js +58 -1
- package/dist/research/commands.js.map +1 -1
- package/dist/research/orchestration.js +388 -31
- package/dist/research/orchestration.js.map +1 -1
- package/dist/research/workspace/acquisition.d.ts +71 -0
- package/dist/research/workspace/acquisition.js +593 -0
- package/dist/research/workspace/acquisition.js.map +1 -0
- package/dist/research/workspace/artifacts.d.ts +43 -0
- package/dist/research/workspace/artifacts.js +544 -0
- package/dist/research/workspace/artifacts.js.map +1 -0
- package/dist/research/workspace/broker.js +265 -56
- package/dist/research/workspace/broker.js.map +1 -1
- package/dist/research/workspace/constants.d.ts +1 -0
- package/dist/research/workspace/constants.js +4 -2
- package/dist/research/workspace/constants.js.map +1 -1
- package/dist/research/workspace/context.js +106 -11
- package/dist/research/workspace/context.js.map +1 -1
- package/dist/research/workspace/discovery-planning.d.ts +25 -0
- package/dist/research/workspace/discovery-planning.js +106 -0
- package/dist/research/workspace/discovery-planning.js.map +1 -0
- package/dist/research/workspace/discovery-status.d.ts +46 -0
- package/dist/research/workspace/discovery-status.js +183 -0
- package/dist/research/workspace/discovery-status.js.map +1 -0
- package/dist/research/workspace/discovery.d.ts +25 -0
- package/dist/research/workspace/discovery.js +268 -0
- package/dist/research/workspace/discovery.js.map +1 -0
- package/dist/research/workspace/downloads.d.ts +76 -0
- package/dist/research/workspace/downloads.js +274 -0
- package/dist/research/workspace/downloads.js.map +1 -0
- package/dist/research/workspace/evidence-ledger.d.ts +52 -0
- package/dist/research/workspace/evidence-ledger.js +487 -0
- package/dist/research/workspace/evidence-ledger.js.map +1 -0
- package/dist/research/workspace/evidence.d.ts +1 -0
- package/dist/research/workspace/evidence.js +2 -0
- package/dist/research/workspace/evidence.js.map +1 -1
- package/dist/research/workspace/input-plan.js +4 -0
- package/dist/research/workspace/input-plan.js.map +1 -1
- package/dist/research/workspace/native-activity.d.ts +65 -0
- package/dist/research/workspace/native-activity.js +153 -0
- package/dist/research/workspace/native-activity.js.map +1 -0
- package/dist/research/workspace/preflight.d.ts +5 -0
- package/dist/research/workspace/preflight.js +37 -17
- package/dist/research/workspace/preflight.js.map +1 -1
- package/dist/research/workspace/projects.d.ts +3 -1
- package/dist/research/workspace/projects.js +346 -5
- package/dist/research/workspace/projects.js.map +1 -1
- package/dist/research/workspace/runtime.d.ts +106 -4
- package/dist/research/workspace/runtime.js +947 -80
- package/dist/research/workspace/runtime.js.map +1 -1
- package/dist/research/workspace/sanitization.js +28 -6
- package/dist/research/workspace/sanitization.js.map +1 -1
- package/dist/research/workspace/schemas.d.ts +3 -0
- package/dist/research/workspace/schemas.js +206 -33
- package/dist/research/workspace/schemas.js.map +1 -1
- package/dist/research/workspace/setup-catalog.js +5 -5
- package/dist/research/workspace/setup-invocation.d.ts +11 -0
- package/dist/research/workspace/setup-invocation.js +34 -0
- package/dist/research/workspace/setup-invocation.js.map +1 -0
- package/dist/research/workspace/setup-wizard.js +10 -4
- package/dist/research/workspace/setup-wizard.js.map +1 -1
- package/dist/research/workspace/setup.d.ts +55 -7
- package/dist/research/workspace/setup.js +603 -32
- package/dist/research/workspace/setup.js.map +1 -1
- package/dist/research/workspace/types.d.ts +52 -3
- package/dist/research/workspace/workspace.js +45 -6
- package/dist/research/workspace/workspace.js.map +1 -1
- package/package.json +4 -2
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-12
|
|
19
|
+
lastReviewedCommit: 7d692de934c51178df520ccdaa212acc7dc303f0
|
|
20
20
|
---
|
|
21
21
|
|
|
22
22
|
# Tiangong AI CLI Contract
|
|
@@ -60,6 +60,7 @@ This repository owns the Tiangong AI command-line interface.
|
|
|
60
60
|
Run before delivery:
|
|
61
61
|
|
|
62
62
|
```bash
|
|
63
|
+
npm run test:clean
|
|
63
64
|
npm run lint
|
|
64
65
|
npm run build
|
|
65
66
|
npm test
|
|
@@ -68,6 +69,10 @@ docpact validate-config --root . --strict
|
|
|
68
69
|
docpact lint --root . --worktree --mode enforce
|
|
69
70
|
```
|
|
70
71
|
|
|
72
|
+
For Auto Research changes, `npm run test:clean` is the authoritative TDD gate.
|
|
73
|
+
Write the regression first, observe it fail in that clean container, then make
|
|
74
|
+
it pass there. Host-only results are supplemental.
|
|
75
|
+
|
|
71
76
|
Use `npm run typecheck` for a faster TypeScript-only check.
|
|
72
77
|
Use `npm run prepush:gate` when `docpact` is installed and you want the
|
|
73
78
|
aggregated local quality gate.
|
package/README.md
CHANGED
|
@@ -12,8 +12,8 @@ checkPaths:
|
|
|
12
12
|
- package.json
|
|
13
13
|
- bin/**
|
|
14
14
|
- src/**
|
|
15
|
-
lastReviewedAt: 2026-08-
|
|
16
|
-
lastReviewedCommit:
|
|
15
|
+
lastReviewedAt: 2026-08-12
|
|
16
|
+
lastReviewedCommit: ac34420a63cb02898f8c38b1c1af64f0439e862f
|
|
17
17
|
---
|
|
18
18
|
|
|
19
19
|
# Tiangong AI CLI
|
|
@@ -235,6 +235,16 @@ 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
|
+
If the full orchestrator was selected, accepted apply creates a separate
|
|
239
|
+
project-local `tiangong-auto-research-recovery` Skill after credentials are
|
|
240
|
+
stored and before source checkout. This CLI-generated, plan-bound shim can only
|
|
241
|
+
inspect context/status and execute the exact-version retry returned by setup; it
|
|
242
|
+
cannot perform research, call standalone evidence, or access credentials. A
|
|
243
|
+
checkout or install failure therefore remains discoverable without falling back
|
|
244
|
+
to a global Skill. After the full external orchestrator matches its reviewed
|
|
245
|
+
tree hash, setup verifies the shim byte-for-byte and removes only that generated
|
|
246
|
+
directory. Modified, symlinked, or ambiguous recovery bytes block cleanup.
|
|
247
|
+
|
|
238
248
|
Production admission requires at least one locked external capability with
|
|
239
249
|
`brokered-network` and `discoveryScopes: ["public-internet"]`; an input plan or
|
|
240
250
|
local files alone cannot represent internet coverage. The machine-readable
|
|
@@ -259,6 +269,15 @@ regular non-symlink `runtime-lock.json` exact stable CLI version. Setup and
|
|
|
259
269
|
release CI reject a missing resolver or any stale exact CLI version in the
|
|
260
270
|
orchestrator's `SKILL.md` or `references/*.md`.
|
|
261
271
|
|
|
272
|
+
`research setup status --json` reports credential persistence separately from
|
|
273
|
+
readiness. It also reports the effective exact-npx CLI package/version/root,
|
|
274
|
+
the selected project orchestrator, any temporary recovery shim, ignored global
|
|
275
|
+
same-name Skills, legacy wrappers that still contain an unmanaged PATH CLI
|
|
276
|
+
fallback, and the real failed source/immutable ref/cache state when checkout is
|
|
277
|
+
retryable. A direct `research search` inside a managed workspace stops before
|
|
278
|
+
network access and returns the same broker-vs-standalone and setup provenance;
|
|
279
|
+
it never converts a stored broker credential into an ambient credential.
|
|
280
|
+
|
|
262
281
|
The default `internet-research` profile selects Brave Web Search and News
|
|
263
282
|
Search. `internet-research-with-context` additionally selects the
|
|
264
283
|
subscription-dependent LLM Context endpoint, while
|
|
@@ -332,8 +351,9 @@ full source. Symlinks, duplicate content, changed hashes, and context above
|
|
|
332
351
|
`maxInputContextTokens` are rejected.
|
|
333
352
|
|
|
334
353
|
The workspace stores its current protocol state under `.tiangong-research/`.
|
|
335
|
-
Each project follows
|
|
336
|
-
|
|
354
|
+
Each project follows the evidence-first sequence: broad discovery, strict
|
|
355
|
+
admission, acquisition audit, immutable evidence freeze, analysis, synthesis,
|
|
356
|
+
independent review, and mechanical closure. Discover, acquire, analyze, and
|
|
337
357
|
synthesize run in the current interactive Codex app/session or Claude Code
|
|
338
358
|
session. The CLI never launches a nested producer process. Independent review
|
|
339
359
|
runs through the other configured agent family's CLI, and execution is blocked
|
|
@@ -369,6 +389,31 @@ tiangong-ai research project stage submit gpu-resource-impact \
|
|
|
369
389
|
tiangong-ai research status --workspace /absolute/path/to/workspace --json
|
|
370
390
|
```
|
|
371
391
|
|
|
392
|
+
The discover packet derives a bounded multi-channel plan from reviewed evidence
|
|
393
|
+
requirements. Required channels run first; exact repeated requests reuse the
|
|
394
|
+
project cache without another provider call but still consume a bounded context
|
|
395
|
+
view; remaining views are spent only on explicit coverage,
|
|
396
|
+
counterevidence, date, applicability, or full-text gaps. Native Web/Browser
|
|
397
|
+
leads may be registered as supplemental candidates, but they cannot be admitted
|
|
398
|
+
until the same canonical URL/DOI has an immutable broker occurrence. Registered
|
|
399
|
+
inputs are formal candidates under their own content-hash identity.
|
|
400
|
+
The acquire packet audits every provisional source and registers only explicit
|
|
401
|
+
files—never a directory or “latest download.” PDF and Office artifacts are
|
|
402
|
+
structurally verified and content-addressed. A registered binary full file is
|
|
403
|
+
review-bound but is not counted as producer-readable full text unless an
|
|
404
|
+
admitted UTF-8 text/JSON/HTML/CSV/Markdown derivative exists. Such a derivative
|
|
405
|
+
names its registered parent and inherits that parent's canonical source URL;
|
|
406
|
+
it does not invent a second network-download binding, and a conflicting URL is
|
|
407
|
+
rejected.
|
|
408
|
+
|
|
409
|
+
Successful acquisition freezes an immutable evidence snapshot before analysis.
|
|
410
|
+
The reviewer and mechanical closure bind and recheck the snapshot chain,
|
|
411
|
+
ledger, receipts, selected artifacts, excerpts, analysis, and report. Refresh a
|
|
412
|
+
closed result with `research project addendum SOURCE --to TARGET`; the original
|
|
413
|
+
closure remains unchanged, the child snapshot records a mechanical delta, and
|
|
414
|
+
default status hides the superseded project (`research status --all` shows full
|
|
415
|
+
lineage).
|
|
416
|
+
|
|
372
417
|
Use `research run --project <id>` for an auditable project-scoped run: only
|
|
373
418
|
that project is checked, scheduled, summarized, and bound to the top-level
|
|
374
419
|
JSON/JSONL `projectId`, so historical blocked siblings do not alter its exit
|
|
@@ -405,8 +450,9 @@ the resolved target path and independently hashes the target executable, route
|
|
|
405
450
|
launcher/wrapper, and internal adapter. A wrapper that performs an unpinned
|
|
406
451
|
PATH lookup is not a reproducible route.
|
|
407
452
|
|
|
408
|
-
The CLI owns the authoritative JSON Schemas for discovery,
|
|
409
|
-
synthesis, and review. Inspect one with
|
|
453
|
+
The CLI owns the authoritative JSON Schemas for discovery, acquisition,
|
|
454
|
+
analysis, synthesis, and review. Inspect one with
|
|
455
|
+
`research schema show <stage> --json`.
|
|
410
456
|
Native producer preparation returns the exact schema and prompt to the current
|
|
411
457
|
host; `stage submit` validates and atomically materializes its JSON. A rejected
|
|
412
458
|
native submission keeps the bound session for an explicit correction and never
|
|
@@ -418,12 +464,16 @@ repair with no research tools.
|
|
|
418
464
|
Total, per-package, output, repair, broker-response bytes, estimated broker
|
|
419
465
|
context tokens, context items, wall-time, output-count, output-size, and attempt
|
|
420
466
|
limits live in `.tiangong-research/config.json`.
|
|
421
|
-
New workspaces
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
467
|
+
New production workspaces use generous but finite runaway ceilings: 20,000,000
|
|
468
|
+
total tokens and package ceilings of 12,000,000 for discovery, 2,000,000 for
|
|
469
|
+
acquisition, 1,500,000 each for analysis and synthesis, and 2,500,000 for
|
|
470
|
+
review. Primary output is bounded at 32,000 tokens and a separately invoked
|
|
471
|
+
repair at 16,000. The production broker hard ceiling is 256 bounded views with
|
|
472
|
+
32,000 context tokens per view; input context is bounded at 128,000 tokens.
|
|
473
|
+
These values are not a target spend. Coverage-derived working plans and early
|
|
474
|
+
stop control ordinary use, while the finite ceilings, three attempts per
|
|
475
|
+
package, and explicit confirmation above the cost threshold stop runaway work.
|
|
476
|
+
Smoke-test workspaces retain their smaller low-cost defaults.
|
|
427
477
|
Before project initialization and every executable package, the control plane
|
|
428
478
|
requires the complete token and conservative price reservation to fit. Native
|
|
429
479
|
producer stages reserve prompt, schema, admitted context, bounded broker
|
|
@@ -438,13 +488,16 @@ Independent review uses the pre-call reservation calculator and the reviewer's
|
|
|
438
488
|
provider-side structured-output/turn controls where available. Review admission
|
|
439
489
|
reserves three maximum-size generated artifacts plus one globally bounded
|
|
440
490
|
evidence-excerpt bundle, and formatting repair remains one separately budgeted,
|
|
441
|
-
tool-free JSON correction.
|
|
442
|
-
mechanically
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
491
|
+
tool-free JSON correction. Production workspaces enforce a finite 256-view
|
|
492
|
+
broker ceiling mechanically, while each project derives a much smaller working
|
|
493
|
+
budget from its reviewed coverage requirements and stops early when they are
|
|
494
|
+
supportable. Every successful native evidence fetch reports the remaining
|
|
495
|
+
working budget; excess calls are rejected before another provider request or
|
|
496
|
+
evidence promotion. Reviewer usage records separate input, cached-input, and
|
|
497
|
+
output tokens; configured pricing fills cost when the provider omits it. Run
|
|
498
|
+
records and JSONL progress preserve sanitized accounting mode, event/item
|
|
499
|
+
counts, provider turns, tool calls, reasoning tokens, and bounded provider
|
|
500
|
+
errors.
|
|
448
501
|
|
|
449
502
|
Every evidence source must resolve to an admitted input or a completed broker
|
|
450
503
|
receipt. Successful broker bodies are immutable content-addressed objects under
|
|
@@ -2,8 +2,9 @@ import { runEdgeSearch } from "../edge-search.js";
|
|
|
2
2
|
import { CliError } from "../errors.js";
|
|
3
3
|
import { readJsonInput, stringifyJson, write } from "../io.js";
|
|
4
4
|
import { parseStrictArgs, strictBoolean, strictString } from "../strict-args.js";
|
|
5
|
-
import { parseResearchSources, researchSourceConfig, resolveResearchConfig } from "./config.js";
|
|
5
|
+
import { parseResearchSources, researchSourceConfig, resolveResearchConfig, } from "./config.js";
|
|
6
6
|
import { researchOrchestrationHelp, runResearchOrchestrationCommand } from "./orchestration.js";
|
|
7
|
+
import { inspectResearchContext } from "./workspace/context.js";
|
|
7
8
|
const RESEARCH_SEARCH_OPTIONS = {
|
|
8
9
|
help: "boolean",
|
|
9
10
|
json: "boolean",
|
|
@@ -88,6 +89,7 @@ async function runResearchSearchCommand(argv, io) {
|
|
|
88
89
|
}
|
|
89
90
|
const sourceIds = parseResearchSources(strictString(args, "sources"));
|
|
90
91
|
const config = resolveResearchConfig(args, io.env);
|
|
92
|
+
await assertStandaloneSearchContext(io.env, sourceIds, config);
|
|
91
93
|
const inputPath = strictString(args, "input");
|
|
92
94
|
const body = researchRequestBody(args);
|
|
93
95
|
const result = await runEdgeSearch({
|
|
@@ -101,6 +103,61 @@ async function runResearchSearchCommand(argv, io) {
|
|
|
101
103
|
writeSearchResult(io, result, strictBoolean(args, "json"));
|
|
102
104
|
return 0;
|
|
103
105
|
}
|
|
106
|
+
async function assertStandaloneSearchContext(environment, sourceIds, config) {
|
|
107
|
+
const context = await inspectResearchContext(process.cwd());
|
|
108
|
+
if (context.role !== "setup" && context.role !== "workspace")
|
|
109
|
+
return;
|
|
110
|
+
const setup = context.setup;
|
|
111
|
+
const ready = setup?.status === "ready";
|
|
112
|
+
const blocked = setup?.status === "blocked";
|
|
113
|
+
const setupStatus = context.root
|
|
114
|
+
? await import("./workspace/setup.js")
|
|
115
|
+
.then(({ inspectResearchSetupStatus }) => inspectResearchSetupStatus(context.root, environment))
|
|
116
|
+
.catch(() => null)
|
|
117
|
+
: null;
|
|
118
|
+
const configuredBrokerIds = setupStatus?.credentialReadiness.configuredIds ?? [];
|
|
119
|
+
const standaloneConfiguredSources = sourceIds.filter((sourceId) => config.sources[sourceId].apiKey.length > 0);
|
|
120
|
+
const standaloneCredential = standaloneConfiguredSources.length === 0
|
|
121
|
+
? "absent"
|
|
122
|
+
: standaloneConfiguredSources.length === sourceIds.length
|
|
123
|
+
? "present"
|
|
124
|
+
: "partial";
|
|
125
|
+
throw new CliError(ready
|
|
126
|
+
? "Direct research search is disabled inside an Auto Research workspace."
|
|
127
|
+
: blocked
|
|
128
|
+
? "Broker credentials may be stored, but Auto Research setup is blocked; standalone search cannot consume broker credentials."
|
|
129
|
+
: "Auto Research setup is incomplete; standalone search will not bypass it.", {
|
|
130
|
+
code: ready
|
|
131
|
+
? "AUTO_RESEARCH_BROKER_REQUIRED"
|
|
132
|
+
: blocked
|
|
133
|
+
? "AUTO_RESEARCH_SETUP_BLOCKED"
|
|
134
|
+
: "AUTO_RESEARCH_SETUP_INCOMPLETE",
|
|
135
|
+
exitCode: 3,
|
|
136
|
+
details: {
|
|
137
|
+
executionMode: "managed-workspace",
|
|
138
|
+
requestedExecutionMode: "standalone",
|
|
139
|
+
recommendedExecutionMode: "managed-workspace",
|
|
140
|
+
credentialScope: "broker",
|
|
141
|
+
brokerCredentialStore: configuredBrokerIds.length > 0 ? "present" : "absent",
|
|
142
|
+
brokerConfiguredCredentialIds: configuredBrokerIds,
|
|
143
|
+
standaloneCredential,
|
|
144
|
+
standaloneConfiguredSources,
|
|
145
|
+
networkAttempted: false,
|
|
146
|
+
workspace: context.root,
|
|
147
|
+
setupStatus: setup?.status ?? "missing",
|
|
148
|
+
failedStep: setup?.blocker?.step ?? setup?.currentStep ?? null,
|
|
149
|
+
setupBlocker: setup?.blocker ?? null,
|
|
150
|
+
effectiveCli: setupStatus?.provenance.effectiveCli ?? setup?.runtime ?? null,
|
|
151
|
+
effectiveSkill: setupStatus?.provenance.selectedOrchestrator ?? null,
|
|
152
|
+
recoveryShims: setupStatus?.provenance.recoveryShims ?? [],
|
|
153
|
+
ambientCli: setupStatus?.provenance.ambientCli ?? null,
|
|
154
|
+
ambientSkillConflicts: setupStatus?.provenance.ambientSkillConflicts ?? [],
|
|
155
|
+
minimumAction: setup?.next?.retryCommand ??
|
|
156
|
+
"Use the project evidence broker through tiangong-auto-research; do not provide ambient credentials.",
|
|
157
|
+
retryCommand: setup?.next?.retryCommand ?? null,
|
|
158
|
+
},
|
|
159
|
+
});
|
|
160
|
+
}
|
|
104
161
|
function researchRequestBody(args) {
|
|
105
162
|
const inputPath = strictString(args, "input");
|
|
106
163
|
if (inputPath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/research/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/research/commands.ts"],"names":[],"mappings":"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"}
|