dataiku-sdk 0.6.0 → 0.6.2
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/dist/packages/types/src/index.d.ts +21 -0
- package/dist/packages/types/src/index.js +7 -0
- package/dist/src/cli.js +1416 -112
- package/dist/src/index.d.ts +6 -6
- package/dist/src/index.js +3 -3
- package/dist/src/resources/datasets.d.ts +18 -0
- package/dist/src/resources/datasets.js +61 -0
- package/dist/src/resources/flow-zones.d.ts +1 -1
- package/dist/src/resources/flow-zones.js +3 -1
- package/dist/src/resources/jobs.d.ts +14 -0
- package/dist/src/resources/jobs.js +62 -3
- package/dist/src/resources/recipes.d.ts +27 -0
- package/dist/src/resources/recipes.js +138 -0
- package/dist/src/resources/scenarios.d.ts +38 -2
- package/dist/src/resources/scenarios.js +162 -3
- package/dist/src/schemas.d.ts +2 -2
- package/dist/src/schemas.js +1 -1
- package/dist/src/skill.d.ts +2 -2
- package/dist/src/skill.js +3 -3
- package/package.json +1 -1
- package/packages/types/dist/index.d.ts +21 -0
- package/packages/types/dist/index.js +7 -0
|
@@ -1,7 +1,152 @@
|
|
|
1
|
+
import { DataikuError, } from "../errors.js";
|
|
1
2
|
import { ScenarioDetailsSchema, ScenarioStatusSchema, ScenarioSummaryArraySchema, } from "../schemas.js";
|
|
2
3
|
import { deepMerge, } from "../utils/deep-merge.js";
|
|
3
4
|
import { BaseResource, } from "./base.js";
|
|
4
5
|
import { computeNextPollDelayMs, } from "./jobs.js";
|
|
6
|
+
export const SCENARIO_CANONICAL_EDITABLE_FIELDS = [
|
|
7
|
+
"params.steps",
|
|
8
|
+
"params.triggers",
|
|
9
|
+
"params.reporters",
|
|
10
|
+
"params.customScript",
|
|
11
|
+
"active",
|
|
12
|
+
"name",
|
|
13
|
+
];
|
|
14
|
+
function isRecord(value) {
|
|
15
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
16
|
+
}
|
|
17
|
+
function jsonValueEqual(left, right) {
|
|
18
|
+
if (Object.is(left, right))
|
|
19
|
+
return true;
|
|
20
|
+
if (Array.isArray(left) || Array.isArray(right)) {
|
|
21
|
+
if (!Array.isArray(left) || !Array.isArray(right) || left.length !== right.length)
|
|
22
|
+
return false;
|
|
23
|
+
return left.every((value, index) => jsonValueEqual(value, right[index]));
|
|
24
|
+
}
|
|
25
|
+
if (!isRecord(left) || !isRecord(right))
|
|
26
|
+
return false;
|
|
27
|
+
const leftKeys = Object.keys(left);
|
|
28
|
+
const rightKeys = Object.keys(right);
|
|
29
|
+
if (leftKeys.length !== rightKeys.length)
|
|
30
|
+
return false;
|
|
31
|
+
return leftKeys.every((key) => Object.hasOwn(right, key) && jsonValueEqual(left[key], right[key]));
|
|
32
|
+
}
|
|
33
|
+
function jsonValueContains(actual, expected) {
|
|
34
|
+
if (jsonValueEqual(actual, expected))
|
|
35
|
+
return true;
|
|
36
|
+
if (Array.isArray(actual) || Array.isArray(expected)) {
|
|
37
|
+
if (!Array.isArray(actual) || !Array.isArray(expected) || actual.length !== expected.length) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
return expected.every((value, index) => jsonValueContains(actual[index], value));
|
|
41
|
+
}
|
|
42
|
+
if (!isRecord(actual) || !isRecord(expected))
|
|
43
|
+
return false;
|
|
44
|
+
return Object.entries(expected).every(([key, value,]) => Object.hasOwn(actual, key) && jsonValueContains(actual[key], value));
|
|
45
|
+
}
|
|
46
|
+
function collectPatchPaths(value, prefix = "", paths = []) {
|
|
47
|
+
if (!isRecord(value)) {
|
|
48
|
+
if (prefix)
|
|
49
|
+
paths.push(prefix);
|
|
50
|
+
return paths;
|
|
51
|
+
}
|
|
52
|
+
const entries = Object.entries(value);
|
|
53
|
+
if (entries.length === 0) {
|
|
54
|
+
if (prefix)
|
|
55
|
+
paths.push(prefix);
|
|
56
|
+
return paths;
|
|
57
|
+
}
|
|
58
|
+
for (const [key, child,] of entries) {
|
|
59
|
+
collectPatchPaths(child, prefix ? `${prefix}.${key}` : key, paths);
|
|
60
|
+
}
|
|
61
|
+
return paths;
|
|
62
|
+
}
|
|
63
|
+
function valueAtPath(value, path) {
|
|
64
|
+
let current = value;
|
|
65
|
+
for (const part of path.split(".")) {
|
|
66
|
+
if (!isRecord(current))
|
|
67
|
+
return undefined;
|
|
68
|
+
current = current[part];
|
|
69
|
+
}
|
|
70
|
+
return current;
|
|
71
|
+
}
|
|
72
|
+
function scenarioFieldChanges(before, after, patch) {
|
|
73
|
+
const changes = [];
|
|
74
|
+
const unchangedPaths = [];
|
|
75
|
+
for (const path of collectPatchPaths(patch)) {
|
|
76
|
+
const beforeValue = valueAtPath(before, path);
|
|
77
|
+
const afterValue = valueAtPath(after, path);
|
|
78
|
+
if (jsonValueEqual(beforeValue, afterValue)) {
|
|
79
|
+
unchangedPaths.push(path);
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
changes.push({ path, before: beforeValue, after: afterValue, });
|
|
83
|
+
}
|
|
84
|
+
return { changes, unchangedPaths, };
|
|
85
|
+
}
|
|
86
|
+
function scenarioFieldMismatches(actual, expected, patch) {
|
|
87
|
+
const mismatches = [];
|
|
88
|
+
for (const path of collectPatchPaths(patch)) {
|
|
89
|
+
const actualValue = valueAtPath(actual, path);
|
|
90
|
+
const expectedValue = valueAtPath(expected, path);
|
|
91
|
+
if (!jsonValueContains(actualValue, expectedValue)) {
|
|
92
|
+
mismatches.push({ path, expected: expectedValue, actual: actualValue, });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return mismatches;
|
|
96
|
+
}
|
|
97
|
+
export function normalizeScenarioUpdateData(data) {
|
|
98
|
+
const normalizedData = { ...data, };
|
|
99
|
+
const normalization = [];
|
|
100
|
+
const rawParams = data.rawParams;
|
|
101
|
+
if (!isRecord(rawParams) || !isRecord(rawParams.params)) {
|
|
102
|
+
return { normalizedData, normalization, };
|
|
103
|
+
}
|
|
104
|
+
const canonicalParams = isRecord(data.params) ? data.params : undefined;
|
|
105
|
+
const mergedParams = canonicalParams === undefined
|
|
106
|
+
? rawParams.params
|
|
107
|
+
: deepMerge(rawParams.params, canonicalParams);
|
|
108
|
+
const promoted = canonicalParams === undefined || !jsonValueEqual(mergedParams, canonicalParams);
|
|
109
|
+
if (promoted)
|
|
110
|
+
normalizedData.params = mergedParams;
|
|
111
|
+
const rawParamsWithoutParams = { ...rawParams, };
|
|
112
|
+
delete rawParamsWithoutParams.params;
|
|
113
|
+
if (Object.keys(rawParamsWithoutParams).length === 0)
|
|
114
|
+
delete normalizedData.rawParams;
|
|
115
|
+
else
|
|
116
|
+
normalizedData.rawParams = rawParamsWithoutParams;
|
|
117
|
+
normalization.push({
|
|
118
|
+
from: "rawParams.params",
|
|
119
|
+
to: "params",
|
|
120
|
+
action: promoted ? "promoted" : "ignored",
|
|
121
|
+
message: promoted
|
|
122
|
+
? "rawParams.params is a DSS echo; the editable scenario definition uses params."
|
|
123
|
+
: "rawParams.params was ignored because canonical params already supplied the same editable fields.",
|
|
124
|
+
});
|
|
125
|
+
return { normalizedData, normalization, };
|
|
126
|
+
}
|
|
127
|
+
export function scenarioUpdatePreview(current, data) {
|
|
128
|
+
const { normalizedData, normalization, } = normalizeScenarioUpdateData(data);
|
|
129
|
+
const next = deepMerge(current, normalizedData);
|
|
130
|
+
const { changes, unchangedPaths, } = scenarioFieldChanges(current, next, normalizedData);
|
|
131
|
+
return {
|
|
132
|
+
canonicalEditableFields: SCENARIO_CANONICAL_EDITABLE_FIELDS,
|
|
133
|
+
normalization,
|
|
134
|
+
normalizedData,
|
|
135
|
+
current,
|
|
136
|
+
next,
|
|
137
|
+
changes,
|
|
138
|
+
unchangedPaths,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
function scenarioUpdateVerificationError(mismatches, normalization) {
|
|
142
|
+
const mismatchPaths = mismatches.map((mismatch) => mismatch.path).join(", ");
|
|
143
|
+
return new DataikuError(400, "Scenario Update Verification Failed", JSON.stringify({
|
|
144
|
+
message: `Scenario update did not persist requested fields after refetch: ${mismatchPaths}`,
|
|
145
|
+
mismatches,
|
|
146
|
+
canonicalEditableFields: SCENARIO_CANONICAL_EDITABLE_FIELDS,
|
|
147
|
+
...(normalization.length > 0 ? { normalization, } : {}),
|
|
148
|
+
}));
|
|
149
|
+
}
|
|
5
150
|
export class ScenariosResource extends BaseResource {
|
|
6
151
|
/** List all scenarios in a project. */
|
|
7
152
|
async list(projectKey) {
|
|
@@ -42,13 +187,27 @@ export class ScenariosResource extends BaseResource {
|
|
|
42
187
|
const raw = await this.client.get(`/public/api/projects/${this.enc(projectKey)}/scenarios/${scEnc}/light/`);
|
|
43
188
|
return this.client.safeParse(ScenarioStatusSchema, raw, "scenarios.status");
|
|
44
189
|
}
|
|
45
|
-
/** Merge-update a scenario's definition. */
|
|
190
|
+
/** Merge-update a scenario's definition, then refetch and verify requested fields persisted. */
|
|
46
191
|
async update(scenarioId, data, projectKey) {
|
|
47
192
|
const scEnc = encodeURIComponent(scenarioId);
|
|
48
193
|
const pkEnc = this.enc(projectKey);
|
|
49
194
|
const current = await this.client.get(`/public/api/projects/${pkEnc}/scenarios/${scEnc}/`);
|
|
50
|
-
const
|
|
51
|
-
await this.client.put(`/public/api/projects/${pkEnc}/scenarios/${scEnc}/`,
|
|
195
|
+
const preview = scenarioUpdatePreview(current, data);
|
|
196
|
+
await this.client.put(`/public/api/projects/${pkEnc}/scenarios/${scEnc}/`, preview.next);
|
|
197
|
+
const after = await this.client.get(`/public/api/projects/${pkEnc}/scenarios/${scEnc}/`);
|
|
198
|
+
const mismatches = scenarioFieldMismatches(after, preview.next, preview.normalizedData);
|
|
199
|
+
if (mismatches.length > 0) {
|
|
200
|
+
throw scenarioUpdateVerificationError(mismatches, preview.normalization);
|
|
201
|
+
}
|
|
202
|
+
const verified = scenarioFieldChanges(current, after, preview.normalizedData);
|
|
203
|
+
return {
|
|
204
|
+
...preview,
|
|
205
|
+
after,
|
|
206
|
+
changes: verified.changes,
|
|
207
|
+
unchangedPaths: verified.unchangedPaths,
|
|
208
|
+
verified: true,
|
|
209
|
+
mismatches: [],
|
|
210
|
+
};
|
|
52
211
|
}
|
|
53
212
|
/** Delete a scenario. */
|
|
54
213
|
async delete(scenarioId, projectKey) {
|
package/dist/src/schemas.d.ts
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* The types package (packages/types/) owns the TypeBox schema definitions.
|
|
4
4
|
* SDK consumers get everything through this re-export.
|
|
5
5
|
*/
|
|
6
|
-
export { BuildModeSchema, CodeEnvActionResultSchema, CodeEnvCreateOptionsSchema, CodeEnvDetailsSchema, CodeEnvPackageListSchema, CodeEnvSetPackagesOptionsSchema, CodeEnvSummaryArraySchema, CodeEnvSummarySchema, CodeEnvUpdatePackagesOptionsSchema, CodeEnvUsageArraySchema, CodeEnvWaitOptionsSchema, ConnectionSummarySchema, DashboardDetailsSchema, DashboardSummaryArraySchema, DashboardSummarySchema, DataQualityComputeResultSchema, DataQualityProjectStatusSchema, DataQualityRuleArraySchema, DataQualityRuleResultArraySchema, DataQualityRuleResultSchema, DataQualityRuleSchema, DataQualityRulesSchema, DataQualityStatusByPartitionSchema, DataQualityStatusSchema, DataQualityTimelineEntrySchema, DataQualityTimelineSchema, DatasetCreateOptionsSchema, DatasetDetailsSchema, DatasetSchemaSchema, DatasetSummaryArraySchema, DatasetSummarySchema, FlowMapOptionsSchema, FlowZoneArraySchema, FlowZoneCreateOptionsSchema, FlowZoneItemSchema, FlowZoneObjectTypeSchema, FlowZoneSchema, FlowZoneUpdateOptionsSchema, FolderCreateOptionsSchema, FolderDetailsSchema, FolderItemArraySchema, FolderItemSchema, FolderSummaryArraySchema, FolderSummarySchema, FutureStateSchema, FutureWaitResultSchema, InsightDetailsSchema, InsightSummaryArraySchema, InsightSummarySchema, JobSummaryArraySchema, JobSummarySchema, JobWaitResultSchema, JupyterCellSchema, JupyterNotebookContentSchema, JupyterNotebookSummaryArraySchema, JupyterNotebookSummarySchema, NotebookSessionArraySchema, NotebookSessionSchema, parseSchema, ProjectDetailsSchema, ProjectMetadataSchema, ProjectSummaryArraySchema, ProjectSummarySchema, ProjectVariablesSchema, RecipeCreateOptionsSchema, RecipeCreateResultSchema, RecipeDetailsSchema, RecipeSummaryArraySchema, RecipeSummarySchema, safeParseSchema, ScenarioDetailsSchema, ScenarioStatusSchema, ScenarioSummaryArraySchema, ScenarioSummarySchema, ScenarioWaitResultSchema, SqlNotebookCellSchema, SqlNotebookContentSchema, SqlNotebookSummaryArraySchema, SqlNotebookSummarySchema, SqlQueryResponseSchema, SqlQueryResultSchema, SqlQuerySchemaSchema, WikiArticleDataArraySchema, WikiArticleDataSchema, WikiArticleMetadataSchema, WikiSettingsSchema, WikiTaxonomyNodeSchema, } from "../packages/types/src/index.js";
|
|
7
|
-
export type { BuildMode, CodeEnvActionResult, CodeEnvCreateOptions, CodeEnvDetails, CodeEnvPackageList, CodeEnvSetPackagesOptions, CodeEnvSummary, CodeEnvUpdatePackagesOptions, CodeEnvUsage, CodeEnvWaitOptions, ConnectionSummary, DashboardDetails, DashboardSummary, DataQualityComputeResult, DataQualityProjectStatus, DataQualityRule, DataQualityRuleResult, DataQualityRules, DataQualityStatus, DataQualityStatusByPartition, DataQualityTimeline, DataQualityTimelineEntry, DatasetCreateOptions, DatasetDetails, DatasetSchema, DatasetSummary, FlowMapOptions, FlowZone, FlowZoneCreateOptions, FlowZoneItem, FlowZoneObjectType, FlowZoneUpdateOptions, FolderCreateOptions, FolderDetails, FolderItem, FolderSummary, FutureState, FutureWaitResult, InsightDetails, InsightSummary, JobSummary, JobWaitResult, JupyterCell, JupyterNotebookContent, JupyterNotebookSummary, NotebookSession, ProjectDetails, ProjectMetadata, ProjectSummary, ProjectVariables, RecipeCreateOptions, RecipeCreateResult, RecipeDetails, RecipeSummary, SafeParseResult, ScenarioDetails, ScenarioStatus, ScenarioSummary, ScenarioWaitResult, SqlNotebookCell, SqlNotebookContent, SqlNotebookSummary, SqlQueryResponse, SqlQueryResult, SqlQuerySchema, WikiArticleData, WikiArticleMetadata, WikiSettings, WikiTaxonomyNode, } from "../packages/types/src/index.js";
|
|
6
|
+
export { BuildModeSchema, CodeEnvActionResultSchema, CodeEnvCreateOptionsSchema, CodeEnvDetailsSchema, CodeEnvPackageListSchema, CodeEnvSetPackagesOptionsSchema, CodeEnvSummaryArraySchema, CodeEnvSummarySchema, CodeEnvUpdatePackagesOptionsSchema, CodeEnvUsageArraySchema, CodeEnvWaitOptionsSchema, ConnectionSummarySchema, DashboardDetailsSchema, DashboardSummaryArraySchema, DashboardSummarySchema, DataQualityComputeResultSchema, DataQualityProjectStatusSchema, DataQualityRuleArraySchema, DataQualityRuleResultArraySchema, DataQualityRuleResultSchema, DataQualityRuleSchema, DataQualityRulesSchema, DataQualityStatusByPartitionSchema, DataQualityStatusSchema, DataQualityTimelineEntrySchema, DataQualityTimelineSchema, DatasetCreateOptionsSchema, DatasetDetailsSchema, DatasetSchemaSchema, DatasetSummaryArraySchema, DatasetSummarySchema, FlowMapOptionsSchema, FlowZoneArraySchema, FlowZoneCreateOptionsSchema, FlowZoneItemSchema, FlowZoneObjectTypeSchema, FlowZonePositionSchema, FlowZoneSchema, FlowZoneUpdateOptionsSchema, FolderCreateOptionsSchema, FolderDetailsSchema, FolderItemArraySchema, FolderItemSchema, FolderSummaryArraySchema, FolderSummarySchema, FutureStateSchema, FutureWaitResultSchema, InsightDetailsSchema, InsightSummaryArraySchema, InsightSummarySchema, JobSummaryArraySchema, JobSummarySchema, JobWaitResultSchema, JupyterCellSchema, JupyterNotebookContentSchema, JupyterNotebookSummaryArraySchema, JupyterNotebookSummarySchema, NotebookSessionArraySchema, NotebookSessionSchema, parseSchema, ProjectDetailsSchema, ProjectMetadataSchema, ProjectSummaryArraySchema, ProjectSummarySchema, ProjectVariablesSchema, RecipeCreateOptionsSchema, RecipeCreateResultSchema, RecipeDetailsSchema, RecipeSummaryArraySchema, RecipeSummarySchema, safeParseSchema, ScenarioDetailsSchema, ScenarioStatusSchema, ScenarioSummaryArraySchema, ScenarioSummarySchema, ScenarioWaitResultSchema, SqlNotebookCellSchema, SqlNotebookContentSchema, SqlNotebookSummaryArraySchema, SqlNotebookSummarySchema, SqlQueryResponseSchema, SqlQueryResultSchema, SqlQuerySchemaSchema, WikiArticleDataArraySchema, WikiArticleDataSchema, WikiArticleMetadataSchema, WikiSettingsSchema, WikiTaxonomyNodeSchema, } from "../packages/types/src/index.js";
|
|
7
|
+
export type { BuildMode, CodeEnvActionResult, CodeEnvCreateOptions, CodeEnvDetails, CodeEnvPackageList, CodeEnvSetPackagesOptions, CodeEnvSummary, CodeEnvUpdatePackagesOptions, CodeEnvUsage, CodeEnvWaitOptions, ConnectionSummary, DashboardDetails, DashboardSummary, DataQualityComputeResult, DataQualityProjectStatus, DataQualityRule, DataQualityRuleResult, DataQualityRules, DataQualityStatus, DataQualityStatusByPartition, DataQualityTimeline, DataQualityTimelineEntry, DatasetCreateOptions, DatasetDetails, DatasetSchema, DatasetSummary, FlowMapOptions, FlowZone, FlowZoneCreateOptions, FlowZoneItem, FlowZoneObjectType, FlowZonePosition, FlowZoneUpdateOptions, FolderCreateOptions, FolderDetails, FolderItem, FolderSummary, FutureState, FutureWaitResult, InsightDetails, InsightSummary, JobSummary, JobWaitResult, JupyterCell, JupyterNotebookContent, JupyterNotebookSummary, NotebookSession, ProjectDetails, ProjectMetadata, ProjectSummary, ProjectVariables, RecipeCreateOptions, RecipeCreateResult, RecipeDetails, RecipeSummary, SafeParseResult, ScenarioDetails, ScenarioStatus, ScenarioSummary, ScenarioWaitResult, SqlNotebookCell, SqlNotebookContent, SqlNotebookSummary, SqlQueryResponse, SqlQueryResult, SqlQuerySchema, WikiArticleData, WikiArticleMetadata, WikiSettings, WikiTaxonomyNode, } from "../packages/types/src/index.js";
|
package/dist/src/schemas.js
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* The types package (packages/types/) owns the TypeBox schema definitions.
|
|
4
4
|
* SDK consumers get everything through this re-export.
|
|
5
5
|
*/
|
|
6
|
-
export { BuildModeSchema, CodeEnvActionResultSchema, CodeEnvCreateOptionsSchema, CodeEnvDetailsSchema, CodeEnvPackageListSchema, CodeEnvSetPackagesOptionsSchema, CodeEnvSummaryArraySchema, CodeEnvSummarySchema, CodeEnvUpdatePackagesOptionsSchema, CodeEnvUsageArraySchema, CodeEnvWaitOptionsSchema, ConnectionSummarySchema, DashboardDetailsSchema, DashboardSummaryArraySchema, DashboardSummarySchema, DataQualityComputeResultSchema, DataQualityProjectStatusSchema, DataQualityRuleArraySchema, DataQualityRuleResultArraySchema, DataQualityRuleResultSchema, DataQualityRuleSchema, DataQualityRulesSchema, DataQualityStatusByPartitionSchema, DataQualityStatusSchema, DataQualityTimelineEntrySchema, DataQualityTimelineSchema, DatasetCreateOptionsSchema, DatasetDetailsSchema, DatasetSchemaSchema, DatasetSummaryArraySchema, DatasetSummarySchema, FlowMapOptionsSchema, FlowZoneArraySchema, FlowZoneCreateOptionsSchema, FlowZoneItemSchema, FlowZoneObjectTypeSchema, FlowZoneSchema, FlowZoneUpdateOptionsSchema, FolderCreateOptionsSchema, FolderDetailsSchema, FolderItemArraySchema, FolderItemSchema, FolderSummaryArraySchema, FolderSummarySchema, FutureStateSchema, FutureWaitResultSchema, InsightDetailsSchema, InsightSummaryArraySchema, InsightSummarySchema, JobSummaryArraySchema, JobSummarySchema, JobWaitResultSchema, JupyterCellSchema, JupyterNotebookContentSchema, JupyterNotebookSummaryArraySchema, JupyterNotebookSummarySchema, NotebookSessionArraySchema, NotebookSessionSchema, parseSchema, ProjectDetailsSchema, ProjectMetadataSchema, ProjectSummaryArraySchema, ProjectSummarySchema, ProjectVariablesSchema, RecipeCreateOptionsSchema, RecipeCreateResultSchema, RecipeDetailsSchema, RecipeSummaryArraySchema, RecipeSummarySchema, safeParseSchema, ScenarioDetailsSchema, ScenarioStatusSchema, ScenarioSummaryArraySchema, ScenarioSummarySchema, ScenarioWaitResultSchema, SqlNotebookCellSchema, SqlNotebookContentSchema, SqlNotebookSummaryArraySchema, SqlNotebookSummarySchema, SqlQueryResponseSchema, SqlQueryResultSchema, SqlQuerySchemaSchema, WikiArticleDataArraySchema, WikiArticleDataSchema, WikiArticleMetadataSchema, WikiSettingsSchema, WikiTaxonomyNodeSchema, } from "../packages/types/src/index.js";
|
|
6
|
+
export { BuildModeSchema, CodeEnvActionResultSchema, CodeEnvCreateOptionsSchema, CodeEnvDetailsSchema, CodeEnvPackageListSchema, CodeEnvSetPackagesOptionsSchema, CodeEnvSummaryArraySchema, CodeEnvSummarySchema, CodeEnvUpdatePackagesOptionsSchema, CodeEnvUsageArraySchema, CodeEnvWaitOptionsSchema, ConnectionSummarySchema, DashboardDetailsSchema, DashboardSummaryArraySchema, DashboardSummarySchema, DataQualityComputeResultSchema, DataQualityProjectStatusSchema, DataQualityRuleArraySchema, DataQualityRuleResultArraySchema, DataQualityRuleResultSchema, DataQualityRuleSchema, DataQualityRulesSchema, DataQualityStatusByPartitionSchema, DataQualityStatusSchema, DataQualityTimelineEntrySchema, DataQualityTimelineSchema, DatasetCreateOptionsSchema, DatasetDetailsSchema, DatasetSchemaSchema, DatasetSummaryArraySchema, DatasetSummarySchema, FlowMapOptionsSchema, FlowZoneArraySchema, FlowZoneCreateOptionsSchema, FlowZoneItemSchema, FlowZoneObjectTypeSchema, FlowZonePositionSchema, FlowZoneSchema, FlowZoneUpdateOptionsSchema, FolderCreateOptionsSchema, FolderDetailsSchema, FolderItemArraySchema, FolderItemSchema, FolderSummaryArraySchema, FolderSummarySchema, FutureStateSchema, FutureWaitResultSchema, InsightDetailsSchema, InsightSummaryArraySchema, InsightSummarySchema, JobSummaryArraySchema, JobSummarySchema, JobWaitResultSchema, JupyterCellSchema, JupyterNotebookContentSchema, JupyterNotebookSummaryArraySchema, JupyterNotebookSummarySchema, NotebookSessionArraySchema, NotebookSessionSchema, parseSchema, ProjectDetailsSchema, ProjectMetadataSchema, ProjectSummaryArraySchema, ProjectSummarySchema, ProjectVariablesSchema, RecipeCreateOptionsSchema, RecipeCreateResultSchema, RecipeDetailsSchema, RecipeSummaryArraySchema, RecipeSummarySchema, safeParseSchema, ScenarioDetailsSchema, ScenarioStatusSchema, ScenarioSummaryArraySchema, ScenarioSummarySchema, ScenarioWaitResultSchema, SqlNotebookCellSchema, SqlNotebookContentSchema, SqlNotebookSummaryArraySchema, SqlNotebookSummarySchema, SqlQueryResponseSchema, SqlQueryResultSchema, SqlQuerySchemaSchema, WikiArticleDataArraySchema, WikiArticleDataSchema, WikiArticleMetadataSchema, WikiSettingsSchema, WikiTaxonomyNodeSchema, } from "../packages/types/src/index.js";
|
package/dist/src/skill.d.ts
CHANGED
|
@@ -24,8 +24,8 @@ export interface DetectedAgent {
|
|
|
24
24
|
}
|
|
25
25
|
export declare function detectAgents(): DetectedAgent[];
|
|
26
26
|
/**
|
|
27
|
-
* Walk upward from startDir looking for
|
|
28
|
-
*
|
|
27
|
+
* Walk upward from startDir looking for strong project markers.
|
|
28
|
+
* Agent config directories are install targets, not workspace roots.
|
|
29
29
|
*/
|
|
30
30
|
export declare function findWorkspaceRoot(startDir: string): string;
|
|
31
31
|
export interface InstallResult {
|
package/dist/src/skill.js
CHANGED
|
@@ -208,10 +208,10 @@ export function detectAgents() {
|
|
|
208
208
|
// ---------------------------------------------------------------------------
|
|
209
209
|
// Workspace root detection
|
|
210
210
|
// ---------------------------------------------------------------------------
|
|
211
|
-
const WORKSPACE_MARKERS = [".git",
|
|
211
|
+
const WORKSPACE_MARKERS = [".git",];
|
|
212
212
|
/**
|
|
213
|
-
* Walk upward from startDir looking for
|
|
214
|
-
*
|
|
213
|
+
* Walk upward from startDir looking for strong project markers.
|
|
214
|
+
* Agent config directories are install targets, not workspace roots.
|
|
215
215
|
*/
|
|
216
216
|
export function findWorkspaceRoot(startDir) {
|
|
217
217
|
let dir = startDir;
|
package/package.json
CHANGED
|
@@ -282,6 +282,11 @@ export declare const FlowZoneItemSchema: import("@sinclair/typebox").TObject<{
|
|
|
282
282
|
projectKey: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
283
283
|
}>;
|
|
284
284
|
export type FlowZoneItem = Static<typeof FlowZoneItemSchema>;
|
|
285
|
+
export declare const FlowZonePositionSchema: import("@sinclair/typebox").TObject<{
|
|
286
|
+
x: import("@sinclair/typebox").TNumber;
|
|
287
|
+
y: import("@sinclair/typebox").TNumber;
|
|
288
|
+
}>;
|
|
289
|
+
export type FlowZonePosition = Static<typeof FlowZonePositionSchema>;
|
|
285
290
|
export declare const FlowZoneSchema: import("@sinclair/typebox").TObject<{
|
|
286
291
|
id: import("@sinclair/typebox").TString;
|
|
287
292
|
name: import("@sinclair/typebox").TString;
|
|
@@ -297,6 +302,10 @@ export declare const FlowZoneSchema: import("@sinclair/typebox").TObject<{
|
|
|
297
302
|
objectType: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"DATASET">, import("@sinclair/typebox").TLiteral<"MANAGED_FOLDER">, import("@sinclair/typebox").TLiteral<"SAVED_MODEL">, import("@sinclair/typebox").TLiteral<"RECIPE">, import("@sinclair/typebox").TLiteral<"MODEL_EVALUATION_STORE">, import("@sinclair/typebox").TLiteral<"STREAMING_ENDPOINT">, import("@sinclair/typebox").TLiteral<"LABELING_TASK">, import("@sinclair/typebox").TLiteral<"RETRIEVABLE_KNOWLEDGE">]>;
|
|
298
303
|
projectKey: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
299
304
|
}>>>;
|
|
305
|
+
position: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
306
|
+
x: import("@sinclair/typebox").TNumber;
|
|
307
|
+
y: import("@sinclair/typebox").TNumber;
|
|
308
|
+
}>>;
|
|
300
309
|
}>;
|
|
301
310
|
export type FlowZone = Static<typeof FlowZoneSchema>;
|
|
302
311
|
export declare const FlowZoneArraySchema: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
@@ -314,17 +323,29 @@ export declare const FlowZoneArraySchema: import("@sinclair/typebox").TArray<imp
|
|
|
314
323
|
objectType: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"DATASET">, import("@sinclair/typebox").TLiteral<"MANAGED_FOLDER">, import("@sinclair/typebox").TLiteral<"SAVED_MODEL">, import("@sinclair/typebox").TLiteral<"RECIPE">, import("@sinclair/typebox").TLiteral<"MODEL_EVALUATION_STORE">, import("@sinclair/typebox").TLiteral<"STREAMING_ENDPOINT">, import("@sinclair/typebox").TLiteral<"LABELING_TASK">, import("@sinclair/typebox").TLiteral<"RETRIEVABLE_KNOWLEDGE">]>;
|
|
315
324
|
projectKey: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
316
325
|
}>>>;
|
|
326
|
+
position: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
327
|
+
x: import("@sinclair/typebox").TNumber;
|
|
328
|
+
y: import("@sinclair/typebox").TNumber;
|
|
329
|
+
}>>;
|
|
317
330
|
}>>;
|
|
318
331
|
export declare const FlowZoneCreateOptionsSchema: import("@sinclair/typebox").TObject<{
|
|
319
332
|
name: import("@sinclair/typebox").TString;
|
|
320
333
|
color: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
321
334
|
projectKey: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
335
|
+
position: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
336
|
+
x: import("@sinclair/typebox").TNumber;
|
|
337
|
+
y: import("@sinclair/typebox").TNumber;
|
|
338
|
+
}>>;
|
|
322
339
|
}>;
|
|
323
340
|
export type FlowZoneCreateOptions = Static<typeof FlowZoneCreateOptionsSchema>;
|
|
324
341
|
export declare const FlowZoneUpdateOptionsSchema: import("@sinclair/typebox").TObject<{
|
|
325
342
|
name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
326
343
|
color: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
327
344
|
projectKey: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
345
|
+
position: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
346
|
+
x: import("@sinclair/typebox").TNumber;
|
|
347
|
+
y: import("@sinclair/typebox").TNumber;
|
|
348
|
+
}>>;
|
|
328
349
|
}>;
|
|
329
350
|
export type FlowZoneUpdateOptions = Static<typeof FlowZoneUpdateOptionsSchema>;
|
|
330
351
|
export declare const FolderCreateOptionsSchema: import("@sinclair/typebox").TObject<{
|
|
@@ -340,6 +340,10 @@ export const FlowZoneItemSchema = Type.Object({
|
|
|
340
340
|
objectType: FlowZoneObjectTypeSchema,
|
|
341
341
|
projectKey: Type.Optional(Type.String()),
|
|
342
342
|
}, { additionalProperties: true, });
|
|
343
|
+
export const FlowZonePositionSchema = Type.Object({
|
|
344
|
+
x: Type.Number(),
|
|
345
|
+
y: Type.Number(),
|
|
346
|
+
}, { additionalProperties: false, });
|
|
343
347
|
export const FlowZoneSchema = Type.Object({
|
|
344
348
|
id: Type.String(),
|
|
345
349
|
name: Type.String(),
|
|
@@ -347,17 +351,20 @@ export const FlowZoneSchema = Type.Object({
|
|
|
347
351
|
projectKey: Type.Optional(Type.String()),
|
|
348
352
|
items: Type.Optional(Type.Array(FlowZoneItemSchema)),
|
|
349
353
|
shared: Type.Optional(Type.Array(FlowZoneItemSchema)),
|
|
354
|
+
position: Type.Optional(FlowZonePositionSchema),
|
|
350
355
|
}, { additionalProperties: true, });
|
|
351
356
|
export const FlowZoneArraySchema = Type.Array(FlowZoneSchema);
|
|
352
357
|
export const FlowZoneCreateOptionsSchema = Type.Object({
|
|
353
358
|
name: Type.String(),
|
|
354
359
|
color: Type.Optional(Type.String()),
|
|
355
360
|
projectKey: Type.Optional(Type.String()),
|
|
361
|
+
position: Type.Optional(FlowZonePositionSchema),
|
|
356
362
|
}, { additionalProperties: false, });
|
|
357
363
|
export const FlowZoneUpdateOptionsSchema = Type.Object({
|
|
358
364
|
name: Type.Optional(Type.String()),
|
|
359
365
|
color: Type.Optional(Type.String()),
|
|
360
366
|
projectKey: Type.Optional(Type.String()),
|
|
367
|
+
position: Type.Optional(FlowZonePositionSchema),
|
|
361
368
|
}, { additionalProperties: false, });
|
|
362
369
|
// ---------------------------------------------------------------------------
|
|
363
370
|
// Folders
|