@tiangong-ai/cli 0.0.50 → 0.0.55
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 +22 -2
- package/README.md +200 -7
- package/dist/cli.js +10 -1
- package/dist/cli.js.map +1 -1
- package/dist/data/builtins.d.ts +1 -0
- package/dist/data/builtins.js +40 -0
- package/dist/data/builtins.js.map +1 -0
- package/dist/data/catalog.d.ts +25 -0
- package/dist/data/catalog.js +305 -0
- package/dist/data/catalog.js.map +1 -0
- package/dist/data/commands.d.ts +9 -0
- package/dist/data/commands.js +307 -0
- package/dist/data/commands.js.map +1 -0
- package/dist/data/connectors/airnow-hourly-observations.d.ts +2 -0
- package/dist/data/connectors/airnow-hourly-observations.js +522 -0
- package/dist/data/connectors/airnow-hourly-observations.js.map +1 -0
- package/dist/data/connectors/airnow-hourly-observations.schemas.d.ts +299 -0
- package/dist/data/connectors/airnow-hourly-observations.schemas.js +188 -0
- package/dist/data/connectors/airnow-hourly-observations.schemas.js.map +1 -0
- package/dist/data/connectors/bluesky-public-posts.d.ts +2 -0
- package/dist/data/connectors/bluesky-public-posts.js +705 -0
- package/dist/data/connectors/bluesky-public-posts.js.map +1 -0
- package/dist/data/connectors/bluesky-public-posts.schemas.d.ts +733 -0
- package/dist/data/connectors/bluesky-public-posts.schemas.js +422 -0
- package/dist/data/connectors/bluesky-public-posts.schemas.js.map +1 -0
- package/dist/data/connectors/epa-eis-records.d.ts +2 -0
- package/dist/data/connectors/epa-eis-records.js +566 -0
- package/dist/data/connectors/epa-eis-records.js.map +1 -0
- package/dist/data/connectors/epa-eis-records.schemas.d.ts +199 -0
- package/dist/data/connectors/epa-eis-records.schemas.js +146 -0
- package/dist/data/connectors/epa-eis-records.schemas.js.map +1 -0
- package/dist/data/connectors/federal-register-documents.d.ts +2 -0
- package/dist/data/connectors/federal-register-documents.js +517 -0
- package/dist/data/connectors/federal-register-documents.js.map +1 -0
- package/dist/data/connectors/federal-register-documents.schemas.d.ts +357 -0
- package/dist/data/connectors/federal-register-documents.schemas.js +243 -0
- package/dist/data/connectors/federal-register-documents.schemas.js.map +1 -0
- package/dist/data/connectors/gdelt-doc-search.d.ts +2 -0
- package/dist/data/connectors/gdelt-doc-search.js +658 -0
- package/dist/data/connectors/gdelt-doc-search.js.map +1 -0
- package/dist/data/connectors/gdelt-doc-search.schemas.d.ts +446 -0
- package/dist/data/connectors/gdelt-doc-search.schemas.js +330 -0
- package/dist/data/connectors/gdelt-doc-search.schemas.js.map +1 -0
- package/dist/data/connectors/gdelt-file-feeds.d.ts +4 -0
- package/dist/data/connectors/gdelt-file-feeds.js +591 -0
- package/dist/data/connectors/gdelt-file-feeds.js.map +1 -0
- package/dist/data/connectors/gdelt-file-feeds.schemas.d.ts +40 -0
- package/dist/data/connectors/gdelt-file-feeds.schemas.js +256 -0
- package/dist/data/connectors/gdelt-file-feeds.schemas.js.map +1 -0
- package/dist/data/connectors/nasa-firms-fire.d.ts +2 -0
- package/dist/data/connectors/nasa-firms-fire.js +578 -0
- package/dist/data/connectors/nasa-firms-fire.js.map +1 -0
- package/dist/data/connectors/nasa-firms-fire.schemas.d.ts +369 -0
- package/dist/data/connectors/nasa-firms-fire.schemas.js +238 -0
- package/dist/data/connectors/nasa-firms-fire.schemas.js.map +1 -0
- package/dist/data/connectors/open-meteo-air-quality.d.ts +2 -0
- package/dist/data/connectors/open-meteo-air-quality.js +401 -0
- package/dist/data/connectors/open-meteo-air-quality.js.map +1 -0
- package/dist/data/connectors/open-meteo-air-quality.schemas.d.ts +335 -0
- package/dist/data/connectors/open-meteo-air-quality.schemas.js +225 -0
- package/dist/data/connectors/open-meteo-air-quality.schemas.js.map +1 -0
- package/dist/data/connectors/open-meteo-flood.d.ts +2 -0
- package/dist/data/connectors/open-meteo-flood.js +446 -0
- package/dist/data/connectors/open-meteo-flood.js.map +1 -0
- package/dist/data/connectors/open-meteo-flood.schemas.d.ts +388 -0
- package/dist/data/connectors/open-meteo-flood.schemas.js +227 -0
- package/dist/data/connectors/open-meteo-flood.schemas.js.map +1 -0
- package/dist/data/connectors/open-meteo-historical-weather.d.ts +2 -0
- package/dist/data/connectors/open-meteo-historical-weather.js +468 -0
- package/dist/data/connectors/open-meteo-historical-weather.js.map +1 -0
- package/dist/data/connectors/open-meteo-historical-weather.schemas.d.ts +420 -0
- package/dist/data/connectors/open-meteo-historical-weather.schemas.js +282 -0
- package/dist/data/connectors/open-meteo-historical-weather.schemas.js.map +1 -0
- package/dist/data/connectors/openaq-air-quality.d.ts +2 -0
- package/dist/data/connectors/openaq-air-quality.js +734 -0
- package/dist/data/connectors/openaq-air-quality.js.map +1 -0
- package/dist/data/connectors/openaq-air-quality.schemas.d.ts +1067 -0
- package/dist/data/connectors/openaq-air-quality.schemas.js +512 -0
- package/dist/data/connectors/openaq-air-quality.schemas.js.map +1 -0
- package/dist/data/connectors/regulations-gov-attachments.d.ts +2 -0
- package/dist/data/connectors/regulations-gov-attachments.js +486 -0
- package/dist/data/connectors/regulations-gov-attachments.js.map +1 -0
- package/dist/data/connectors/regulations-gov-attachments.schemas.d.ts +270 -0
- package/dist/data/connectors/regulations-gov-attachments.schemas.js +181 -0
- package/dist/data/connectors/regulations-gov-attachments.schemas.js.map +1 -0
- package/dist/data/connectors/regulations-gov-comments.d.ts +2 -0
- package/dist/data/connectors/regulations-gov-comments.js +718 -0
- package/dist/data/connectors/regulations-gov-comments.js.map +1 -0
- package/dist/data/connectors/regulations-gov-comments.schemas.d.ts +717 -0
- package/dist/data/connectors/regulations-gov-comments.schemas.js +389 -0
- package/dist/data/connectors/regulations-gov-comments.schemas.js.map +1 -0
- package/dist/data/connectors/usbr-project-records.d.ts +2 -0
- package/dist/data/connectors/usbr-project-records.js +467 -0
- package/dist/data/connectors/usbr-project-records.js.map +1 -0
- package/dist/data/connectors/usbr-project-records.schemas.d.ts +194 -0
- package/dist/data/connectors/usbr-project-records.schemas.js +137 -0
- package/dist/data/connectors/usbr-project-records.schemas.js.map +1 -0
- package/dist/data/connectors/usbr-rise.d.ts +2 -0
- package/dist/data/connectors/usbr-rise.js +625 -0
- package/dist/data/connectors/usbr-rise.js.map +1 -0
- package/dist/data/connectors/usbr-rise.schemas.d.ts +623 -0
- package/dist/data/connectors/usbr-rise.schemas.js +407 -0
- package/dist/data/connectors/usbr-rise.schemas.js.map +1 -0
- package/dist/data/connectors/usgs-water-instantaneous-values.d.ts +2 -0
- package/dist/data/connectors/usgs-water-instantaneous-values.js +521 -0
- package/dist/data/connectors/usgs-water-instantaneous-values.js.map +1 -0
- package/dist/data/connectors/usgs-water-instantaneous-values.schemas.d.ts +496 -0
- package/dist/data/connectors/usgs-water-instantaneous-values.schemas.js +309 -0
- package/dist/data/connectors/usgs-water-instantaneous-values.schemas.js.map +1 -0
- package/dist/data/connectors/youtube-public-content.d.ts +2 -0
- package/dist/data/connectors/youtube-public-content.js +974 -0
- package/dist/data/connectors/youtube-public-content.js.map +1 -0
- package/dist/data/connectors/youtube-public-content.schemas.d.ts +773 -0
- package/dist/data/connectors/youtube-public-content.schemas.js +567 -0
- package/dist/data/connectors/youtube-public-content.schemas.js.map +1 -0
- package/dist/data/contracts.d.ts +374 -0
- package/dist/data/contracts.js +10 -0
- package/dist/data/contracts.js.map +1 -0
- package/dist/data/runtime/artifacts.d.ts +6 -0
- package/dist/data/runtime/artifacts.js +103 -0
- package/dist/data/runtime/artifacts.js.map +1 -0
- package/dist/data/runtime/bounded-http.d.ts +10 -0
- package/dist/data/runtime/bounded-http.js +403 -0
- package/dist/data/runtime/bounded-http.js.map +1 -0
- package/dist/data/runtime/canonical-json.d.ts +3 -0
- package/dist/data/runtime/canonical-json.js +59 -0
- package/dist/data/runtime/canonical-json.js.map +1 -0
- package/dist/data/runtime/credentials.d.ts +14 -0
- package/dist/data/runtime/credentials.js +67 -0
- package/dist/data/runtime/credentials.js.map +1 -0
- package/dist/data/runtime/csv.d.ts +4 -0
- package/dist/data/runtime/csv.js +51 -0
- package/dist/data/runtime/csv.js.map +1 -0
- package/dist/data/runtime/errors.d.ts +22 -0
- package/dist/data/runtime/errors.js +101 -0
- package/dist/data/runtime/errors.js.map +1 -0
- package/dist/data/runtime/execute.d.ts +11 -0
- package/dist/data/runtime/execute.js +358 -0
- package/dist/data/runtime/execute.js.map +1 -0
- package/dist/data/runtime/receipts.d.ts +13 -0
- package/dist/data/runtime/receipts.js +38 -0
- package/dist/data/runtime/receipts.js.map +1 -0
- package/dist/data/schemas/catalog.v1.json +73 -0
- package/dist/data/schemas/core-receipt.v1.json +117 -0
- package/dist/data/schemas/describe.v1.json +24 -0
- package/dist/data/schemas/discovery.v1.json +130 -0
- package/dist/data/schemas/doctor.v1.json +40 -0
- package/dist/data/schemas/error.v1.json +48 -0
- package/dist/data/schemas/manifest.v1.json +174 -0
- package/dist/data/schemas/run-request.v1.json +37 -0
- package/dist/data/schemas/run-result.v1.json +77 -0
- package/dist/data/schemas.d.ts +27 -0
- package/dist/data/schemas.js +69 -0
- package/dist/data/schemas.js.map +1 -0
- package/dist/env.js.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/http.js.map +1 -1
- package/dist/kb/config.js.map +1 -1
- package/dist/kb/pipeline-health.js.map +1 -1
- package/dist/research/orchestration.js +71 -11
- package/dist/research/orchestration.js.map +1 -1
- package/dist/research/workspace/acquisition.js +70 -5
- package/dist/research/workspace/acquisition.js.map +1 -1
- package/dist/research/workspace/audit-bundle.js +7 -2
- package/dist/research/workspace/audit-bundle.js.map +1 -1
- package/dist/research/workspace/broker.js.map +1 -1
- package/dist/research/workspace/constants.js.map +1 -1
- package/dist/research/workspace/credentials.d.ts +3 -0
- package/dist/research/workspace/credentials.js +20 -3
- package/dist/research/workspace/credentials.js.map +1 -1
- package/dist/research/workspace/data-evidence-adapter.d.ts +60 -0
- package/dist/research/workspace/data-evidence-adapter.js +314 -0
- package/dist/research/workspace/data-evidence-adapter.js.map +1 -0
- package/dist/research/workspace/discovery-status.js +10 -7
- package/dist/research/workspace/discovery-status.js.map +1 -1
- package/dist/research/workspace/discovery.js +12 -11
- package/dist/research/workspace/discovery.js.map +1 -1
- package/dist/research/workspace/evidence-ledger.d.ts +8 -1
- package/dist/research/workspace/evidence-ledger.js +46 -4
- package/dist/research/workspace/evidence-ledger.js.map +1 -1
- package/dist/research/workspace/evidence.d.ts +31 -0
- package/dist/research/workspace/evidence.js +77 -0
- package/dist/research/workspace/evidence.js.map +1 -1
- package/dist/research/workspace/executor.js.map +1 -1
- package/dist/research/workspace/external-skills.d.ts +49 -49
- package/dist/research/workspace/external-skills.js.map +1 -1
- package/dist/research/workspace/platform-capabilities.js.map +1 -1
- package/dist/research/workspace/preflight.d.ts +4 -4
- package/dist/research/workspace/preflight.js +33 -8
- package/dist/research/workspace/preflight.js.map +1 -1
- package/dist/research/workspace/projects.js +203 -76
- package/dist/research/workspace/projects.js.map +1 -1
- package/dist/research/workspace/publication.js.map +1 -1
- package/dist/research/workspace/research-policy-wizard.js.map +1 -1
- package/dist/research/workspace/research-policy.js.map +1 -1
- package/dist/research/workspace/runtime.d.ts +7 -0
- package/dist/research/workspace/runtime.js +82 -23
- package/dist/research/workspace/runtime.js.map +1 -1
- package/dist/research/workspace/sanitization.js.map +1 -1
- package/dist/research/workspace/schemas.js +1 -1
- package/dist/research/workspace/schemas.js.map +1 -1
- package/dist/research/workspace/scientific-design.js.map +1 -1
- package/dist/research/workspace/scientific-review.js.map +1 -1
- package/dist/research/workspace/setup-catalog.d.ts +9 -9
- package/dist/research/workspace/setup-catalog.js +2 -2
- package/dist/research/workspace/setup-catalog.js.map +1 -1
- package/dist/research/workspace/setup-declarative.js.map +1 -1
- package/dist/research/workspace/setup-instructions.d.ts +42 -0
- package/dist/research/workspace/setup-instructions.js +413 -0
- package/dist/research/workspace/setup-instructions.js.map +1 -0
- package/dist/research/workspace/setup-invocation.js.map +1 -1
- package/dist/research/workspace/setup-wizard.js +7 -0
- package/dist/research/workspace/setup-wizard.js.map +1 -1
- package/dist/research/workspace/setup.d.ts +18 -15
- package/dist/research/workspace/setup.js +68 -3
- package/dist/research/workspace/setup.js.map +1 -1
- package/dist/research/workspace/workspace.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
export declare const DATA_MANIFEST_SCHEMA_VERSION: "tiangong.data.manifest.v1";
|
|
2
|
+
export declare const DATA_DISCOVERY_SCHEMA_VERSION: "tiangong.data.discovery.v1";
|
|
3
|
+
export declare const DATA_CATALOG_SCHEMA_VERSION: "tiangong.data.catalog.v1";
|
|
4
|
+
export declare const DATA_DESCRIBE_SCHEMA_VERSION: "tiangong.data.describe.v1";
|
|
5
|
+
export declare const DATA_DOCTOR_SCHEMA_VERSION: "tiangong.data.doctor.v1";
|
|
6
|
+
export declare const DATA_RUN_REQUEST_SCHEMA_VERSION: "tiangong.data.run-request.v1";
|
|
7
|
+
export declare const DATA_RUN_RESULT_SCHEMA_VERSION: "tiangong.data.run-result.v1";
|
|
8
|
+
export declare const DATA_ERROR_SCHEMA_VERSION: "tiangong.data.error.v1";
|
|
9
|
+
export declare const DATA_RECEIPT_SCHEMA_VERSION: "tiangong.data.core-receipt.v1";
|
|
10
|
+
export type JsonPrimitive = boolean | null | number | string;
|
|
11
|
+
export type JsonValue = JsonPrimitive | JsonValue[] | {
|
|
12
|
+
[key: string]: JsonValue;
|
|
13
|
+
};
|
|
14
|
+
export type JsonSchema = Record<string, unknown>;
|
|
15
|
+
export type DataErrorCode = "invalid-request" | "unsupported-operation" | "incompatible-contract" | "credential-missing" | "credential-invalid" | "provider-auth-blocked" | "endpoint-policy-blocked" | "rate-limited" | "timeout" | "network-failed" | "response-too-large" | "provider-response-invalid" | "normalization-failed" | "partial-result" | "internal-error";
|
|
16
|
+
export interface DataMachineError {
|
|
17
|
+
code: DataErrorCode;
|
|
18
|
+
message: string;
|
|
19
|
+
retryable: boolean;
|
|
20
|
+
userActionRequired: boolean;
|
|
21
|
+
details?: Record<string, JsonValue> | undefined;
|
|
22
|
+
}
|
|
23
|
+
export interface DataErrorEnvelope {
|
|
24
|
+
schemaVersion: typeof DATA_ERROR_SCHEMA_VERSION;
|
|
25
|
+
status: "blocked";
|
|
26
|
+
errors: DataMachineError[];
|
|
27
|
+
}
|
|
28
|
+
export interface DataExecutionLimits {
|
|
29
|
+
timeoutMs: number;
|
|
30
|
+
maxRequestBytes: number;
|
|
31
|
+
maxResponseBytes: number;
|
|
32
|
+
maxPages: number;
|
|
33
|
+
maxRecords: number;
|
|
34
|
+
maxRetries: number;
|
|
35
|
+
maxRetryDelayMs: number;
|
|
36
|
+
maxRedirects: number;
|
|
37
|
+
}
|
|
38
|
+
export interface DataLimitOverrides {
|
|
39
|
+
timeoutMs?: number | undefined;
|
|
40
|
+
maxResponseBytes?: number | undefined;
|
|
41
|
+
maxPages?: number | undefined;
|
|
42
|
+
maxRecords?: number | undefined;
|
|
43
|
+
}
|
|
44
|
+
export interface DataEndpointScope {
|
|
45
|
+
endpointId: string;
|
|
46
|
+
baseUrl: string;
|
|
47
|
+
pathPrefixes: string[];
|
|
48
|
+
allowedMethods: Array<"GET" | "POST">;
|
|
49
|
+
allowedContentTypes: string[];
|
|
50
|
+
}
|
|
51
|
+
export interface DataCredentialDeclaration {
|
|
52
|
+
credentialId: string;
|
|
53
|
+
environmentVariable: string;
|
|
54
|
+
required: boolean;
|
|
55
|
+
endpointIds: string[];
|
|
56
|
+
injection: {
|
|
57
|
+
kind: "header";
|
|
58
|
+
name: string;
|
|
59
|
+
prefix: string;
|
|
60
|
+
} | {
|
|
61
|
+
kind: "path-segment";
|
|
62
|
+
placeholder: `{${string}}`;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export interface DataSchemaReference {
|
|
66
|
+
schemaId: string;
|
|
67
|
+
digest: string;
|
|
68
|
+
}
|
|
69
|
+
export interface DataOperationManifest {
|
|
70
|
+
operationId: string;
|
|
71
|
+
operationVersion: string;
|
|
72
|
+
inputSchema: DataSchemaReference;
|
|
73
|
+
outputSchema: DataSchemaReference;
|
|
74
|
+
limits: DataExecutionLimits;
|
|
75
|
+
artifactOutput?: DataArtifactOutputDeclaration | undefined;
|
|
76
|
+
}
|
|
77
|
+
export interface DataArtifactOutputDeclaration {
|
|
78
|
+
kind: "directory";
|
|
79
|
+
required: true;
|
|
80
|
+
}
|
|
81
|
+
export interface DataArtifactRecord {
|
|
82
|
+
relativePath: string;
|
|
83
|
+
sha256: string;
|
|
84
|
+
byteSize: number;
|
|
85
|
+
}
|
|
86
|
+
export interface DataArtifactSink {
|
|
87
|
+
assertAvailable(relativePath: string): Promise<void>;
|
|
88
|
+
stage(relativePath: string, bytes: Uint8Array): Promise<DataArtifactRecord>;
|
|
89
|
+
}
|
|
90
|
+
/** The capability's execution contract. Discovery prose is intentionally excluded. */
|
|
91
|
+
export interface DataCapabilityManifest {
|
|
92
|
+
schemaVersion: typeof DATA_MANIFEST_SCHEMA_VERSION;
|
|
93
|
+
capabilityId: string;
|
|
94
|
+
capabilityVersion: string;
|
|
95
|
+
minimumCliVersion: string;
|
|
96
|
+
providerId: string;
|
|
97
|
+
endpoints: DataEndpointScope[];
|
|
98
|
+
credentials: DataCredentialDeclaration[];
|
|
99
|
+
limits: DataExecutionLimits;
|
|
100
|
+
diagnostics: {
|
|
101
|
+
static: true;
|
|
102
|
+
live: boolean;
|
|
103
|
+
};
|
|
104
|
+
operations: DataOperationManifest[];
|
|
105
|
+
manifestDigest: string;
|
|
106
|
+
}
|
|
107
|
+
export interface DataSourceDocumentation {
|
|
108
|
+
title: string;
|
|
109
|
+
url: string;
|
|
110
|
+
}
|
|
111
|
+
export interface DataCapabilityDiscovery {
|
|
112
|
+
schemaVersion: typeof DATA_DISCOVERY_SCHEMA_VERSION;
|
|
113
|
+
capabilityId: string;
|
|
114
|
+
capabilityVersion: string;
|
|
115
|
+
source: {
|
|
116
|
+
providerId: string;
|
|
117
|
+
name: string;
|
|
118
|
+
maintainedBy: string;
|
|
119
|
+
sourceCategory: string;
|
|
120
|
+
summary: string;
|
|
121
|
+
description: string;
|
|
122
|
+
coverage: {
|
|
123
|
+
geographic: string;
|
|
124
|
+
temporal: string;
|
|
125
|
+
granularity: string;
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
summary: string;
|
|
129
|
+
description: string;
|
|
130
|
+
provides: string[];
|
|
131
|
+
doesNotProvide: string[];
|
|
132
|
+
selectionHints: string[];
|
|
133
|
+
typicalUseCases: string[];
|
|
134
|
+
sourceDocumentation: DataSourceDocumentation[];
|
|
135
|
+
license: {
|
|
136
|
+
name: string;
|
|
137
|
+
url: string;
|
|
138
|
+
restrictions: string[];
|
|
139
|
+
};
|
|
140
|
+
freshness: {
|
|
141
|
+
kind: string;
|
|
142
|
+
description: string;
|
|
143
|
+
};
|
|
144
|
+
limitations: string[];
|
|
145
|
+
operations: Array<{
|
|
146
|
+
operationId: string;
|
|
147
|
+
summary: string;
|
|
148
|
+
description: string;
|
|
149
|
+
}>;
|
|
150
|
+
discoveryDigest: string;
|
|
151
|
+
}
|
|
152
|
+
export interface DataCatalogCapability {
|
|
153
|
+
capabilityId: string;
|
|
154
|
+
capabilityVersion: string;
|
|
155
|
+
minimumCliVersion: string;
|
|
156
|
+
providerId: string;
|
|
157
|
+
sourceCategory: string;
|
|
158
|
+
summary: string;
|
|
159
|
+
provides: string[];
|
|
160
|
+
doesNotProvide: string[];
|
|
161
|
+
manifestDigest: string;
|
|
162
|
+
discoveryDigest: string;
|
|
163
|
+
operations: Array<{
|
|
164
|
+
operationId: string;
|
|
165
|
+
operationVersion: string;
|
|
166
|
+
summary: string;
|
|
167
|
+
inputSchemaDigest: string;
|
|
168
|
+
outputSchemaDigest: string;
|
|
169
|
+
}>;
|
|
170
|
+
}
|
|
171
|
+
export interface DataCatalogResult {
|
|
172
|
+
schemaVersion: typeof DATA_CATALOG_SCHEMA_VERSION;
|
|
173
|
+
capabilities: DataCatalogCapability[];
|
|
174
|
+
catalogDigest: string;
|
|
175
|
+
}
|
|
176
|
+
export interface DataDescribeResult {
|
|
177
|
+
schemaVersion: typeof DATA_DESCRIBE_SCHEMA_VERSION;
|
|
178
|
+
manifest: DataCapabilityManifest;
|
|
179
|
+
discovery: DataCapabilityDiscovery;
|
|
180
|
+
schemas: Record<string, JsonSchema>;
|
|
181
|
+
}
|
|
182
|
+
export interface DataDoctorCheck {
|
|
183
|
+
checkId: string;
|
|
184
|
+
status: "pass" | "warn" | "fail";
|
|
185
|
+
message: string;
|
|
186
|
+
details?: Record<string, JsonValue> | undefined;
|
|
187
|
+
}
|
|
188
|
+
export interface DataDoctorResult {
|
|
189
|
+
schemaVersion: typeof DATA_DOCTOR_SCHEMA_VERSION;
|
|
190
|
+
capabilityId: string;
|
|
191
|
+
capabilityVersion: string;
|
|
192
|
+
manifestDigest: string;
|
|
193
|
+
mode: "static" | "live";
|
|
194
|
+
status: "ready" | "degraded" | "blocked";
|
|
195
|
+
networkAttempted: boolean;
|
|
196
|
+
checks: DataDoctorCheck[];
|
|
197
|
+
}
|
|
198
|
+
export interface DataRunRequest {
|
|
199
|
+
schemaVersion: typeof DATA_RUN_REQUEST_SCHEMA_VERSION;
|
|
200
|
+
capabilityId: string;
|
|
201
|
+
capabilityVersion: string;
|
|
202
|
+
operationId: string;
|
|
203
|
+
operationVersion: string;
|
|
204
|
+
input: unknown;
|
|
205
|
+
limits?: DataLimitOverrides | undefined;
|
|
206
|
+
requestId?: string | undefined;
|
|
207
|
+
}
|
|
208
|
+
export interface DataMissingRange {
|
|
209
|
+
kind: "chunk" | "field" | "file" | "page" | "range";
|
|
210
|
+
identifiers: string[];
|
|
211
|
+
}
|
|
212
|
+
export interface DataExecutionSummary {
|
|
213
|
+
recordCount: number;
|
|
214
|
+
pageCount: number;
|
|
215
|
+
chunkCount: number;
|
|
216
|
+
truncated: boolean;
|
|
217
|
+
completeness: "complete" | "partial" | "blocked";
|
|
218
|
+
missing?: DataMissingRange[] | undefined;
|
|
219
|
+
}
|
|
220
|
+
export interface DataSourceObservation {
|
|
221
|
+
observationId: string;
|
|
222
|
+
sourceId: string;
|
|
223
|
+
endpointId: string;
|
|
224
|
+
requestDigest: string;
|
|
225
|
+
responseDigest: string;
|
|
226
|
+
responseBytes: number;
|
|
227
|
+
status: number;
|
|
228
|
+
contentType: string;
|
|
229
|
+
attempts: number;
|
|
230
|
+
}
|
|
231
|
+
export interface CoreDataReceipt {
|
|
232
|
+
schemaVersion: typeof DATA_RECEIPT_SCHEMA_VERSION;
|
|
233
|
+
cliVersion: string;
|
|
234
|
+
capabilityId: string;
|
|
235
|
+
capabilityVersion: string;
|
|
236
|
+
operationId: string;
|
|
237
|
+
operationVersion: string;
|
|
238
|
+
requestDigest: string;
|
|
239
|
+
manifestDigest: string | null;
|
|
240
|
+
inputSchemaDigest: string | null;
|
|
241
|
+
outputSchemaDigest: string | null;
|
|
242
|
+
inputDigest: string;
|
|
243
|
+
aggregateResponseDigest: string | null;
|
|
244
|
+
normalizedDataDigest: string | null;
|
|
245
|
+
observations: DataSourceObservation[];
|
|
246
|
+
completionStatus: "success" | "partial" | "blocked";
|
|
247
|
+
summary: DataExecutionSummary;
|
|
248
|
+
generatedAt: string;
|
|
249
|
+
receiptDigest: string;
|
|
250
|
+
}
|
|
251
|
+
export interface DataRunResult {
|
|
252
|
+
schemaVersion: typeof DATA_RUN_RESULT_SCHEMA_VERSION;
|
|
253
|
+
status: "success" | "partial" | "blocked";
|
|
254
|
+
requestId: string | null;
|
|
255
|
+
contract: {
|
|
256
|
+
cliVersion: string;
|
|
257
|
+
capabilityId: string;
|
|
258
|
+
capabilityVersion: string;
|
|
259
|
+
operationId: string;
|
|
260
|
+
operationVersion: string;
|
|
261
|
+
manifestDigest: string | null;
|
|
262
|
+
inputSchema: DataSchemaReference | null;
|
|
263
|
+
outputSchema: DataSchemaReference | null;
|
|
264
|
+
};
|
|
265
|
+
data: unknown | null;
|
|
266
|
+
summary: DataExecutionSummary;
|
|
267
|
+
warnings: string[];
|
|
268
|
+
errors: DataMachineError[];
|
|
269
|
+
receipt: CoreDataReceipt;
|
|
270
|
+
}
|
|
271
|
+
export interface DataHttpRequest {
|
|
272
|
+
endpointId: string;
|
|
273
|
+
method: "GET" | "POST";
|
|
274
|
+
path: string;
|
|
275
|
+
query?: Record<string, boolean | number | string | Array<boolean | number | string>> | undefined;
|
|
276
|
+
body?: JsonValue | undefined;
|
|
277
|
+
credentialId?: string | undefined;
|
|
278
|
+
timeoutMs?: number | undefined;
|
|
279
|
+
maxResponseBytes?: number | undefined;
|
|
280
|
+
}
|
|
281
|
+
export interface DataHttpResponse {
|
|
282
|
+
bytes: Uint8Array;
|
|
283
|
+
safeHeaders: Record<string, string>;
|
|
284
|
+
observation: DataSourceObservation;
|
|
285
|
+
json(): unknown;
|
|
286
|
+
text(): string;
|
|
287
|
+
}
|
|
288
|
+
export interface DataHttpClient {
|
|
289
|
+
request(request: DataHttpRequest): Promise<DataHttpResponse>;
|
|
290
|
+
configuredSecrets(): string[];
|
|
291
|
+
}
|
|
292
|
+
export interface DataOperationExecutionContext {
|
|
293
|
+
input: unknown;
|
|
294
|
+
request: DataRunRequest;
|
|
295
|
+
limits: DataExecutionLimits;
|
|
296
|
+
http: DataHttpClient;
|
|
297
|
+
artifacts: DataArtifactSink | null;
|
|
298
|
+
}
|
|
299
|
+
export interface DataOperationExecution {
|
|
300
|
+
status: "success" | "partial";
|
|
301
|
+
data: unknown;
|
|
302
|
+
summary: DataExecutionSummary;
|
|
303
|
+
warnings: string[];
|
|
304
|
+
errors: DataMachineError[];
|
|
305
|
+
observations: DataSourceObservation[];
|
|
306
|
+
}
|
|
307
|
+
export interface DataOperationDefinition {
|
|
308
|
+
operationId: string;
|
|
309
|
+
operationVersion: string;
|
|
310
|
+
summary: string;
|
|
311
|
+
description: string;
|
|
312
|
+
inputSchema: JsonSchema;
|
|
313
|
+
outputSchema: JsonSchema;
|
|
314
|
+
limits?: Partial<DataExecutionLimits> | undefined;
|
|
315
|
+
artifactOutput?: DataArtifactOutputDeclaration | undefined;
|
|
316
|
+
execute(context: DataOperationExecutionContext): DataOperationExecution | Promise<DataOperationExecution>;
|
|
317
|
+
}
|
|
318
|
+
export interface DataLiveDoctorContext {
|
|
319
|
+
http: DataHttpClient;
|
|
320
|
+
}
|
|
321
|
+
export interface DataLiveDoctorExecution {
|
|
322
|
+
status: "ready" | "degraded" | "blocked";
|
|
323
|
+
checks: DataDoctorCheck[];
|
|
324
|
+
networkAttempted?: boolean | undefined;
|
|
325
|
+
}
|
|
326
|
+
export interface DataConnectorDefinition {
|
|
327
|
+
schemaVersion: typeof DATA_MANIFEST_SCHEMA_VERSION;
|
|
328
|
+
capabilityId: string;
|
|
329
|
+
capabilityVersion: string;
|
|
330
|
+
minimumCliVersion: string;
|
|
331
|
+
provider: {
|
|
332
|
+
providerId: string;
|
|
333
|
+
name: string;
|
|
334
|
+
};
|
|
335
|
+
sourceCategory: string;
|
|
336
|
+
endpoints: DataEndpointScope[];
|
|
337
|
+
license: {
|
|
338
|
+
name: string;
|
|
339
|
+
url: string;
|
|
340
|
+
restrictions: string[];
|
|
341
|
+
};
|
|
342
|
+
credentials: DataCredentialDeclaration[];
|
|
343
|
+
limits: DataExecutionLimits;
|
|
344
|
+
diagnostics: {
|
|
345
|
+
static: true;
|
|
346
|
+
live: boolean;
|
|
347
|
+
};
|
|
348
|
+
freshness: {
|
|
349
|
+
kind: string;
|
|
350
|
+
description: string;
|
|
351
|
+
};
|
|
352
|
+
limitations: string[];
|
|
353
|
+
discovery: {
|
|
354
|
+
source: {
|
|
355
|
+
maintainedBy: string;
|
|
356
|
+
summary: string;
|
|
357
|
+
description: string;
|
|
358
|
+
coverage: {
|
|
359
|
+
geographic: string;
|
|
360
|
+
temporal: string;
|
|
361
|
+
granularity: string;
|
|
362
|
+
};
|
|
363
|
+
};
|
|
364
|
+
summary: string;
|
|
365
|
+
description: string;
|
|
366
|
+
provides: string[];
|
|
367
|
+
doesNotProvide: string[];
|
|
368
|
+
selectionHints: string[];
|
|
369
|
+
typicalUseCases: string[];
|
|
370
|
+
sourceDocumentation: DataSourceDocumentation[];
|
|
371
|
+
};
|
|
372
|
+
operations: DataOperationDefinition[];
|
|
373
|
+
liveDoctor?: ((context: DataLiveDoctorContext) => DataLiveDoctorExecution | Promise<DataLiveDoctorExecution>) | undefined;
|
|
374
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const DATA_MANIFEST_SCHEMA_VERSION = "tiangong.data.manifest.v1";
|
|
2
|
+
export const DATA_DISCOVERY_SCHEMA_VERSION = "tiangong.data.discovery.v1";
|
|
3
|
+
export const DATA_CATALOG_SCHEMA_VERSION = "tiangong.data.catalog.v1";
|
|
4
|
+
export const DATA_DESCRIBE_SCHEMA_VERSION = "tiangong.data.describe.v1";
|
|
5
|
+
export const DATA_DOCTOR_SCHEMA_VERSION = "tiangong.data.doctor.v1";
|
|
6
|
+
export const DATA_RUN_REQUEST_SCHEMA_VERSION = "tiangong.data.run-request.v1";
|
|
7
|
+
export const DATA_RUN_RESULT_SCHEMA_VERSION = "tiangong.data.run-result.v1";
|
|
8
|
+
export const DATA_ERROR_SCHEMA_VERSION = "tiangong.data.error.v1";
|
|
9
|
+
export const DATA_RECEIPT_SCHEMA_VERSION = "tiangong.data.core-receipt.v1";
|
|
10
|
+
//# sourceMappingURL=contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/data/contracts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG,2BAAoC,CAAC;AACjF,MAAM,CAAC,MAAM,6BAA6B,GAAG,4BAAqC,CAAC;AACnF,MAAM,CAAC,MAAM,2BAA2B,GAAG,0BAAmC,CAAC;AAC/E,MAAM,CAAC,MAAM,4BAA4B,GAAG,2BAAoC,CAAC;AACjF,MAAM,CAAC,MAAM,0BAA0B,GAAG,yBAAkC,CAAC;AAC7E,MAAM,CAAC,MAAM,+BAA+B,GAAG,8BAAuC,CAAC;AACvF,MAAM,CAAC,MAAM,8BAA8B,GAAG,6BAAsC,CAAC;AACrF,MAAM,CAAC,MAAM,yBAAyB,GAAG,wBAAiC,CAAC;AAC3E,MAAM,CAAC,MAAM,2BAA2B,GAAG,+BAAwC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { DataArtifactSink } from "../contracts.js";
|
|
2
|
+
export interface DataArtifactSession extends DataArtifactSink {
|
|
3
|
+
commit(): Promise<void>;
|
|
4
|
+
rollback(): Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
export declare function createDataArtifactSession(directory: string): Promise<DataArtifactSession>;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { link, lstat, realpath, unlink, writeFile } from "node:fs/promises";
|
|
3
|
+
import { isAbsolute, join } from "node:path";
|
|
4
|
+
import { sha256Bytes } from "./canonical-json.js";
|
|
5
|
+
import { DataRuntimeError } from "./errors.js";
|
|
6
|
+
const SAFE_ARTIFACT_NAME = /^[A-Za-z0-9][A-Za-z0-9._-]{0,239}$/;
|
|
7
|
+
export async function createDataArtifactSession(directory) {
|
|
8
|
+
if (!isAbsolute(directory)) {
|
|
9
|
+
throw new DataRuntimeError("invalid-request", "The artifact output directory must be an absolute path.");
|
|
10
|
+
}
|
|
11
|
+
let root;
|
|
12
|
+
try {
|
|
13
|
+
const metadata = await lstat(directory);
|
|
14
|
+
if (!metadata.isDirectory() || metadata.isSymbolicLink())
|
|
15
|
+
throw new Error("not-directory");
|
|
16
|
+
root = await realpath(directory);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
throw new DataRuntimeError("invalid-request", "The artifact output directory must be an existing non-symbolic-link directory.");
|
|
20
|
+
}
|
|
21
|
+
const staged = new Map();
|
|
22
|
+
let settled = false;
|
|
23
|
+
const assertAvailable = async (relativePath) => {
|
|
24
|
+
assertArtifactName(relativePath);
|
|
25
|
+
if (settled)
|
|
26
|
+
throw new DataRuntimeError("internal-error", "The artifact session is closed.");
|
|
27
|
+
if (staged.has(relativePath) || (await pathExists(join(root, relativePath)))) {
|
|
28
|
+
throw new DataRuntimeError("invalid-request", "The artifact output directory already contains a requested output file.", { details: { relativePath } });
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
return {
|
|
32
|
+
assertAvailable,
|
|
33
|
+
stage: async (relativePath, bytes) => {
|
|
34
|
+
await assertAvailable(relativePath);
|
|
35
|
+
const temporaryPath = join(root, `.tiangong-${randomUUID()}.tmp`);
|
|
36
|
+
try {
|
|
37
|
+
await writeFile(temporaryPath, bytes, { flag: "wx", mode: 0o600 });
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
await unlink(temporaryPath).catch(() => undefined);
|
|
41
|
+
throw new DataRuntimeError("internal-error", "The artifact could not be staged safely.");
|
|
42
|
+
}
|
|
43
|
+
const record = {
|
|
44
|
+
relativePath,
|
|
45
|
+
sha256: sha256Bytes(bytes),
|
|
46
|
+
byteSize: bytes.byteLength,
|
|
47
|
+
temporaryPath,
|
|
48
|
+
finalPath: join(root, relativePath),
|
|
49
|
+
};
|
|
50
|
+
staged.set(relativePath, record);
|
|
51
|
+
return publicRecord(record);
|
|
52
|
+
},
|
|
53
|
+
commit: async () => {
|
|
54
|
+
if (settled)
|
|
55
|
+
throw new DataRuntimeError("internal-error", "The artifact session is closed.");
|
|
56
|
+
const committed = [];
|
|
57
|
+
try {
|
|
58
|
+
for (const artifact of staged.values()) {
|
|
59
|
+
await link(artifact.temporaryPath, artifact.finalPath);
|
|
60
|
+
committed.push(artifact);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
await Promise.allSettled(committed.map((artifact) => unlink(artifact.finalPath)));
|
|
65
|
+
throw new DataRuntimeError("invalid-request", "The artifact outputs could not be committed without overwriting existing files.", { details: { reason: error instanceof Error ? error.name : "unknown" } });
|
|
66
|
+
}
|
|
67
|
+
finally {
|
|
68
|
+
await Promise.allSettled([...staged.values()].map((artifact) => unlink(artifact.temporaryPath)));
|
|
69
|
+
settled = true;
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
rollback: async () => {
|
|
73
|
+
if (settled)
|
|
74
|
+
return;
|
|
75
|
+
await Promise.allSettled([...staged.values()].map((artifact) => unlink(artifact.temporaryPath)));
|
|
76
|
+
settled = true;
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
function assertArtifactName(relativePath) {
|
|
81
|
+
if (!SAFE_ARTIFACT_NAME.test(relativePath)) {
|
|
82
|
+
throw new DataRuntimeError("invalid-request", "Artifact filenames must be safe single-segment relative names.");
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async function pathExists(path) {
|
|
86
|
+
try {
|
|
87
|
+
await lstat(path);
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
if (error.code === "ENOENT")
|
|
92
|
+
return false;
|
|
93
|
+
throw new DataRuntimeError("internal-error", "Artifact output availability could not be checked.");
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function publicRecord(record) {
|
|
97
|
+
return {
|
|
98
|
+
relativePath: record.relativePath,
|
|
99
|
+
sha256: record.sha256,
|
|
100
|
+
byteSize: record.byteSize,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=artifacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../src/data/runtime/artifacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DataCredentialDeclaration, DataEndpointScope, DataExecutionLimits, DataHttpClient } from "../contracts.js";
|
|
2
|
+
export interface BoundedHttpClientOptions {
|
|
3
|
+
capabilityId: string;
|
|
4
|
+
endpoints: readonly DataEndpointScope[];
|
|
5
|
+
credentials: readonly DataCredentialDeclaration[];
|
|
6
|
+
environment: NodeJS.ProcessEnv;
|
|
7
|
+
limits: DataExecutionLimits;
|
|
8
|
+
fetchImpl?: typeof fetch | undefined;
|
|
9
|
+
}
|
|
10
|
+
export declare function createBoundedHttpClient(options: BoundedHttpClientOptions): DataHttpClient;
|