@treeseed/sdk 0.8.12 → 0.8.14

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.
@@ -1,4 +1,4 @@
1
- import type { AgentPool, AgentPoolRegistration, AgentPoolScaleDecision, ApprovalRequest, CapacityGrant, CapacityPlan, CapacityProvider, CapacityProviderLane, CapacityReservation, CapacityRoutingDecision, CatalogArtifactVersion, CatalogItem, CatalogItemFilters, CreateApprovalRequestRequest, CreateCapacityReservationRequest, CreateCapacityRoutingDecisionRequest, CreateProjectDeploymentRequest, CreateTaskEstimateRequest, CreateTaskUsageActualRequest, PriorityOverride, PrioritySnapshot, ProjectConnection, ProjectDeployment, ProjectEnvironment, ProjectEnvironmentName, ProjectHosting, ProjectInfrastructureResource, ProjectWorkdaySummary, RecordAgentPoolRegistrationRequest, RecordCapacityUsageRequest, RepositoryClaim, RunnerScaleDecision, ScaleDecision, SdkCreateWorkdayRequest, SdkRecordRepositoryClaimRequest, SdkRecordRunnerScaleDecisionRequest, SdkRecordWorkerRunnerRequest, TeamStorageLocator, TeamWebHost, TaskEstimate, UpsertAgentPoolRequest, UpsertCapacityGrantRequest, UpsertCapacityProviderLaneRequest, UpsertCapacityProviderRequest, UpsertCatalogArtifactVersionRequest, UpsertCatalogItemRequest, UpsertProjectEnvironmentRequest, UpsertProjectHostingRequest, UpsertProjectInfrastructureResourceRequest, UpsertTeamStorageLocatorRequest, UpsertTeamWebHostRequest, WorkdayPolicy, WorkdayRequest, WorkerRunner, SdkPriorityOverrideRequest, SdkUpsertWorkPolicyRequest } from './sdk-types.ts';
1
+ import type { AgentPool, AgentPoolRegistration, AgentPoolScaleDecision, ApprovalRequest, CapacityGrant, CapacityPlan, CapacityProvider, CapacityProviderLane, CapacityReservation, CapacityRoutingDecision, CatalogArtifactVersion, CatalogItem, CatalogItemFilters, CreateCapacityReservationRequest, CreateCapacityRoutingDecisionRequest, CreateProjectDeploymentRequest, CreateTaskEstimateRequest, CreateTaskUsageActualRequest, PriorityOverride, PrioritySnapshot, ProjectConnection, ProjectDeployment, ProjectEnvironment, ProjectEnvironmentName, ProjectHosting, ProjectInfrastructureResource, ProjectWorkdaySummary, RecordAgentPoolRegistrationRequest, RecordCapacityUsageRequest, RepositoryClaim, RunnerScaleDecision, ScaleDecision, SdkAppendTaskEventRequest, SdkClaimTaskRequest, SdkClaimWorkdayManagerLeaseRequest, SdkCloseWorkDayRequest, SdkCompleteTaskRequest, SdkCreateTaskRequest, SdkFailTaskRequest, SdkManagerContextPayload, SdkRecordRepositoryClaimRequest, SdkRecordRunnerScaleDecisionRequest, SdkRecordWorkerRunnerRequest, SdkReleaseWorkdayManagerLeaseRequest, SdkStartWorkDayRequest, SdkTaskEntity, SdkTaskEventEntity, SdkTaskOutputEntity, SdkTaskProgressRequest, SdkTaskSearchRequest, SdkCreateWorkdayRequest, SdkWorkDayEntity, TeamStorageLocator, TeamWebHost, TaskEstimate, UpsertAgentPoolRequest, UpsertCapacityGrantRequest, UpsertCapacityProviderLaneRequest, UpsertCapacityProviderRequest, UpsertCatalogArtifactVersionRequest, UpsertCatalogItemRequest, UpsertProjectEnvironmentRequest, UpsertProjectHostingRequest, UpsertProjectInfrastructureResourceRequest, UpsertTeamStorageLocatorRequest, UpsertTeamWebHostRequest, WorkdayPolicy, WorkdayManagerLease, WorkdayRequest, WorkerRunner, SdkPriorityOverrideRequest, SdkUpsertWorkPolicyRequest } from './sdk-types.ts';
2
2
  import type { AgentMessageRecord, AgentStatusRecord, DirectBoardItemSummary, InboxItem, LaunchProjectRequest, LaunchProjectResult, ProjectOverviewSummary, ReleaseDetail, ReleaseSummary, SharePackageStatus, TeamHomeSummary, TeamMemberSummary, WorkstreamDetail, WorkstreamSummary } from './project-workflow.ts';
3
3
  export interface ControlPlaneClientOptions {
4
4
  baseUrl: string;
@@ -46,6 +46,47 @@ export declare class ControlPlaneClient {
46
46
  getProjectWorkdayPolicy(projectId: string, environment?: ProjectEnvironmentName): Promise<WorkdayPolicy | null>;
47
47
  upsertProjectWorkdayPolicy(projectId: string, input: SdkUpsertWorkPolicyRequest): Promise<WorkdayPolicy>;
48
48
  getProjectWorkdayStatus(projectId: string, environment?: ProjectEnvironmentName): Promise<Record<string, unknown>>;
49
+ startRunnerWorkday(projectId: string, input: SdkStartWorkDayRequest & {
50
+ environment?: string | null;
51
+ }): Promise<SdkWorkDayEntity>;
52
+ closeRunnerWorkday(projectId: string, input: SdkCloseWorkDayRequest & {
53
+ environment?: string | null;
54
+ }): Promise<SdkWorkDayEntity>;
55
+ listRunnerWorkdays(projectId: string, input?: {
56
+ state?: string | null;
57
+ limit?: number | null;
58
+ }): Promise<SdkWorkDayEntity[]>;
59
+ createRunnerTask(projectId: string, input: SdkCreateTaskRequest): Promise<SdkTaskEntity>;
60
+ listRunnerTasks(projectId: string, input?: SdkTaskSearchRequest): Promise<SdkTaskEntity[]>;
61
+ claimRunnerTask(projectId: string, taskId: string, input: Omit<SdkClaimTaskRequest, 'id'>): Promise<SdkTaskEntity | null>;
62
+ recordRunnerTaskProgress(projectId: string, taskId: string, input: Omit<SdkTaskProgressRequest, 'id'>): Promise<SdkTaskEntity | null>;
63
+ appendRunnerTaskEvent(projectId: string, taskId: string, input: Omit<SdkAppendTaskEventRequest, 'taskId'>): Promise<SdkTaskEventEntity | null>;
64
+ completeRunnerTask(projectId: string, taskId: string, input: Omit<SdkCompleteTaskRequest, 'id'>): Promise<SdkTaskEntity | null>;
65
+ failRunnerTask(projectId: string, taskId: string, input: Omit<SdkFailTaskRequest, 'id'>): Promise<SdkTaskEntity | null>;
66
+ getRunnerTaskContext(projectId: string, taskId: string): Promise<SdkManagerContextPayload>;
67
+ listRunnerTaskEvents(projectId: string, taskId: string): Promise<SdkTaskEventEntity[]>;
68
+ listRunnerTaskOutputs(projectId: string, taskId: string): Promise<SdkTaskOutputEntity[]>;
69
+ storeRunnerArtifact(projectId: string, input: {
70
+ objectKey?: string | null;
71
+ content?: string | Record<string, unknown> | null;
72
+ contentBase64?: string | null;
73
+ contentType?: string | null;
74
+ sha256?: string | null;
75
+ }): Promise<{
76
+ artifactStorage: string;
77
+ storageMode: string;
78
+ outputRef: string;
79
+ objectKey: string;
80
+ contentType: string;
81
+ sizeBytes: number;
82
+ sha256: string;
83
+ teamId: string;
84
+ projectId: string;
85
+ createdAt: string;
86
+ }>;
87
+ claimRunnerManagerLease(projectId: string, input: SdkClaimWorkdayManagerLeaseRequest): Promise<WorkdayManagerLease | null>;
88
+ releaseRunnerManagerLease(projectId: string, input: SdkReleaseWorkdayManagerLeaseRequest): Promise<WorkdayManagerLease | null>;
89
+ listRunnerManagerLeases(projectId: string, environment?: ProjectEnvironmentName | 'local'): Promise<WorkdayManagerLease[]>;
49
90
  createProjectWorkdayRequest(projectId: string, input: SdkCreateWorkdayRequest): Promise<WorkdayRequest>;
50
91
  listProjectPriorityOverrides(projectId: string): Promise<PriorityOverride[]>;
51
92
  upsertProjectPriorityOverride(projectId: string, input: SdkPriorityOverrideRequest): Promise<PriorityOverride>;
@@ -61,6 +102,11 @@ export declare class ControlPlaneClient {
61
102
  listWorkerRunners(projectId: string, environment?: ProjectEnvironmentName): Promise<WorkerRunner[]>;
62
103
  recordRepositoryClaim(projectId: string, input: SdkRecordRepositoryClaimRequest): Promise<RepositoryClaim>;
63
104
  listRepositoryClaims(projectId: string, repositoryId?: string | null): Promise<RepositoryClaim[]>;
105
+ reportRunnerCapacityUsage(projectId: string, input: RecordCapacityUsageRequest): Promise<{
106
+ entry: unknown;
107
+ settlement?: unknown;
108
+ usageActual?: unknown;
109
+ }>;
64
110
  recordRunnerScaleDecisionV2(projectId: string, input: SdkRecordRunnerScaleDecisionRequest): Promise<RunnerScaleDecision>;
65
111
  getTeamHomeSummary(teamId: string): Promise<TeamHomeSummary>;
66
112
  listTeamInboxItems(teamId: string): Promise<InboxItem[]>;
@@ -103,7 +149,6 @@ export declare class ControlPlaneClient {
103
149
  usageActual: unknown | null;
104
150
  }>;
105
151
  recordRunnerCapacityRoutingDecision(projectId: string, input: CreateCapacityRoutingDecisionRequest): Promise<CapacityRoutingDecision>;
106
- createRunnerApprovalRequest(projectId: string, input: CreateApprovalRequestRequest): Promise<ApprovalRequest>;
107
152
  decideApprovalRequest(approvalRequestId: string, input: {
108
153
  state?: 'approved' | 'rejected';
109
154
  optionId?: string | null;
@@ -180,6 +180,134 @@ class ControlPlaneClient {
180
180
  { query: { environment } }
181
181
  );
182
182
  }
183
+ startRunnerWorkday(projectId, input) {
184
+ return this.requestJson(
185
+ "POST",
186
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/workdays/start`,
187
+ { body: input }
188
+ );
189
+ }
190
+ closeRunnerWorkday(projectId, input) {
191
+ return this.requestJson(
192
+ "POST",
193
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/workdays/${encodeURIComponent(input.id)}/close`,
194
+ { body: input }
195
+ );
196
+ }
197
+ listRunnerWorkdays(projectId, input = {}) {
198
+ return this.requestJson(
199
+ "GET",
200
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/workdays/runtime`,
201
+ {
202
+ query: {
203
+ state: input.state ?? null,
204
+ limit: input.limit ? String(input.limit) : null
205
+ }
206
+ }
207
+ );
208
+ }
209
+ createRunnerTask(projectId, input) {
210
+ return this.requestJson(
211
+ "POST",
212
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/tasks`,
213
+ { body: input }
214
+ );
215
+ }
216
+ listRunnerTasks(projectId, input = {}) {
217
+ return this.requestJson(
218
+ "GET",
219
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/tasks`,
220
+ {
221
+ query: {
222
+ workDayId: input.workDayId ?? null,
223
+ agentId: input.agentId ?? null,
224
+ state: Array.isArray(input.state) ? input.state.join(",") : input.state ?? null,
225
+ limit: input.limit ? String(input.limit) : null
226
+ }
227
+ }
228
+ );
229
+ }
230
+ claimRunnerTask(projectId, taskId, input) {
231
+ return this.requestJson(
232
+ "POST",
233
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/tasks/${encodeURIComponent(taskId)}/claim`,
234
+ { body: input }
235
+ );
236
+ }
237
+ recordRunnerTaskProgress(projectId, taskId, input) {
238
+ return this.requestJson(
239
+ "POST",
240
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/tasks/${encodeURIComponent(taskId)}/progress`,
241
+ { body: input }
242
+ );
243
+ }
244
+ appendRunnerTaskEvent(projectId, taskId, input) {
245
+ return this.requestJson(
246
+ "POST",
247
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/tasks/${encodeURIComponent(taskId)}/events`,
248
+ { body: input }
249
+ );
250
+ }
251
+ completeRunnerTask(projectId, taskId, input) {
252
+ return this.requestJson(
253
+ "POST",
254
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/tasks/${encodeURIComponent(taskId)}/complete`,
255
+ { body: input }
256
+ );
257
+ }
258
+ failRunnerTask(projectId, taskId, input) {
259
+ return this.requestJson(
260
+ "POST",
261
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/tasks/${encodeURIComponent(taskId)}/fail`,
262
+ { body: input }
263
+ );
264
+ }
265
+ getRunnerTaskContext(projectId, taskId) {
266
+ return this.requestJson(
267
+ "GET",
268
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/tasks/${encodeURIComponent(taskId)}/context`
269
+ );
270
+ }
271
+ listRunnerTaskEvents(projectId, taskId) {
272
+ return this.requestJson(
273
+ "GET",
274
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/tasks/${encodeURIComponent(taskId)}/events`
275
+ );
276
+ }
277
+ listRunnerTaskOutputs(projectId, taskId) {
278
+ return this.requestJson(
279
+ "GET",
280
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/tasks/${encodeURIComponent(taskId)}/outputs`
281
+ );
282
+ }
283
+ storeRunnerArtifact(projectId, input) {
284
+ return this.requestJson(
285
+ "POST",
286
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/artifacts`,
287
+ { body: input }
288
+ );
289
+ }
290
+ claimRunnerManagerLease(projectId, input) {
291
+ return this.requestJson(
292
+ "POST",
293
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/manager-leases/claim`,
294
+ { body: input }
295
+ );
296
+ }
297
+ releaseRunnerManagerLease(projectId, input) {
298
+ return this.requestJson(
299
+ "POST",
300
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/manager-leases/${encodeURIComponent(input.id)}/release`,
301
+ { body: input }
302
+ );
303
+ }
304
+ listRunnerManagerLeases(projectId, environment = "staging") {
305
+ return this.requestJson(
306
+ "GET",
307
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/manager-leases`,
308
+ { query: { environment } }
309
+ );
310
+ }
183
311
  createProjectWorkdayRequest(projectId, input) {
184
312
  return this.requestJson(
185
313
  "POST",
@@ -284,6 +412,20 @@ class ControlPlaneClient {
284
412
  { query: { repositoryId: repositoryId ?? null } }
285
413
  );
286
414
  }
415
+ reportRunnerCapacityUsage(projectId, input) {
416
+ return this.requestJson(
417
+ "POST",
418
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/capacity/usage`,
419
+ { body: input }
420
+ );
421
+ }
422
+ createRunnerApprovalRequest(projectId, input) {
423
+ return this.requestJson(
424
+ "POST",
425
+ `/v1/projects/${encodeURIComponent(projectId)}/runner/approval-requests`,
426
+ { body: input }
427
+ );
428
+ }
287
429
  recordRunnerScaleDecisionV2(projectId, input) {
288
430
  return this.requestJson(
289
431
  "POST",
@@ -1,7 +1,7 @@
1
1
  import type { ContentLeaseRecord } from './types/agents.ts';
2
2
  import type { D1DatabaseLike } from './types/cloudflare.ts';
3
- import type { ReleaseDetail, ReleaseSummary, SharePackageStatus, WorkstreamDetail, WorkstreamEvent, WorkstreamSummary } from './project-workflow.ts';
4
- import type { SdkAppendTaskEventRequest, SdkAckMessageRequest, SdkClaimMessageRequest, SdkClaimTaskRequest, SdkCloseWorkDayRequest, SdkCompleteTaskRequest, SdkCreateReportRequest, SdkCreateMessageRequest, SdkCreatePrioritySnapshotRequest, SdkCreateTaskRequest, SdkCursorEntity, SdkCursorRequest, SdkFailTaskRequest, SdkFollowRequest, SdkGetRequest, SdkGetCursorRequest, SdkLeaseEntity, SdkLeaseReleaseRequest, SdkManagerContextPayload, SdkMessageEntity, SdkMutationRequest, SdkPickRequest, SdkPickResult, SdkPriorityOverrideRequest, SdkClaimWorkdayManagerLeaseRequest, SdkCreateWorkdayRequest, SdkRecordRepositoryClaimRequest, SdkRecordRunnerScaleDecisionRequest, SdkRecordWorkerRunnerRequest, SdkRecordRunRequest, SdkRecordScaleDecisionRequest, SdkRecordTaskCreditsRequest, SdkReleaseWorkdayManagerLeaseRequest, SdkReportEntity, SdkRunEntity, SdkSearchRequest, SdkStartWorkDayRequest, SdkSubscriptionEntity, SdkTaskEntity, SdkTaskSearchRequest, SdkUpsertWorkPolicyRequest, SdkTaskProgressRequest, SdkUpdateWorkDayGraphRequest, SdkUpdateRequest, SdkWorkDayEntity, RepositoryClaim, RunnerScaleDecision, ScaleDecision, TaskCreditLedgerEntry, WorkdayManagerLease, WorkdayPolicy, WorkdayRequest, WorkerRunner, PrioritySnapshot } from './sdk-types.ts';
3
+ import type { ReleaseDetail, ReleaseSummary, SharePackageStatus, InboxItem, WorkstreamDetail, WorkstreamEvent, WorkstreamSummary } from './project-workflow.ts';
4
+ import type { SdkAppendTaskEventRequest, SdkAckMessageRequest, SdkClaimMessageRequest, SdkClaimTaskRequest, SdkCloseWorkDayRequest, SdkCompleteTaskRequest, ApprovalRequest, SdkCreateReportRequest, CreateApprovalRequestRequest, DecideApprovalRequestRequest, SdkCreateMessageRequest, SdkCreatePrioritySnapshotRequest, SdkCreateTaskRequest, SdkCursorEntity, SdkCursorRequest, SdkFailTaskRequest, SdkFollowRequest, SdkGetRequest, SdkGetCursorRequest, SdkLeaseEntity, SdkLeaseReleaseRequest, SdkManagerContextPayload, SdkMessageEntity, SdkMutationRequest, SdkPickRequest, SdkPickResult, SdkPriorityOverrideRequest, SdkClaimWorkdayManagerLeaseRequest, SdkCreateWorkdayRequest, SdkRecordRepositoryClaimRequest, SdkRecordRunnerScaleDecisionRequest, SdkRecordWorkerRunnerRequest, SdkRecordRunRequest, SdkRecordScaleDecisionRequest, SdkRecordTaskCreditsRequest, SdkReleaseWorkdayManagerLeaseRequest, SdkReportEntity, SdkRunEntity, SdkSearchRequest, SdkStartWorkDayRequest, ListApprovalRequestsRequest, SdkSubscriptionEntity, SdkTaskEntity, SdkTaskSearchRequest, UpsertTeamInboxItemRequest, SdkUpsertWorkPolicyRequest, SdkTaskProgressRequest, SdkUpdateWorkDayGraphRequest, SdkUpdateRequest, SdkWorkDayEntity, RepositoryClaim, RunnerScaleDecision, ScaleDecision, TaskCreditLedgerEntry, WorkdayManagerLease, WorkdayPolicy, WorkdayRequest, WorkerRunner, PrioritySnapshot } from './sdk-types.ts';
5
5
  import { type LeaseClaimInput } from './stores/lease-store.ts';
6
6
  export interface TryClaimContentLeaseInput extends LeaseClaimInput {
7
7
  }
@@ -41,6 +41,7 @@ export interface AgentDatabase {
41
41
  listWorkdayRequests(projectId: string, environment: string, state?: string | null): Promise<WorkdayRequest[]>;
42
42
  claimWorkdayManagerLease(request: SdkClaimWorkdayManagerLeaseRequest): Promise<WorkdayManagerLease | null>;
43
43
  releaseWorkdayManagerLease(request: SdkReleaseWorkdayManagerLeaseRequest): Promise<WorkdayManagerLease | null>;
44
+ listWorkdayManagerLeases(projectId: string, environment: string): Promise<WorkdayManagerLease[]>;
44
45
  recordWorkerRunner(request: SdkRecordWorkerRunnerRequest): Promise<WorkerRunner | null>;
45
46
  listWorkerRunners(projectId: string, environment: string): Promise<WorkerRunner[]>;
46
47
  recordRepositoryClaim(request: SdkRecordRepositoryClaimRequest): Promise<RepositoryClaim | null>;
@@ -56,6 +57,10 @@ export interface AgentDatabase {
56
57
  listTaskCredits(workDayId: string): Promise<TaskCreditLedgerEntry[]>;
57
58
  recordScaleDecision(request: SdkRecordScaleDecisionRequest): Promise<ScaleDecision | null>;
58
59
  getLatestScaleDecision(projectId: string, environment: string, poolName: string): Promise<ScaleDecision | null>;
60
+ createApprovalRequest(request: CreateApprovalRequestRequest): Promise<ApprovalRequest | null>;
61
+ listApprovalRequests(request: ListApprovalRequestsRequest): Promise<ApprovalRequest[]>;
62
+ decideApprovalRequest(id: string, request: DecideApprovalRequestRequest): Promise<ApprovalRequest | null>;
63
+ upsertTeamInboxItem(request: UpsertTeamInboxItemRequest): Promise<InboxItem | null>;
59
64
  listWorkstreams(projectId: string): Promise<WorkstreamSummary[]>;
60
65
  getWorkstream(workstreamId: string): Promise<WorkstreamDetail | null>;
61
66
  upsertWorkstream(input: Partial<WorkstreamSummary> & Pick<WorkstreamSummary, 'projectId' | 'title'>): Promise<WorkstreamSummary | null>;
@@ -91,6 +96,8 @@ export declare class MemoryAgentDatabase implements AgentDatabase {
91
96
  private readonly prioritySnapshots;
92
97
  private readonly taskCreditLedger;
93
98
  private readonly scaleDecisions;
99
+ private readonly approvalRequests;
100
+ private readonly teamInboxItems;
94
101
  private readonly projectWorkflow;
95
102
  private messageId;
96
103
  constructor(seed?: {
@@ -177,6 +184,7 @@ export declare class MemoryAgentDatabase implements AgentDatabase {
177
184
  metadata?: Record<string, unknown>;
178
185
  createdAt: string;
179
186
  } | null>;
187
+ listWorkdayManagerLeases(projectId: string, environment: string): Promise<WorkdayManagerLease[]>;
180
188
  recordWorkerRunner(request: SdkRecordWorkerRunnerRequest): Promise<WorkerRunner>;
181
189
  listWorkerRunners(projectId: string, environment: string): Promise<WorkerRunner[]>;
182
190
  recordRepositoryClaim(request: SdkRecordRepositoryClaimRequest): Promise<RepositoryClaim>;
@@ -214,6 +222,10 @@ export declare class MemoryAgentDatabase implements AgentDatabase {
214
222
  listTaskCredits(workDayId: string): Promise<TaskCreditLedgerEntry[]>;
215
223
  recordScaleDecision(request: SdkRecordScaleDecisionRequest): Promise<ScaleDecision>;
216
224
  getLatestScaleDecision(projectId: string, environment: string, poolName: string): Promise<ScaleDecision>;
225
+ createApprovalRequest(request: CreateApprovalRequestRequest): Promise<ApprovalRequest>;
226
+ listApprovalRequests(request?: ListApprovalRequestsRequest): Promise<ApprovalRequest[]>;
227
+ decideApprovalRequest(id: string, request: DecideApprovalRequestRequest): Promise<ApprovalRequest | null>;
228
+ upsertTeamInboxItem(request: UpsertTeamInboxItemRequest): Promise<InboxItem>;
217
229
  listWorkstreams(projectId: string): Promise<WorkstreamSummary[]>;
218
230
  getWorkstream(workstreamId: string): Promise<WorkstreamDetail | null>;
219
231
  upsertWorkstream(input: Partial<WorkstreamSummary> & Pick<WorkstreamSummary, 'projectId' | 'title'>): Promise<WorkstreamSummary>;
@@ -285,6 +297,7 @@ export declare class CloudflareD1AgentDatabase implements AgentDatabase {
285
297
  listWorkdayRequests(projectId: string, environment: string, state?: string | null): Promise<WorkdayRequest[]>;
286
298
  claimWorkdayManagerLease(request: SdkClaimWorkdayManagerLeaseRequest): Promise<WorkdayManagerLease | null>;
287
299
  releaseWorkdayManagerLease(request: SdkReleaseWorkdayManagerLeaseRequest): Promise<WorkdayManagerLease | null>;
300
+ listWorkdayManagerLeases(projectId: string, environment: string): Promise<WorkdayManagerLease[]>;
288
301
  recordWorkerRunner(request: SdkRecordWorkerRunnerRequest): Promise<WorkerRunner | null>;
289
302
  listWorkerRunners(projectId: string, environment: string): Promise<WorkerRunner[]>;
290
303
  recordRepositoryClaim(request: SdkRecordRepositoryClaimRequest): Promise<RepositoryClaim | null>;
@@ -310,6 +323,10 @@ export declare class CloudflareD1AgentDatabase implements AgentDatabase {
310
323
  listTaskCredits(workDayId: string): Promise<TaskCreditLedgerEntry[]>;
311
324
  recordScaleDecision(request: SdkRecordScaleDecisionRequest): Promise<ScaleDecision | null>;
312
325
  getLatestScaleDecision(projectId: string, environment: string, poolName: string): Promise<ScaleDecision | null>;
326
+ createApprovalRequest(request: CreateApprovalRequestRequest): Promise<ApprovalRequest | null>;
327
+ listApprovalRequests(request?: ListApprovalRequestsRequest): Promise<ApprovalRequest[]>;
328
+ decideApprovalRequest(id: string, request: DecideApprovalRequestRequest): Promise<ApprovalRequest | null>;
329
+ upsertTeamInboxItem(request: UpsertTeamInboxItemRequest): Promise<InboxItem | null>;
313
330
  listWorkstreams(projectId: string): Promise<WorkstreamSummary[]>;
314
331
  getWorkstream(workstreamId: string): Promise<WorkstreamDetail | null>;
315
332
  upsertWorkstream(input: Partial<WorkstreamSummary> & Pick<WorkstreamSummary, 'projectId' | 'title'>): Promise<{
package/dist/d1-store.js CHANGED
@@ -41,6 +41,71 @@ function filterSinceField(model) {
41
41
  return "updatedAt";
42
42
  }
43
43
  }
44
+ function approvalStateFor(value) {
45
+ const state = String(value ?? "pending").trim();
46
+ return state || "pending";
47
+ }
48
+ function approvalRequestFromInput(input, existing) {
49
+ const timestamp = nowIso();
50
+ return {
51
+ id: input.id ?? existing?.id ?? crypto.randomUUID(),
52
+ teamId: input.teamId,
53
+ projectId: input.projectId,
54
+ workDayId: input.workDayId ?? existing?.workDayId ?? null,
55
+ taskId: input.taskId ?? existing?.taskId ?? null,
56
+ kind: input.kind,
57
+ state: existing?.state ?? "pending",
58
+ severity: input.severity ?? existing?.severity ?? "medium",
59
+ requestedByType: input.requestedByType ?? existing?.requestedByType ?? "worker",
60
+ requestedById: input.requestedById ?? existing?.requestedById ?? null,
61
+ title: input.title,
62
+ summary: input.summary,
63
+ options: input.options ?? existing?.options ?? [],
64
+ recommendation: input.recommendation ?? existing?.recommendation ?? {},
65
+ policySnapshot: input.policySnapshot ?? existing?.policySnapshot ?? {},
66
+ expiresAt: input.expiresAt ?? existing?.expiresAt ?? null,
67
+ decidedByType: existing?.decidedByType ?? null,
68
+ decidedById: existing?.decidedById ?? null,
69
+ decidedAt: existing?.decidedAt ?? null,
70
+ decision: existing?.decision ?? null,
71
+ metadata: input.metadata ?? existing?.metadata ?? {},
72
+ createdAt: existing?.createdAt ?? timestamp,
73
+ updatedAt: timestamp
74
+ };
75
+ }
76
+ function decidedApprovalRequest(existing, input) {
77
+ const timestamp = nowIso();
78
+ return {
79
+ ...existing,
80
+ state: approvalStateFor(input.state),
81
+ decidedByType: input.decidedByType ?? "user",
82
+ decidedById: input.decidedById ?? null,
83
+ decidedAt: timestamp,
84
+ decision: {
85
+ ...input.decision ?? {},
86
+ ...input.optionId ? { optionId: input.optionId } : {},
87
+ ...input.note ? { note: input.note } : {}
88
+ },
89
+ updatedAt: timestamp
90
+ };
91
+ }
92
+ function inboxItemFromInput(input, existing) {
93
+ const timestamp = nowIso();
94
+ return {
95
+ id: input.id ?? existing?.id ?? crypto.randomUUID(),
96
+ teamId: input.teamId,
97
+ projectId: input.projectId ?? existing?.projectId ?? null,
98
+ kind: input.kind,
99
+ state: input.state,
100
+ title: input.title,
101
+ summary: input.summary ?? existing?.summary ?? null,
102
+ href: input.href ?? existing?.href ?? null,
103
+ itemKey: input.itemKey ?? existing?.itemKey ?? null,
104
+ metadata: input.metadata ?? existing?.metadata ?? {},
105
+ createdAt: existing?.createdAt ?? timestamp,
106
+ updatedAt: timestamp
107
+ };
108
+ }
44
109
  class MemoryAgentDatabase {
45
110
  subscriptions = /* @__PURE__ */ new Map();
46
111
  messages = /* @__PURE__ */ new Map();
@@ -63,6 +128,8 @@ class MemoryAgentDatabase {
63
128
  prioritySnapshots = /* @__PURE__ */ new Map();
64
129
  taskCreditLedger = /* @__PURE__ */ new Map();
65
130
  scaleDecisions = /* @__PURE__ */ new Map();
131
+ approvalRequests = /* @__PURE__ */ new Map();
132
+ teamInboxItems = /* @__PURE__ */ new Map();
66
133
  projectWorkflow = new MemoryProjectWorkflowStore();
67
134
  messageId = 0;
68
135
  constructor(seed) {
@@ -851,6 +918,9 @@ class MemoryAgentDatabase {
851
918
  this.workdayManagerLeases.set(next.id, next);
852
919
  return next;
853
920
  }
921
+ async listWorkdayManagerLeases(projectId, environment) {
922
+ return [...this.workdayManagerLeases.values()].filter((entry) => entry.projectId === projectId && entry.environment === environment).sort((left, right) => right.heartbeatAt.localeCompare(left.heartbeatAt)).slice(0, 10);
923
+ }
854
924
  async recordWorkerRunner(request) {
855
925
  const timestamp = nowIso();
856
926
  const id = request.id ?? `${request.projectId}:${request.environment}:${request.runnerId}`;
@@ -1016,6 +1086,31 @@ class MemoryAgentDatabase {
1016
1086
  async getLatestScaleDecision(projectId, environment, poolName) {
1017
1087
  return [...this.scaleDecisions.values()].filter((entry) => entry.projectId === projectId && entry.environment === environment && entry.poolName === poolName).sort((left, right) => right.createdAt.localeCompare(left.createdAt))[0] ?? null;
1018
1088
  }
1089
+ async createApprovalRequest(request) {
1090
+ const existing = request.id ? this.approvalRequests.get(request.id) : null;
1091
+ if (existing && existing.state !== "pending") return existing;
1092
+ const approval = approvalRequestFromInput(request, existing);
1093
+ this.approvalRequests.set(approval.id, approval);
1094
+ return approval;
1095
+ }
1096
+ async listApprovalRequests(request = {}) {
1097
+ const states = request.state ? new Set((Array.isArray(request.state) ? request.state : [request.state]).map(String)) : null;
1098
+ return [...this.approvalRequests.values()].filter((approval) => !request.projectId || approval.projectId === request.projectId).filter((approval) => !request.teamId || approval.teamId === request.teamId).filter((approval) => !states || states.has(approval.state)).sort((left, right) => right.createdAt.localeCompare(left.createdAt)).slice(0, request.limit ?? 100);
1099
+ }
1100
+ async decideApprovalRequest(id, request) {
1101
+ const existing = this.approvalRequests.get(id);
1102
+ if (!existing) return null;
1103
+ const decided = decidedApprovalRequest(existing, request);
1104
+ this.approvalRequests.set(id, decided);
1105
+ return decided;
1106
+ }
1107
+ async upsertTeamInboxItem(request) {
1108
+ const id = request.id ?? request.itemKey ?? crypto.randomUUID();
1109
+ const existing = this.teamInboxItems.get(id) ?? [...this.teamInboxItems.values()].find((item2) => request.itemKey && item2.teamId === request.teamId && item2.itemKey === request.itemKey) ?? null;
1110
+ const item = inboxItemFromInput({ ...request, id }, existing);
1111
+ this.teamInboxItems.set(item.id, item);
1112
+ return item;
1113
+ }
1019
1114
  listWorkstreams(projectId) {
1020
1115
  return Promise.resolve(this.projectWorkflow.listWorkstreams(projectId));
1021
1116
  }
@@ -1418,6 +1513,9 @@ class CloudflareD1AgentDatabase {
1418
1513
  releaseWorkdayManagerLease(request) {
1419
1514
  return this.operational.releaseWorkdayManagerLease(request);
1420
1515
  }
1516
+ listWorkdayManagerLeases(projectId, environment) {
1517
+ return this.operational.listWorkdayManagerLeases(projectId, environment);
1518
+ }
1421
1519
  recordWorkerRunner(request) {
1422
1520
  return this.operational.recordWorkerRunner(request);
1423
1521
  }
@@ -1463,6 +1561,18 @@ class CloudflareD1AgentDatabase {
1463
1561
  getLatestScaleDecision(projectId, environment, poolName) {
1464
1562
  return this.operational.getLatestScaleDecision(projectId, environment, poolName);
1465
1563
  }
1564
+ createApprovalRequest(request) {
1565
+ return this.operational.createApprovalRequest(request);
1566
+ }
1567
+ listApprovalRequests(request = {}) {
1568
+ return this.operational.listApprovalRequests(request);
1569
+ }
1570
+ decideApprovalRequest(id, request) {
1571
+ return this.operational.decideApprovalRequest(id, request);
1572
+ }
1573
+ upsertTeamInboxItem(request) {
1574
+ return this.operational.upsertTeamInboxItem(request);
1575
+ }
1466
1576
  listWorkstreams(projectId) {
1467
1577
  return this.projectWorkflow.listWorkstreams(projectId);
1468
1578
  }
@@ -6,6 +6,7 @@ export interface DeclarativeContextQuery {
6
6
  purpose: DeclarativeContextQueryPurpose;
7
7
  query: string;
8
8
  scope?: string;
9
+ codeScopes?: string[];
9
10
  relations?: string[];
10
11
  depth?: number;
11
12
  budget?: number;
@@ -62,6 +62,10 @@ function compileDeclarativeContextQuery(query, options = {}) {
62
62
  if (scope !== void 0 && (!scope || !scope.startsWith("/"))) {
63
63
  errors.push(`Context query "${id || "<unknown>"}" scope must start with "/".`);
64
64
  }
65
+ const codeScopes = query.codeScopes === void 0 ? void 0 : Array.isArray(query.codeScopes) ? [...new Set(query.codeScopes.map((entry) => typeof entry === "string" ? entry.trim() : "").filter(Boolean))] : [];
66
+ if (query.codeScopes !== void 0 && (!Array.isArray(query.codeScopes) || codeScopes.length === 0)) {
67
+ errors.push(`Context query "${id || "<unknown>"}" codeScopes must be a non-empty array of strings.`);
68
+ }
65
69
  const relations = (query.relations ?? ["related", "references"]).map((entry) => entry.trim().toLowerCase());
66
70
  const invalidRelations = relations.filter((relation) => !VALID_RELATIONS.includes(relation));
67
71
  if (invalidRelations.length > 0) {
@@ -110,6 +114,7 @@ function compileDeclarativeContextQuery(query, options = {}) {
110
114
  purpose,
111
115
  query: textQuery,
112
116
  scope,
117
+ codeScopes,
113
118
  relations: uniqueRelations
114
119
  },
115
120
  request,
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ export { ContentGraphRuntime } from './graph.ts';
3
3
  export { projectConnectionModeFromHosting } from './sdk-types.ts';
4
4
  export { createControlPlaneReporter } from './control-plane.ts';
5
5
  export { ControlPlaneClient } from './control-plane-client.ts';
6
+ export * from './seeds/index.ts';
6
7
  export { DEFAULT_EXECUTION_PROFILE_ID, DEFAULT_EXECUTION_PROFILES, DEFAULT_TASK_ADMISSION_POLICY, buildTaskEstimateProfileFromActuals, computeWorkdayBudgetEnvelope, decideTaskAdmission, estimateAttentionForTask, estimateConfidenceFromProfile, estimateLearningPercentile, estimateLearningVariance, estimateForClassification, estimateProfileConfidenceScore, estimateUtilityForTask, isInterruptedUsageActual, normalizeHybridExecutionPlan, mutationRequiresRepositoryClaim, normalizePlanningPolicy, normalizePredictiveReservePolicy, normalizeTaskPlanProposal, normalizeExecutionProfile, normalizeAttentionPolicy, normalizeTaskAdmissionPolicy, normalizeUtilityPolicy, predictReserveForCapacityPlan, progressivelyAdmitPlanProposal, rankPlannedTaskNodes, reservationHasCapacity, reserveCreditsForEstimate, routeAndReserveCapacity, scoreCapacityLane, selectBestCapacityLane, selectTaskEstimateProfile, settleCapacityActuals, shouldInterruptForCapacity, synthesizePlanEstimate, createReservationReleaseEntry, summarizeCapacityPlan, summarizeProjectCapacityPlan, summarizeTeamCapacityPlan, validateTaskPlanProposal, } from './capacity.ts';
7
8
  export { executeKnowledgeHubProviderLaunch, validateKnowledgeHubProviderLaunchPrerequisites, } from './operations/services/hub-provider-launch.ts';
8
9
  export { createKnowledgeHubRepositories, defaultHubContentResolutionPolicy, executeKnowledgeHubLaunch, normalizeKnowledgeHubLaunchIntent, planKnowledgeHubLaunch, planKnowledgeHubRepositories, validateRepositoryHost, type HubContentResolutionPolicy, type KnowledgeHubLaunchIntent, type KnowledgeHubLaunchPhase, type KnowledgeHubLaunchPlan, type KnowledgeHubLaunchResult, type KnowledgeHubRepositoryPlan, type RepositoryHost, } from './operations/services/hub-launch.ts';
@@ -34,7 +35,7 @@ export { TreeseedWorkflowSdk } from './workflow.ts';
34
35
  export * from './db/index.ts';
35
36
  export { collectTreeseedReconcileStatus, createTreeseedReconcileRegistry, deriveTreeseedDesiredUnits, destroyTreeseedTargetUnits, observeTreeseedUnits, planTreeseedReconciliation, reconcileTreeseedTarget, } from './reconcile/index.ts';
36
37
  export { getTreeseedVerifyDriverStatus, runTreeseedVerifyDriver } from './verification.ts';
37
- export type { KnowledgeHubProviderLaunchPreflightReport, KnowledgeHubProviderLaunchFailurePhase, KnowledgeHubProviderLaunchInput, KnowledgeHubProviderLaunchResult, AgentMessageKind, AgentMessageRecord, AgentStatusRecord, DirectBoardItemSummary, InboxItem, ProjectJobStatus, LaunchProjectRequest, LaunchProjectResult, LinkedProjectRecordRef, ProjectConnectionStatus, ProjectOverviewSummary, ReleaseDetail, ReleaseState, ReleaseSummary, SharePackageState, SharePackageStatus, TeamCapability, TeamHomeSummary, TeamMemberSummary, WorkstreamDetail, WorkstreamEvent, WorkstreamState, WorkstreamSummary, SdkContentEntry, SdkDispatchCapability, SdkDispatchConfig, SdkDispatchCredentialSource, SdkDispatchExecutionClass, SdkDispatchNamespace, SdkDispatchPolicy, SdkDispatchRequest, SdkDispatchResult, SdkDispatchTarget, SdkCursorEntity, SdkFilterCondition, SdkFollowRequest, SdkGraphEdge, SdkGraphEdgeType, SdkGraphDslRelation, SdkGraphDslParseResult, SdkGraphModelConfig, SdkGraphNode, SdkGraphNodeType, SdkGraphPathExplanation, SdkGraphQueryStage, SdkGraphQueryView, SdkGraphQueryOptions, SdkGraphQueryRequest, SdkGraphQueryResult, SdkGraphRankingBuildInput, SdkGraphRankingDiagnostics, SdkGraphRankingIndex, SdkGraphRankingNodeResult, SdkGraphRankingProvider, SdkGraphRankingQueryRequest, SdkGraphRankingQueryResult, SdkGraphRankingSearchRequest, SdkGraphRefreshPayload, SdkGraphRefreshRequest, SdkGraphSearchOptions, SdkGraphSearchResult, SdkGraphSeed, SdkGraphSeedResolution, SdkGraphTraversalResult, SdkGraphWhereFilter, SdkContextPack, SdkContextPackRequest, SdkGetRequest, SdkJsonEnvelope, SdkLeaseEntity, SdkManagerContextPayload, SdkMessageEntity, SdkModelFieldBinding, SdkModelDefinition, SdkModelRegistry, SdkModelName, SdkMutationRequest, SdkOperation, SdkPickRequest, SdkPickResult, SdkQueueMessageEnvelope, SdkRunEntity, SdkSearchRequest, SdkTaskEntity, SdkTaskEventEntity, SdkTaskOutputEntity, SdkWorkDayEntity, SdkGraphRunEntity, SdkReportEntity, SdkSubscriptionEntity, SdkTemplateCatalogEntry, SdkTemplateCatalogPublisher, SdkTemplateCatalogResponse, SdkTemplateCatalogSource, SdkUpdateRequest, ProjectCapabilityGrant, ProjectConnection, ProjectConnectionMode, ProjectDeployment, ProjectDeploymentKind, ProjectDeploymentStatus, ProjectEnvironment, ProjectExecutionOwner, ProjectHosting, ProjectInfrastructureResource, ProjectInfrastructureResourceKind, ProjectInfrastructureResourceProvider, ProjectRunnerRegistrationState, RemoteJob, RemoteJobEvent, RemoteJobStatus, AgentPool, AgentPoolAutoscalePolicy, AgentPoolRegistration, AgentPoolScaleDecision, AgentPoolStatus, CatalogArtifactVersion, CatalogItem, CatalogItemFilters, CatalogItemOfferMode, ProjectEnvironmentName, ProjectWorkdaySummary, TreeseedHostingKind, TreeseedHostingRegistration, PriorityOverride, WorkdayWindow, WorkdaySchedule, WorkdayRequest, WorkdayManagerLease, WorkerRunner, WorkerRunnerState, RepositoryClaim, TaskCreditWeight, TaskCreditBudget, WorkdayPolicy, PrioritySnapshotItem, PrioritySnapshot, TaskCreditLedgerEntry, ApprovalRequest, CapacityBusinessModel, CapacityGrant, CapacityGrantScope, CapacityLedgerEntry, CapacityLaneUnit, CapacityPlan, CapacityProvider, CapacityProviderHost, CapacityProviderKind, CapacityProviderLane, CapacityReservation, CapacityRoutingDecision, CapacityTaskExecutionEnvelope, CanonicalTaskState, CreateApprovalRequestRequest, CreateCapacityReservationRequest, CreateCapacityRoutingDecisionRequest, CreateTaskEstimateRequest, CreateTaskUsageActualRequest, ExecutionProfile, HybridExecutionPhase, HybridExecutionPlan, PlannedTaskNode, PlanningAdmissionResult, PlanningPolicy, PredictiveReservePolicy, RecordCapacityUsageRequest, RepositoryWorkState, ReservePrediction, TaskAdmissionDecision, TaskAdmissionOutcome, TaskAdmissionPolicy, TaskClassification, TaskEstimate, TaskEstimateProfile, TaskCheckpointArtifact, TaskConcurrencyClass, TaskPlanProposal, TaskMutationScope, TaskRiskClass, TaskUsageActual, UtilityEstimate, UtilityPolicy, UpsertCapacityGrantRequest, UpsertCapacityProviderHostRequest, UpsertCapacityProviderLaneRequest, UpsertCapacityProviderRequest, ScaleDecision, RunnerScaleDecision, TeamStorageLocator, TeamWebHost, TeamWebHostOwnership, TeamWebHostProvider, EncryptedWebHostPayload, UpsertAgentPoolRequest, UpsertCatalogArtifactVersionRequest, UpsertCatalogItemRequest, UpsertProjectEnvironmentRequest, UpsertProjectHostingRequest, UpsertProjectInfrastructureResourceRequest, UpsertTeamStorageLocatorRequest, UpsertTeamWebHostRequest, CreateProjectDeploymentRequest, RecordAgentPoolRegistrationRequest, SdkCreateWorkdayRequest, SdkClaimWorkdayManagerLeaseRequest, SdkReleaseWorkdayManagerLeaseRequest, SdkRecordWorkerRunnerRequest, SdkRecordRepositoryClaimRequest, SdkRecordRunnerScaleDecisionRequest, SdkUpdateWorkDayGraphRequest, WorkerPoolScaleResult, WorkerPoolScaler, } from './sdk-types.ts';
38
+ export type { KnowledgeHubProviderLaunchPreflightReport, KnowledgeHubProviderLaunchFailurePhase, KnowledgeHubProviderLaunchInput, KnowledgeHubProviderLaunchResult, AgentMessageKind, AgentMessageRecord, AgentStatusRecord, DirectBoardItemSummary, InboxItem, ProjectJobStatus, LaunchProjectRequest, LaunchProjectResult, LinkedProjectRecordRef, ProjectConnectionStatus, ProjectOverviewSummary, ReleaseDetail, ReleaseState, ReleaseSummary, SharePackageState, SharePackageStatus, TeamCapability, TeamHomeSummary, TeamMemberSummary, WorkstreamDetail, WorkstreamEvent, WorkstreamState, WorkstreamSummary, SdkContentEntry, SdkDispatchCapability, SdkDispatchConfig, SdkDispatchCredentialSource, SdkDispatchExecutionClass, SdkDispatchNamespace, SdkDispatchPolicy, SdkDispatchRequest, SdkDispatchResult, SdkDispatchTarget, SdkCursorEntity, SdkFilterCondition, SdkFollowRequest, SdkGraphEdge, SdkGraphEdgeType, SdkGraphDslRelation, SdkGraphDslParseResult, SdkGraphModelConfig, SdkGraphNode, SdkGraphNodeType, SdkGraphPathExplanation, SdkGraphQueryStage, SdkGraphQueryView, SdkGraphQueryOptions, SdkGraphQueryRequest, SdkGraphQueryResult, SdkGraphRankingBuildInput, SdkGraphRankingDiagnostics, SdkGraphRankingIndex, SdkGraphRankingNodeResult, SdkGraphRankingProvider, SdkGraphRankingQueryRequest, SdkGraphRankingQueryResult, SdkGraphRankingSearchRequest, SdkGraphRefreshPayload, SdkGraphRefreshRequest, SdkGraphSearchOptions, SdkGraphSearchResult, SdkGraphSeed, SdkGraphSeedResolution, SdkGraphTraversalResult, SdkGraphWhereFilter, SdkContextPack, SdkContextPackRequest, SdkGetRequest, SdkJsonEnvelope, SdkLeaseEntity, SdkManagerContextPayload, SdkMessageEntity, SdkModelFieldBinding, SdkModelDefinition, SdkModelRegistry, SdkModelName, SdkMutationRequest, SdkOperation, SdkPickRequest, SdkPickResult, SdkQueueMessageEnvelope, SdkRunEntity, SdkSearchRequest, SdkTaskEntity, SdkTaskEventEntity, SdkTaskOutputEntity, SdkWorkDayEntity, SdkGraphRunEntity, SdkReportEntity, SdkSubscriptionEntity, SdkTemplateCatalogEntry, SdkTemplateCatalogPublisher, SdkTemplateCatalogResponse, SdkTemplateCatalogSource, SdkUpdateRequest, ProjectCapabilityGrant, ProjectConnection, ProjectConnectionMode, ProjectDeployment, ProjectDeploymentKind, ProjectDeploymentStatus, ProjectEnvironment, ProjectExecutionOwner, ProjectHosting, ProjectInfrastructureResource, ProjectInfrastructureResourceKind, ProjectInfrastructureResourceProvider, ProjectRunnerRegistrationState, RemoteJob, RemoteJobEvent, RemoteJobStatus, AgentPool, AgentPoolAutoscalePolicy, AgentPoolRegistration, AgentPoolScaleDecision, AgentPoolStatus, CatalogArtifactVersion, CatalogItem, CatalogItemFilters, CatalogItemOfferMode, ProjectEnvironmentName, ProjectWorkdaySummary, TreeseedHostingKind, TreeseedHostingRegistration, PriorityOverride, WorkdayWindow, WorkdaySchedule, WorkdayRequest, WorkdayManagerLease, WorkerRunner, WorkerRunnerState, RepositoryClaim, TaskCreditWeight, TaskCreditBudget, WorkdayPolicy, PrioritySnapshotItem, PrioritySnapshot, TaskCreditLedgerEntry, ApprovalRequest, DecideApprovalRequestRequest, ListApprovalRequestsRequest, CapacityBusinessModel, CapacityGrant, CapacityGrantScope, CapacityLedgerEntry, CapacityLaneUnit, CapacityPlan, CapacityProvider, CapacityProviderHost, CapacityProviderKind, CapacityProviderLane, CapacityReservation, CapacityRoutingDecision, CapacityTaskExecutionEnvelope, CanonicalTaskState, CreateApprovalRequestRequest, CreateCapacityReservationRequest, CreateCapacityRoutingDecisionRequest, CreateTaskEstimateRequest, CreateTaskUsageActualRequest, UpsertTeamInboxItemRequest, ExecutionProfile, HybridExecutionPhase, HybridExecutionPlan, PlannedTaskNode, PlanningAdmissionResult, PlanningPolicy, PredictiveReservePolicy, RecordCapacityUsageRequest, RepositoryWorkState, ReservePrediction, TaskAdmissionDecision, TaskAdmissionOutcome, TaskAdmissionPolicy, TaskClassification, TaskEstimate, TaskEstimateProfile, TaskCheckpointArtifact, TaskConcurrencyClass, TaskPlanProposal, TaskMutationScope, TaskRiskClass, TaskUsageActual, UtilityEstimate, UtilityPolicy, UpsertCapacityGrantRequest, UpsertCapacityProviderHostRequest, UpsertCapacityProviderLaneRequest, UpsertCapacityProviderRequest, ScaleDecision, RunnerScaleDecision, TeamStorageLocator, TeamWebHost, TeamWebHostOwnership, TeamWebHostProvider, EncryptedWebHostPayload, UpsertAgentPoolRequest, UpsertCatalogArtifactVersionRequest, UpsertCatalogItemRequest, UpsertProjectEnvironmentRequest, UpsertProjectHostingRequest, UpsertProjectInfrastructureResourceRequest, UpsertTeamStorageLocatorRequest, UpsertTeamWebHostRequest, CreateProjectDeploymentRequest, RecordAgentPoolRegistrationRequest, SdkAppendTaskEventRequest, SdkClaimTaskRequest, SdkCreateWorkdayRequest, SdkCloseWorkDayRequest, SdkCompleteTaskRequest, SdkCreateTaskRequest, SdkFailTaskRequest, SdkManagerContextPayload, SdkClaimWorkdayManagerLeaseRequest, SdkReleaseWorkdayManagerLeaseRequest, SdkRecordWorkerRunnerRequest, SdkRecordRepositoryClaimRequest, SdkRecordRunnerScaleDecisionRequest, SdkStartWorkDayRequest, SdkTaskEntity, SdkTaskEventEntity, SdkTaskOutputEntity, SdkTaskProgressRequest, SdkTaskSearchRequest, SdkUpdateWorkDayGraphRequest, SdkWorkDayEntity, WorkerPoolScaleResult, WorkerPoolScaler, } from './sdk-types.ts';
38
39
  export type * from './project-workflow.ts';
39
40
  export type { ControlPlaneAgentPoolHeartbeat, ControlPlaneDeploymentReport, ControlPlaneEnvironmentReport, ControlPlaneReporter, ControlPlaneReporterKind, ControlPlaneResourceReport, ControlPlaneScaleDecisionReport, ControlPlaneWorkdaySummaryReport, } from './control-plane.ts';
40
41
  export type { ControlPlaneClientOptions } from './control-plane-client.ts';
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ import { ContentGraphRuntime } from "./graph.js";
3
3
  import { projectConnectionModeFromHosting } from "./sdk-types.js";
4
4
  import { createControlPlaneReporter } from "./control-plane.js";
5
5
  import { ControlPlaneClient } from "./control-plane-client.js";
6
+ export * from "./seeds/index.js";
6
7
  import {
7
8
  DEFAULT_EXECUTION_PROFILE_ID,
8
9
  DEFAULT_EXECUTION_PROFILES,
@@ -193,6 +193,13 @@ export declare class MarketClient {
193
193
  ok: true;
194
194
  payload: Record<string, unknown>;
195
195
  }>;
196
+ planSeed(seedName: string, body: Record<string, unknown>): Promise<Record<string, unknown>>;
197
+ applySeed(seedName: string, body: Record<string, unknown>): Promise<Record<string, unknown>>;
198
+ listSeedRuns(limit?: number): Promise<{
199
+ ok: true;
200
+ payload: unknown[];
201
+ }>;
202
+ exportSeed(teamId: string, body: Record<string, unknown>): Promise<Record<string, unknown>>;
196
203
  enqueueAgentTask(projectId: string, body: Record<string, unknown>): Promise<{
197
204
  ok: true;
198
205
  payload: Record<string, unknown>;
@@ -357,6 +357,28 @@ class MarketClient {
357
357
  { method: "POST", body, requireAuth: true }
358
358
  );
359
359
  }
360
+ planSeed(seedName, body) {
361
+ return this.request(
362
+ `/v1/seeds/${encodeURIComponent(seedName)}/plan`,
363
+ { method: "POST", body, requireAuth: true }
364
+ );
365
+ }
366
+ applySeed(seedName, body) {
367
+ return this.request(
368
+ `/v1/seeds/${encodeURIComponent(seedName)}/apply`,
369
+ { method: "POST", body, requireAuth: true }
370
+ );
371
+ }
372
+ listSeedRuns(limit) {
373
+ const query = limit ? `?limit=${encodeURIComponent(String(limit))}` : "";
374
+ return this.request(`/v1/seeds/runs${query}`, { requireAuth: true });
375
+ }
376
+ exportSeed(teamId, body) {
377
+ return this.request(
378
+ `/v1/teams/${encodeURIComponent(teamId)}/seeds/export`,
379
+ { method: "POST", body, requireAuth: true }
380
+ );
381
+ }
360
382
  enqueueAgentTask(projectId, body) {
361
383
  return this.request(
362
384
  `/v1/projects/${encodeURIComponent(projectId)}/agent-tasks`,