@tiangong-ai/cli 0.0.61 → 0.0.62
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 +17 -6
- package/README.md +414 -33
- package/dist/data/builtins.js +33 -5
- package/dist/data/builtins.js.map +1 -1
- package/dist/data/catalog.js +46 -0
- package/dist/data/catalog.js.map +1 -1
- package/dist/data/commands.js +15 -1
- package/dist/data/commands.js.map +1 -1
- package/dist/data/connectors/airnow-hourly-observations.js +60 -10
- package/dist/data/connectors/airnow-hourly-observations.js.map +1 -1
- package/dist/data/connectors/epa-eis-records.js +16 -2
- package/dist/data/connectors/epa-eis-records.js.map +1 -1
- package/dist/data/connectors/gdelt-doc-search.js +54 -18
- package/dist/data/connectors/gdelt-doc-search.js.map +1 -1
- package/dist/data/connectors/gdelt-file-feeds.js +20 -11
- package/dist/data/connectors/gdelt-file-feeds.js.map +1 -1
- package/dist/data/connectors/gdelt-web-ngrams.d.ts +2 -0
- package/dist/data/connectors/gdelt-web-ngrams.js +350 -0
- package/dist/data/connectors/gdelt-web-ngrams.js.map +1 -0
- package/dist/data/connectors/gdelt-web-ngrams.schemas.d.ts +188 -0
- package/dist/data/connectors/gdelt-web-ngrams.schemas.js +138 -0
- package/dist/data/connectors/gdelt-web-ngrams.schemas.js.map +1 -0
- package/dist/data/connectors/nasa-firms-fire.js +4 -0
- package/dist/data/connectors/nasa-firms-fire.js.map +1 -1
- package/dist/data/connectors/open-meteo-air-quality.js +27 -22
- package/dist/data/connectors/open-meteo-air-quality.js.map +1 -1
- package/dist/data/connectors/open-meteo-air-quality.schemas.d.ts +4 -1
- package/dist/data/connectors/open-meteo-air-quality.schemas.js +21 -1
- package/dist/data/connectors/open-meteo-air-quality.schemas.js.map +1 -1
- package/dist/data/connectors/open-meteo-flood.js +28 -23
- package/dist/data/connectors/open-meteo-flood.js.map +1 -1
- package/dist/data/connectors/open-meteo-flood.schemas.d.ts +4 -1
- package/dist/data/connectors/open-meteo-flood.schemas.js +21 -1
- package/dist/data/connectors/open-meteo-flood.schemas.js.map +1 -1
- package/dist/data/connectors/open-meteo-historical-weather.js +26 -21
- package/dist/data/connectors/open-meteo-historical-weather.js.map +1 -1
- package/dist/data/connectors/open-meteo-historical-weather.schemas.d.ts +4 -1
- package/dist/data/connectors/open-meteo-historical-weather.schemas.js +21 -1
- package/dist/data/connectors/open-meteo-historical-weather.schemas.js.map +1 -1
- package/dist/data/connectors/openaq-air-quality.js +50 -12
- package/dist/data/connectors/openaq-air-quality.js.map +1 -1
- package/dist/data/connectors/openaq-air-quality.schemas.d.ts +0 -4
- package/dist/data/connectors/openaq-air-quality.schemas.js +2 -2
- package/dist/data/connectors/openaq-air-quality.schemas.js.map +1 -1
- package/dist/data/connectors/youtube-public-content.js +76 -6
- package/dist/data/connectors/youtube-public-content.js.map +1 -1
- package/dist/data/connectors/youtube-public-content.schemas.d.ts +63 -3
- package/dist/data/connectors/youtube-public-content.schemas.js +56 -2
- package/dist/data/connectors/youtube-public-content.schemas.js.map +1 -1
- package/dist/data/contracts.d.ts +22 -1
- package/dist/data/runtime/bounded-http.d.ts +2 -0
- package/dist/data/runtime/bounded-http.js +221 -59
- package/dist/data/runtime/bounded-http.js.map +1 -1
- package/dist/data/runtime/execute.d.ts +2 -0
- package/dist/data/runtime/execute.js +82 -60
- package/dist/data/runtime/execute.js.map +1 -1
- package/dist/data/runtime/http-timing.d.ts +15 -0
- package/dist/data/runtime/http-timing.js +59 -0
- package/dist/data/runtime/http-timing.js.map +1 -0
- package/dist/data/runtime/http-transport.d.ts +1 -0
- package/dist/data/runtime/http-transport.js +27 -0
- package/dist/data/runtime/http-transport.js.map +1 -0
- package/dist/data/schemas/catalog.v1.json +46 -0
- package/dist/data/schemas/discovery.v1.json +12 -0
- package/dist/data/schemas/error.v1.json +1 -0
- package/dist/data/schemas/manifest.v1.json +19 -1
- package/dist/research/orchestration.js +233 -10
- package/dist/research/orchestration.js.map +1 -1
- package/dist/research/setup-command.js +37 -6
- package/dist/research/setup-command.js.map +1 -1
- package/dist/research/workspace/audit-bundle.js +28 -8
- package/dist/research/workspace/audit-bundle.js.map +1 -1
- package/dist/research/workspace/broker.js +25 -4
- package/dist/research/workspace/broker.js.map +1 -1
- package/dist/research/workspace/constants.d.ts +1 -0
- package/dist/research/workspace/constants.js +1 -0
- package/dist/research/workspace/constants.js.map +1 -1
- package/dist/research/workspace/content-evidence.d.ts +1 -0
- package/dist/research/workspace/content-evidence.js +1 -1
- package/dist/research/workspace/content-evidence.js.map +1 -1
- package/dist/research/workspace/credentials.js +2 -1
- package/dist/research/workspace/credentials.js.map +1 -1
- package/dist/research/workspace/data-evidence-adapter.d.ts +71 -0
- package/dist/research/workspace/data-evidence-adapter.js +269 -59
- package/dist/research/workspace/data-evidence-adapter.js.map +1 -1
- package/dist/research/workspace/data-evidence-view.d.ts +58 -0
- package/dist/research/workspace/data-evidence-view.js +411 -0
- package/dist/research/workspace/data-evidence-view.js.map +1 -0
- package/dist/research/workspace/evidence-ledger.js +32 -29
- package/dist/research/workspace/evidence-ledger.js.map +1 -1
- package/dist/research/workspace/evidence.d.ts +28 -0
- package/dist/research/workspace/evidence.js +48 -0
- package/dist/research/workspace/evidence.js.map +1 -1
- package/dist/research/workspace/executor.d.ts +27 -1
- package/dist/research/workspace/executor.js +180 -20
- package/dist/research/workspace/executor.js.map +1 -1
- package/dist/research/workspace/investigation-attempt.d.ts +159 -0
- package/dist/research/workspace/investigation-attempt.js +619 -0
- package/dist/research/workspace/investigation-attempt.js.map +1 -0
- package/dist/research/workspace/investigation-audit.d.ts +20 -0
- package/dist/research/workspace/investigation-audit.js +306 -0
- package/dist/research/workspace/investigation-audit.js.map +1 -0
- package/dist/research/workspace/investigation-candidate.d.ts +84 -0
- package/dist/research/workspace/investigation-candidate.js +156 -0
- package/dist/research/workspace/investigation-candidate.js.map +1 -0
- package/dist/research/workspace/investigation-certification.d.ts +39 -0
- package/dist/research/workspace/investigation-certification.js +152 -0
- package/dist/research/workspace/investigation-certification.js.map +1 -0
- package/dist/research/workspace/investigation-close.d.ts +47 -0
- package/dist/research/workspace/investigation-close.js +153 -0
- package/dist/research/workspace/investigation-close.js.map +1 -0
- package/dist/research/workspace/investigation-lineage.d.ts +8 -0
- package/dist/research/workspace/investigation-lineage.js +10 -0
- package/dist/research/workspace/investigation-lineage.js.map +1 -0
- package/dist/research/workspace/investigation-observer.d.ts +22 -0
- package/dist/research/workspace/investigation-observer.js +122 -0
- package/dist/research/workspace/investigation-observer.js.map +1 -0
- package/dist/research/workspace/investigation-promotion.d.ts +129 -0
- package/dist/research/workspace/investigation-promotion.js +316 -0
- package/dist/research/workspace/investigation-promotion.js.map +1 -0
- package/dist/research/workspace/investigation-requirements.d.ts +5 -0
- package/dist/research/workspace/investigation-requirements.js +32 -0
- package/dist/research/workspace/investigation-requirements.js.map +1 -0
- package/dist/research/workspace/investigation-resources.d.ts +12 -0
- package/dist/research/workspace/investigation-resources.js +78 -0
- package/dist/research/workspace/investigation-resources.js.map +1 -0
- package/dist/research/workspace/investigation-source-export.d.ts +6 -0
- package/dist/research/workspace/investigation-source-export.js +68 -0
- package/dist/research/workspace/investigation-source-export.js.map +1 -0
- package/dist/research/workspace/investigation-store.d.ts +9 -0
- package/dist/research/workspace/investigation-store.js +55 -0
- package/dist/research/workspace/investigation-store.js.map +1 -0
- package/dist/research/workspace/investigation.d.ts +424 -0
- package/dist/research/workspace/investigation.js +716 -0
- package/dist/research/workspace/investigation.js.map +1 -0
- package/dist/research/workspace/native-process-supervisor.d.ts +1 -0
- package/dist/research/workspace/native-process-supervisor.js +97 -0
- package/dist/research/workspace/native-process-supervisor.js.map +1 -0
- package/dist/research/workspace/native-run.d.ts +79 -6
- package/dist/research/workspace/native-run.js +293 -51
- package/dist/research/workspace/native-run.js.map +1 -1
- package/dist/research/workspace/preflight.d.ts +3 -0
- package/dist/research/workspace/preflight.js +11 -6
- package/dist/research/workspace/preflight.js.map +1 -1
- package/dist/research/workspace/project-authority.js +2 -0
- package/dist/research/workspace/project-authority.js.map +1 -1
- package/dist/research/workspace/project-budget.d.ts +41 -0
- package/dist/research/workspace/project-budget.js +265 -0
- package/dist/research/workspace/project-budget.js.map +1 -0
- package/dist/research/workspace/project-mutations.d.ts +1 -1
- package/dist/research/workspace/project-mutations.js +27 -3
- package/dist/research/workspace/project-mutations.js.map +1 -1
- package/dist/research/workspace/projects.d.ts +66 -0
- package/dist/research/workspace/projects.js +181 -3
- package/dist/research/workspace/projects.js.map +1 -1
- package/dist/research/workspace/provider-budget.d.ts +3 -0
- package/dist/research/workspace/provider-budget.js +45 -0
- package/dist/research/workspace/provider-budget.js.map +1 -0
- package/dist/research/workspace/provider-state.d.ts +1 -0
- package/dist/research/workspace/provider-state.js +20 -0
- package/dist/research/workspace/provider-state.js.map +1 -0
- package/dist/research/workspace/publication-lineage.d.ts +34 -0
- package/dist/research/workspace/publication-lineage.js +165 -0
- package/dist/research/workspace/publication-lineage.js.map +1 -0
- package/dist/research/workspace/publication-workflow.d.ts +24 -0
- package/dist/research/workspace/publication-workflow.js +118 -14
- package/dist/research/workspace/publication-workflow.js.map +1 -1
- package/dist/research/workspace/review-executor.d.ts +6 -1
- package/dist/research/workspace/review-executor.js +17 -3
- package/dist/research/workspace/review-executor.js.map +1 -1
- package/dist/research/workspace/runtime.d.ts +12 -1
- package/dist/research/workspace/runtime.js +143 -19
- package/dist/research/workspace/runtime.js.map +1 -1
- package/dist/research/workspace/scientific-amendment.d.ts +103 -0
- package/dist/research/workspace/scientific-amendment.js +537 -0
- package/dist/research/workspace/scientific-amendment.js.map +1 -0
- package/dist/research/workspace/scientific-fulfillment-audit.d.ts +20 -2
- package/dist/research/workspace/scientific-fulfillment-audit.js +87 -7
- package/dist/research/workspace/scientific-fulfillment-audit.js.map +1 -1
- package/dist/research/workspace/scientific-fulfillment.d.ts +10 -1
- package/dist/research/workspace/scientific-fulfillment.js +20 -6
- package/dist/research/workspace/scientific-fulfillment.js.map +1 -1
- package/dist/research/workspace/scientific-review-execution.js +162 -22
- package/dist/research/workspace/scientific-review-execution.js.map +1 -1
- package/dist/research/workspace/scientific-review.d.ts +2 -1
- package/dist/research/workspace/scientific-review.js +33 -2
- package/dist/research/workspace/scientific-review.js.map +1 -1
- package/dist/research/workspace/setup-catalog.js +3 -3
- package/dist/research/workspace/setup-release.d.ts +22 -0
- package/dist/research/workspace/setup-release.js +426 -0
- package/dist/research/workspace/setup-release.js.map +1 -0
- package/dist/research/workspace/setup-runtime-integrity.d.ts +2 -0
- package/dist/research/workspace/setup-runtime-integrity.js +31 -0
- package/dist/research/workspace/setup-runtime-integrity.js.map +1 -0
- package/dist/research/workspace/setup-upgrade.d.ts +17 -0
- package/dist/research/workspace/setup-upgrade.js +784 -0
- package/dist/research/workspace/setup-upgrade.js.map +1 -0
- package/dist/research/workspace/setup.d.ts +31 -39
- package/dist/research/workspace/setup.js +220 -17
- package/dist/research/workspace/setup.js.map +1 -1
- package/dist/research/workspace/task-acceptance.d.ts +8 -1
- package/dist/research/workspace/task-acceptance.js +37 -5
- package/dist/research/workspace/task-acceptance.js.map +1 -1
- package/dist/research/workspace/task-audit.d.ts +5 -1
- package/dist/research/workspace/task-audit.js +33 -18
- package/dist/research/workspace/task-audit.js.map +1 -1
- package/dist/research/workspace/types.d.ts +44 -0
- package/dist/research/workspace/workspace.js +34 -4
- package/dist/research/workspace/workspace.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -12,8 +12,8 @@ checkPaths:
|
|
|
12
12
|
- package.json
|
|
13
13
|
- bin/**
|
|
14
14
|
- src/**
|
|
15
|
-
lastReviewedAt: 2026-09-
|
|
16
|
-
lastReviewedCommit:
|
|
15
|
+
lastReviewedAt: 2026-09-11
|
|
16
|
+
lastReviewedCommit: f0dc2ee
|
|
17
17
|
---
|
|
18
18
|
|
|
19
19
|
# Tiangong AI CLI
|
|
@@ -70,16 +70,43 @@ tiangong-ai data run <capability-id> <operation-id> \
|
|
|
70
70
|
The command-line capability and operation must match the versions in the input
|
|
71
71
|
envelope. Credentials are never accepted in argv or input JSON. Each connector
|
|
72
72
|
declares exact logical environment-variable bindings, HTTPS endpoint scopes,
|
|
73
|
-
and
|
|
73
|
+
and acquisition limits in its execution manifest. Callers may explicitly
|
|
74
|
+
tighten those limits, but upper layers do not silently reinterpret Agent
|
|
75
|
+
context budgets as provider or record limits. Data commands deliberately do
|
|
74
76
|
not load a cwd `.env` file.
|
|
75
77
|
|
|
76
78
|
`data catalog` also returns a concise capability summary, what the capability
|
|
77
|
-
provides and does not provide, operation summaries,
|
|
78
|
-
digest
|
|
79
|
+
provides and does not provide, operation summaries, a separate discovery
|
|
80
|
+
digest, and an explicit `available` or `suspended` status. Suspended entries
|
|
81
|
+
remain inspectable, but `doctor` and `run` block before any provider request.
|
|
82
|
+
`data describe` expands that layer with source ownership, coverage,
|
|
79
83
|
granularity, selection hints, typical uses, official documentation, freshness,
|
|
80
84
|
license restrictions, and operation descriptions. Narrative discovery changes
|
|
81
85
|
do not change the execution manifest digest used for compatibility binding.
|
|
82
86
|
Operation input schemas include field-level descriptions and examples.
|
|
87
|
+
Operations may also publish stable feature IDs for Skills that depend on a
|
|
88
|
+
specific compatible behavior within the same contract major.
|
|
89
|
+
|
|
90
|
+
GDELT DOC requests are paced at least five seconds apart within one CLI process,
|
|
91
|
+
including split queries and retries. Missing-header 429 responses use bounded
|
|
92
|
+
exponential backoff and remain `rate-limited`, never `no-results`. Independent
|
|
93
|
+
processes sharing an egress must be coordinated by the caller. The opt-in positive
|
|
94
|
+
live gate and its timing/throughput definitions are documented in
|
|
95
|
+
[repository validation](docs/agents/repo-validation.md#gdelt-doc-live-acceptance).
|
|
96
|
+
|
|
97
|
+
Auto Research keeps three budgets separate: connector acquisition limits,
|
|
98
|
+
Evidence package bytes/files, and the Agent-visible context view. A validated
|
|
99
|
+
result is persisted in full when it fits the Evidence package budget;
|
|
100
|
+
`maxBrokerItems` and the context-token ceiling only shape the Agent view.
|
|
101
|
+
Receipts distinguish provider coverage, explicit limits reached, and context
|
|
102
|
+
projection instead of forcing them into one status. A projected result returns
|
|
103
|
+
an opaque, evidence-bound cursor; `research project evidence data read` serves
|
|
104
|
+
the next shape-aware view from immutable local Evidence without another
|
|
105
|
+
provider request or provider quota charge. Agents must either continue until
|
|
106
|
+
`nextCursor` is null or disclose the exact presented/total fraction.
|
|
107
|
+
The public Research command returns receipt identity, coverage, a structured
|
|
108
|
+
bounded context view, and continuation metadata. The complete core result
|
|
109
|
+
remains in immutable Evidence and is not duplicated into Agent stdout.
|
|
83
110
|
|
|
84
111
|
JSON exits are `0` for success, `2` for request/contract errors, `3` for a
|
|
85
112
|
blocked execution, and `4` for an explicit partial result. Public machine
|
|
@@ -90,7 +117,11 @@ The built-in capabilities are:
|
|
|
90
117
|
- `airnow.hourly-observations` / `fetch-hourly`: fetches official AirNow
|
|
91
118
|
`HourlyAQObs` files for a bounded UTC-hour window, bounding box, and pollutant
|
|
92
119
|
list. Results retain source-file lineage and always state that AirNow data are
|
|
93
|
-
preliminary and unsuitable as regulatory-grade AQS evidence.
|
|
120
|
+
preliminary and unsuitable as regulatory-grade AQS evidence. Independent
|
|
121
|
+
hourly files use bounded concurrency while output files and records retain
|
|
122
|
+
deterministic UTC-hour order. Execution uses the official
|
|
123
|
+
`files.airnowtech.org` S3 bucket through its regional S3 endpoint so a failing
|
|
124
|
+
CloudFront edge does not make the underlying public object unavailable.
|
|
94
125
|
- `bluesky.public-posts` / `fetch-cascades`: fetches bounded public Bluesky
|
|
95
126
|
post seeds from search, an author feed, a custom feed, or a list feed and can
|
|
96
127
|
flatten visible reply cascades. Ranking, counters, moderation visibility, and
|
|
@@ -98,7 +129,10 @@ The built-in capabilities are:
|
|
|
98
129
|
- `epa.eis-records` / `search`: retrieves bounded official EPA EIS Database
|
|
99
130
|
common-search or UI-created search pages and parses title, CEQ/provider IDs,
|
|
100
131
|
document type, dates, agencies, state, detail links, and document-availability
|
|
101
|
-
cues.
|
|
132
|
+
cues. Its endpoint-scoped, same-origin session cookie jar exists only in
|
|
133
|
+
memory so the provider's initial redirect can complete; cookies never enter
|
|
134
|
+
results, receipts, logs, or cross-origin requests. It does not fetch or assess
|
|
135
|
+
linked EIS documents.
|
|
102
136
|
- `federal-register.documents` / `search`: searches bounded
|
|
103
137
|
FederalRegister.gov document metadata by publication date plus term, agency,
|
|
104
138
|
document type, topic, docket, or RIN filters. It does not follow result links,
|
|
@@ -106,48 +140,56 @@ The built-in capabilities are:
|
|
|
106
140
|
- `gdelt.doc-search` / `search`: searches the rolling GDELT DOC 2.0 index for
|
|
107
141
|
bounded article-link metadata or supported aggregate timelines. Automated
|
|
108
142
|
multilingual extraction and uneven monitored-source coverage are explicit;
|
|
109
|
-
it does not retrieve article bodies or establish ground-truth facts.
|
|
143
|
+
it does not retrieve article bodies or establish ground-truth facts. The
|
|
144
|
+
capability is currently suspended because representative modes do not pass a
|
|
145
|
+
stable live gate under the provider's dynamic load shedding.
|
|
146
|
+
- `gdelt.web-ngrams` / `search`: searches literal 1–4-word phrases in one
|
|
147
|
+
explicit published UTC minute's GZIP NGrams/TOC pair, returning matched
|
|
148
|
+
article links with file-scoped IDs. This local candidate extension is a
|
|
149
|
+
separately selected file-based alternative to DOC discovery, not a DOC query
|
|
150
|
+
or timeline substitute. Missing files block; malformed rows and omitted
|
|
151
|
+
matches are partial. No implicit time-range sampling or automatic fallback.
|
|
110
152
|
- `gdelt.events`, `gdelt.gkg`, and `gdelt.mentions` / `fetch`: independently
|
|
111
153
|
discoverable GDELT 2.0 table capabilities backed by one bounded TypeScript
|
|
112
154
|
file-feed core. They fetch either the latest provider entry or at most twenty
|
|
113
155
|
aligned 15-minute files, verify ZIP/CRC and advertised latest-file checksums,
|
|
114
|
-
and emit closed named columns without persisting downloaded files.
|
|
156
|
+
and emit closed named columns without persisting downloaded files. Their
|
|
157
|
+
wide named-field JSON is preserved as Evidence; Agent context projection is
|
|
158
|
+
handled by Auto Research without changing the connector result.
|
|
115
159
|
- `nasa-firms.active-fire` / `fetch-area`: retrieves bounded NASA FIRMS MODIS,
|
|
116
160
|
VIIRS, or Landsat active-fire point detections, optionally validates source
|
|
117
161
|
availability, and exposes chunk-level partial coverage. Hotspots are thermal
|
|
118
162
|
anomalies, not fire perimeters or confirmed incident identities.
|
|
119
163
|
- `open-meteo.air-quality` / `fetch-hourly`: retrieves bounded GMT hourly CAMS
|
|
120
164
|
model-grid air-quality series for known coordinates; these are modeled
|
|
121
|
-
background values rather than station observations.
|
|
165
|
+
background values rather than station observations. Missing and explicitly
|
|
166
|
+
returned all-null series are distinct machine-readable partial issues.
|
|
122
167
|
- `open-meteo.flood` / `fetch-daily`: retrieves bounded daily GloFAS simulated
|
|
123
168
|
river-discharge series for the represented river grid; it is neither gauge
|
|
124
|
-
data nor a flood-alert service.
|
|
169
|
+
data nor a flood-alert service. Missing and explicitly returned all-null
|
|
170
|
+
series are distinct machine-readable partial issues.
|
|
125
171
|
- `open-meteo.historical-weather` / `fetch`: retrieves bounded GMT hourly and/or
|
|
126
172
|
daily historical weather reanalysis for one controlled model and known
|
|
127
173
|
coordinates. ERA5 or ERA5-Land should be selected when multi-decade model
|
|
128
|
-
consistency matters.
|
|
174
|
+
consistency matters. Missing requested series and provider-returned series
|
|
175
|
+
whose values are all `null` are distinct machine-readable partial issues.
|
|
129
176
|
- `openaq.air-quality` / `search-locations` and `fetch-sensor-measurements`:
|
|
130
177
|
discovers filtered OpenAQ v3 locations and retrieves a bounded raw, hourly,
|
|
131
178
|
or daily series for one sensor. It preserves provider/license context but
|
|
132
179
|
does not calculate AQI or make health or regulatory determinations.
|
|
133
|
-
- `regulations-gov.comments` / `search` and `fetch-details`: searches bounded
|
|
134
|
-
Regulations.gov public-comment metadata and retrieves curated details for
|
|
135
|
-
explicit comment IDs. It omits named personal-profile fields, never submits
|
|
136
|
-
comments, and returns attachment metadata without downloading file bytes.
|
|
137
|
-
- `regulations-gov.attachments` / `download`: retrieves attachment metadata for
|
|
138
|
-
exact public comment IDs and writes bounded files only from the official
|
|
139
|
-
Regulations.gov download origin. It requires `--artifact-dir`, refuses to
|
|
140
|
-
overwrite files, and commits SHA-256-bound relative files plus a manifest;
|
|
141
|
-
it does not scan, open, extract, or interpret the untrusted bytes.
|
|
142
180
|
- `usbr.project-records` / `fetch`: inventories caller-supplied official
|
|
143
181
|
`www.usbr.gov` project or program pages plus bounded same-origin links. It
|
|
144
182
|
preserves page response provenance but does not follow, download, parse, or
|
|
145
|
-
assess linked records and is not USBR-wide search.
|
|
183
|
+
assess linked records and is not USBR-wide search. Execution is currently
|
|
184
|
+
suspended because the official origin returns a gateway rejection page in
|
|
185
|
+
the supported CLI environment.
|
|
146
186
|
- `usbr.rise` / `discover-items` and `fetch-results`: scans bounded Bureau of
|
|
147
187
|
Reclamation RISE catalog pages for client-filtered candidate item IDs, then
|
|
148
188
|
retrieves bounded result rows for explicitly selected items. Provider scan
|
|
149
189
|
order is not ranking, and operational values require item metadata and domain
|
|
150
|
-
context before interpretation.
|
|
190
|
+
context before interpretation. Execution is currently suspended because both
|
|
191
|
+
the legacy API and the official EDR beta endpoint are rejected by the
|
|
192
|
+
provider gateway in the supported CLI environment.
|
|
151
193
|
- `usgs.water-instantaneous-values` / `fetch`: retrieves bounded legacy USGS
|
|
152
194
|
WaterServices instantaneous observations while preserving site, parameter,
|
|
153
195
|
qualifier, provisional status, and source lifecycle warnings.
|
|
@@ -156,12 +198,17 @@ The built-in capabilities are:
|
|
|
156
198
|
comment/reply text for explicit video IDs. It does not download media or
|
|
157
199
|
transcripts and does not treat ranking or comments as representative opinion.
|
|
158
200
|
|
|
159
|
-
|
|
201
|
+
GDELT DOC, Regulations.gov comment/attachment, USBR RISE, and USBR project
|
|
202
|
+
records remain discoverable with `availability.status=suspended`, a stable
|
|
203
|
+
reason code, and explicit resume criteria. `doctor` and `run` block locally
|
|
204
|
+
without network access, and Auto Research excludes them from its executable
|
|
205
|
+
projection until their production live gates qualify them again.
|
|
206
|
+
|
|
207
|
+
Of the fifteen execution-enabled capabilities, twelve are keyless. NASA FIRMS requires `NASA_FIRMS_MAP_KEY`, which the
|
|
160
208
|
CLI injects as a protected provider path segment; OpenAQ requires
|
|
161
|
-
`OPENAQ_API_KEY`,
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
in argv or input JSON. Exact input and output schemas,
|
|
209
|
+
`OPENAQ_API_KEY`, and YouTube requires `YOUTUBE_API_KEY`; the CLI injects the
|
|
210
|
+
latter two as protected provider headers, with YouTube using `X-Goog-Api-Key`
|
|
211
|
+
rather than a URL parameter. No secret is accepted in argv or input JSON. Exact input and output schemas,
|
|
165
212
|
endpoint scopes and limits are available through the execution manifest, while
|
|
166
213
|
source notes, coverage, selection guidance and license restrictions are
|
|
167
214
|
available in the discovery metadata returned by `data describe`; static
|
|
@@ -383,6 +430,57 @@ bytes and report that a new native-host session is required before the routing
|
|
|
383
430
|
instruction becomes active. Global-scope Skill installation does not create
|
|
384
431
|
project instruction files.
|
|
385
432
|
|
|
433
|
+
### Reviewed setup upgrades
|
|
434
|
+
|
|
435
|
+
Use `research setup update --check --candidate-version <exact-stable-version>`
|
|
436
|
+
to inspect one explicitly selected release. Omitting `--candidate-version` keeps
|
|
437
|
+
this a local catalog comparison with no registry request. The optional query
|
|
438
|
+
pins the public npm registry and package scope, has finite time/output limits,
|
|
439
|
+
and reports `newer`, `same`, `older`, or `unavailable`. Metadata includes the
|
|
440
|
+
exact version, tarball URL, SHA-512 integrity and Git commit. This validates
|
|
441
|
+
registry metadata; it does not independently download or authenticate the
|
|
442
|
+
package. An unavailable query never means that no update exists: when there is
|
|
443
|
+
no separately confirmed local migration, `updateAvailable` is `null`.
|
|
444
|
+
|
|
445
|
+
An older workspace resolver deliberately continues selecting its recorded CLI.
|
|
446
|
+
To use an upgrade-capable candidate, select its exact published version and run
|
|
447
|
+
that version directly; do not edit the runtime lock or use floating `latest`:
|
|
448
|
+
|
|
449
|
+
```bash
|
|
450
|
+
REVIEWED_UPGRADE_CLI_VERSION=X.Y.Z # replace with one reviewed exact stable release
|
|
451
|
+
npx --yes --registry=https://registry.npmjs.org \
|
|
452
|
+
--@tiangong-ai:registry=https://registry.npmjs.org --strict-ssl=true \
|
|
453
|
+
--package "@tiangong-ai/cli@$REVIEWED_UPGRADE_CLI_VERSION" -- tiangong-ai \
|
|
454
|
+
research setup upgrade --plan --confirm-upgrade \
|
|
455
|
+
--workspace /absolute/path/to/workspace --json
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
Review the returned immutable `planPath` and execute its `applyCommand`. The
|
|
459
|
+
candidate also binds the SHA-256 identity of `package.json`, `bin/` and `dist/`;
|
|
460
|
+
apply and rollback reject changed CLI runtime bytes before workspace mutation.
|
|
461
|
+
This content binding excludes installed dependencies and is not a publisher
|
|
462
|
+
signature. Ordinary research commands do not rescan these trees. Planning
|
|
463
|
+
leaves the active plan, runtime lock, configuration and installed Skills intact.
|
|
464
|
+
Apply stages the complete selected generation, verifies each prior-owned tree,
|
|
465
|
+
and reuses unchanged trees and verified downloads. Modified or linked targets
|
|
466
|
+
remain protected. It preserves the workspace identity, evidence, credentials,
|
|
467
|
+
budgets, current model/pricing choices, custom launchers and reviewer transport.
|
|
468
|
+
Changed license choices remain explicit; unchanged accepted licenses carry forward.
|
|
469
|
+
|
|
470
|
+
An interrupted commit blocks ordinary workspace use and reports the exact
|
|
471
|
+
candidate recovery command. Repeat that candidate's apply to resume, or use its
|
|
472
|
+
`rollbackCommand` to restore the directly bound prior generation with the new
|
|
473
|
+
updater. Rollback refuses conflicting owner changes or subsequent research
|
|
474
|
+
activity. Interrupted rollback remains blocked and resumes with the same command.
|
|
475
|
+
Private rollback preimages (including configured credentials) and prepared caches
|
|
476
|
+
are retained for recovery; they are excluded from portable setup audit exports.
|
|
477
|
+
Doctor runs after coherent activation; a repeated apply does not repeat a paid
|
|
478
|
+
check that already started. If its result was lost, explicitly inspect status
|
|
479
|
+
and run Doctor as needed. Old readiness attestations never certify new bytes.
|
|
480
|
+
A legacy already-mixed plan/lock fails with
|
|
481
|
+
`RESEARCH_SETUP_LEGACY_UPGRADE_RECOVERY_REQUIRED`; preserve its directly linked
|
|
482
|
+
setup history for diagnosis rather than deleting Skills or rewriting locks.
|
|
483
|
+
|
|
386
484
|
### Declarative setup
|
|
387
485
|
|
|
388
486
|
For repeatable provisioning without a TTY, generate a safe workspace-local
|
|
@@ -679,7 +777,22 @@ replayed without another model call after revalidating its immutable proof.
|
|
|
679
777
|
Failures require explicit `--retry` and remain bounded by the attempt budget;
|
|
680
778
|
unreported usage and interrupted wall time retain conservative reservations.
|
|
681
779
|
Failed processes return a bounded, sanitized exit diagnostic and record it in
|
|
682
|
-
the journal; no full prompt or raw authentication output is persisted.
|
|
780
|
+
the journal; no full prompt or raw authentication output is persisted.
|
|
781
|
+
When the reviewer returns but submission is rejected, the error and failed
|
|
782
|
+
journal event also return an `executionRecord` locator and SHA-256. The locator
|
|
783
|
+
is relative to `.tiangong-research/` and points to an immutable
|
|
784
|
+
`scientific/failed-executions/` record containing the packet/run binding,
|
|
785
|
+
reported usage and identity, rejection code, and safely retained JSON stdout.
|
|
786
|
+
These are unaccepted execution observations, not a review receipt or permission
|
|
787
|
+
to pass a gate. Inspecting them does not call the provider; another execution
|
|
788
|
+
still requires explicit `--retry`.
|
|
789
|
+
Retained stdout is limited to the smaller of 1 MiB and the configured output
|
|
790
|
+
capture allowance. Unsafe, oversized, or malformed JSON keeps only its digest,
|
|
791
|
+
size and omission reason. If storage fails, `outputRetention=storage-unavailable`
|
|
792
|
+
is reported with the original error instead of claiming that a result was saved.
|
|
793
|
+
Successful review and replay use their existing output/receipt without this
|
|
794
|
+
additional failure capture.
|
|
795
|
+
Automatic
|
|
683
796
|
Claude invocation uses the same dialect-annotation conversion as
|
|
684
797
|
`research schema show NAME --compatibility claude-code`; canonical controller
|
|
685
798
|
validation and its scientific constraints remain unchanged.
|
|
@@ -717,17 +830,40 @@ audit manifest separately records the raw stored packet-file digest. This keeps
|
|
|
717
830
|
packet identity and byte-level transfer verification explicit rather than
|
|
718
831
|
overloading one hash with both meanings.
|
|
719
832
|
|
|
720
|
-
After base closure,
|
|
833
|
+
After base closure, inspect `research publication lineage PROJECT --json` before
|
|
834
|
+
authoring materials. It verifies the existing closure and reviewed packet's
|
|
835
|
+
analysis, report and evidence-chain hashes and returns their analysis identity
|
|
836
|
+
with an empty material-file template. It does not certify or relabel previously
|
|
837
|
+
authored files. The current native host then writes a final Markdown/plain-text
|
|
721
838
|
manuscript, schema-valid publication assessment, and an explicit submission
|
|
722
839
|
manifest. The manuscript must contain Abstract, Introduction, Methods, Results,
|
|
723
|
-
Discussion, Data availability, Code availability, and References.
|
|
840
|
+
Discussion, Data availability, Code availability, and References. Decimal
|
|
841
|
+
section prefixes such as `1. Introduction`, `2 Methods`, `3.1 Results`, and
|
|
842
|
+
`4) Discussion` are accepted when separated from the title by whitespace;
|
|
843
|
+
unrelated titles and body text still cannot satisfy a required section. The
|
|
724
844
|
submission manifest must bind distinct absolute files for cover letter, title
|
|
725
845
|
page, reporting checklist, data availability, code availability, and source
|
|
726
846
|
data; figure/table index, extended data, and supplementary methods are optional.
|
|
847
|
+
The schema-version-1 submission manifest also requires `resultLineage`, following
|
|
848
|
+
`research schema show publication-result-lineage --json`. Preserve the source
|
|
849
|
+
analysis identity from material preparation. Include a role, actual byte SHA-256
|
|
850
|
+
and source `analysisSha256` for the manuscript, assessment, every submission file
|
|
851
|
+
and each `supplement-N` (one-based supplied order). Include the actual figures,
|
|
852
|
+
tables and source inputs as submission files or supplements; an index alone is
|
|
853
|
+
not their contents. Do not replace a stale parent hash merely to pass validation.
|
|
854
|
+
Completeness and scientific derivation remain producer claims for independent
|
|
855
|
+
review; the CLI verifies declared lineage and bytes, not scientific truth.
|
|
727
856
|
`research publication freeze` then content-addresses the Policy, scientific
|
|
728
857
|
design and early reviews, acquisition/content/inference snapshots, mode-bound
|
|
729
858
|
analysis, Claim-Evidence Graph, base outputs, manuscript, assessment,
|
|
730
859
|
supplements, role-complete submission files, and reproducibility manifest.
|
|
860
|
+
Validation reads the frozen copies. The generation, review packet and closure
|
|
861
|
+
carry `analysisGenerationId` and a content-addressed material-results manifest;
|
|
862
|
+
the reproducibility record binds that manifest. A different closed generation,
|
|
863
|
+
changed report, mixed file parent or changed prepared bytes fails before review.
|
|
864
|
+
Status/review/closure recheck the current closed lineage and report the affected
|
|
865
|
+
object and binding. Legacy generations without the manifest retain their history
|
|
866
|
+
but cannot establish current readiness; prepare an honest binding and refreeze.
|
|
731
867
|
Computational/mixed analysis still requires reproduced metadata with exact
|
|
732
868
|
implementation/environment bindings. Qualitative analysis uses
|
|
733
869
|
`status: not-applicable`, null command/seed and empty implementation/environment
|
|
@@ -745,6 +881,9 @@ generation, packet, review, journal, and closure objects persist only their
|
|
|
745
881
|
SHA-256 bindings.
|
|
746
882
|
|
|
747
883
|
```bash
|
|
884
|
+
tiangong-ai research publication lineage top-journal-paper \
|
|
885
|
+
--workspace /absolute/path/to/workspace --json
|
|
886
|
+
tiangong-ai research schema show publication-result-lineage --json
|
|
748
887
|
tiangong-ai research schema show publication-assessment --json
|
|
749
888
|
tiangong-ai research publication freeze top-journal-paper \
|
|
750
889
|
--manuscript /absolute/path/to/final-manuscript.md \
|
|
@@ -777,6 +916,10 @@ from credential fields. It checks raw text and read-only decoded JSON/JSONL,
|
|
|
777
916
|
including escaped keys and nested string payloads, while retaining the exact
|
|
778
917
|
evidence and ledger bytes. Authentication values remain blocked even when wrapped
|
|
779
918
|
in arrays or objects; an identifier's UUID shape is never a credential exemption.
|
|
919
|
+
Within the existing 16 MiB per-file text scan bound, valid UTF-8 inputs are also
|
|
920
|
+
checked after staging under extensionless content hashes. Binary inputs remain
|
|
921
|
+
byte-preserving. A nonportable-path error reports a bundle-relative `details.path`
|
|
922
|
+
without disclosing the original host path or the matched source text.
|
|
780
923
|
|
|
781
924
|
```bash
|
|
782
925
|
tiangong-ai research project audit export top-journal-paper \
|
|
@@ -841,6 +984,11 @@ presentation Skills are post-closure authoring only. Run selected preprocessors
|
|
|
841
984
|
and acquisition adapters with `research setup companion run`, then admit their
|
|
842
985
|
exact hash-bound output separately. Automatic paper OA exhaustion returns an
|
|
843
986
|
explicit browser handoff and never launches or chooses a browser silently.
|
|
987
|
+
Paper results require the pinned adapter's identity-verified artifact.v3
|
|
988
|
+
manifest: matched document identity must agree between the result and manifest
|
|
989
|
+
and bind the requested or resolved DOI. PDF/manifest paths, bytes and hashes
|
|
990
|
+
remain checked independently. Structural-only legacy metadata cannot establish
|
|
991
|
+
document identity, and successful access does not imply redistribution rights.
|
|
844
992
|
The paper companion and its setup-doctor preflight both enter the verified
|
|
845
993
|
Skill through `scripts/runtime.py`; the CLI never bypasses that lock by invoking
|
|
846
994
|
`fetch.py` or importing `pypdf` from ambient Python. A missing runtime remains
|
|
@@ -968,6 +1116,29 @@ reviewer shell, browser, web, undeclared MCP, and Skill tools remain disabled.
|
|
|
968
1116
|
Do not use Full Access, sandbox-disable flags, unsandboxed-command exceptions,
|
|
969
1117
|
or silent transport fallback.
|
|
970
1118
|
|
|
1119
|
+
Before sending reviewer material, inspect `research reviewer status --json`.
|
|
1120
|
+
The runtime reports the CLI family and configured model alias separately from
|
|
1121
|
+
`providerRouting`: the configured Claude endpoint origin/source, model-mapping
|
|
1122
|
+
sources and a digest of admitted routing values. Explicit process environment
|
|
1123
|
+
overrides the imported Claude `settings.json` env allowlist. Approved custom
|
|
1124
|
+
HTTPS gateways remain supported. Doctor's `reviewer-configured-routing` check
|
|
1125
|
+
is configuration inspection; it does not make a paid model request.
|
|
1126
|
+
|
|
1127
|
+
Routing changes invalidate the prior runtime binding before reviewer execution.
|
|
1128
|
+
Unchanged effective routing reuses the existing attestation; missing legacy
|
|
1129
|
+
bindings require an explicit smoke refresh. Status never starts paid checks.
|
|
1130
|
+
Paths, query strings, proxy credentials and mapped provider IDs are omitted
|
|
1131
|
+
from routing receipts. `identityVerification=unverified` is intentional: a CLI
|
|
1132
|
+
family, model alias, endpoint configuration or successful smoke cannot attest
|
|
1133
|
+
the actual upstream provider/model or historical HTTP destinations. A null
|
|
1134
|
+
endpoint means no supported explicit endpoint was resolved, not an official
|
|
1135
|
+
provider guarantee. Wrappers, proxies and runtime defaults remain outside that
|
|
1136
|
+
identity guarantee. Bridge status identifies transport readiness separately.
|
|
1137
|
+
Execution `model` and `runtime.model` retain the configured alias; optional
|
|
1138
|
+
`telemetry.reportedModel` records the sanitized CLI self-report, with null when
|
|
1139
|
+
absent. A mapped response name does not change the configured runtime identity
|
|
1140
|
+
or require another smoke. It is not independently verified provider identity.
|
|
1141
|
+
|
|
971
1142
|
WorkBuddy/CodeBuddy capsule teardown never requests recursive bulk deletion
|
|
972
1143
|
inside the outer IDE. Native stages remove only the single active-session
|
|
973
1144
|
binding, while completed, aborted, handed-off, and reviewer/work-package
|
|
@@ -1214,7 +1385,8 @@ It does not claim a provider-side turn or output-token cap for the host app.
|
|
|
1214
1385
|
|
|
1215
1386
|
Independent review uses the pre-call reservation calculator and the reviewer's
|
|
1216
1387
|
provider-side structured-output/turn controls where available. Claude packet-only
|
|
1217
|
-
review
|
|
1388
|
+
review chooses the largest affordable turn count up to a 64-turn provider
|
|
1389
|
+
guard and uses that same count in its reservation; Codex uses the existing finite wall-time and
|
|
1218
1390
|
token/cost guards because its CLI has no equivalent turn flag. Planning uses a
|
|
1219
1391
|
small initial-context estimate and expected reads, not the entire corpus or an
|
|
1220
1392
|
unbounded legacy context hint. Preflight reports `inputContextTokenLimit=null`.
|
|
@@ -1232,6 +1404,55 @@ records and JSONL progress preserve sanitized accounting mode, event/item
|
|
|
1232
1404
|
counts, provider turns, tool calls, reasoning tokens, and bounded provider
|
|
1233
1405
|
errors.
|
|
1234
1406
|
|
|
1407
|
+
Owners can opt into a numeric project authorization with `project init` or
|
|
1408
|
+
`project preflight --max-cost-usd`, or adopt it for an existing project:
|
|
1409
|
+
|
|
1410
|
+
```bash
|
|
1411
|
+
tiangong-ai research project budget set PROJECT --max-cost-usd 50 \
|
|
1412
|
+
--provider-costs /absolute/provider-costs.json --confirm-budget \
|
|
1413
|
+
--workspace /absolute/workspace --json
|
|
1414
|
+
```
|
|
1415
|
+
|
|
1416
|
+
The JSON file maps selected capability IDs to owner-reviewed USD maxima for one
|
|
1417
|
+
logical operation, for example `{ "method.public-source": 0.01 }`. Choose these
|
|
1418
|
+
values from your actual provider agreement; the example is synthetic. Each
|
|
1419
|
+
allocation includes that operation's bounded redirects, retries, and provider
|
|
1420
|
+
pagination. Missing prices block new provider work; they do not mean zero.
|
|
1421
|
+
Project and shared HTTP caches, and local reads of stored Data windows, require
|
|
1422
|
+
no new monetary allocation. The existing broker call-count budget still counts
|
|
1423
|
+
cache/tool invocations. Concurrent provider calls share one durable ledger;
|
|
1424
|
+
local ledger writes are serialized while network operations remain parallel.
|
|
1425
|
+
|
|
1426
|
+
The project ledger covers project stage/reviewer admissions and the project
|
|
1427
|
+
HTTP/Data evidence entrypoints. Workspace setup/Doctor probes, setup companion
|
|
1428
|
+
commands, standalone `data run`, and unrelated host-app actions have no project
|
|
1429
|
+
budget binding; their charges are unobserved here and must not be counted as
|
|
1430
|
+
zero. Native host work is represented by its declared allocation, not trusted
|
|
1431
|
+
provider metering.
|
|
1432
|
+
|
|
1433
|
+
The project budget response separates accounted estimates, pending reservations,
|
|
1434
|
+
remaining authorization, and overruns. It never reports a provider invoice.
|
|
1435
|
+
Model actions require declared route prices; native/provider operations use
|
|
1436
|
+
conservative allocations where trusted usage is unavailable. Increasing the
|
|
1437
|
+
authorization or changing provider maxima requires `--confirm-budget`.
|
|
1438
|
+
Tightening cannot exclude already spent or reserved exposure. Legacy projects
|
|
1439
|
+
retain their existing workspace controls until explicitly adopted; changing a
|
|
1440
|
+
project authorization leaves workspace settings and Doctor bindings intact.
|
|
1441
|
+
Fork/addendum recovery carries outstanding obligations to the current project
|
|
1442
|
+
without counting them twice. An uncertain operation remains pending until it
|
|
1443
|
+
ends or the owner explicitly resolves it with `project budget resolve`, a
|
|
1444
|
+
reservation ID, an accounted estimate, a reason, and `--confirm-budget`.
|
|
1445
|
+
A native reservation requires its original session to have ended first.
|
|
1446
|
+
Settled accounting evidence is immutable, including conservative allocated
|
|
1447
|
+
maxima; this interface does not revise historical costs or reconcile provider
|
|
1448
|
+
invoices. Choose reviewed per-operation maxima accordingly.
|
|
1449
|
+
An owner estimate above the ceiling records an overrun and blocks further
|
|
1450
|
+
positive-cost work; it does not silently increase the authorization.
|
|
1451
|
+
If a command fails after saving the decision but before writing its journal
|
|
1452
|
+
record, retrying the same command reconciles the missing record without changing
|
|
1453
|
+
the authorization or charging again. The record is marked as reconciliation;
|
|
1454
|
+
contradictory journal evidence stops the replay for inspection.
|
|
1455
|
+
|
|
1235
1456
|
Every evidence source must resolve to an admitted input, a completed broker
|
|
1236
1457
|
receipt, or a completed structured data-runtime receipt. Successful broker and
|
|
1237
1458
|
data results are immutable content-addressed objects under
|
|
@@ -1263,6 +1484,11 @@ with `tiangong-ai data describe`, then run the exact request through:
|
|
|
1263
1484
|
tiangong-ai research project evidence data run <project-id> \
|
|
1264
1485
|
--request /absolute/path/to/data-run-request.json \
|
|
1265
1486
|
--workspace /absolute/path/to/workspace --json
|
|
1487
|
+
|
|
1488
|
+
# When contextView.nextCursor is non-null, continue from persisted Evidence:
|
|
1489
|
+
tiangong-ai research project evidence data read <project-id> \
|
|
1490
|
+
--receipt <attempt-id> --cursor <opaque-next-cursor> \
|
|
1491
|
+
--workspace /absolute/path/to/workspace --json
|
|
1266
1492
|
```
|
|
1267
1493
|
|
|
1268
1494
|
This Research command calls the same TypeScript data service in-process; it does
|
|
@@ -1275,6 +1501,12 @@ credentialed operation must resolve its namespaced logical credential from the
|
|
|
1275
1501
|
workspace's owner-only store or it is blocked before any provider request.
|
|
1276
1502
|
Standalone `tiangong-ai data run` keeps its separate manifest-declared
|
|
1277
1503
|
environment-variable policy. A blocked data result is not promoted to evidence.
|
|
1504
|
+
Native packets publish data commands as `workspace-cli-relative-argv`;
|
|
1505
|
+
installed Auto Research must prefix them with its workspace-locked resolver
|
|
1506
|
+
rather than resolving a global CLI from `PATH`.
|
|
1507
|
+
Data Evidence continuation is read-only and does not consume another evidence-call
|
|
1508
|
+
or provider-request budget. Provider coverage, limits reached, and Agent context
|
|
1509
|
+
coverage are reported independently, so a result may be both partial and bounded.
|
|
1278
1510
|
Analyze and synthesize packets contain hash-verified prior-stage artifacts and
|
|
1279
1511
|
require no external evidence calls. Base and scientific review use only the
|
|
1280
1512
|
packet-bound `research_list_artifacts` and `research_read_artifact` tools; shell,
|
|
@@ -1489,7 +1721,7 @@ acquisition snapshot; unchanged records are reused. Single and batch intake shar
|
|
|
1489
1721
|
this rule. Historical records remain immutable, and atoms from deselected artifacts
|
|
1490
1722
|
cannot fill current coverage. Same-snapshot conflicting extraction still fails.
|
|
1491
1723
|
|
|
1492
|
-
|
|
1724
|
+
Substantive question/Policy/design changes or post-analysis work require the existing
|
|
1493
1725
|
fork/addendum flow. Pre-feature snapshots without immutable evidence records cannot
|
|
1494
1726
|
be repaired in place; use `research project fork SOURCE --to TARGET
|
|
1495
1727
|
--resume-through discover` to reuse discovery/receipts/artifacts, or explicitly
|
|
@@ -1497,6 +1729,54 @@ start a new generation. There is no automatic migration. A top-journal successor
|
|
|
1497
1729
|
requires a Policy approved for TARGET and `--design`, `--design-producer-agent`,
|
|
1498
1730
|
and `--design-producer-session`; it cannot inherit scientific approval.
|
|
1499
1731
|
|
|
1732
|
+
### Amend planned design declarations before analysis
|
|
1733
|
+
|
|
1734
|
+
At an idle boundary before analysis or inference freeze, a compatible runtime
|
|
1735
|
+
can amend an existing planned Policy rule's due gate, rationale, or links to
|
|
1736
|
+
already declared models/parameters. The question, claims, thresholds, model
|
|
1737
|
+
and parameter definitions/values, evidence requirements and Policy content stay
|
|
1738
|
+
fixed. Substantive changes continue through a reviewed successor.
|
|
1739
|
+
|
|
1740
|
+
```bash
|
|
1741
|
+
tiangong-ai research schema show scientific-amendment --json
|
|
1742
|
+
tiangong-ai research scientific amendment plan PROJECT \
|
|
1743
|
+
--input /absolute/amendment-input.json --workspace /absolute/workspace --json
|
|
1744
|
+
```
|
|
1745
|
+
|
|
1746
|
+
The closed input contains `schemaVersion: 1`, a reason and `changes`; use the
|
|
1747
|
+
schema for their exact fields. Amendment status exposes the current editable
|
|
1748
|
+
fields under `plannedRules`, so unchanged links can be preserved explicitly. Save the returned plan JSON unchanged externally.
|
|
1749
|
+
It shows before/after declarations, current parent bindings, preserved acquisition,
|
|
1750
|
+
invalidated scientific gates and `affectedTaskRequirementIds`. Planning does not
|
|
1751
|
+
mutate the project or request a provider. After explicit approval of that exact
|
|
1752
|
+
plan, retain the actual supplied confirmation text in a bounded UTF-8 file:
|
|
1753
|
+
|
|
1754
|
+
```bash
|
|
1755
|
+
tiangong-ai research scientific amendment apply PROJECT \
|
|
1756
|
+
--plan /absolute/amendment-plan.json --confirm REVIEWED_PLAN_SHA256 \
|
|
1757
|
+
--authorization-source /absolute/confirmation.txt --workspace /absolute/workspace --json
|
|
1758
|
+
tiangong-ai research scientific amendment status PROJECT --workspace /absolute/workspace --json
|
|
1759
|
+
```
|
|
1760
|
+
|
|
1761
|
+
The CLI records operator-supplied confirmation, not authenticated human identity.
|
|
1762
|
+
Original design bytes, fulfillment records and valid evidence remain unchanged;
|
|
1763
|
+
a new immutable declaration version and its exact parent/changes/source are
|
|
1764
|
+
retained. Planned rules are not marked scientifically satisfied. New early
|
|
1765
|
+
scientific reviews receive the version history and current effective design.
|
|
1766
|
+
|
|
1767
|
+
Task checks linked through existing claim/coverage bindings to changed rules
|
|
1768
|
+
become stale; unrelated checks remain reusable and idempotent. Affected check
|
|
1769
|
+
contexts expose `requiredDesignAmendmentSha256`; an explicit reassessment records
|
|
1770
|
+
its applicable amendment without requiring unchanged sources or calculations to
|
|
1771
|
+
be rerun. Unbound source-only checks do not establish the amended design's
|
|
1772
|
+
validity. Portable audit verifies the same selective relationships.
|
|
1773
|
+
|
|
1774
|
+
Changed parents or Policy, unsupported fields, active stages and late amendments
|
|
1775
|
+
reject. Inspect and replan instead of editing hashes. A committed but interrupted
|
|
1776
|
+
apply recovers through the existing project transaction and identical retry;
|
|
1777
|
+
unknown or conflicting files are preserved. This path does not add a new paid
|
|
1778
|
+
review role or silently upgrade a locked runtime that lacks these commands.
|
|
1779
|
+
|
|
1500
1780
|
### Fulfill predeclared scientific objects
|
|
1501
1781
|
|
|
1502
1782
|
At an idle boundary before analysis, register the exact code/environment files
|
|
@@ -1638,6 +1918,107 @@ A completed workflow or approved reduced scope must not be described as satisfyi
|
|
|
1638
1918
|
unanswered original requirements. Use the selected runtime's help/schema discovery
|
|
1639
1919
|
once before adopting these commands; they are not an implicit runtime upgrade.
|
|
1640
1920
|
|
|
1921
|
+
Native producer stage packets preserve the original `taskContract` and also
|
|
1922
|
+
carry `taskAcceptance`, compiled from the same authoritative check view used by
|
|
1923
|
+
status/review. Recorded, failed, stale and unanswered rows remain distinct. The
|
|
1924
|
+
packet artifact directory exposes `inputs/task-acceptance.json` and its exact
|
|
1925
|
+
check result files for on-demand reading, including non-calculation results.
|
|
1926
|
+
Compilation occurs during fresh preparation; replay returns the existing packet.
|
|
1927
|
+
A recorded check still requires the existing independent review for acceptance.
|
|
1928
|
+
|
|
1929
|
+
## Bounded computational investigations
|
|
1930
|
+
|
|
1931
|
+
Use an investigation for a still-unanswered computational requirement when the
|
|
1932
|
+
native producer needs several diagnostic attempts over fixed acquired inputs.
|
|
1933
|
+
The native host supplies hypotheses, programs, configuration choices and
|
|
1934
|
+
interpretation; the CLI observes individual calculations and records their
|
|
1935
|
+
relationships. It does not launch another producer or retry loop.
|
|
1936
|
+
|
|
1937
|
+
Discover the exact selected CLI's closed schemas first:
|
|
1938
|
+
|
|
1939
|
+
```bash
|
|
1940
|
+
tiangong-ai research schema show investigation --json
|
|
1941
|
+
tiangong-ai research schema show investigation-attempt --json
|
|
1942
|
+
tiangong-ai research schema show investigation-candidate --json
|
|
1943
|
+
tiangong-ai research schema show investigation-promotion --json
|
|
1944
|
+
tiangong-ai research schema show investigation-close --json
|
|
1945
|
+
```
|
|
1946
|
+
|
|
1947
|
+
An envelope binds the requirement, Policy/design and acquisition versions, exact
|
|
1948
|
+
canonical input hashes, existing Node/Python runtimes, program and environment
|
|
1949
|
+
bytes, allowed numerical options and required diagnostic metrics/status fields.
|
|
1950
|
+
Configure the numeric project budget before approval. Limits include maximum
|
|
1951
|
+
runs, cumulative/per-run wall time, cost allocations, per-run `maxOutputBytes`
|
|
1952
|
+
and cumulative `maxTotalOutputBytes`. The per-run byte limit is at most 512 MiB.
|
|
1953
|
+
A read-only plan starts no program; approval requires its exact hash and the
|
|
1954
|
+
actual supplied authorization text:
|
|
1955
|
+
|
|
1956
|
+
```bash
|
|
1957
|
+
tiangong-ai research project investigation plan PROJECT --input /absolute/envelope.json --json
|
|
1958
|
+
tiangong-ai research project investigation approve PROJECT --input /absolute/envelope.json --confirm PLAN_SHA256 --authorization-source /absolute/approval.txt --json
|
|
1959
|
+
tiangong-ai research project investigation attempt PROJECT --input /absolute/attempt.json --json
|
|
1960
|
+
tiangong-ai research project investigation status PROJECT --investigation INVESTIGATION_ID --json
|
|
1961
|
+
```
|
|
1962
|
+
|
|
1963
|
+
Add `--workspace /absolute/research` when operating outside the selected research
|
|
1964
|
+
workspace. Use a separate scratch directory outside that workspace. Calculation
|
|
1965
|
+
confinement denies host network access and workspace reads, makes runtime roots
|
|
1966
|
+
read-only, and allows capsule writes. An unsupported boundary is refused before
|
|
1967
|
+
execution. Environment locks remain declarations, not dependency attestation;
|
|
1968
|
+
programs that require installation or broader capabilities need a separately
|
|
1969
|
+
reviewed scope.
|
|
1970
|
+
|
|
1971
|
+
Within the approved envelope, attempts need no repeated owner approval. Each
|
|
1972
|
+
records a hypothesis, parent attempt (the previous committed attempt by default,
|
|
1973
|
+
or explicit `parentAttemptId`), configuration changes, exact results and bounded
|
|
1974
|
+
logs. Missing declared solver telemetry is diagnostic-incomplete. Process or
|
|
1975
|
+
solver failures remain diagnostic observations, not scientific answers.
|
|
1976
|
+
|
|
1977
|
+
Output accounting includes stdout/stderr and the observed high-water sizes of
|
|
1978
|
+
declared output files, including the runtime probe. Streams are checked as they
|
|
1979
|
+
arrive; files are checked periodically and at completion. Observed overshoot is
|
|
1980
|
+
retained honestly; this is not a quota on every temporary filesystem write.
|
|
1981
|
+
Exceeding the byte budget terminates the calculation, prevents result admission
|
|
1982
|
+
and stops further attempts under that envelope. Unknown cost remains unknown;
|
|
1983
|
+
software accounting retains the approved upper-bound allocation.
|
|
1984
|
+
|
|
1985
|
+
An identical committed attempt returns its original result. An unresolved start
|
|
1986
|
+
keeps its reservation and cannot be blindly replayed or replaced. A one-shot
|
|
1987
|
+
process guard retains the deadline independently of the observer and terminates
|
|
1988
|
+
the calculation if that observer disconnects; missing durable results remain
|
|
1989
|
+
unresolved rather than being reconstructed as success. Status exposes current
|
|
1990
|
+
authority, reservations and the permitted next action. Unresolved attempt status
|
|
1991
|
+
and promoted `task run inspect` also check the local supervisor process identity;
|
|
1992
|
+
a missing or mismatched process never establishes completion or permits retry.
|
|
1993
|
+
These local coordinates stay outside portable audit records. `select` records a
|
|
1994
|
+
candidate; `close` records why investigation stopped and releases unused cost
|
|
1995
|
+
allocation while preserving history. It refuses closure with unresolved work.
|
|
1996
|
+
|
|
1997
|
+
```bash
|
|
1998
|
+
tiangong-ai research project investigation select PROJECT --input /absolute/selection.json --json
|
|
1999
|
+
tiangong-ai research project investigation close PROJECT --input /absolute/closure.json --json
|
|
2000
|
+
tiangong-ai research project investigation promotion plan PROJECT --input /absolute/promotion.json --json
|
|
2001
|
+
tiangong-ai research project investigation promotion approve PROJECT --input /absolute/promotion.json --confirm PLAN_SHA256 --authorization-source /absolute/promotion-approval.txt --json
|
|
2002
|
+
```
|
|
2003
|
+
|
|
2004
|
+
Promotion approval alone does not freeze scientific objects or satisfy the task.
|
|
2005
|
+
Use existing scientific object registration and fulfillment for predeclared
|
|
2006
|
+
pending slots, or a separately approved authoritative successor for a changed
|
|
2007
|
+
frozen design. Then supply `investigationPromotionSha256` in a new `task run
|
|
2008
|
+
observe` request using the exact frozen recipe. That approval admits one fresh
|
|
2009
|
+
certification; a failed or unresolved certification does not authorize another.
|
|
2010
|
+
A candidate or older ordinary run cannot substitute for it. A passed observation
|
|
2011
|
+
can enter task-check records, with the existing independent review still required
|
|
2012
|
+
before the task is answered.
|
|
2013
|
+
|
|
2014
|
+
Portable audits retain the investigation, attempt, candidate, promotion,
|
|
2015
|
+
certification and closure relationships. A successor includes the explicitly
|
|
2016
|
+
referenced source investigation's immutable records and blobs, excluding local
|
|
2017
|
+
routing and unrelated investigations. Verification reconstructs the scientific
|
|
2018
|
+
view at promotion and certification start, so a later freeze cannot retroactively
|
|
2019
|
+
certify an earlier run. Hash/relationship verification does not
|
|
2020
|
+
establish authorship, hermetic execution or scientific truth.
|
|
2021
|
+
|
|
1641
2022
|
## Research Search
|
|
1642
2023
|
|
|
1643
2024
|
Forward research-oriented search requests to SCI, report, patent, and ESG edge
|