@tiangong-ai/cli 0.0.35 → 0.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/AGENTS.md +16 -6
  2. package/README.md +128 -10
  3. package/dist/research/orchestration.js +334 -29
  4. package/dist/research/orchestration.js.map +1 -1
  5. package/dist/research/workspace/acquisition-routes.d.ts +14 -0
  6. package/dist/research/workspace/acquisition-routes.js +45 -0
  7. package/dist/research/workspace/acquisition-routes.js.map +1 -0
  8. package/dist/research/workspace/audit-bundle.d.ts +44 -0
  9. package/dist/research/workspace/audit-bundle.js +357 -0
  10. package/dist/research/workspace/audit-bundle.js.map +1 -0
  11. package/dist/research/workspace/broker.js +54 -10
  12. package/dist/research/workspace/broker.js.map +1 -1
  13. package/dist/research/workspace/downloads.d.ts +6 -0
  14. package/dist/research/workspace/downloads.js +32 -8
  15. package/dist/research/workspace/downloads.js.map +1 -1
  16. package/dist/research/workspace/evidence-exhaustion.d.ts +45 -0
  17. package/dist/research/workspace/evidence-exhaustion.js +365 -0
  18. package/dist/research/workspace/evidence-exhaustion.js.map +1 -0
  19. package/dist/research/workspace/native-activity.d.ts +6 -0
  20. package/dist/research/workspace/native-activity.js +24 -7
  21. package/dist/research/workspace/native-activity.js.map +1 -1
  22. package/dist/research/workspace/preflight.d.ts +34 -2
  23. package/dist/research/workspace/preflight.js +161 -1
  24. package/dist/research/workspace/preflight.js.map +1 -1
  25. package/dist/research/workspace/projects.d.ts +28 -4
  26. package/dist/research/workspace/projects.js +301 -12
  27. package/dist/research/workspace/projects.js.map +1 -1
  28. package/dist/research/workspace/publication-workflow.js +2 -0
  29. package/dist/research/workspace/publication-workflow.js.map +1 -1
  30. package/dist/research/workspace/runtime.d.ts +151 -3
  31. package/dist/research/workspace/runtime.js +180 -6
  32. package/dist/research/workspace/runtime.js.map +1 -1
  33. package/dist/research/workspace/sanitization.js +9 -3
  34. package/dist/research/workspace/sanitization.js.map +1 -1
  35. package/dist/research/workspace/scientific-design.d.ts +359 -0
  36. package/dist/research/workspace/scientific-design.js +2021 -0
  37. package/dist/research/workspace/scientific-design.js.map +1 -0
  38. package/dist/research/workspace/scientific-review.d.ts +101 -0
  39. package/dist/research/workspace/scientific-review.js +1167 -0
  40. package/dist/research/workspace/scientific-review.js.map +1 -0
  41. package/dist/research/workspace/setup-catalog.js +2 -2
  42. package/dist/research/workspace/setup.js +12 -3
  43. package/dist/research/workspace/setup.js.map +1 -1
  44. package/dist/research/workspace/types.d.ts +54 -0
  45. package/dist/research/workspace/workspace.js +25 -7
  46. package/dist/research/workspace/workspace.js.map +1 -1
  47. package/package.json +2 -1
@@ -50,17 +50,23 @@ function sanitizeUrls(value) {
50
50
  const source = trailing ? bounded.source.slice(0, -trailing.length) : bounded.source;
51
51
  try {
52
52
  const url = new URL(source);
53
+ let changed = false;
53
54
  if (url.username || url.password) {
54
55
  url.username = "REDACTED";
55
56
  url.password = "";
57
+ changed = true;
56
58
  }
57
59
  for (const key of [...url.searchParams.keys()]) {
58
- if (SENSITIVE_QUERY_KEY.test(key))
60
+ if (SENSITIVE_QUERY_KEY.test(key)) {
59
61
  url.searchParams.set(key, "[REDACTED]");
62
+ changed = true;
63
+ }
60
64
  }
61
- if (SENSITIVE_URL_FRAGMENT.test(url.hash))
65
+ if (SENSITIVE_URL_FRAGMENT.test(url.hash)) {
62
66
  url.hash = "REDACTED";
63
- return `${url.toString()}${trailing}${bounded.suffix}`;
67
+ changed = true;
68
+ }
69
+ return changed ? `${url.toString()}${trailing}${bounded.suffix}` : candidate;
64
70
  }
65
71
  catch {
66
72
  return candidate;
@@ -1 +1 @@
1
- {"version":3,"file":"sanitization.js","sourceRoot":"","sources":["../../../src/research/workspace/sanitization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sanitization.js","sourceRoot":"","sources":["../../../src/research/workspace/sanitization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,359 @@
1
+ export type ScientificStudyKind = "causal-empirical" | "observational-empirical" | "predictive-model" | "mechanism-model" | "cross-model-comparison" | "scenario-analysis" | "material-flow-accounting" | "systematic-synthesis" | "methods-data-resource";
2
+ export type ScientificResultClass = "causal-estimate" | "observational-estimate" | "validated-forecast" | "model-output" | "scenario-output" | "accounting-output" | "systematic-synthesis" | "method-performance";
3
+ export type EvidenceAcquisitionRouteClass = "broker-capability" | "native-discovery" | "open-access-download" | "authorized-browser" | "licensed-resource" | "owner-provided-resource" | "external-data-request" | "field-data-collection";
4
+ export type EvidenceAcquisitionExecutor = "agent" | "user" | "external-party";
5
+ export type EvidenceAccessMode = "open-public" | "owner-authorized" | "user-authorization-required" | "purchase-or-subscription" | "external-request";
6
+ export interface ScientificDesignContract {
7
+ schemaVersion: 1;
8
+ projectId: string;
9
+ workingTitle: string;
10
+ identity: {
11
+ centralStudyKind: ScientificStudyKind;
12
+ contributionStatement: string;
13
+ components: Array<{
14
+ kind: ScientificStudyKind;
15
+ role: "central" | "supporting" | "contextual";
16
+ purpose: string;
17
+ bridgeEdgeIds: string[];
18
+ }>;
19
+ modelStructures: Array<{
20
+ id: string;
21
+ label: string;
22
+ family: string;
23
+ version: string;
24
+ equationSet: string;
25
+ coefficientSet: string;
26
+ implementationArtifactSha256: string;
27
+ implementationArtifactLocator: string;
28
+ implementationEntrypoint: string;
29
+ implementationStatus: "executable-frozen" | "pending-source-acquisition";
30
+ implementationFreezeBeforeGate: "research-design" | "evidence-construct" | "pilot-methods";
31
+ environmentLockSha256: string;
32
+ environmentLockLocator: string;
33
+ environmentLockStatus: "exact-frozen" | "pending-runtime-lock";
34
+ environmentLockFreezeBeforeGate: "research-design" | "evidence-construct" | "pilot-methods";
35
+ artifactHashBasis: "raw-file-bytes";
36
+ baselineRole: "candidate" | "reference" | "strongest-available";
37
+ baselineSelectionJustification: string;
38
+ sourceEvidenceRoleIds: string[];
39
+ }>;
40
+ allowedClaimVerbs: string[];
41
+ targetJournals: {
42
+ primary: string;
43
+ alternate: string;
44
+ fallback: string;
45
+ approvalStatus: "candidate-only" | "policy-approved";
46
+ };
47
+ };
48
+ policyRuleDispositions: Array<{
49
+ ruleId: string;
50
+ status: "satisfied-by-design" | "planned" | "scope-limited" | "incompatible";
51
+ dueGate: "research-design" | "evidence-construct" | "pilot-methods" | "publication-freeze";
52
+ rationale: string;
53
+ claimIds: string[];
54
+ evidenceRoleIds: string[];
55
+ validationPlanIds: string[];
56
+ knownGapIds: string[];
57
+ uncertaintyParameterIds: string[];
58
+ modelStructureIds: string[];
59
+ }>;
60
+ estimands: Array<{
61
+ id: string;
62
+ role: "central" | "supporting" | "contextual";
63
+ population: string;
64
+ analysisUnit: string;
65
+ exposure: string;
66
+ comparator: string;
67
+ outcome: string;
68
+ spatialScale: string;
69
+ timeHorizon: string;
70
+ resultClass: ScientificResultClass;
71
+ }>;
72
+ claims: Array<{
73
+ id: string;
74
+ role: "central" | "supporting" | "contextual";
75
+ statement: string;
76
+ resultClass: ScientificResultClass;
77
+ edgeIds: string[];
78
+ endpointIds: string[];
79
+ comparisonIds: string[];
80
+ estimandIds: string[];
81
+ quantityIds: string[];
82
+ evidenceRoleIds: string[];
83
+ hypothesisMode: "two-sided" | "directional" | "descriptive" | "not-applicable";
84
+ nullOutcomeStatement: string | null;
85
+ }>;
86
+ edges: Array<{
87
+ id: string;
88
+ role: "central" | "supporting" | "contextual";
89
+ fromConstruct: string;
90
+ toConstruct: string;
91
+ evidenceMode: "direct-observation" | "model-bridge" | "accounting-bridge" | "assumption-only";
92
+ requiredJoinKeys: string[];
93
+ temporalAlignment: string;
94
+ spatialAlignment: string;
95
+ fromModelStructureIds: string[];
96
+ toModelStructureIds: string[];
97
+ fromEndpointIds: string[];
98
+ toEndpointIds: string[];
99
+ operatorId: string;
100
+ operatorDefinition: string;
101
+ aggregationRule: string;
102
+ scaleReconciliation: string;
103
+ quantityIds: string[];
104
+ uncertaintyParameterIds: string[];
105
+ sameSectionRequired: boolean;
106
+ sameEventRequired: boolean;
107
+ status: "planned" | "constructible" | "blocked";
108
+ blockingReason: string | null;
109
+ }>;
110
+ endpoints: Array<{
111
+ id: string;
112
+ label: string;
113
+ physicalConstruct: string;
114
+ scale: string;
115
+ unit: string;
116
+ timeBasis: string;
117
+ modelStructureId: string | null;
118
+ truthRole: "field-observation" | "experimental-reference" | "engineering-model" | "proxy" | "scenario-output" | "accounting-output";
119
+ }>;
120
+ comparisons: Array<{
121
+ id: string;
122
+ leftEndpointId: string;
123
+ rightEndpointId: string;
124
+ operation: "error" | "accuracy" | "validation" | "agreement" | "discrepancy" | "ranking" | "qualitative-boundary";
125
+ axis: "same-endpoint-cross-model" | "model-to-observation" | "decision-consequence" | "qualitative-boundary";
126
+ quantityIds: string[];
127
+ thresholdIds: string[];
128
+ decisionRule: string;
129
+ reportingLevel: string;
130
+ truthEndpointId: string | null;
131
+ }>;
132
+ quantities: Array<{
133
+ id: string;
134
+ label: string;
135
+ quantityType: "share" | "material" | "rate" | "count" | "index" | "other";
136
+ unit: string;
137
+ numeratorType: string;
138
+ denominatorType: string;
139
+ denominatorDescription: string;
140
+ normalizationMode: "symmetric" | "directional-convention" | "not-applicable";
141
+ normalizationJustification: string;
142
+ valueMode: "signed" | "absolute" | "nonnegative" | "categorical";
143
+ uncertaintyParameterIds: string[];
144
+ spatialScope: string;
145
+ temporalScope: string;
146
+ allowedTerms: string[];
147
+ prohibitedTerms: string[];
148
+ }>;
149
+ validationPlans: Array<{
150
+ id: string;
151
+ claimIds: string[];
152
+ role: "internal-holdout" | "temporal-holdout" | "section-holdout" | "external-dgp" | "cross-model-reference" | "background-constraint" | "not-applicable";
153
+ parameterDatasetIds: string[];
154
+ comparisonDatasetIds: string[];
155
+ datasetRoles: Array<{
156
+ datasetId: string;
157
+ role: "parameter-source" | "endpoint-definition-source" | "non-independent-cross-check" | "independent-validation" | "background-context";
158
+ sharedUpstreamIds: string[];
159
+ justification: string;
160
+ }>;
161
+ factorIds: string[];
162
+ exposureIdentifierAvailable: boolean;
163
+ independentDataGeneratingProcess: boolean;
164
+ outcomeBlind: boolean;
165
+ originalUnitCount: number;
166
+ independentClusterCount: number;
167
+ effectiveIndependentUnits: number;
168
+ originalUnitDefinition: string;
169
+ independentClusterDefinition: string;
170
+ nestingRule: string;
171
+ reportingUnitDefinition: string;
172
+ clusterKeyIds: string[];
173
+ independenceJustification: string;
174
+ resamplingUnit: string;
175
+ resamplingIterations: number;
176
+ resamplingMethod: "exact-enumeration" | "cluster-bootstrap" | "none";
177
+ resamplingStateSpaceSize: number;
178
+ reportingPrecision: string;
179
+ minimumDetectableDifference: string | null;
180
+ independentValidation: {
181
+ status: "available" | "planned" | "unavailable-scope-bounded" | "not-required";
182
+ gapId: string | null;
183
+ justification: string;
184
+ };
185
+ status: "planned" | "feasible" | "impossible";
186
+ blockingReason: string | null;
187
+ }>;
188
+ thresholds: Array<{
189
+ id: string;
190
+ claimId: string;
191
+ quantityId: string;
192
+ type: "analytic" | "scenario" | "estimated" | "policy-trigger";
193
+ reportedAs: "analytic-threshold" | "scenario-threshold" | "estimated-threshold" | "policy-trigger";
194
+ criterion: string;
195
+ criterionQuantityIds: string[];
196
+ numericValue: number | null;
197
+ unit: string;
198
+ direction: "above" | "below" | "outside" | "equal" | "categorical";
199
+ basis: "reporting-convention" | "domain-standard" | "decision-consequence" | "policy";
200
+ basisJustification: string;
201
+ stabilityMode: "sign" | "classification" | "range" | "none";
202
+ stabilityQuantityId: string | null;
203
+ stabilityRule: string;
204
+ sensitivityReportingRule: string;
205
+ assumptionIds: string[];
206
+ sensitivityParameterIds: string[];
207
+ }>;
208
+ evidenceRoles: Array<{
209
+ id: string;
210
+ role: "central-model-source" | "central-data-documentation" | "closest-prior-work" | "counterevidence" | "method-identification" | "material-conversion" | "overlay-rule" | "cross-model-validation" | "pavement-context" | "limitation-boundary" | "target-journal-recent-work" | "background";
211
+ claimIds: string[];
212
+ coverageDimensionIds: string[];
213
+ sourceTypeRequirements: string[];
214
+ peerReviewedRequired: boolean;
215
+ required: boolean;
216
+ minimumFullText: number;
217
+ minimumIndependentSources: number;
218
+ minimumDatedSources: number;
219
+ }>;
220
+ acquisitionPlan: {
221
+ routes: Array<{
222
+ id: string;
223
+ evidenceRoleIds: string[];
224
+ routeClass: EvidenceAcquisitionRouteClass;
225
+ executor: EvidenceAcquisitionExecutor;
226
+ required: boolean;
227
+ capabilityId: string | null;
228
+ activityKind: "web-search" | "database-search" | "browser-navigation" | "download" | "file-inspection" | null;
229
+ activityChannel: string | null;
230
+ downloadBackends: Array<"native-browser" | "chrome" | "cloakbrowser" | "skill-adapter" | "direct-http">;
231
+ accessMode: EvidenceAccessMode;
232
+ rationale: string;
233
+ }>;
234
+ stopPolicy: {
235
+ allAgentRoutesExhaustedBeforeHandoff: boolean;
236
+ unresolvedRequiredEvidenceRoleBlocksDownstream: boolean;
237
+ prohibitUnreviewedSubstitution: boolean;
238
+ };
239
+ };
240
+ knownGaps: Array<{
241
+ id: string;
242
+ description: string;
243
+ sourceProjectId: string | null;
244
+ sourceArtifacts: Array<{
245
+ sha256: string;
246
+ objectLocator: string;
247
+ hashBasis: "raw-file-bytes";
248
+ kind: "scientific-review-packet" | "scientific-review" | "evidence-snapshot" | "publication-assessment" | "owner-attestation";
249
+ }>;
250
+ lineageStatus: "verified" | "owner-attested" | "unverified";
251
+ disposition: "unresolved" | "closed" | "scope-narrowed" | "user-handoff" | "external-handoff";
252
+ evidenceRefs: Array<{
253
+ kind: "claim" | "quantity" | "validation-plan" | "edge" | "evidence-role";
254
+ id: string;
255
+ }>;
256
+ }>;
257
+ uncertaintyParameters: Array<{
258
+ id: string;
259
+ label: string;
260
+ distributionOrRange: string;
261
+ states: Array<{
262
+ id: string;
263
+ label: string;
264
+ value: string;
265
+ unit: string;
266
+ }>;
267
+ stateValueType: "numeric" | "categorical";
268
+ stateValueStatus: "frozen" | "pending-source-acquisition";
269
+ freezeBeforeGate: "research-design" | "evidence-construct" | "pilot-methods";
270
+ factorIds: string[];
271
+ applicationPoint: string;
272
+ compositionRule: string;
273
+ preservesFactorLevelIdentity: boolean;
274
+ sourceEvidenceRoleIds: string[];
275
+ quantityIds: string[];
276
+ }>;
277
+ uncertaintyGroups: Array<{
278
+ id: string;
279
+ parameterIds: string[];
280
+ combinationMode: "one-at-a-time" | "full-factorial" | "explicit-joint-states";
281
+ jointStateIds: string[];
282
+ jointStateBindings: Array<{
283
+ jointStateId: string;
284
+ parameterStateIds: string[];
285
+ }>;
286
+ applicationRule: string;
287
+ sharedAcrossModelStructureIds: string[];
288
+ }>;
289
+ factors: Array<{
290
+ id: string;
291
+ label: string;
292
+ role: "exposure" | "blocking" | "scenario";
293
+ observationalStatus: "observed" | "modeled-only" | "externally-defined";
294
+ applicabilityBoundary: string;
295
+ evidenceRoleIds: string[];
296
+ levels: Array<{
297
+ id: string;
298
+ label: string;
299
+ definition: string;
300
+ attributes: Array<{
301
+ id: string;
302
+ label: string;
303
+ value: string;
304
+ unit: string;
305
+ }>;
306
+ }>;
307
+ }>;
308
+ baselinePlan: {
309
+ sameInputInformation: boolean;
310
+ comparableCalibrationBudget: boolean;
311
+ sameEndpoint: boolean;
312
+ frozenBeforeAnalysis: boolean;
313
+ decisionLossMetrics: Array<{
314
+ id: string;
315
+ label: string;
316
+ comparisonIds: string[];
317
+ quantityIds: string[];
318
+ decisionRule: string;
319
+ reportingLevel: string;
320
+ }>;
321
+ };
322
+ contextPlan: {
323
+ maxEstimatedTokens: number;
324
+ estimatedTokens: number;
325
+ claimCriticalCapsuleIds: string[];
326
+ backgroundIndexOnly: boolean;
327
+ centralEvidenceFits: boolean;
328
+ };
329
+ }
330
+ export interface ScientificDesignIssue {
331
+ code: string;
332
+ severity: "blocking" | "major" | "minor";
333
+ message: string;
334
+ objectIds: string[];
335
+ }
336
+ export interface ScientificDesignEvaluation {
337
+ schemaVersion: 1;
338
+ projectId: string;
339
+ centralStudyKind: ScientificStudyKind;
340
+ readyForDesignReview: boolean;
341
+ issues: ScientificDesignIssue[];
342
+ issueCodes: string[];
343
+ effectiveIndependentUnits: number;
344
+ requiredEvidenceRoles: number;
345
+ }
346
+ export interface VerifiedScientificDesign {
347
+ schemaVersion: 1;
348
+ contract: ScientificDesignContract;
349
+ sha256: string;
350
+ bytes: number;
351
+ }
352
+ export declare function scientificDesignSchema(): Record<string, unknown>;
353
+ export declare function parseScientificDesign(value: unknown): ScientificDesignContract;
354
+ export declare function readAndVerifyScientificDesign(path: string, expectedProjectId?: string): Promise<VerifiedScientificDesign>;
355
+ export declare function evaluateScientificDesign(design: ScientificDesignContract): ScientificDesignEvaluation;
356
+ export declare function scientificDesignPolicyGaps(design: ScientificDesignContract, policy: {
357
+ resolvedRules: string[];
358
+ targetJournal: string | null;
359
+ }): string[];