@boboddy/sdk 0.1.43-alpha → 0.1.45-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 +93 -18
- package/dist/definitions/pipelines/index.js +89 -17
- package/dist/definitions/steps/define-step.d.ts +2 -1
- package/dist/definitions/steps/index.js +166 -74
- package/dist/definitions/steps/prompt-template.d.ts +10 -2
- package/dist/definitions/steps/step-features.d.ts +32 -8
- package/dist/generated/index.d.ts +2 -2
- package/dist/generated/sdk.gen.d.ts +31 -9
- package/dist/generated/types.gen.d.ts +1452 -323
- package/dist/index.js +170 -75
- package/dist/push/index.js +165 -74
- package/dist/step-execution-plane-client.d.ts +1 -0
- package/package.json +1 -1
package/dist/client.js
CHANGED
|
@@ -864,15 +864,6 @@ class Api extends HeyApiClient {
|
|
|
864
864
|
"allApiAuth*8"(options) {
|
|
865
865
|
return (options?.client ?? this.client).trace({ url: "/api/auth/*", ...options });
|
|
866
866
|
}
|
|
867
|
-
getApiIntegrationsGithubInstall(options) {
|
|
868
|
-
return (options?.client ?? this.client).get({ url: "/api/integrations/github/install", ...options });
|
|
869
|
-
}
|
|
870
|
-
getApiIntegrationsGithubCallback(options) {
|
|
871
|
-
return (options?.client ?? this.client).get({ url: "/api/integrations/github/callback", ...options });
|
|
872
|
-
}
|
|
873
|
-
postApiIntegrationsGithubWebhook(options) {
|
|
874
|
-
return (options?.client ?? this.client).post({ url: "/api/integrations/github/webhook", ...options });
|
|
875
|
-
}
|
|
876
867
|
}
|
|
877
868
|
|
|
878
869
|
class Projects extends HeyApiClient {
|
|
@@ -895,6 +886,9 @@ class Projects extends HeyApiClient {
|
|
|
895
886
|
getProject(options) {
|
|
896
887
|
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}", ...options });
|
|
897
888
|
}
|
|
889
|
+
getProjectWorkItemSignalScores(options) {
|
|
890
|
+
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/work-item-signal-scores", ...options });
|
|
891
|
+
}
|
|
898
892
|
updateProjectDefaultPipelineAssignment(options) {
|
|
899
893
|
return (options.client ?? this.client).put({
|
|
900
894
|
url: "/api/projects/{projectId}/default-pipeline-assignment",
|
|
@@ -1230,12 +1224,41 @@ class ProjectContext extends HeyApiClient {
|
|
|
1230
1224
|
}
|
|
1231
1225
|
}
|
|
1232
1226
|
|
|
1233
|
-
class
|
|
1234
|
-
|
|
1235
|
-
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/
|
|
1227
|
+
class UserNotifications extends HeyApiClient {
|
|
1228
|
+
listUserNotifications(options) {
|
|
1229
|
+
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/notifications", ...options });
|
|
1230
|
+
}
|
|
1231
|
+
getUserNotification(options) {
|
|
1232
|
+
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/notifications/{notificationId}", ...options });
|
|
1233
|
+
}
|
|
1234
|
+
dismissUserNotification(options) {
|
|
1235
|
+
return (options.client ?? this.client).post({ url: "/api/projects/{projectId}/notifications/{notificationId}/dismiss", ...options });
|
|
1236
|
+
}
|
|
1237
|
+
respondToFeedbackRequest(options) {
|
|
1238
|
+
return (options.client ?? this.client).post({
|
|
1239
|
+
url: "/api/projects/{projectId}/notifications/{notificationId}/respond",
|
|
1240
|
+
...options,
|
|
1241
|
+
headers: {
|
|
1242
|
+
"Content-Type": "application/json",
|
|
1243
|
+
...options.headers
|
|
1244
|
+
}
|
|
1245
|
+
});
|
|
1246
|
+
}
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
class NotificationRules extends HeyApiClient {
|
|
1250
|
+
listNotificationRules(options) {
|
|
1251
|
+
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/notification-rules", ...options });
|
|
1236
1252
|
}
|
|
1237
|
-
|
|
1238
|
-
return (options.client ?? this.client).
|
|
1253
|
+
upsertNotificationRule(options) {
|
|
1254
|
+
return (options.client ?? this.client).put({
|
|
1255
|
+
url: "/api/projects/{projectId}/notification-rules",
|
|
1256
|
+
...options,
|
|
1257
|
+
headers: {
|
|
1258
|
+
"Content-Type": "application/json",
|
|
1259
|
+
...options.headers
|
|
1260
|
+
}
|
|
1261
|
+
});
|
|
1239
1262
|
}
|
|
1240
1263
|
}
|
|
1241
1264
|
|
|
@@ -1287,6 +1310,43 @@ class ProjectIntegrations extends HeyApiClient {
|
|
|
1287
1310
|
}
|
|
1288
1311
|
}
|
|
1289
1312
|
|
|
1313
|
+
class GitHubIntegrations extends HeyApiClient {
|
|
1314
|
+
beginGitHubAppInstall(options) {
|
|
1315
|
+
return (options?.client ?? this.client).get({ url: "/api/integrations/github/install", ...options });
|
|
1316
|
+
}
|
|
1317
|
+
completeGitHubAppInstall(options) {
|
|
1318
|
+
return (options?.client ?? this.client).get({ url: "/api/integrations/github/callback", ...options });
|
|
1319
|
+
}
|
|
1320
|
+
handleGitHubWebhook(options) {
|
|
1321
|
+
return (options?.client ?? this.client).post({ url: "/api/integrations/github/webhook", ...options });
|
|
1322
|
+
}
|
|
1323
|
+
}
|
|
1324
|
+
|
|
1325
|
+
class ProjectInvites extends HeyApiClient {
|
|
1326
|
+
getProjectInviteByToken(options) {
|
|
1327
|
+
return (options.client ?? this.client).get({ url: "/api/project-invites/{token}", ...options });
|
|
1328
|
+
}
|
|
1329
|
+
listProjectInvites(options) {
|
|
1330
|
+
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/invites", ...options });
|
|
1331
|
+
}
|
|
1332
|
+
createProjectInvite(options) {
|
|
1333
|
+
return (options.client ?? this.client).post({
|
|
1334
|
+
url: "/api/projects/{projectId}/invites",
|
|
1335
|
+
...options,
|
|
1336
|
+
headers: {
|
|
1337
|
+
"Content-Type": "application/json",
|
|
1338
|
+
...options.headers
|
|
1339
|
+
}
|
|
1340
|
+
});
|
|
1341
|
+
}
|
|
1342
|
+
revokeProjectInvite(options) {
|
|
1343
|
+
return (options.client ?? this.client).post({ url: "/api/projects/{projectId}/invites/{inviteId}/revoke", ...options });
|
|
1344
|
+
}
|
|
1345
|
+
acceptProjectInvite(options) {
|
|
1346
|
+
return (options.client ?? this.client).post({ url: "/api/project-invites/{token}/accept", ...options });
|
|
1347
|
+
}
|
|
1348
|
+
}
|
|
1349
|
+
|
|
1290
1350
|
class BoboddyClient extends HeyApiClient {
|
|
1291
1351
|
static __registry = new HeyApiRegistry;
|
|
1292
1352
|
constructor(args) {
|
|
@@ -1325,9 +1385,13 @@ class BoboddyClient extends HeyApiClient {
|
|
|
1325
1385
|
get projectContext() {
|
|
1326
1386
|
return this._projectContext ??= new ProjectContext({ client: this.client });
|
|
1327
1387
|
}
|
|
1328
|
-
|
|
1329
|
-
get
|
|
1330
|
-
return this.
|
|
1388
|
+
_userNotifications;
|
|
1389
|
+
get userNotifications() {
|
|
1390
|
+
return this._userNotifications ??= new UserNotifications({ client: this.client });
|
|
1391
|
+
}
|
|
1392
|
+
_notificationRules;
|
|
1393
|
+
get notificationRules() {
|
|
1394
|
+
return this._notificationRules ??= new NotificationRules({ client: this.client });
|
|
1331
1395
|
}
|
|
1332
1396
|
_stepDefinitionTemplates;
|
|
1333
1397
|
get stepDefinitionTemplates() {
|
|
@@ -1337,6 +1401,14 @@ class BoboddyClient extends HeyApiClient {
|
|
|
1337
1401
|
get projectIntegrations() {
|
|
1338
1402
|
return this._projectIntegrations ??= new ProjectIntegrations({ client: this.client });
|
|
1339
1403
|
}
|
|
1404
|
+
_gitHubIntegrations;
|
|
1405
|
+
get gitHubIntegrations() {
|
|
1406
|
+
return this._gitHubIntegrations ??= new GitHubIntegrations({ client: this.client });
|
|
1407
|
+
}
|
|
1408
|
+
_projectInvites;
|
|
1409
|
+
get projectInvites() {
|
|
1410
|
+
return this._projectInvites ??= new ProjectInvites({ client: this.client });
|
|
1411
|
+
}
|
|
1340
1412
|
}
|
|
1341
1413
|
// src/step-execution-plane-client.ts
|
|
1342
1414
|
function createStepExecutionPlaneClient(baseUrl) {
|
|
@@ -1412,15 +1484,18 @@ export {
|
|
|
1412
1484
|
createStepExecutionPlaneClient,
|
|
1413
1485
|
createBoboddyClient,
|
|
1414
1486
|
WorkItems,
|
|
1487
|
+
UserNotifications,
|
|
1415
1488
|
StepExecutions,
|
|
1416
1489
|
StepDefinitions,
|
|
1417
1490
|
StepDefinitionTemplates,
|
|
1418
1491
|
Projects,
|
|
1492
|
+
ProjectInvites,
|
|
1419
1493
|
ProjectIntegrations,
|
|
1420
1494
|
ProjectContext,
|
|
1421
1495
|
PipelineExecutions,
|
|
1422
1496
|
PipelineDefinitions,
|
|
1423
|
-
|
|
1497
|
+
NotificationRules,
|
|
1498
|
+
GitHubIntegrations,
|
|
1424
1499
|
BoboddyClient,
|
|
1425
1500
|
Api
|
|
1426
1501
|
};
|
|
@@ -15682,15 +15682,6 @@ class Api extends HeyApiClient {
|
|
|
15682
15682
|
"allApiAuth*8"(options) {
|
|
15683
15683
|
return (options?.client ?? this.client).trace({ url: "/api/auth/*", ...options });
|
|
15684
15684
|
}
|
|
15685
|
-
getApiIntegrationsGithubInstall(options) {
|
|
15686
|
-
return (options?.client ?? this.client).get({ url: "/api/integrations/github/install", ...options });
|
|
15687
|
-
}
|
|
15688
|
-
getApiIntegrationsGithubCallback(options) {
|
|
15689
|
-
return (options?.client ?? this.client).get({ url: "/api/integrations/github/callback", ...options });
|
|
15690
|
-
}
|
|
15691
|
-
postApiIntegrationsGithubWebhook(options) {
|
|
15692
|
-
return (options?.client ?? this.client).post({ url: "/api/integrations/github/webhook", ...options });
|
|
15693
|
-
}
|
|
15694
15685
|
}
|
|
15695
15686
|
|
|
15696
15687
|
class Projects extends HeyApiClient {
|
|
@@ -15713,6 +15704,9 @@ class Projects extends HeyApiClient {
|
|
|
15713
15704
|
getProject(options) {
|
|
15714
15705
|
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}", ...options });
|
|
15715
15706
|
}
|
|
15707
|
+
getProjectWorkItemSignalScores(options) {
|
|
15708
|
+
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/work-item-signal-scores", ...options });
|
|
15709
|
+
}
|
|
15716
15710
|
updateProjectDefaultPipelineAssignment(options) {
|
|
15717
15711
|
return (options.client ?? this.client).put({
|
|
15718
15712
|
url: "/api/projects/{projectId}/default-pipeline-assignment",
|
|
@@ -16048,12 +16042,41 @@ class ProjectContext extends HeyApiClient {
|
|
|
16048
16042
|
}
|
|
16049
16043
|
}
|
|
16050
16044
|
|
|
16051
|
-
class
|
|
16052
|
-
|
|
16053
|
-
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/
|
|
16045
|
+
class UserNotifications extends HeyApiClient {
|
|
16046
|
+
listUserNotifications(options) {
|
|
16047
|
+
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/notifications", ...options });
|
|
16048
|
+
}
|
|
16049
|
+
getUserNotification(options) {
|
|
16050
|
+
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/notifications/{notificationId}", ...options });
|
|
16051
|
+
}
|
|
16052
|
+
dismissUserNotification(options) {
|
|
16053
|
+
return (options.client ?? this.client).post({ url: "/api/projects/{projectId}/notifications/{notificationId}/dismiss", ...options });
|
|
16054
|
+
}
|
|
16055
|
+
respondToFeedbackRequest(options) {
|
|
16056
|
+
return (options.client ?? this.client).post({
|
|
16057
|
+
url: "/api/projects/{projectId}/notifications/{notificationId}/respond",
|
|
16058
|
+
...options,
|
|
16059
|
+
headers: {
|
|
16060
|
+
"Content-Type": "application/json",
|
|
16061
|
+
...options.headers
|
|
16062
|
+
}
|
|
16063
|
+
});
|
|
16064
|
+
}
|
|
16065
|
+
}
|
|
16066
|
+
|
|
16067
|
+
class NotificationRules extends HeyApiClient {
|
|
16068
|
+
listNotificationRules(options) {
|
|
16069
|
+
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/notification-rules", ...options });
|
|
16054
16070
|
}
|
|
16055
|
-
|
|
16056
|
-
return (options.client ?? this.client).
|
|
16071
|
+
upsertNotificationRule(options) {
|
|
16072
|
+
return (options.client ?? this.client).put({
|
|
16073
|
+
url: "/api/projects/{projectId}/notification-rules",
|
|
16074
|
+
...options,
|
|
16075
|
+
headers: {
|
|
16076
|
+
"Content-Type": "application/json",
|
|
16077
|
+
...options.headers
|
|
16078
|
+
}
|
|
16079
|
+
});
|
|
16057
16080
|
}
|
|
16058
16081
|
}
|
|
16059
16082
|
|
|
@@ -16105,6 +16128,43 @@ class ProjectIntegrations extends HeyApiClient {
|
|
|
16105
16128
|
}
|
|
16106
16129
|
}
|
|
16107
16130
|
|
|
16131
|
+
class GitHubIntegrations extends HeyApiClient {
|
|
16132
|
+
beginGitHubAppInstall(options) {
|
|
16133
|
+
return (options?.client ?? this.client).get({ url: "/api/integrations/github/install", ...options });
|
|
16134
|
+
}
|
|
16135
|
+
completeGitHubAppInstall(options) {
|
|
16136
|
+
return (options?.client ?? this.client).get({ url: "/api/integrations/github/callback", ...options });
|
|
16137
|
+
}
|
|
16138
|
+
handleGitHubWebhook(options) {
|
|
16139
|
+
return (options?.client ?? this.client).post({ url: "/api/integrations/github/webhook", ...options });
|
|
16140
|
+
}
|
|
16141
|
+
}
|
|
16142
|
+
|
|
16143
|
+
class ProjectInvites extends HeyApiClient {
|
|
16144
|
+
getProjectInviteByToken(options) {
|
|
16145
|
+
return (options.client ?? this.client).get({ url: "/api/project-invites/{token}", ...options });
|
|
16146
|
+
}
|
|
16147
|
+
listProjectInvites(options) {
|
|
16148
|
+
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/invites", ...options });
|
|
16149
|
+
}
|
|
16150
|
+
createProjectInvite(options) {
|
|
16151
|
+
return (options.client ?? this.client).post({
|
|
16152
|
+
url: "/api/projects/{projectId}/invites",
|
|
16153
|
+
...options,
|
|
16154
|
+
headers: {
|
|
16155
|
+
"Content-Type": "application/json",
|
|
16156
|
+
...options.headers
|
|
16157
|
+
}
|
|
16158
|
+
});
|
|
16159
|
+
}
|
|
16160
|
+
revokeProjectInvite(options) {
|
|
16161
|
+
return (options.client ?? this.client).post({ url: "/api/projects/{projectId}/invites/{inviteId}/revoke", ...options });
|
|
16162
|
+
}
|
|
16163
|
+
acceptProjectInvite(options) {
|
|
16164
|
+
return (options.client ?? this.client).post({ url: "/api/project-invites/{token}/accept", ...options });
|
|
16165
|
+
}
|
|
16166
|
+
}
|
|
16167
|
+
|
|
16108
16168
|
class BoboddyClient extends HeyApiClient {
|
|
16109
16169
|
static __registry = new HeyApiRegistry;
|
|
16110
16170
|
constructor(args) {
|
|
@@ -16143,9 +16203,13 @@ class BoboddyClient extends HeyApiClient {
|
|
|
16143
16203
|
get projectContext() {
|
|
16144
16204
|
return this._projectContext ??= new ProjectContext({ client: this.client });
|
|
16145
16205
|
}
|
|
16146
|
-
|
|
16147
|
-
get
|
|
16148
|
-
return this.
|
|
16206
|
+
_userNotifications;
|
|
16207
|
+
get userNotifications() {
|
|
16208
|
+
return this._userNotifications ??= new UserNotifications({ client: this.client });
|
|
16209
|
+
}
|
|
16210
|
+
_notificationRules;
|
|
16211
|
+
get notificationRules() {
|
|
16212
|
+
return this._notificationRules ??= new NotificationRules({ client: this.client });
|
|
16149
16213
|
}
|
|
16150
16214
|
_stepDefinitionTemplates;
|
|
16151
16215
|
get stepDefinitionTemplates() {
|
|
@@ -16155,6 +16219,14 @@ class BoboddyClient extends HeyApiClient {
|
|
|
16155
16219
|
get projectIntegrations() {
|
|
16156
16220
|
return this._projectIntegrations ??= new ProjectIntegrations({ client: this.client });
|
|
16157
16221
|
}
|
|
16222
|
+
_gitHubIntegrations;
|
|
16223
|
+
get gitHubIntegrations() {
|
|
16224
|
+
return this._gitHubIntegrations ??= new GitHubIntegrations({ client: this.client });
|
|
16225
|
+
}
|
|
16226
|
+
_projectInvites;
|
|
16227
|
+
get projectInvites() {
|
|
16228
|
+
return this._projectInvites ??= new ProjectInvites({ client: this.client });
|
|
16229
|
+
}
|
|
16158
16230
|
}
|
|
16159
16231
|
|
|
16160
16232
|
// src/definitions/pipelines/pipeline-definitions-client.ts
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ZodType } from "zod";
|
|
2
2
|
import type { AnyStepFeature, FeatureResultExtensions, FeatureSignalKeys } from "./step-features";
|
|
3
|
+
import { type PromptTemplateContext } from "./prompt-template";
|
|
3
4
|
type OpenCodeMcpServers = Record<string, {
|
|
4
5
|
type: "local";
|
|
5
6
|
command: string[];
|
|
@@ -55,7 +56,7 @@ export type DefineStepInput<TInput extends ZodType = ZodType, TResult extends Zo
|
|
|
55
56
|
name: string;
|
|
56
57
|
description?: string | null;
|
|
57
58
|
version?: number;
|
|
58
|
-
agentPrompt: string;
|
|
59
|
+
agentPrompt: string | ((context: PromptTemplateContext<TInput["_output"]>) => string);
|
|
59
60
|
additionalInput?: TInput;
|
|
60
61
|
result?: TResult;
|
|
61
62
|
signals?: SignalSpecInput<TResult["_output"]>[];
|
|
@@ -11947,6 +11947,42 @@ 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 createPromptTemplateContext() {
|
|
11968
|
+
return {
|
|
11969
|
+
input: createPromptInputProxy(["input"]),
|
|
11970
|
+
env: createPromptInputProxy(["env"]),
|
|
11971
|
+
boboddy: {
|
|
11972
|
+
artifactsDir: createPromptInputProxy([
|
|
11973
|
+
"boboddy",
|
|
11974
|
+
"artifactsDir"
|
|
11975
|
+
])
|
|
11976
|
+
}
|
|
11977
|
+
};
|
|
11978
|
+
}
|
|
11979
|
+
function renderPromptTemplate(template, contextJson) {
|
|
11980
|
+
return template.replace(/\{\{([^}]+)\}\}/g, (_, path) => {
|
|
11981
|
+
const value = path.split(".").reduce((curr, key) => curr != null ? curr[key] : undefined, contextJson);
|
|
11982
|
+
return value != null ? String(value) : "";
|
|
11983
|
+
});
|
|
11984
|
+
}
|
|
11985
|
+
|
|
11950
11986
|
// src/definitions/steps/define-step.ts
|
|
11951
11987
|
var UNWRAP_TYPES = new Set(["optional", "nullable", "default"]);
|
|
11952
11988
|
function unwrapZodType(schema) {
|
|
@@ -11992,7 +12028,8 @@ function defineStep(config2) {
|
|
|
11992
12028
|
for (const feature of features) {
|
|
11993
12029
|
effectiveResult = effectiveResult ? effectiveResult.extend(feature._resultExtension.shape) : feature._resultExtension;
|
|
11994
12030
|
}
|
|
11995
|
-
|
|
12031
|
+
const basePrompt = typeof config2.agentPrompt === "function" ? config2.agentPrompt(createPromptTemplateContext()) : config2.agentPrompt;
|
|
12032
|
+
let effectivePrompt = basePrompt;
|
|
11996
12033
|
for (const feature of features) {
|
|
11997
12034
|
if (feature._promptAddition) {
|
|
11998
12035
|
effectivePrompt = effectivePrompt ? `${effectivePrompt}
|
|
@@ -12032,29 +12069,6 @@ ${feature._promptAddition}` : feature._promptAddition;
|
|
|
12032
12069
|
};
|
|
12033
12070
|
return spec;
|
|
12034
12071
|
}
|
|
12035
|
-
// src/definitions/steps/prompt-template.ts
|
|
12036
|
-
function createPromptInputProxy(path = []) {
|
|
12037
|
-
const token = () => path.length ? `{{${path.join(".")}}}` : "";
|
|
12038
|
-
return new Proxy(Object.freeze({}), {
|
|
12039
|
-
get(_, key) {
|
|
12040
|
-
if (key === Symbol.toPrimitive || key === "valueOf") {
|
|
12041
|
-
return (_hint) => token();
|
|
12042
|
-
}
|
|
12043
|
-
if (key === "toString") {
|
|
12044
|
-
return () => token();
|
|
12045
|
-
}
|
|
12046
|
-
if (typeof key !== "string")
|
|
12047
|
-
return;
|
|
12048
|
-
return createPromptInputProxy([...path, key]);
|
|
12049
|
-
}
|
|
12050
|
-
});
|
|
12051
|
-
}
|
|
12052
|
-
function renderPromptTemplate(template, inputJson) {
|
|
12053
|
-
return template.replace(/\{\{([^}]+)\}\}/g, (_, path) => {
|
|
12054
|
-
const value = path.split(".").reduce((curr, key) => curr != null ? curr[key] : undefined, inputJson);
|
|
12055
|
-
return value != null ? String(value) : "";
|
|
12056
|
-
});
|
|
12057
|
-
}
|
|
12058
12072
|
// src/generated/core/bodySerializer.gen.ts
|
|
12059
12073
|
var jsonBodySerializer = {
|
|
12060
12074
|
bodySerializer: (body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value)
|
|
@@ -12905,15 +12919,6 @@ class Api extends HeyApiClient {
|
|
|
12905
12919
|
"allApiAuth*8"(options) {
|
|
12906
12920
|
return (options?.client ?? this.client).trace({ url: "/api/auth/*", ...options });
|
|
12907
12921
|
}
|
|
12908
|
-
getApiIntegrationsGithubInstall(options) {
|
|
12909
|
-
return (options?.client ?? this.client).get({ url: "/api/integrations/github/install", ...options });
|
|
12910
|
-
}
|
|
12911
|
-
getApiIntegrationsGithubCallback(options) {
|
|
12912
|
-
return (options?.client ?? this.client).get({ url: "/api/integrations/github/callback", ...options });
|
|
12913
|
-
}
|
|
12914
|
-
postApiIntegrationsGithubWebhook(options) {
|
|
12915
|
-
return (options?.client ?? this.client).post({ url: "/api/integrations/github/webhook", ...options });
|
|
12916
|
-
}
|
|
12917
12922
|
}
|
|
12918
12923
|
|
|
12919
12924
|
class Projects extends HeyApiClient {
|
|
@@ -12936,6 +12941,9 @@ class Projects extends HeyApiClient {
|
|
|
12936
12941
|
getProject(options) {
|
|
12937
12942
|
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}", ...options });
|
|
12938
12943
|
}
|
|
12944
|
+
getProjectWorkItemSignalScores(options) {
|
|
12945
|
+
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/work-item-signal-scores", ...options });
|
|
12946
|
+
}
|
|
12939
12947
|
updateProjectDefaultPipelineAssignment(options) {
|
|
12940
12948
|
return (options.client ?? this.client).put({
|
|
12941
12949
|
url: "/api/projects/{projectId}/default-pipeline-assignment",
|
|
@@ -13271,12 +13279,41 @@ class ProjectContext extends HeyApiClient {
|
|
|
13271
13279
|
}
|
|
13272
13280
|
}
|
|
13273
13281
|
|
|
13274
|
-
class
|
|
13275
|
-
|
|
13276
|
-
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/
|
|
13282
|
+
class UserNotifications extends HeyApiClient {
|
|
13283
|
+
listUserNotifications(options) {
|
|
13284
|
+
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/notifications", ...options });
|
|
13285
|
+
}
|
|
13286
|
+
getUserNotification(options) {
|
|
13287
|
+
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/notifications/{notificationId}", ...options });
|
|
13288
|
+
}
|
|
13289
|
+
dismissUserNotification(options) {
|
|
13290
|
+
return (options.client ?? this.client).post({ url: "/api/projects/{projectId}/notifications/{notificationId}/dismiss", ...options });
|
|
13291
|
+
}
|
|
13292
|
+
respondToFeedbackRequest(options) {
|
|
13293
|
+
return (options.client ?? this.client).post({
|
|
13294
|
+
url: "/api/projects/{projectId}/notifications/{notificationId}/respond",
|
|
13295
|
+
...options,
|
|
13296
|
+
headers: {
|
|
13297
|
+
"Content-Type": "application/json",
|
|
13298
|
+
...options.headers
|
|
13299
|
+
}
|
|
13300
|
+
});
|
|
13301
|
+
}
|
|
13302
|
+
}
|
|
13303
|
+
|
|
13304
|
+
class NotificationRules extends HeyApiClient {
|
|
13305
|
+
listNotificationRules(options) {
|
|
13306
|
+
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/notification-rules", ...options });
|
|
13277
13307
|
}
|
|
13278
|
-
|
|
13279
|
-
return (options.client ?? this.client).
|
|
13308
|
+
upsertNotificationRule(options) {
|
|
13309
|
+
return (options.client ?? this.client).put({
|
|
13310
|
+
url: "/api/projects/{projectId}/notification-rules",
|
|
13311
|
+
...options,
|
|
13312
|
+
headers: {
|
|
13313
|
+
"Content-Type": "application/json",
|
|
13314
|
+
...options.headers
|
|
13315
|
+
}
|
|
13316
|
+
});
|
|
13280
13317
|
}
|
|
13281
13318
|
}
|
|
13282
13319
|
|
|
@@ -13328,6 +13365,43 @@ class ProjectIntegrations extends HeyApiClient {
|
|
|
13328
13365
|
}
|
|
13329
13366
|
}
|
|
13330
13367
|
|
|
13368
|
+
class GitHubIntegrations extends HeyApiClient {
|
|
13369
|
+
beginGitHubAppInstall(options) {
|
|
13370
|
+
return (options?.client ?? this.client).get({ url: "/api/integrations/github/install", ...options });
|
|
13371
|
+
}
|
|
13372
|
+
completeGitHubAppInstall(options) {
|
|
13373
|
+
return (options?.client ?? this.client).get({ url: "/api/integrations/github/callback", ...options });
|
|
13374
|
+
}
|
|
13375
|
+
handleGitHubWebhook(options) {
|
|
13376
|
+
return (options?.client ?? this.client).post({ url: "/api/integrations/github/webhook", ...options });
|
|
13377
|
+
}
|
|
13378
|
+
}
|
|
13379
|
+
|
|
13380
|
+
class ProjectInvites extends HeyApiClient {
|
|
13381
|
+
getProjectInviteByToken(options) {
|
|
13382
|
+
return (options.client ?? this.client).get({ url: "/api/project-invites/{token}", ...options });
|
|
13383
|
+
}
|
|
13384
|
+
listProjectInvites(options) {
|
|
13385
|
+
return (options.client ?? this.client).get({ url: "/api/projects/{projectId}/invites", ...options });
|
|
13386
|
+
}
|
|
13387
|
+
createProjectInvite(options) {
|
|
13388
|
+
return (options.client ?? this.client).post({
|
|
13389
|
+
url: "/api/projects/{projectId}/invites",
|
|
13390
|
+
...options,
|
|
13391
|
+
headers: {
|
|
13392
|
+
"Content-Type": "application/json",
|
|
13393
|
+
...options.headers
|
|
13394
|
+
}
|
|
13395
|
+
});
|
|
13396
|
+
}
|
|
13397
|
+
revokeProjectInvite(options) {
|
|
13398
|
+
return (options.client ?? this.client).post({ url: "/api/projects/{projectId}/invites/{inviteId}/revoke", ...options });
|
|
13399
|
+
}
|
|
13400
|
+
acceptProjectInvite(options) {
|
|
13401
|
+
return (options.client ?? this.client).post({ url: "/api/project-invites/{token}/accept", ...options });
|
|
13402
|
+
}
|
|
13403
|
+
}
|
|
13404
|
+
|
|
13331
13405
|
class BoboddyClient extends HeyApiClient {
|
|
13332
13406
|
static __registry = new HeyApiRegistry;
|
|
13333
13407
|
constructor(args) {
|
|
@@ -13366,9 +13440,13 @@ class BoboddyClient extends HeyApiClient {
|
|
|
13366
13440
|
get projectContext() {
|
|
13367
13441
|
return this._projectContext ??= new ProjectContext({ client: this.client });
|
|
13368
13442
|
}
|
|
13369
|
-
|
|
13370
|
-
get
|
|
13371
|
-
return this.
|
|
13443
|
+
_userNotifications;
|
|
13444
|
+
get userNotifications() {
|
|
13445
|
+
return this._userNotifications ??= new UserNotifications({ client: this.client });
|
|
13446
|
+
}
|
|
13447
|
+
_notificationRules;
|
|
13448
|
+
get notificationRules() {
|
|
13449
|
+
return this._notificationRules ??= new NotificationRules({ client: this.client });
|
|
13372
13450
|
}
|
|
13373
13451
|
_stepDefinitionTemplates;
|
|
13374
13452
|
get stepDefinitionTemplates() {
|
|
@@ -13378,6 +13456,14 @@ class BoboddyClient extends HeyApiClient {
|
|
|
13378
13456
|
get projectIntegrations() {
|
|
13379
13457
|
return this._projectIntegrations ??= new ProjectIntegrations({ client: this.client });
|
|
13380
13458
|
}
|
|
13459
|
+
_gitHubIntegrations;
|
|
13460
|
+
get gitHubIntegrations() {
|
|
13461
|
+
return this._gitHubIntegrations ??= new GitHubIntegrations({ client: this.client });
|
|
13462
|
+
}
|
|
13463
|
+
_projectInvites;
|
|
13464
|
+
get projectInvites() {
|
|
13465
|
+
return this._projectInvites ??= new ProjectInvites({ client: this.client });
|
|
13466
|
+
}
|
|
13381
13467
|
}
|
|
13382
13468
|
|
|
13383
13469
|
// src/definitions/steps/step-definitions-client.ts
|
|
@@ -15765,67 +15851,73 @@ function date4(params) {
|
|
|
15765
15851
|
// ../../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/classic/external.js
|
|
15766
15852
|
config(en_default());
|
|
15767
15853
|
// src/definitions/steps/step-features.ts
|
|
15768
|
-
var
|
|
15769
|
-
var
|
|
15770
|
-
var
|
|
15771
|
-
|
|
15772
|
-
|
|
15773
|
-
|
|
15774
|
-
"
|
|
15775
|
-
|
|
15776
|
-
|
|
15777
|
-
|
|
15778
|
-
|
|
15779
|
-
|
|
15780
|
-
|
|
15781
|
-
|
|
15782
|
-
|
|
15783
|
-
|
|
15854
|
+
var NOTIFICATION_SIGNAL_KEY = "$boboddy_notifications_v1";
|
|
15855
|
+
var NOTIFICATION_RESULT_KEY = "$boboddy_notifications_v1";
|
|
15856
|
+
var notificationItemSchema = exports_external.object({
|
|
15857
|
+
kind: exports_external.enum([
|
|
15858
|
+
"feedback_request",
|
|
15859
|
+
"status_update",
|
|
15860
|
+
"blocked",
|
|
15861
|
+
"result_ready",
|
|
15862
|
+
"warning"
|
|
15863
|
+
]).describe("The kind of user notification."),
|
|
15864
|
+
title: exports_external.string().describe("Short, human-readable notification title."),
|
|
15865
|
+
body: exports_external.string().describe("The notification body / details."),
|
|
15866
|
+
priority: exports_external.enum(["low", "normal", "high", "urgent"]).describe("How important this notification is for the user."),
|
|
15867
|
+
suggestedChannels: exports_external.array(exports_external.enum(["in_app", "jira_comment", "email", "slack"])).optional().describe("Channels the agent thinks are worth using. The platform policy decides the final channels."),
|
|
15868
|
+
payload: exports_external.record(exports_external.string(), exports_external.unknown()).optional().describe('Kind-specific structured data. For "feedback_request": { category, urgency, suggestedKey? }.')
|
|
15869
|
+
}).describe("A single user notification emitted by the agent.");
|
|
15870
|
+
var notificationsFeature = {
|
|
15784
15871
|
_resultExtension: exports_external.object({
|
|
15785
|
-
[
|
|
15872
|
+
[NOTIFICATION_RESULT_KEY]: exports_external.array(notificationItemSchema).optional()
|
|
15786
15873
|
}),
|
|
15787
15874
|
_promptAddition: [
|
|
15788
|
-
"##
|
|
15875
|
+
"## User Notifications",
|
|
15789
15876
|
"",
|
|
15790
|
-
`If you
|
|
15877
|
+
`If you need to communicate something to a human, populate the \`${NOTIFICATION_RESULT_KEY}\` array.`,
|
|
15791
15878
|
"Each item must include:",
|
|
15792
|
-
"- **
|
|
15793
|
-
|
|
15794
|
-
"- **
|
|
15795
|
-
|
|
15796
|
-
'
|
|
15797
|
-
|
|
15798
|
-
'
|
|
15799
|
-
"- **suggestedKey** *(optional)*: A suggested answer key for reference."
|
|
15879
|
+
"- **kind**: One of `feedback_request`, `status_update`, `blocked`, `result_ready`, `warning`.",
|
|
15880
|
+
"- **title**: A short, human-readable title.",
|
|
15881
|
+
"- **body**: The details of the notification.",
|
|
15882
|
+
"- **priority**: One of `low`, `normal`, `high`, `urgent`.",
|
|
15883
|
+
'- **suggestedChannels** *(optional)*: Channels you think are worth using (e.g. `["in_app", "jira_comment"]`).',
|
|
15884
|
+
" You only *suggest* channels \u2014 the platform policy decides the final delivery channels.",
|
|
15885
|
+
'- **payload** *(optional)*: Kind-specific data. For `feedback_request`, include `{ "category": string, "urgency": "blocking"|"clarification"|"assumption"|"informational", "suggestedKey"?: string }`.'
|
|
15800
15886
|
].join(`
|
|
15801
15887
|
`),
|
|
15802
15888
|
_signals: [
|
|
15803
15889
|
{
|
|
15804
|
-
key:
|
|
15805
|
-
sourcePath:
|
|
15890
|
+
key: NOTIFICATION_SIGNAL_KEY,
|
|
15891
|
+
sourcePath: NOTIFICATION_RESULT_KEY,
|
|
15806
15892
|
type: "array",
|
|
15807
15893
|
required: false
|
|
15808
15894
|
}
|
|
15809
15895
|
]
|
|
15810
15896
|
};
|
|
15811
15897
|
var Features = {
|
|
15812
|
-
|
|
15898
|
+
notifications: Object.assign(() => notificationsFeature, {
|
|
15813
15899
|
signal: {
|
|
15814
|
-
key:
|
|
15900
|
+
key: NOTIFICATION_SIGNAL_KEY,
|
|
15815
15901
|
find(signals) {
|
|
15816
|
-
const match = signals.find((s) => s.key ===
|
|
15902
|
+
const match = signals.find((s) => s.key === NOTIFICATION_SIGNAL_KEY);
|
|
15817
15903
|
if (!match)
|
|
15818
15904
|
return;
|
|
15819
|
-
const parsed = exports_external.array(
|
|
15905
|
+
const parsed = exports_external.array(notificationItemSchema).safeParse(match.valueJson);
|
|
15820
15906
|
return parsed.success ? parsed.data : undefined;
|
|
15821
15907
|
}
|
|
15822
15908
|
}
|
|
15909
|
+
}),
|
|
15910
|
+
feedbackRequests: Object.assign(() => notificationsFeature, {
|
|
15911
|
+
signal: {
|
|
15912
|
+
key: NOTIFICATION_SIGNAL_KEY
|
|
15913
|
+
}
|
|
15823
15914
|
})
|
|
15824
15915
|
};
|
|
15825
15916
|
export {
|
|
15826
15917
|
renderPromptTemplate,
|
|
15827
15918
|
defineStep,
|
|
15828
15919
|
createStepDefinitionsClient,
|
|
15920
|
+
createPromptTemplateContext,
|
|
15829
15921
|
createPromptInputProxy,
|
|
15830
15922
|
Features
|
|
15831
15923
|
};
|