@ingestron/core 0.12.0

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 (84) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +6 -0
  3. package/README.md +56 -0
  4. package/SECURITY.md +44 -0
  5. package/THIRD_PARTY_NOTICES.md +693 -0
  6. package/dist/assets/schemas/ODCS-LICENSE +201 -0
  7. package/dist/assets/schemas/odcs-3.1.0.json +2929 -0
  8. package/dist/assets/schemas/provenance.json +16 -0
  9. package/dist/compiler-fingerprint.json +84 -0
  10. package/dist/core/authoring.d.ts +55 -0
  11. package/dist/core/authoring.js +315 -0
  12. package/dist/core/config.d.ts +34 -0
  13. package/dist/core/config.js +233 -0
  14. package/dist/core/connections.d.ts +19 -0
  15. package/dist/core/connections.js +203 -0
  16. package/dist/core/connector-package.d.ts +37 -0
  17. package/dist/core/connector-package.js +43 -0
  18. package/dist/core/contracts.d.ts +8 -0
  19. package/dist/core/contracts.js +45 -0
  20. package/dist/core/deliveries.d.ts +16 -0
  21. package/dist/core/deliveries.js +28 -0
  22. package/dist/core/delivery-exports.d.ts +20 -0
  23. package/dist/core/delivery-exports.js +119 -0
  24. package/dist/core/development.d.ts +50 -0
  25. package/dist/core/development.js +94 -0
  26. package/dist/core/ecosystem-authoring.d.ts +13 -0
  27. package/dist/core/ecosystem-authoring.js +82 -0
  28. package/dist/core/errors.d.ts +12 -0
  29. package/dist/core/errors.js +43 -0
  30. package/dist/core/execution.d.ts +28 -0
  31. package/dist/core/execution.js +297 -0
  32. package/dist/core/extension-packs.d.ts +8 -0
  33. package/dist/core/extension-packs.js +34 -0
  34. package/dist/core/fingerprint.d.ts +1 -0
  35. package/dist/core/fingerprint.js +16 -0
  36. package/dist/core/generate.d.ts +16 -0
  37. package/dist/core/generate.js +198 -0
  38. package/dist/core/installation.d.ts +3 -0
  39. package/dist/core/installation.js +14 -0
  40. package/dist/core/installed-plugins.d.ts +41 -0
  41. package/dist/core/installed-plugins.js +92 -0
  42. package/dist/core/model-pack-schema.d.ts +46 -0
  43. package/dist/core/model-pack-schema.js +81 -0
  44. package/dist/core/model-packs.d.ts +4 -0
  45. package/dist/core/model-packs.js +33 -0
  46. package/dist/core/operations.d.ts +346 -0
  47. package/dist/core/operations.js +760 -0
  48. package/dist/core/package-references.d.ts +36 -0
  49. package/dist/core/package-references.js +103 -0
  50. package/dist/core/packages.d.ts +340 -0
  51. package/dist/core/packages.js +579 -0
  52. package/dist/core/planner.d.ts +114 -0
  53. package/dist/core/planner.js +821 -0
  54. package/dist/core/project-build.d.ts +13 -0
  55. package/dist/core/project-build.js +266 -0
  56. package/dist/core/provider-commands.d.ts +83 -0
  57. package/dist/core/provider-commands.js +252 -0
  58. package/dist/core/provider-starter.d.ts +5 -0
  59. package/dist/core/provider-starter.js +155 -0
  60. package/dist/core/report-pack-schema.d.ts +13 -0
  61. package/dist/core/report-pack-schema.js +15 -0
  62. package/dist/core/schema.d.ts +257 -0
  63. package/dist/core/schema.js +126 -0
  64. package/dist/core/workflows.d.ts +91 -0
  65. package/dist/core/workflows.js +438 -0
  66. package/dist/plugins/authoring.d.ts +88 -0
  67. package/dist/plugins/authoring.js +34 -0
  68. package/dist/plugins/compatibility.d.ts +23 -0
  69. package/dist/plugins/compatibility.js +55 -0
  70. package/dist/plugins/generation.d.ts +5 -0
  71. package/dist/plugins/generation.js +105 -0
  72. package/dist/plugins/provider-renderer.d.ts +7 -0
  73. package/dist/plugins/provider-renderer.js +37 -0
  74. package/dist/plugins/provider-worker.d.ts +1 -0
  75. package/dist/plugins/provider-worker.js +74 -0
  76. package/dist/sdk/adapter.d.ts +15 -0
  77. package/dist/sdk/adapter.js +15 -0
  78. package/dist/sdk/index.d.ts +4 -0
  79. package/dist/sdk/index.js +3 -0
  80. package/dist/sdk/schemas.d.ts +34 -0
  81. package/dist/sdk/schemas.js +74 -0
  82. package/dist/version.d.ts +5 -0
  83. package/dist/version.js +7 -0
  84. package/package.json +72 -0
@@ -0,0 +1,36 @@
1
+ export declare function providerRepository(name: string): string;
2
+ /** Preserve custom manifest paths and immutable selectors when formatting references. */
3
+ export declare function friendlyReference(reference: string): string;
4
+ export declare function packageGitEnvironment(): {
5
+ PATH: string | undefined;
6
+ HOME: string | undefined;
7
+ GH_CONFIG_DIR: string | undefined;
8
+ GH_TOKEN: string | undefined;
9
+ GITHUB_TOKEN: string | undefined;
10
+ GIT_CONFIG_GLOBAL: string;
11
+ GIT_CONFIG_NOSYSTEM: string;
12
+ GIT_TERMINAL_PROMPT: string;
13
+ };
14
+ export declare function gitTags(repository: string, fromGit?: string): string;
15
+ export declare function taggedVersions(text: string, prefix?: string): {
16
+ version: string;
17
+ tag: string;
18
+ commit: string;
19
+ ambiguous: boolean;
20
+ }[];
21
+ export declare function providerVersions(name: string, fromGit?: string, tagPrefix?: string): {
22
+ provider: string;
23
+ repository: string;
24
+ source: string;
25
+ versions: {
26
+ version: string;
27
+ tag: string;
28
+ commit: string;
29
+ ambiguous: boolean;
30
+ repository: string;
31
+ reference: string;
32
+ selectable: boolean;
33
+ compatibility: string;
34
+ }[];
35
+ evidence: string;
36
+ };
@@ -0,0 +1,103 @@
1
+ /** Generic package references and version discovery; no bundled provider registry. */
2
+ import { realpathSync } from "node:fs";
3
+ import { execFileSync } from "node:child_process";
4
+ import { check, Problem } from "./errors.js";
5
+ export function providerRepository(name) {
6
+ check(/^[A-Za-z0-9][A-Za-z0-9_.-]*\/[A-Za-z0-9][A-Za-z0-9_.-]*$/.test(name) &&
7
+ !name.includes(".."), "PACKAGE", "Use an explicit GitHub owner/repository");
8
+ return name;
9
+ }
10
+ /** Preserve custom manifest paths and immutable selectors when formatting references. */
11
+ export function friendlyReference(reference) {
12
+ return reference
13
+ .replace(/\/plugin\/provider\.yaml(?=@|$)/, "")
14
+ .replace(/@v(?=\d+\.\d+\.\d+$)/, "@");
15
+ }
16
+ export function packageGitEnvironment() {
17
+ return {
18
+ PATH: process.env.PATH,
19
+ HOME: process.env.HOME,
20
+ GH_CONFIG_DIR: process.env.GH_CONFIG_DIR,
21
+ GH_TOKEN: process.env.GH_TOKEN,
22
+ GITHUB_TOKEN: process.env.GITHUB_TOKEN,
23
+ GIT_CONFIG_GLOBAL: "/dev/null",
24
+ GIT_CONFIG_NOSYSTEM: "1",
25
+ GIT_TERMINAL_PROMPT: "0",
26
+ };
27
+ }
28
+ export function gitTags(repository, fromGit) {
29
+ providerRepository(repository);
30
+ try {
31
+ return execFileSync("git", [
32
+ "-c",
33
+ "core.hooksPath=/dev/null",
34
+ "-c",
35
+ "credential.helper=!gh auth git-credential",
36
+ "ls-remote",
37
+ "--tags",
38
+ "--",
39
+ fromGit
40
+ ? realpathSync(fromGit)
41
+ : `https://github.com/${repository}.git`,
42
+ ], {
43
+ encoding: "utf8",
44
+ timeout: 30000,
45
+ maxBuffer: 1024 * 1024,
46
+ env: packageGitEnvironment(),
47
+ stdio: ["ignore", "pipe", "pipe"],
48
+ });
49
+ }
50
+ catch {
51
+ // Git stderr may include authentication diagnostics. Do not echo it into
52
+ // terminal/JSON responses; callers get a stable, actionable diagnostic.
53
+ throw new Problem("PACKAGE", `Cannot read plugin versions from ${repository}`, undefined, undefined, "Check repository access and GitHub authentication, then retry.");
54
+ }
55
+ }
56
+ export function taggedVersions(text, prefix = "") {
57
+ check(/^[a-z0-9-]*$/.test(prefix), "PACKAGE", "Invalid package tag prefix");
58
+ const refs = new Map();
59
+ const lines = text.trim() ? text.trim().split("\n") : [];
60
+ check(lines.length <= 10000, "LIMIT", "Provider tag listing exceeds 10,000 refs");
61
+ for (const line of lines) {
62
+ if (prefix && !line.includes("refs/tags/" + prefix))
63
+ continue;
64
+ const match = /^([a-f0-9]{40})\s+refs\/tags\/(v?(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*))(\^\{\})?$/.exec(prefix ? line.replace("refs/tags/" + prefix, "refs/tags/") : line);
65
+ if (match)
66
+ refs.set(match[2] + (match[3] ?? ""), match[1]);
67
+ }
68
+ const versions = new Map();
69
+ for (const [tag, object] of refs) {
70
+ if (tag.endsWith("^{}"))
71
+ continue;
72
+ const version = tag.replace(/^v/, ""), commit = refs.get(tag + "^{}") ?? object;
73
+ const prior = versions.get(version);
74
+ const ambiguous = !!prior && (prior.ambiguous || prior.commit !== commit);
75
+ versions.set(version, {
76
+ version,
77
+ tag: prior && !tag.startsWith("v") ? prior.tag : prefix + tag,
78
+ commit,
79
+ ambiguous,
80
+ });
81
+ }
82
+ return [...versions.values()].sort((a, b) => {
83
+ const left = a.version.split(".").map(Number), right = b.version.split(".").map(Number);
84
+ return right[0] - left[0] || right[1] - left[1] || right[2] - left[2];
85
+ });
86
+ }
87
+ export function providerVersions(name, fromGit, tagPrefix = "") {
88
+ const repository = providerRepository(name);
89
+ const versions = taggedVersions(gitTags(repository, fromGit), tagPrefix).map((v) => ({
90
+ ...v,
91
+ repository,
92
+ reference: `${repository}@${v.version}`,
93
+ selectable: !v.ambiguous,
94
+ compatibility: "unchecked",
95
+ }));
96
+ return {
97
+ provider: repository,
98
+ repository,
99
+ source: fromGit ? "local-git" : "github",
100
+ versions,
101
+ evidence: "Git tags only; manifest and host compatibility are checked during installation",
102
+ };
103
+ }
@@ -0,0 +1,340 @@
1
+ import { z } from "zod";
2
+ export declare const externalActivitySchema: z.ZodObject<{
3
+ apiVersion: z.ZodLiteral<"ingestron.activity/v1">;
4
+ id: z.ZodString;
5
+ version: z.ZodString;
6
+ description: z.ZodString;
7
+ platform: z.ZodString;
8
+ input: z.ZodEnum<{
9
+ committed: "committed";
10
+ files: "files";
11
+ relation: "relation";
12
+ source: "source";
13
+ }>;
14
+ output: z.ZodEnum<{
15
+ committed: "committed";
16
+ files: "files";
17
+ relation: "relation";
18
+ }>;
19
+ effect: z.ZodEnum<{
20
+ commit: "commit";
21
+ control: "control";
22
+ read: "read";
23
+ stage: "stage";
24
+ }>;
25
+ capabilities: z.ZodDefault<z.ZodArray<z.ZodString>>;
26
+ optionsSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
27
+ generator: z.ZodOptional<z.ZodObject<{
28
+ kind: z.ZodEnum<{
29
+ "native-notebook": "native-notebook";
30
+ "native-pipeline": "native-pipeline";
31
+ "native-project": "native-project";
32
+ }>;
33
+ artifactKind: z.ZodOptional<z.ZodString>;
34
+ execution: z.ZodOptional<z.ZodString>;
35
+ persistence: z.ZodOptional<z.ZodEnum<{
36
+ capture: "capture";
37
+ durable: "durable";
38
+ ephemeral: "ephemeral";
39
+ }>>;
40
+ runtime: z.ZodOptional<z.ZodString>;
41
+ code: z.ZodOptional<z.ZodString>;
42
+ scope: z.ZodDefault<z.ZodEnum<{
43
+ collection: "collection";
44
+ table: "table";
45
+ }>>;
46
+ modes: z.ZodDefault<z.ZodArray<z.ZodEnum<{
47
+ collection: "collection";
48
+ table: "table";
49
+ }>>>;
50
+ groupBy: z.ZodDefault<z.ZodArray<z.ZodString>>;
51
+ dependencyOptions: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
52
+ entrypoint: z.ZodDefault<z.ZodString>;
53
+ }, z.core.$strict>>;
54
+ requirements: z.ZodOptional<z.ZodObject<{
55
+ execution: z.ZodString;
56
+ features: z.ZodDefault<z.ZodArray<z.ZodString>>;
57
+ sourceKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
58
+ evidence: z.ZodLiteral<"offline">;
59
+ }, z.core.$strict>>;
60
+ templates: z.ZodDefault<z.ZodArray<z.ZodObject<{
61
+ source: z.ZodString;
62
+ output: z.ZodString;
63
+ format: z.ZodEnum<{
64
+ json: "json";
65
+ python: "python";
66
+ sql: "sql";
67
+ text: "text";
68
+ yaml: "yaml";
69
+ }>;
70
+ }, z.core.$strict>>>;
71
+ dependencies: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
72
+ }, z.core.$strict>;
73
+ export type ExternalActivity = z.infer<typeof externalActivitySchema>;
74
+ export declare const providerPackageSchema: z.ZodObject<{
75
+ apiVersion: z.ZodLiteral<"ingestron.provider/v1">;
76
+ id: z.ZodString;
77
+ version: z.ZodString;
78
+ platform: z.ZodString;
79
+ activities: z.ZodRecord<z.ZodString, z.ZodString>;
80
+ capabilities: z.ZodOptional<z.ZodObject<{
81
+ artifactKinds: z.ZodArray<z.ZodString>;
82
+ delivery: z.ZodDefault<z.ZodBoolean>;
83
+ handovers: z.ZodDefault<z.ZodArray<z.ZodEnum<{
84
+ files: "files";
85
+ relation: "relation";
86
+ }>>>;
87
+ packContracts: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
88
+ version: z.ZodString;
89
+ activities: z.ZodArray<z.ZodString>;
90
+ }, z.core.$strict>>>;
91
+ }, z.core.$strict>>;
92
+ projectAssembly: z.ZodOptional<z.ZodObject<{
93
+ apiVersion: z.ZodLiteral<"ingestron.project-assembly/v1">;
94
+ command: z.ZodString;
95
+ }, z.core.$strict>>;
96
+ connectorRuntimes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
97
+ selectionSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
98
+ executionSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
99
+ prepareCommand: z.ZodString;
100
+ contractsCommand: z.ZodOptional<z.ZodString>;
101
+ executionPlatforms: z.ZodArray<z.ZodString>;
102
+ }, z.core.$strict>>>;
103
+ configurationSchema: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>;
104
+ standards: z.ZodOptional<z.ZodArray<z.ZodObject<{
105
+ id: z.ZodString;
106
+ description: z.ZodString;
107
+ sourceKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
108
+ dataFlow: z.ZodOptional<z.ZodEnum<{
109
+ forbidden: "forbidden";
110
+ required: "required";
111
+ }>>;
112
+ }, z.core.$strict>>>;
113
+ compatibility: z.ZodOptional<z.ZodObject<{
114
+ plan: z.ZodLiteral<"ingestron.plan/v1">;
115
+ requiredFeatures: z.ZodDefault<z.ZodArray<z.ZodString>>;
116
+ minimumCli: z.ZodString;
117
+ }, z.core.$strict>>;
118
+ outputSchemas: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
119
+ lifecycle: z.ZodOptional<z.ZodObject<{
120
+ apiVersion: z.ZodLiteral<"ingestron.provider-lifecycle/v1">;
121
+ module: z.ZodString;
122
+ }, z.core.$strict>>;
123
+ planner: z.ZodOptional<z.ZodObject<{
124
+ apiVersion: z.ZodLiteral<"ingestron.provider-planning/v1">;
125
+ module: z.ZodString;
126
+ }, z.core.$strict>>;
127
+ commands: z.ZodOptional<z.ZodObject<{
128
+ apiVersion: z.ZodLiteral<"ingestron.provider-commands/v1">;
129
+ namespace: z.ZodOptional<z.ZodString>;
130
+ execution: z.ZodLiteral<"offline-json">;
131
+ module: z.ZodString;
132
+ definitions: z.ZodArray<z.ZodObject<{
133
+ name: z.ZodString;
134
+ description: z.ZodString;
135
+ reportPack: z.ZodOptional<z.ZodBoolean>;
136
+ examples: z.ZodOptional<z.ZodArray<z.ZodString>>;
137
+ resultSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
138
+ inputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
139
+ }, z.core.$strict>>;
140
+ }, z.core.$strict>>;
141
+ execution: z.ZodOptional<z.ZodObject<{
142
+ apiVersion: z.ZodLiteral<"ingestron.execution/v1">;
143
+ transport: z.ZodString;
144
+ entryPoint: z.ZodString;
145
+ actions: z.ZodArray<z.ZodEnum<{
146
+ approve: "approve";
147
+ discover: "discover";
148
+ prepare: "prepare";
149
+ review: "review";
150
+ run: "run";
151
+ }>>;
152
+ status: z.ZodLiteral<"receipt">;
153
+ retry: z.ZodLiteral<"same-run-id">;
154
+ cancellation: z.ZodLiteral<"interrupt">;
155
+ }, z.core.$strict>>;
156
+ renderer: z.ZodOptional<z.ZodObject<{
157
+ apiVersion: z.ZodLiteral<"ingestron.provider-generation/v1">;
158
+ module: z.ZodString;
159
+ }, z.core.$strict>>;
160
+ }, z.core.$strict>;
161
+ /** Data-only presets: no modules, nested dependencies or renderer replacement. */
162
+ export declare const extensionPackSchema: z.ZodObject<{
163
+ apiVersion: z.ZodLiteral<"ingestron.extension-pack/v1">;
164
+ id: z.ZodString;
165
+ version: z.ZodString;
166
+ description: z.ZodString;
167
+ extends: z.ZodObject<{
168
+ provider: z.ZodString;
169
+ version: z.ZodString;
170
+ platform: z.ZodString;
171
+ contract: z.ZodString;
172
+ contractVersion: z.ZodString;
173
+ }, z.core.$strict>;
174
+ activities: z.ZodRecord<z.ZodString, z.ZodObject<{
175
+ uses: z.ZodString;
176
+ with: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
177
+ }, z.core.$strict>>;
178
+ }, z.core.$strict>;
179
+ export declare function fence(root: string, name: string): string;
180
+ export declare function packageYaml(file: string): any;
181
+ /** Stable convenience names; locks always retain the explicit repository and path. */
182
+ export declare function canonicalPackageReference(reference: string): string;
183
+ export declare function packageLock(root: string): {
184
+ apiVersion: "ingestron.packages-lock/v1";
185
+ packages: Record<string, {
186
+ repository: string;
187
+ path: string;
188
+ commit: string;
189
+ files: Record<string, string>;
190
+ }>;
191
+ };
192
+ export declare function resolvePackage(root: string, reference: string): {
193
+ file: string;
194
+ root: string;
195
+ entry: {
196
+ repository: string;
197
+ path: string;
198
+ commit: string;
199
+ files: Record<string, string>;
200
+ };
201
+ };
202
+ /** Derived information lives outside the integrity-checked source cache. */
203
+ export declare function savePluginInformation(root: string, reference: string): string;
204
+ export declare function installPackage(root: string, reference: string, options?: {
205
+ fromGit?: string;
206
+ update?: boolean;
207
+ frozen?: boolean;
208
+ tagPrefix?: string;
209
+ }): {
210
+ repository: string;
211
+ path: string;
212
+ commit: string;
213
+ files: Record<string, string>;
214
+ reference: string;
215
+ cached: boolean;
216
+ informationFile: string;
217
+ };
218
+ export declare function installedProviders(root: string): {
219
+ apiVersion: "ingestron.provider/v1";
220
+ id: string;
221
+ version: string;
222
+ platform: string;
223
+ activities: Record<string, string>;
224
+ capabilities?: {
225
+ artifactKinds: string[];
226
+ delivery: boolean;
227
+ handovers: ("files" | "relation")[];
228
+ packContracts: Record<string, {
229
+ version: string;
230
+ activities: string[];
231
+ }>;
232
+ } | undefined;
233
+ projectAssembly?: {
234
+ apiVersion: "ingestron.project-assembly/v1";
235
+ command: string;
236
+ } | undefined;
237
+ connectorRuntimes?: Record<string, {
238
+ selectionSchema: Record<string, unknown>;
239
+ executionSchema: Record<string, unknown>;
240
+ prepareCommand: string;
241
+ contractsCommand?: string | undefined;
242
+ executionPlatforms: string[];
243
+ }> | undefined;
244
+ configurationSchema?: string | Record<string, unknown> | undefined;
245
+ standards?: {
246
+ id: string;
247
+ description: string;
248
+ sourceKinds?: string[] | undefined;
249
+ dataFlow?: "forbidden" | "required" | undefined;
250
+ }[] | undefined;
251
+ compatibility?: {
252
+ plan: "ingestron.plan/v1";
253
+ requiredFeatures: string[];
254
+ minimumCli: string;
255
+ } | undefined;
256
+ outputSchemas?: Record<string, string> | undefined;
257
+ lifecycle?: {
258
+ apiVersion: "ingestron.provider-lifecycle/v1";
259
+ module: string;
260
+ } | undefined;
261
+ planner?: {
262
+ apiVersion: "ingestron.provider-planning/v1";
263
+ module: string;
264
+ } | undefined;
265
+ commands?: {
266
+ apiVersion: "ingestron.provider-commands/v1";
267
+ namespace?: string | undefined;
268
+ execution: "offline-json";
269
+ module: string;
270
+ definitions: {
271
+ name: string;
272
+ description: string;
273
+ reportPack?: boolean | undefined;
274
+ examples?: string[] | undefined;
275
+ resultSchema?: Record<string, unknown> | undefined;
276
+ inputSchema: Record<string, unknown>;
277
+ }[];
278
+ } | undefined;
279
+ execution?: {
280
+ apiVersion: "ingestron.execution/v1";
281
+ transport: string;
282
+ entryPoint: string;
283
+ actions: ("approve" | "discover" | "prepare" | "review" | "run")[];
284
+ status: "receipt";
285
+ retry: "same-run-id";
286
+ cancellation: "interrupt";
287
+ } | undefined;
288
+ renderer?: {
289
+ apiVersion: "ingestron.provider-generation/v1";
290
+ module: string;
291
+ } | undefined;
292
+ reference: string;
293
+ commit: string;
294
+ evidence: string;
295
+ }[];
296
+ export declare function installedActivities(root: string): {
297
+ id: string;
298
+ provider: string;
299
+ version: string;
300
+ description: string;
301
+ platforms: string[];
302
+ evidence: string;
303
+ implementations: {
304
+ apiVersion: "ingestron.activity/v1";
305
+ id: string;
306
+ version: string;
307
+ description: string;
308
+ platform: string;
309
+ input: "committed" | "files" | "relation" | "source";
310
+ output: "committed" | "files" | "relation";
311
+ effect: "commit" | "control" | "read" | "stage";
312
+ capabilities: string[];
313
+ optionsSchema: Record<string, unknown>;
314
+ generator?: {
315
+ kind: "native-notebook" | "native-pipeline" | "native-project";
316
+ artifactKind?: string | undefined;
317
+ execution?: string | undefined;
318
+ persistence?: "capture" | "durable" | "ephemeral" | undefined;
319
+ runtime?: string | undefined;
320
+ code?: string | undefined;
321
+ scope: "collection" | "table";
322
+ modes: ("collection" | "table")[];
323
+ groupBy: string[];
324
+ dependencyOptions: Record<string, string>;
325
+ entrypoint: string;
326
+ } | undefined;
327
+ requirements?: {
328
+ execution: string;
329
+ features: string[];
330
+ sourceKinds?: string[] | undefined;
331
+ evidence: "offline";
332
+ } | undefined;
333
+ templates: {
334
+ source: string;
335
+ output: string;
336
+ format: "json" | "python" | "sql" | "text" | "yaml";
337
+ }[];
338
+ dependencies: Record<string, string>;
339
+ }[];
340
+ }[];