@boboddy/sdk 0.1.18-alpha → 0.1.20-alpha
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/client.js +11 -4
- package/dist/definitions/pipelines/builder.d.ts +21 -5
- package/dist/definitions/pipelines/index.js +55 -15
- package/dist/definitions/pipelines/pipeline-definitions-client.d.ts +2 -2
- package/dist/definitions/steps/define-step.d.ts +12 -3
- package/dist/definitions/steps/index.js +36 -30
- package/dist/generated/index.d.ts +1 -1
- package/dist/generated/sdk.gen.d.ts +2 -2
- package/dist/generated/types.gen.d.ts +227 -215
- package/dist/index.js +80 -41
- package/dist/push/index.js +80 -41
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1008,9 +1008,6 @@ class StepExecutions extends HeyApiClient {
|
|
|
1008
1008
|
}
|
|
1009
1009
|
|
|
1010
1010
|
class PipelineDefinitions extends HeyApiClient {
|
|
1011
|
-
listPipelineDefinitions(options) {
|
|
1012
|
-
return (options?.client ?? this.client).get({ url: "/api/linear-pipeline-definitions", ...options });
|
|
1013
|
-
}
|
|
1014
1011
|
createPipelineDefinition(options) {
|
|
1015
1012
|
return (options.client ?? this.client).post({
|
|
1016
1013
|
url: "/api/linear-pipeline-definitions",
|
|
@@ -1034,6 +1031,9 @@ class PipelineDefinitions extends HeyApiClient {
|
|
|
1034
1031
|
getPipelineDefinition(options) {
|
|
1035
1032
|
return (options.client ?? this.client).get({ url: "/api/linear-pipeline-definitions/{linearPipelineDefinitionId}", ...options });
|
|
1036
1033
|
}
|
|
1034
|
+
listPipelineDefinitions(options) {
|
|
1035
|
+
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/linear-pipeline-definitions", ...options });
|
|
1036
|
+
}
|
|
1037
1037
|
archivePipelineDefinition(options) {
|
|
1038
1038
|
return (options.client ?? this.client).put({ url: "/api/linear-pipeline-definitions/{linearPipelineDefinitionId}/archive", ...options });
|
|
1039
1039
|
}
|
|
@@ -1263,7 +1263,14 @@ class ProjectIntegrations extends HeyApiClient {
|
|
|
1263
1263
|
});
|
|
1264
1264
|
}
|
|
1265
1265
|
syncProjectIntegration(options) {
|
|
1266
|
-
return (options.client ?? this.client).post({
|
|
1266
|
+
return (options.client ?? this.client).post({
|
|
1267
|
+
url: "/api/projects/{projectId}/integrations/{integrationId}/sync",
|
|
1268
|
+
...options,
|
|
1269
|
+
headers: {
|
|
1270
|
+
"Content-Type": "application/json",
|
|
1271
|
+
...options.headers
|
|
1272
|
+
}
|
|
1273
|
+
});
|
|
1267
1274
|
}
|
|
1268
1275
|
deleteProjectIntegration(options) {
|
|
1269
1276
|
return (options.client ?? this.client).delete({ url: "/api/projects/{projectId}/integrations/{integrationId}", ...options });
|
|
@@ -13325,30 +13332,6 @@ class JSONSchemaGenerator {
|
|
|
13325
13332
|
}
|
|
13326
13333
|
// ../../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/json-schema.js
|
|
13327
13334
|
var exports_json_schema = {};
|
|
13328
|
-
// src/definitions/steps/prompt-template.ts
|
|
13329
|
-
function createPromptInputProxy(path = []) {
|
|
13330
|
-
const token = () => path.length ? `{{${path.join(".")}}}` : "";
|
|
13331
|
-
return new Proxy(Object.freeze({}), {
|
|
13332
|
-
get(_, key) {
|
|
13333
|
-
if (key === Symbol.toPrimitive || key === "valueOf") {
|
|
13334
|
-
return (_hint) => token();
|
|
13335
|
-
}
|
|
13336
|
-
if (key === "toString") {
|
|
13337
|
-
return () => token();
|
|
13338
|
-
}
|
|
13339
|
-
if (typeof key !== "string")
|
|
13340
|
-
return;
|
|
13341
|
-
return createPromptInputProxy([...path, key]);
|
|
13342
|
-
}
|
|
13343
|
-
});
|
|
13344
|
-
}
|
|
13345
|
-
function renderPromptTemplate(template, inputJson) {
|
|
13346
|
-
return template.replace(/\{\{([^}]+)\}\}/g, (_, path) => {
|
|
13347
|
-
const value = path.split(".").reduce((curr, key) => curr != null ? curr[key] : undefined, inputJson);
|
|
13348
|
-
return value != null ? String(value) : "";
|
|
13349
|
-
});
|
|
13350
|
-
}
|
|
13351
|
-
|
|
13352
13335
|
// src/definitions/steps/define-step.ts
|
|
13353
13336
|
var UNWRAP_TYPES = new Set(["optional", "nullable", "default"]);
|
|
13354
13337
|
function unwrapZodType(schema) {
|
|
@@ -13394,7 +13377,7 @@ function defineStep(config2) {
|
|
|
13394
13377
|
for (const feature of features) {
|
|
13395
13378
|
effectiveResult = effectiveResult ? effectiveResult.extend(feature._resultExtension.shape) : feature._resultExtension;
|
|
13396
13379
|
}
|
|
13397
|
-
let effectivePrompt =
|
|
13380
|
+
let effectivePrompt = config2.agentPrompt;
|
|
13398
13381
|
for (const feature of features) {
|
|
13399
13382
|
if (feature._promptAddition) {
|
|
13400
13383
|
effectivePrompt = effectivePrompt ? `${effectivePrompt}
|
|
@@ -13411,7 +13394,7 @@ ${feature._promptAddition}` : feature._promptAddition;
|
|
|
13411
13394
|
kind: "user_defined",
|
|
13412
13395
|
status: config2.status ?? "active",
|
|
13413
13396
|
prompt: effectivePrompt,
|
|
13414
|
-
inputSchemaJson: config2.
|
|
13397
|
+
inputSchemaJson: config2.additionalInput ? toJSONSchema(config2.additionalInput) : null,
|
|
13415
13398
|
resultSchemaJson: effectiveResult ? toJSONSchema(effectiveResult) : null,
|
|
13416
13399
|
signalExtractorDefinitions: [
|
|
13417
13400
|
...(config2.signals ?? []).map((s) => ({
|
|
@@ -13433,6 +13416,29 @@ ${feature._promptAddition}` : feature._promptAddition;
|
|
|
13433
13416
|
};
|
|
13434
13417
|
return spec;
|
|
13435
13418
|
}
|
|
13419
|
+
// src/definitions/steps/prompt-template.ts
|
|
13420
|
+
function createPromptInputProxy(path = []) {
|
|
13421
|
+
const token = () => path.length ? `{{${path.join(".")}}}` : "";
|
|
13422
|
+
return new Proxy(Object.freeze({}), {
|
|
13423
|
+
get(_, key) {
|
|
13424
|
+
if (key === Symbol.toPrimitive || key === "valueOf") {
|
|
13425
|
+
return (_hint) => token();
|
|
13426
|
+
}
|
|
13427
|
+
if (key === "toString") {
|
|
13428
|
+
return () => token();
|
|
13429
|
+
}
|
|
13430
|
+
if (typeof key !== "string")
|
|
13431
|
+
return;
|
|
13432
|
+
return createPromptInputProxy([...path, key]);
|
|
13433
|
+
}
|
|
13434
|
+
});
|
|
13435
|
+
}
|
|
13436
|
+
function renderPromptTemplate(template, inputJson) {
|
|
13437
|
+
return template.replace(/\{\{([^}]+)\}\}/g, (_, path) => {
|
|
13438
|
+
const value = path.split(".").reduce((curr, key) => curr != null ? curr[key] : undefined, inputJson);
|
|
13439
|
+
return value != null ? String(value) : "";
|
|
13440
|
+
});
|
|
13441
|
+
}
|
|
13436
13442
|
// src/definitions/steps/step-definitions-client.ts
|
|
13437
13443
|
function createStepDefinitionsClient(baseUrl) {
|
|
13438
13444
|
const client2 = createClient({ baseUrl });
|
|
@@ -16233,11 +16239,13 @@ class PipelineStepAdvancementBuilder {
|
|
|
16233
16239
|
meta;
|
|
16234
16240
|
steps;
|
|
16235
16241
|
pipelineInputBindings;
|
|
16236
|
-
|
|
16242
|
+
pipelineStepInputBindings;
|
|
16243
|
+
constructor(inputSchema, meta3, steps, pipelineInputBindings = {}, pipelineStepInputBindings = {}) {
|
|
16237
16244
|
this.inputSchema = inputSchema;
|
|
16238
16245
|
this.meta = meta3;
|
|
16239
16246
|
this.steps = steps;
|
|
16240
16247
|
this.pipelineInputBindings = pipelineInputBindings;
|
|
16248
|
+
this.pipelineStepInputBindings = pipelineStepInputBindings;
|
|
16241
16249
|
}
|
|
16242
16250
|
advance(callback) {
|
|
16243
16251
|
const last = this.steps.at(-1);
|
|
@@ -16248,7 +16256,7 @@ class PipelineStepAdvancementBuilder {
|
|
|
16248
16256
|
...result.rules !== undefined ? { rules: result.rules } : {}
|
|
16249
16257
|
};
|
|
16250
16258
|
last.advancement = policy;
|
|
16251
|
-
return new PipelineStepBuilder(this.inputSchema, this.meta, this.steps, this.pipelineInputBindings);
|
|
16259
|
+
return new PipelineStepBuilder(this.inputSchema, this.meta, this.steps, this.pipelineInputBindings, this.pipelineStepInputBindings);
|
|
16252
16260
|
}
|
|
16253
16261
|
}
|
|
16254
16262
|
|
|
@@ -16257,16 +16265,18 @@ class PipelineStepBuilder {
|
|
|
16257
16265
|
meta;
|
|
16258
16266
|
steps;
|
|
16259
16267
|
pipelineInputBindings;
|
|
16260
|
-
|
|
16268
|
+
pipelineStepInputBindings;
|
|
16269
|
+
constructor(inputSchema, meta3, steps, pipelineInputBindings = {}, pipelineStepInputBindings = {}) {
|
|
16261
16270
|
this.inputSchema = inputSchema;
|
|
16262
16271
|
this.meta = meta3;
|
|
16263
16272
|
this.steps = steps;
|
|
16264
16273
|
this.pipelineInputBindings = pipelineInputBindings;
|
|
16274
|
+
this.pipelineStepInputBindings = pipelineStepInputBindings;
|
|
16265
16275
|
}
|
|
16266
16276
|
step(step, mapper, configFn) {
|
|
16267
16277
|
const ctx = makeStepInputCtx(this.inputSchema);
|
|
16268
|
-
const rawInput = mapper(ctx);
|
|
16269
|
-
const input = normalizeInputMapping(rawInput);
|
|
16278
|
+
const rawInput = mapper ? mapper(ctx) : {};
|
|
16279
|
+
const input = mergeStepBindings(this.pipelineStepInputBindings, normalizeInputMapping(rawInput));
|
|
16270
16280
|
const stepConfig = { step, input };
|
|
16271
16281
|
if (configFn) {
|
|
16272
16282
|
const cfg = {};
|
|
@@ -16275,7 +16285,7 @@ class PipelineStepBuilder {
|
|
|
16275
16285
|
stepConfig.timeout = cfg.timeout;
|
|
16276
16286
|
}
|
|
16277
16287
|
this.steps.push(stepConfig);
|
|
16278
|
-
return new PipelineStepAdvancementBuilder(this.inputSchema, this.meta, this.steps, this.pipelineInputBindings);
|
|
16288
|
+
return new PipelineStepAdvancementBuilder(this.inputSchema, this.meta, this.steps, this.pipelineInputBindings, this.pipelineStepInputBindings);
|
|
16279
16289
|
}
|
|
16280
16290
|
build() {
|
|
16281
16291
|
const config2 = {
|
|
@@ -16297,8 +16307,9 @@ class PipelineBuilder {
|
|
|
16297
16307
|
meta;
|
|
16298
16308
|
steps = [];
|
|
16299
16309
|
pipelineInputBindings;
|
|
16310
|
+
pipelineStepInputBindings;
|
|
16300
16311
|
constructor(meta3) {
|
|
16301
|
-
const { additionalPipelineInput, ...rest } = meta3;
|
|
16312
|
+
const { additionalPipelineInput, additionalStepInput, ...rest } = meta3;
|
|
16302
16313
|
this.inputSchema = additionalPipelineInput?.schema ?? exports_external.unknown();
|
|
16303
16314
|
this.meta = rest;
|
|
16304
16315
|
if (additionalPipelineInput) {
|
|
@@ -16317,11 +16328,12 @@ class PipelineBuilder {
|
|
|
16317
16328
|
} else {
|
|
16318
16329
|
this.pipelineInputBindings = {};
|
|
16319
16330
|
}
|
|
16331
|
+
this.pipelineStepInputBindings = resolveAdditionalStepInputBindings("additionalStepInput", additionalStepInput);
|
|
16320
16332
|
}
|
|
16321
16333
|
step(step, mapper, configFn) {
|
|
16322
16334
|
const ctx = makeStepInputCtx(this.inputSchema);
|
|
16323
|
-
const rawInput = mapper(ctx);
|
|
16324
|
-
const input = normalizeInputMapping(rawInput);
|
|
16335
|
+
const rawInput = mapper ? mapper(ctx) : {};
|
|
16336
|
+
const input = mergeStepBindings(this.pipelineStepInputBindings, normalizeInputMapping(rawInput));
|
|
16325
16337
|
const stepConfig = { step, input };
|
|
16326
16338
|
if (configFn) {
|
|
16327
16339
|
const cfg = {};
|
|
@@ -16330,7 +16342,7 @@ class PipelineBuilder {
|
|
|
16330
16342
|
stepConfig.timeout = cfg.timeout;
|
|
16331
16343
|
}
|
|
16332
16344
|
this.steps.push(stepConfig);
|
|
16333
|
-
return new PipelineStepAdvancementBuilder(this.inputSchema, this.meta, this.steps, this.pipelineInputBindings);
|
|
16345
|
+
return new PipelineStepAdvancementBuilder(this.inputSchema, this.meta, this.steps, this.pipelineInputBindings, this.pipelineStepInputBindings);
|
|
16334
16346
|
}
|
|
16335
16347
|
}
|
|
16336
16348
|
var WORK_ITEM_ACCESSOR = Object.freeze({
|
|
@@ -16380,6 +16392,33 @@ function normalizeInputMapping(mapping) {
|
|
|
16380
16392
|
}
|
|
16381
16393
|
return out;
|
|
16382
16394
|
}
|
|
16395
|
+
function resolveAdditionalStepInputBindings(label, definition) {
|
|
16396
|
+
if (!definition) {
|
|
16397
|
+
return {};
|
|
16398
|
+
}
|
|
16399
|
+
const raw = definition.bindings({
|
|
16400
|
+
workItemField: (fieldName) => ({
|
|
16401
|
+
source: "work_item",
|
|
16402
|
+
field: `fields.${fieldName}`
|
|
16403
|
+
}),
|
|
16404
|
+
literal: literal2
|
|
16405
|
+
});
|
|
16406
|
+
if (definition.schema instanceof exports_external.ZodObject) {
|
|
16407
|
+
const validKeys = new Set(Object.keys(definition.schema.shape));
|
|
16408
|
+
const unknown2 = Object.keys(raw).filter((key) => !validKeys.has(key));
|
|
16409
|
+
if (unknown2.length > 0) {
|
|
16410
|
+
throw new Error(`${label}.bindings returned key${unknown2.length > 1 ? "s" : ""} not in schema: ${unknown2.map((key) => `"${key}"`).join(", ")}`);
|
|
16411
|
+
}
|
|
16412
|
+
}
|
|
16413
|
+
return normalizeInputMapping(raw) ?? {};
|
|
16414
|
+
}
|
|
16415
|
+
function mergeStepBindings(pipelineBindings, explicitBindings) {
|
|
16416
|
+
const merged = {
|
|
16417
|
+
...pipelineBindings,
|
|
16418
|
+
...explicitBindings ?? {}
|
|
16419
|
+
};
|
|
16420
|
+
return Object.keys(merged).length > 0 ? merged : undefined;
|
|
16421
|
+
}
|
|
16383
16422
|
function pipeline(meta3) {
|
|
16384
16423
|
return new PipelineBuilder(meta3);
|
|
16385
16424
|
}
|
|
@@ -16392,7 +16431,7 @@ var buildPipelineDefinitionsClient = (pipelineDefinitions) => {
|
|
|
16392
16431
|
return {
|
|
16393
16432
|
listByProjectId: async (projectId, options) => {
|
|
16394
16433
|
const result = await pipelineDefinitions.listPipelineDefinitions({
|
|
16395
|
-
|
|
16434
|
+
path: { projectId },
|
|
16396
16435
|
headers: options?.headers
|
|
16397
16436
|
});
|
|
16398
16437
|
if (result.error)
|
package/dist/push/index.js
CHANGED
|
@@ -11947,30 +11947,6 @@ class JSONSchemaGenerator {
|
|
|
11947
11947
|
}
|
|
11948
11948
|
// ../../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/json-schema.js
|
|
11949
11949
|
var exports_json_schema = {};
|
|
11950
|
-
// src/definitions/steps/prompt-template.ts
|
|
11951
|
-
function createPromptInputProxy(path = []) {
|
|
11952
|
-
const token = () => path.length ? `{{${path.join(".")}}}` : "";
|
|
11953
|
-
return new Proxy(Object.freeze({}), {
|
|
11954
|
-
get(_, key) {
|
|
11955
|
-
if (key === Symbol.toPrimitive || key === "valueOf") {
|
|
11956
|
-
return (_hint) => token();
|
|
11957
|
-
}
|
|
11958
|
-
if (key === "toString") {
|
|
11959
|
-
return () => token();
|
|
11960
|
-
}
|
|
11961
|
-
if (typeof key !== "string")
|
|
11962
|
-
return;
|
|
11963
|
-
return createPromptInputProxy([...path, key]);
|
|
11964
|
-
}
|
|
11965
|
-
});
|
|
11966
|
-
}
|
|
11967
|
-
function renderPromptTemplate(template, inputJson) {
|
|
11968
|
-
return template.replace(/\{\{([^}]+)\}\}/g, (_, path) => {
|
|
11969
|
-
const value = path.split(".").reduce((curr, key) => curr != null ? curr[key] : undefined, inputJson);
|
|
11970
|
-
return value != null ? String(value) : "";
|
|
11971
|
-
});
|
|
11972
|
-
}
|
|
11973
|
-
|
|
11974
11950
|
// src/definitions/steps/define-step.ts
|
|
11975
11951
|
var UNWRAP_TYPES = new Set(["optional", "nullable", "default"]);
|
|
11976
11952
|
function unwrapZodType(schema) {
|
|
@@ -12016,7 +11992,7 @@ function defineStep(config2) {
|
|
|
12016
11992
|
for (const feature of features) {
|
|
12017
11993
|
effectiveResult = effectiveResult ? effectiveResult.extend(feature._resultExtension.shape) : feature._resultExtension;
|
|
12018
11994
|
}
|
|
12019
|
-
let effectivePrompt =
|
|
11995
|
+
let effectivePrompt = config2.agentPrompt;
|
|
12020
11996
|
for (const feature of features) {
|
|
12021
11997
|
if (feature._promptAddition) {
|
|
12022
11998
|
effectivePrompt = effectivePrompt ? `${effectivePrompt}
|
|
@@ -12033,7 +12009,7 @@ ${feature._promptAddition}` : feature._promptAddition;
|
|
|
12033
12009
|
kind: "user_defined",
|
|
12034
12010
|
status: config2.status ?? "active",
|
|
12035
12011
|
prompt: effectivePrompt,
|
|
12036
|
-
inputSchemaJson: config2.
|
|
12012
|
+
inputSchemaJson: config2.additionalInput ? toJSONSchema(config2.additionalInput) : null,
|
|
12037
12013
|
resultSchemaJson: effectiveResult ? toJSONSchema(effectiveResult) : null,
|
|
12038
12014
|
signalExtractorDefinitions: [
|
|
12039
12015
|
...(config2.signals ?? []).map((s) => ({
|
|
@@ -12055,6 +12031,29 @@ ${feature._promptAddition}` : feature._promptAddition;
|
|
|
12055
12031
|
};
|
|
12056
12032
|
return spec;
|
|
12057
12033
|
}
|
|
12034
|
+
// src/definitions/steps/prompt-template.ts
|
|
12035
|
+
function createPromptInputProxy(path = []) {
|
|
12036
|
+
const token = () => path.length ? `{{${path.join(".")}}}` : "";
|
|
12037
|
+
return new Proxy(Object.freeze({}), {
|
|
12038
|
+
get(_, key) {
|
|
12039
|
+
if (key === Symbol.toPrimitive || key === "valueOf") {
|
|
12040
|
+
return (_hint) => token();
|
|
12041
|
+
}
|
|
12042
|
+
if (key === "toString") {
|
|
12043
|
+
return () => token();
|
|
12044
|
+
}
|
|
12045
|
+
if (typeof key !== "string")
|
|
12046
|
+
return;
|
|
12047
|
+
return createPromptInputProxy([...path, key]);
|
|
12048
|
+
}
|
|
12049
|
+
});
|
|
12050
|
+
}
|
|
12051
|
+
function renderPromptTemplate(template, inputJson) {
|
|
12052
|
+
return template.replace(/\{\{([^}]+)\}\}/g, (_, path) => {
|
|
12053
|
+
const value = path.split(".").reduce((curr, key) => curr != null ? curr[key] : undefined, inputJson);
|
|
12054
|
+
return value != null ? String(value) : "";
|
|
12055
|
+
});
|
|
12056
|
+
}
|
|
12058
12057
|
// src/generated/core/bodySerializer.gen.ts
|
|
12059
12058
|
var jsonBodySerializer = {
|
|
12060
12059
|
bodySerializer: (body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value)
|
|
@@ -13049,9 +13048,6 @@ class StepExecutions extends HeyApiClient {
|
|
|
13049
13048
|
}
|
|
13050
13049
|
|
|
13051
13050
|
class PipelineDefinitions extends HeyApiClient {
|
|
13052
|
-
listPipelineDefinitions(options) {
|
|
13053
|
-
return (options?.client ?? this.client).get({ url: "/api/linear-pipeline-definitions", ...options });
|
|
13054
|
-
}
|
|
13055
13051
|
createPipelineDefinition(options) {
|
|
13056
13052
|
return (options.client ?? this.client).post({
|
|
13057
13053
|
url: "/api/linear-pipeline-definitions",
|
|
@@ -13075,6 +13071,9 @@ class PipelineDefinitions extends HeyApiClient {
|
|
|
13075
13071
|
getPipelineDefinition(options) {
|
|
13076
13072
|
return (options.client ?? this.client).get({ url: "/api/linear-pipeline-definitions/{linearPipelineDefinitionId}", ...options });
|
|
13077
13073
|
}
|
|
13074
|
+
listPipelineDefinitions(options) {
|
|
13075
|
+
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/linear-pipeline-definitions", ...options });
|
|
13076
|
+
}
|
|
13078
13077
|
archivePipelineDefinition(options) {
|
|
13079
13078
|
return (options.client ?? this.client).put({ url: "/api/linear-pipeline-definitions/{linearPipelineDefinitionId}/archive", ...options });
|
|
13080
13079
|
}
|
|
@@ -13304,7 +13303,14 @@ class ProjectIntegrations extends HeyApiClient {
|
|
|
13304
13303
|
});
|
|
13305
13304
|
}
|
|
13306
13305
|
syncProjectIntegration(options) {
|
|
13307
|
-
return (options.client ?? this.client).post({
|
|
13306
|
+
return (options.client ?? this.client).post({
|
|
13307
|
+
url: "/api/projects/{projectId}/integrations/{integrationId}/sync",
|
|
13308
|
+
...options,
|
|
13309
|
+
headers: {
|
|
13310
|
+
"Content-Type": "application/json",
|
|
13311
|
+
...options.headers
|
|
13312
|
+
}
|
|
13313
|
+
});
|
|
13308
13314
|
}
|
|
13309
13315
|
deleteProjectIntegration(options) {
|
|
13310
13316
|
return (options.client ?? this.client).delete({ url: "/api/projects/{projectId}/integrations/{integrationId}", ...options });
|
|
@@ -16163,11 +16169,13 @@ class PipelineStepAdvancementBuilder {
|
|
|
16163
16169
|
meta;
|
|
16164
16170
|
steps;
|
|
16165
16171
|
pipelineInputBindings;
|
|
16166
|
-
|
|
16172
|
+
pipelineStepInputBindings;
|
|
16173
|
+
constructor(inputSchema, meta3, steps, pipelineInputBindings = {}, pipelineStepInputBindings = {}) {
|
|
16167
16174
|
this.inputSchema = inputSchema;
|
|
16168
16175
|
this.meta = meta3;
|
|
16169
16176
|
this.steps = steps;
|
|
16170
16177
|
this.pipelineInputBindings = pipelineInputBindings;
|
|
16178
|
+
this.pipelineStepInputBindings = pipelineStepInputBindings;
|
|
16171
16179
|
}
|
|
16172
16180
|
advance(callback) {
|
|
16173
16181
|
const last = this.steps.at(-1);
|
|
@@ -16178,7 +16186,7 @@ class PipelineStepAdvancementBuilder {
|
|
|
16178
16186
|
...result.rules !== undefined ? { rules: result.rules } : {}
|
|
16179
16187
|
};
|
|
16180
16188
|
last.advancement = policy;
|
|
16181
|
-
return new PipelineStepBuilder(this.inputSchema, this.meta, this.steps, this.pipelineInputBindings);
|
|
16189
|
+
return new PipelineStepBuilder(this.inputSchema, this.meta, this.steps, this.pipelineInputBindings, this.pipelineStepInputBindings);
|
|
16182
16190
|
}
|
|
16183
16191
|
}
|
|
16184
16192
|
|
|
@@ -16187,16 +16195,18 @@ class PipelineStepBuilder {
|
|
|
16187
16195
|
meta;
|
|
16188
16196
|
steps;
|
|
16189
16197
|
pipelineInputBindings;
|
|
16190
|
-
|
|
16198
|
+
pipelineStepInputBindings;
|
|
16199
|
+
constructor(inputSchema, meta3, steps, pipelineInputBindings = {}, pipelineStepInputBindings = {}) {
|
|
16191
16200
|
this.inputSchema = inputSchema;
|
|
16192
16201
|
this.meta = meta3;
|
|
16193
16202
|
this.steps = steps;
|
|
16194
16203
|
this.pipelineInputBindings = pipelineInputBindings;
|
|
16204
|
+
this.pipelineStepInputBindings = pipelineStepInputBindings;
|
|
16195
16205
|
}
|
|
16196
16206
|
step(step, mapper, configFn) {
|
|
16197
16207
|
const ctx = makeStepInputCtx(this.inputSchema);
|
|
16198
|
-
const rawInput = mapper(ctx);
|
|
16199
|
-
const input = normalizeInputMapping(rawInput);
|
|
16208
|
+
const rawInput = mapper ? mapper(ctx) : {};
|
|
16209
|
+
const input = mergeStepBindings(this.pipelineStepInputBindings, normalizeInputMapping(rawInput));
|
|
16200
16210
|
const stepConfig = { step, input };
|
|
16201
16211
|
if (configFn) {
|
|
16202
16212
|
const cfg = {};
|
|
@@ -16205,7 +16215,7 @@ class PipelineStepBuilder {
|
|
|
16205
16215
|
stepConfig.timeout = cfg.timeout;
|
|
16206
16216
|
}
|
|
16207
16217
|
this.steps.push(stepConfig);
|
|
16208
|
-
return new PipelineStepAdvancementBuilder(this.inputSchema, this.meta, this.steps, this.pipelineInputBindings);
|
|
16218
|
+
return new PipelineStepAdvancementBuilder(this.inputSchema, this.meta, this.steps, this.pipelineInputBindings, this.pipelineStepInputBindings);
|
|
16209
16219
|
}
|
|
16210
16220
|
build() {
|
|
16211
16221
|
const config2 = {
|
|
@@ -16227,8 +16237,9 @@ class PipelineBuilder {
|
|
|
16227
16237
|
meta;
|
|
16228
16238
|
steps = [];
|
|
16229
16239
|
pipelineInputBindings;
|
|
16240
|
+
pipelineStepInputBindings;
|
|
16230
16241
|
constructor(meta3) {
|
|
16231
|
-
const { additionalPipelineInput, ...rest } = meta3;
|
|
16242
|
+
const { additionalPipelineInput, additionalStepInput, ...rest } = meta3;
|
|
16232
16243
|
this.inputSchema = additionalPipelineInput?.schema ?? exports_external.unknown();
|
|
16233
16244
|
this.meta = rest;
|
|
16234
16245
|
if (additionalPipelineInput) {
|
|
@@ -16247,11 +16258,12 @@ class PipelineBuilder {
|
|
|
16247
16258
|
} else {
|
|
16248
16259
|
this.pipelineInputBindings = {};
|
|
16249
16260
|
}
|
|
16261
|
+
this.pipelineStepInputBindings = resolveAdditionalStepInputBindings("additionalStepInput", additionalStepInput);
|
|
16250
16262
|
}
|
|
16251
16263
|
step(step, mapper, configFn) {
|
|
16252
16264
|
const ctx = makeStepInputCtx(this.inputSchema);
|
|
16253
|
-
const rawInput = mapper(ctx);
|
|
16254
|
-
const input = normalizeInputMapping(rawInput);
|
|
16265
|
+
const rawInput = mapper ? mapper(ctx) : {};
|
|
16266
|
+
const input = mergeStepBindings(this.pipelineStepInputBindings, normalizeInputMapping(rawInput));
|
|
16255
16267
|
const stepConfig = { step, input };
|
|
16256
16268
|
if (configFn) {
|
|
16257
16269
|
const cfg = {};
|
|
@@ -16260,7 +16272,7 @@ class PipelineBuilder {
|
|
|
16260
16272
|
stepConfig.timeout = cfg.timeout;
|
|
16261
16273
|
}
|
|
16262
16274
|
this.steps.push(stepConfig);
|
|
16263
|
-
return new PipelineStepAdvancementBuilder(this.inputSchema, this.meta, this.steps, this.pipelineInputBindings);
|
|
16275
|
+
return new PipelineStepAdvancementBuilder(this.inputSchema, this.meta, this.steps, this.pipelineInputBindings, this.pipelineStepInputBindings);
|
|
16264
16276
|
}
|
|
16265
16277
|
}
|
|
16266
16278
|
var WORK_ITEM_ACCESSOR = Object.freeze({
|
|
@@ -16310,6 +16322,33 @@ function normalizeInputMapping(mapping) {
|
|
|
16310
16322
|
}
|
|
16311
16323
|
return out;
|
|
16312
16324
|
}
|
|
16325
|
+
function resolveAdditionalStepInputBindings(label, definition) {
|
|
16326
|
+
if (!definition) {
|
|
16327
|
+
return {};
|
|
16328
|
+
}
|
|
16329
|
+
const raw = definition.bindings({
|
|
16330
|
+
workItemField: (fieldName) => ({
|
|
16331
|
+
source: "work_item",
|
|
16332
|
+
field: `fields.${fieldName}`
|
|
16333
|
+
}),
|
|
16334
|
+
literal: literal2
|
|
16335
|
+
});
|
|
16336
|
+
if (definition.schema instanceof exports_external.ZodObject) {
|
|
16337
|
+
const validKeys = new Set(Object.keys(definition.schema.shape));
|
|
16338
|
+
const unknown2 = Object.keys(raw).filter((key) => !validKeys.has(key));
|
|
16339
|
+
if (unknown2.length > 0) {
|
|
16340
|
+
throw new Error(`${label}.bindings returned key${unknown2.length > 1 ? "s" : ""} not in schema: ${unknown2.map((key) => `"${key}"`).join(", ")}`);
|
|
16341
|
+
}
|
|
16342
|
+
}
|
|
16343
|
+
return normalizeInputMapping(raw) ?? {};
|
|
16344
|
+
}
|
|
16345
|
+
function mergeStepBindings(pipelineBindings, explicitBindings) {
|
|
16346
|
+
const merged = {
|
|
16347
|
+
...pipelineBindings,
|
|
16348
|
+
...explicitBindings ?? {}
|
|
16349
|
+
};
|
|
16350
|
+
return Object.keys(merged).length > 0 ? merged : undefined;
|
|
16351
|
+
}
|
|
16313
16352
|
function pipeline(meta3) {
|
|
16314
16353
|
return new PipelineBuilder(meta3);
|
|
16315
16354
|
}
|
|
@@ -16322,7 +16361,7 @@ var buildPipelineDefinitionsClient = (pipelineDefinitions) => {
|
|
|
16322
16361
|
return {
|
|
16323
16362
|
listByProjectId: async (projectId, options) => {
|
|
16324
16363
|
const result = await pipelineDefinitions.listPipelineDefinitions({
|
|
16325
|
-
|
|
16364
|
+
path: { projectId },
|
|
16326
16365
|
headers: options?.headers
|
|
16327
16366
|
});
|
|
16328
16367
|
if (result.error)
|