@treeseed/sdk 0.4.13 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/control-plane-client.d.ts +60 -1
  2. package/dist/control-plane-client.js +59 -0
  3. package/dist/control-plane.d.ts +1 -1
  4. package/dist/control-plane.js +11 -4
  5. package/dist/d1-store.d.ts +58 -0
  6. package/dist/d1-store.js +64 -0
  7. package/dist/dispatch.js +6 -0
  8. package/dist/graph/schema.js +4 -0
  9. package/dist/index.d.ts +5 -1
  10. package/dist/index.js +32 -0
  11. package/dist/knowledge-coop.d.ts +223 -0
  12. package/dist/knowledge-coop.js +82 -0
  13. package/dist/model-registry.js +79 -0
  14. package/dist/operations/providers/default.js +126 -7
  15. package/dist/operations/services/config-runtime.d.ts +102 -24
  16. package/dist/operations/services/config-runtime.js +896 -160
  17. package/dist/operations/services/deploy.d.ts +223 -15
  18. package/dist/operations/services/deploy.js +626 -55
  19. package/dist/operations/services/github-automation.d.ts +60 -0
  20. package/dist/operations/services/github-automation.js +138 -0
  21. package/dist/operations/services/key-agent.d.ts +118 -0
  22. package/dist/operations/services/key-agent.js +476 -0
  23. package/dist/operations/services/knowledge-coop-launch.d.ts +90 -0
  24. package/dist/operations/services/knowledge-coop-launch.js +753 -0
  25. package/dist/operations/services/knowledge-coop-packaging.d.ts +59 -0
  26. package/dist/operations/services/knowledge-coop-packaging.js +234 -0
  27. package/dist/operations/services/local-dev.d.ts +0 -1
  28. package/dist/operations/services/local-dev.js +1 -14
  29. package/dist/operations/services/project-platform.d.ts +42 -182
  30. package/dist/operations/services/project-platform.js +162 -59
  31. package/dist/operations/services/railway-deploy.d.ts +1 -0
  32. package/dist/operations/services/railway-deploy.js +31 -13
  33. package/dist/operations/services/runtime-tools.d.ts +52 -5
  34. package/dist/operations/services/runtime-tools.js +186 -26
  35. package/dist/operations/services/watch-dev.js +2 -4
  36. package/dist/operations/services/workspace-preflight.d.ts +4 -4
  37. package/dist/operations/services/workspace-preflight.js +22 -20
  38. package/dist/operations-registry.js +7 -2
  39. package/dist/platform/contracts.d.ts +39 -3
  40. package/dist/platform/deploy-config.d.ts +12 -1
  41. package/dist/platform/deploy-config.js +214 -15
  42. package/dist/platform/deploy-runtime.d.ts +1 -0
  43. package/dist/platform/deploy-runtime.js +10 -2
  44. package/dist/platform/env.yaml +93 -61
  45. package/dist/platform/environment.d.ts +13 -2
  46. package/dist/platform/environment.js +90 -20
  47. package/dist/platform/plugins/constants.d.ts +1 -0
  48. package/dist/platform/plugins/constants.js +7 -6
  49. package/dist/platform/tenant/runtime-config.js +8 -1
  50. package/dist/platform/tenant-config.js +4 -0
  51. package/dist/platform/utils/site-config-schema.js +18 -0
  52. package/dist/plugin-default.js +2 -2
  53. package/dist/scripts/key-agent.js +165 -0
  54. package/dist/scripts/tenant-build.js +4 -1
  55. package/dist/scripts/tenant-check.js +4 -1
  56. package/dist/scripts/tenant-deploy.js +43 -4
  57. package/dist/scripts/tenant-dev.js +0 -1
  58. package/dist/sdk-types.d.ts +2 -2
  59. package/dist/sdk-types.js +2 -0
  60. package/dist/sdk.d.ts +13 -0
  61. package/dist/sdk.js +40 -0
  62. package/dist/stores/knowledge-coop-store.d.ts +56 -0
  63. package/dist/stores/knowledge-coop-store.js +482 -0
  64. package/dist/treeseed/template-catalog/templates/starter-basic/template/package.json +6 -2
  65. package/dist/treeseed/template-catalog/templates/starter-basic/template/src/api/server.js +4 -0
  66. package/dist/treeseed/template-catalog/templates/starter-basic/template/src/config.yaml +25 -0
  67. package/dist/treeseed/template-catalog/templates/starter-basic/template/src/content/decisions/adopt-initial-proposal-loop.mdx +22 -0
  68. package/dist/treeseed/template-catalog/templates/starter-basic/template/src/content/people/starter-steward.mdx +11 -0
  69. package/dist/treeseed/template-catalog/templates/starter-basic/template/src/content/proposals/establish-initial-proposal-loop.mdx +17 -0
  70. package/dist/treeseed/template-catalog/templates/starter-basic/template/src/manifest.yaml +17 -10
  71. package/dist/treeseed/template-catalog/templates/starter-basic/template/treeseed.site.yaml +69 -7
  72. package/dist/treeseed/template-catalog/templates/starter-basic/template.config.json +1 -0
  73. package/dist/workflow/operations.d.ts +98 -0
  74. package/dist/workflow/operations.js +229 -7
  75. package/dist/workflow-state.d.ts +54 -2
  76. package/dist/workflow-state.js +170 -24
  77. package/dist/workflow-support.d.ts +1 -1
  78. package/dist/workflow-support.js +32 -2
  79. package/dist/workflow.d.ts +29 -0
  80. package/package.json +1 -1
  81. package/templates/github/deploy.workflow.yml +11 -1
  82. package/dist/scripts/sync-dev-vars.js +0 -6
@@ -1,4 +1,5 @@
1
- import type { AgentPool, AgentPoolRegistration, AgentPoolScaleDecision, CatalogArtifactVersion, CatalogItem, CatalogItemFilters, CreateProjectDeploymentRequest, PriorityOverride, PrioritySnapshot, ProjectDeployment, ProjectEnvironment, ProjectEnvironmentName, ProjectHosting, ProjectInfrastructureResource, ProjectWorkdaySummary, RecordAgentPoolRegistrationRequest, ScaleDecision, TeamStorageLocator, UpsertAgentPoolRequest, UpsertCatalogArtifactVersionRequest, UpsertCatalogItemRequest, UpsertProjectEnvironmentRequest, UpsertProjectHostingRequest, UpsertProjectInfrastructureResourceRequest, UpsertTeamStorageLocatorRequest, WorkdayPolicy, SdkPriorityOverrideRequest, SdkUpsertWorkPolicyRequest } from './sdk-types.ts';
1
+ import type { AgentPool, AgentPoolRegistration, AgentPoolScaleDecision, CatalogArtifactVersion, CatalogItem, CatalogItemFilters, CreateProjectDeploymentRequest, PriorityOverride, PrioritySnapshot, ProjectConnection, ProjectDeployment, ProjectEnvironment, ProjectEnvironmentName, ProjectHosting, ProjectInfrastructureResource, ProjectWorkdaySummary, RecordAgentPoolRegistrationRequest, ScaleDecision, TeamStorageLocator, UpsertAgentPoolRequest, UpsertCatalogArtifactVersionRequest, UpsertCatalogItemRequest, UpsertProjectEnvironmentRequest, UpsertProjectHostingRequest, UpsertProjectInfrastructureResourceRequest, UpsertTeamStorageLocatorRequest, WorkdayPolicy, SdkPriorityOverrideRequest, SdkUpsertWorkPolicyRequest } from './sdk-types.ts';
2
+ import type { AgentMessageRecord, AgentStatusRecord, DirectBoardItemSummary, InboxItem, LaunchProjectRequest, LaunchProjectResult, ProjectOverviewSummary, ReleaseDetail, ReleaseSummary, SharePackageStatus, TeamHomeSummary, TeamMemberSummary, WorkstreamDetail, WorkstreamSummary } from './knowledge-coop.ts';
2
3
  export interface ControlPlaneClientOptions {
3
4
  baseUrl: string;
4
5
  accessToken?: string | null;
@@ -19,6 +20,16 @@ export declare class ControlPlaneClient {
19
20
  getTeamStorageLocator(teamId: string): Promise<TeamStorageLocator | null>;
20
21
  upsertTeamStorageLocator(teamId: string, input: UpsertTeamStorageLocatorRequest): Promise<TeamStorageLocator>;
21
22
  getProjectHosting(projectId: string): Promise<ProjectHosting | null>;
23
+ upsertProjectConnection(projectId: string, input: {
24
+ mode: string;
25
+ projectApiBaseUrl?: string | null;
26
+ executionOwner?: string | null;
27
+ metadata?: Record<string, unknown>;
28
+ rotateRunnerToken?: boolean;
29
+ }): Promise<{
30
+ connection: ProjectConnection | null;
31
+ runnerToken: string | null;
32
+ }>;
22
33
  upsertProjectHosting(projectId: string, input: UpsertProjectHostingRequest): Promise<ProjectHosting>;
23
34
  listProjectEnvironments(projectId: string): Promise<ProjectEnvironment[]>;
24
35
  upsertProjectEnvironment(projectId: string, environment: ProjectEnvironmentName, input: UpsertProjectEnvironmentRequest): Promise<ProjectEnvironment>;
@@ -42,4 +53,52 @@ export declare class ControlPlaneClient {
42
53
  recordRunnerAgentPoolRegistration(projectId: string, poolId: string, input: RecordAgentPoolRegistrationRequest): Promise<AgentPoolRegistration>;
43
54
  recordRunnerScaleDecision(projectId: string, poolName: string, input: Pick<ScaleDecision, 'environment' | 'workDayId' | 'desiredWorkers' | 'observedQueueDepth' | 'observedActiveLeases' | 'reason' | 'metadata'>): Promise<AgentPoolScaleDecision>;
44
55
  recordRunnerWorkdaySummary(projectId: string, input: ProjectWorkdaySummary): Promise<ProjectWorkdaySummary>;
56
+ getTeamHomeSummary(teamId: string): Promise<TeamHomeSummary>;
57
+ listTeamInboxItems(teamId: string): Promise<InboxItem[]>;
58
+ listTeamMembers(teamId: string): Promise<TeamMemberSummary[]>;
59
+ listTeamProducts(teamId: string): Promise<CatalogItem[]>;
60
+ launchProject(teamId: string, input: LaunchProjectRequest): Promise<LaunchProjectResult>;
61
+ getProjectSummary(projectId: string): Promise<ProjectOverviewSummary>;
62
+ getProjectDirectSummary(projectId: string): Promise<{
63
+ projectId: string;
64
+ objectiveCount: number;
65
+ questionCount: number;
66
+ noteCount: number;
67
+ proposalCount: number;
68
+ decisionCount: number;
69
+ savedViews: string[];
70
+ items: DirectBoardItemSummary[];
71
+ }>;
72
+ listProjectWorkstreams(projectId: string): Promise<{
73
+ projectId: string;
74
+ items: WorkstreamSummary[];
75
+ columns: string[];
76
+ }>;
77
+ getProjectWorkstream(projectId: string, workstreamId: string): Promise<WorkstreamDetail>;
78
+ listProjectReleases(projectId: string): Promise<{
79
+ projectId: string;
80
+ history: ReleaseSummary[];
81
+ currentProd: ReleaseSummary | null;
82
+ stagingCandidates: ReleaseSummary[];
83
+ }>;
84
+ getProjectRelease(projectId: string, releaseId: string): Promise<ReleaseDetail>;
85
+ getProjectAgents(projectId: string): Promise<{
86
+ projectId: string;
87
+ agents: AgentStatusRecord[];
88
+ }>;
89
+ listProjectAgentMessages(projectId: string): Promise<AgentMessageRecord[]>;
90
+ getProjectShare(projectId: string): Promise<{
91
+ projectId: string;
92
+ packages: SharePackageStatus[];
93
+ listing: CatalogItem | null;
94
+ canPublish: boolean;
95
+ }>;
96
+ approveJob(jobId: string, note?: string | null): Promise<{
97
+ id: string;
98
+ status: string;
99
+ }>;
100
+ rejectJob(jobId: string, reason: string): Promise<{
101
+ id: string;
102
+ status: string;
103
+ }>;
45
104
  }
@@ -73,6 +73,11 @@ class ControlPlaneClient {
73
73
  getProjectHosting(projectId) {
74
74
  return this.requestJson("GET", `/v1/projects/${encodeURIComponent(projectId)}/hosting`);
75
75
  }
76
+ upsertProjectConnection(projectId, input) {
77
+ return this.requestJson("POST", `/v1/projects/${encodeURIComponent(projectId)}/connection`, {
78
+ body: input
79
+ });
80
+ }
76
81
  upsertProjectHosting(projectId, input) {
77
82
  return this.requestJson("PUT", `/v1/projects/${encodeURIComponent(projectId)}/hosting`, { body: input });
78
83
  }
@@ -223,6 +228,60 @@ class ControlPlaneClient {
223
228
  { body: input }
224
229
  );
225
230
  }
231
+ getTeamHomeSummary(teamId) {
232
+ return this.requestJson("GET", `/v1/teams/${encodeURIComponent(teamId)}/home`);
233
+ }
234
+ listTeamInboxItems(teamId) {
235
+ return this.requestJson("GET", `/v1/teams/${encodeURIComponent(teamId)}/inbox`);
236
+ }
237
+ listTeamMembers(teamId) {
238
+ return this.requestJson("GET", `/v1/teams/${encodeURIComponent(teamId)}/members`);
239
+ }
240
+ listTeamProducts(teamId) {
241
+ return this.requestJson("GET", `/v1/teams/${encodeURIComponent(teamId)}/products`);
242
+ }
243
+ launchProject(teamId, input) {
244
+ return this.requestJson("POST", `/v1/teams/${encodeURIComponent(teamId)}/projects/launch`, {
245
+ body: input
246
+ });
247
+ }
248
+ getProjectSummary(projectId) {
249
+ return this.requestJson("GET", `/v1/projects/${encodeURIComponent(projectId)}/summary`);
250
+ }
251
+ getProjectDirectSummary(projectId) {
252
+ return this.requestJson("GET", `/v1/projects/${encodeURIComponent(projectId)}/direct`);
253
+ }
254
+ listProjectWorkstreams(projectId) {
255
+ return this.requestJson("GET", `/v1/projects/${encodeURIComponent(projectId)}/workstreams`);
256
+ }
257
+ getProjectWorkstream(projectId, workstreamId) {
258
+ return this.requestJson("GET", `/v1/projects/${encodeURIComponent(projectId)}/workstreams/${encodeURIComponent(workstreamId)}`);
259
+ }
260
+ listProjectReleases(projectId) {
261
+ return this.requestJson("GET", `/v1/projects/${encodeURIComponent(projectId)}/releases`);
262
+ }
263
+ getProjectRelease(projectId, releaseId) {
264
+ return this.requestJson("GET", `/v1/projects/${encodeURIComponent(projectId)}/releases/${encodeURIComponent(releaseId)}`);
265
+ }
266
+ getProjectAgents(projectId) {
267
+ return this.requestJson("GET", `/v1/projects/${encodeURIComponent(projectId)}/agents`);
268
+ }
269
+ listProjectAgentMessages(projectId) {
270
+ return this.requestJson("GET", `/v1/projects/${encodeURIComponent(projectId)}/agents/messages`);
271
+ }
272
+ getProjectShare(projectId) {
273
+ return this.requestJson("GET", `/v1/projects/${encodeURIComponent(projectId)}/share`);
274
+ }
275
+ approveJob(jobId, note) {
276
+ return this.requestJson("POST", `/v1/jobs/${encodeURIComponent(jobId)}/approve`, {
277
+ body: note ? { note } : {}
278
+ });
279
+ }
280
+ rejectJob(jobId, reason) {
281
+ return this.requestJson("POST", `/v1/jobs/${encodeURIComponent(jobId)}/reject`, {
282
+ body: { reason }
283
+ });
284
+ }
226
285
  }
227
286
  export {
228
287
  ControlPlaneClient
@@ -89,6 +89,6 @@ export interface ControlPlaneReporterOptions {
89
89
  export interface ResolveControlPlaneReporterOptions extends ControlPlaneReporterOptions {
90
90
  hostingKind?: TreeseedHostingKind | null;
91
91
  registration?: TreeseedHostingRegistration | null;
92
- deployConfig?: Pick<TreeseedDeployConfig, 'hosting'> | null;
92
+ deployConfig?: Pick<TreeseedDeployConfig, 'hosting' | 'runtime'> | null;
93
93
  }
94
94
  export declare function createControlPlaneReporter(options?: ResolveControlPlaneReporterOptions): ControlPlaneReporter;
@@ -7,7 +7,14 @@ function resolveReporterKind(options) {
7
7
  return options.kind;
8
8
  }
9
9
  const hostingKind = options.hostingKind ?? options.deployConfig?.hosting?.kind ?? (process.env.TREESEED_HOSTING_KIND?.trim() || null) ?? "self_hosted_project";
10
- const registration = options.registration ?? options.deployConfig?.hosting?.registration ?? (process.env.TREESEED_HOSTING_REGISTRATION?.trim() || null) ?? "none";
10
+ const registration = options.registration ?? (options.deployConfig?.runtime?.registration === "required" ? "optional" : options.deployConfig?.runtime?.registration) ?? options.deployConfig?.hosting?.registration ?? (process.env.TREESEED_HOSTING_REGISTRATION?.trim() || null) ?? "none";
11
+ const runtimeMode = options.deployConfig?.runtime?.mode ?? null;
12
+ if (runtimeMode === "none") {
13
+ return "noop";
14
+ }
15
+ if (runtimeMode === "byo_attached" || runtimeMode === "treeseed_managed") {
16
+ return registration === "none" ? "noop" : "market_http";
17
+ }
11
18
  if (hostingKind === "hosted_project") {
12
19
  return "market_http";
13
20
  }
@@ -15,7 +22,7 @@ function resolveReporterKind(options) {
15
22
  return "market_http";
16
23
  }
17
24
  if (hostingKind === "market_control_plane") {
18
- return normalizeUrl(options.baseUrl ?? options.deployConfig?.hosting?.marketBaseUrl) ? "self_http" : "noop";
25
+ return normalizeUrl(options.baseUrl ?? process.env.TREESEED_MARKET_API_BASE_URL ?? options.deployConfig?.hosting?.marketBaseUrl) ? "self_http" : "noop";
19
26
  }
20
27
  return "noop";
21
28
  }
@@ -109,10 +116,10 @@ function createControlPlaneReporter(options = {}) {
109
116
  return new NoopControlPlaneReporter();
110
117
  }
111
118
  const projectId = String(
112
- options.projectId ?? options.deployConfig?.hosting?.projectId ?? process.env.TREESEED_PROJECT_ID ?? ""
119
+ options.projectId ?? process.env.TREESEED_PROJECT_ID ?? options.deployConfig?.hosting?.projectId ?? ""
113
120
  ).trim() || null;
114
121
  const baseUrl = normalizeUrl(
115
- options.baseUrl ?? options.deployConfig?.hosting?.marketBaseUrl ?? process.env.TREESEED_MARKET_API_BASE_URL ?? null
122
+ options.baseUrl ?? process.env.TREESEED_MARKET_API_BASE_URL ?? options.deployConfig?.hosting?.marketBaseUrl ?? null
116
123
  );
117
124
  const runnerToken = String(options.runnerToken ?? process.env.TREESEED_PROJECT_RUNNER_TOKEN ?? "").trim() || null;
118
125
  if (!projectId || !baseUrl || !runnerToken) {
@@ -1,5 +1,6 @@
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 './knowledge-coop.ts';
3
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, SdkRecordRunRequest, SdkRecordScaleDecisionRequest, SdkRecordTaskCreditsRequest, SdkReportEntity, SdkRunEntity, SdkSearchRequest, SdkStartWorkDayRequest, SdkSubscriptionEntity, SdkTaskEntity, SdkTaskSearchRequest, SdkUpsertWorkPolicyRequest, SdkTaskProgressRequest, SdkUpdateRequest, SdkWorkDayEntity, ScaleDecision, TaskCreditLedgerEntry, WorkdayPolicy, PrioritySnapshot } from './sdk-types.ts';
4
5
  import { type LeaseClaimInput } from './stores/lease-store.ts';
5
6
  export interface TryClaimContentLeaseInput extends LeaseClaimInput {
@@ -44,6 +45,18 @@ export interface AgentDatabase {
44
45
  listTaskCredits(workDayId: string): Promise<TaskCreditLedgerEntry[]>;
45
46
  recordScaleDecision(request: SdkRecordScaleDecisionRequest): Promise<ScaleDecision | null>;
46
47
  getLatestScaleDecision(projectId: string, environment: string, poolName: string): Promise<ScaleDecision | null>;
48
+ listWorkstreams(projectId: string): Promise<WorkstreamSummary[]>;
49
+ getWorkstream(workstreamId: string): Promise<WorkstreamDetail | null>;
50
+ upsertWorkstream(input: Partial<WorkstreamSummary> & Pick<WorkstreamSummary, 'projectId' | 'title'>): Promise<WorkstreamSummary | null>;
51
+ appendWorkstreamEvent(input: Pick<WorkstreamEvent, 'projectId' | 'workstreamId' | 'kind'> & Partial<WorkstreamEvent>): Promise<WorkstreamEvent | null>;
52
+ listReleases(projectId: string): Promise<ReleaseSummary[]>;
53
+ getRelease(releaseId: string): Promise<ReleaseDetail | null>;
54
+ upsertRelease(input: Partial<ReleaseSummary> & Pick<ReleaseSummary, 'projectId' | 'version'> & {
55
+ items?: ReleaseDetail['items'];
56
+ }): Promise<ReleaseDetail | null>;
57
+ listSharePackages(projectId: string): Promise<SharePackageStatus[]>;
58
+ getSharePackage(packageId: string): Promise<SharePackageStatus | null>;
59
+ upsertSharePackage(input: Partial<SharePackageStatus> & Pick<SharePackageStatus, 'projectId' | 'kind' | 'title'>): Promise<SharePackageStatus | null>;
47
60
  }
48
61
  export declare class MemoryAgentDatabase implements AgentDatabase {
49
62
  private readonly subscriptions;
@@ -62,6 +75,7 @@ export declare class MemoryAgentDatabase implements AgentDatabase {
62
75
  private readonly prioritySnapshots;
63
76
  private readonly taskCreditLedger;
64
77
  private readonly scaleDecisions;
78
+ private readonly knowledgeCoop;
65
79
  private messageId;
66
80
  constructor(seed?: {
67
81
  subscriptions?: SdkSubscriptionEntity[];
@@ -149,6 +163,18 @@ export declare class MemoryAgentDatabase implements AgentDatabase {
149
163
  listTaskCredits(workDayId: string): Promise<TaskCreditLedgerEntry[]>;
150
164
  recordScaleDecision(request: SdkRecordScaleDecisionRequest): Promise<ScaleDecision>;
151
165
  getLatestScaleDecision(projectId: string, environment: string, poolName: string): Promise<ScaleDecision>;
166
+ listWorkstreams(projectId: string): Promise<WorkstreamSummary[]>;
167
+ getWorkstream(workstreamId: string): Promise<WorkstreamDetail | null>;
168
+ upsertWorkstream(input: Partial<WorkstreamSummary> & Pick<WorkstreamSummary, 'projectId' | 'title'>): Promise<WorkstreamSummary>;
169
+ appendWorkstreamEvent(input: Pick<WorkstreamEvent, 'projectId' | 'workstreamId' | 'kind'> & Partial<WorkstreamEvent>): Promise<WorkstreamEvent>;
170
+ listReleases(projectId: string): Promise<ReleaseSummary[]>;
171
+ getRelease(releaseId: string): Promise<ReleaseDetail | null>;
172
+ upsertRelease(input: Partial<ReleaseSummary> & Pick<ReleaseSummary, 'projectId' | 'version'> & {
173
+ items?: ReleaseDetail['items'];
174
+ }): Promise<ReleaseDetail | null>;
175
+ listSharePackages(projectId: string): Promise<SharePackageStatus[]>;
176
+ getSharePackage(packageId: string): Promise<SharePackageStatus | null>;
177
+ upsertSharePackage(input: Partial<SharePackageStatus> & Pick<SharePackageStatus, 'projectId' | 'kind' | 'title'>): Promise<SharePackageStatus>;
152
178
  }
153
179
  export declare class CloudflareD1AgentDatabase implements AgentDatabase {
154
180
  readonly db: D1DatabaseLike;
@@ -158,6 +184,7 @@ export declare class CloudflareD1AgentDatabase implements AgentDatabase {
158
184
  private readonly cursors;
159
185
  private readonly leases;
160
186
  private readonly operational;
187
+ private readonly knowledgeCoop;
161
188
  constructor(db: D1DatabaseLike);
162
189
  get(request: SdkGetRequest): Promise<Record<string, unknown> | null>;
163
190
  search(request: SdkSearchRequest): Promise<Record<string, unknown>[]>;
@@ -221,4 +248,35 @@ export declare class CloudflareD1AgentDatabase implements AgentDatabase {
221
248
  listTaskCredits(workDayId: string): Promise<TaskCreditLedgerEntry[]>;
222
249
  recordScaleDecision(request: SdkRecordScaleDecisionRequest): Promise<ScaleDecision | null>;
223
250
  getLatestScaleDecision(projectId: string, environment: string, poolName: string): Promise<ScaleDecision | null>;
251
+ listWorkstreams(projectId: string): Promise<WorkstreamSummary[]>;
252
+ getWorkstream(workstreamId: string): Promise<WorkstreamDetail | null>;
253
+ upsertWorkstream(input: Partial<WorkstreamSummary> & Pick<WorkstreamSummary, 'projectId' | 'title'>): Promise<{
254
+ events: WorkstreamEvent[];
255
+ id: string;
256
+ projectId: string;
257
+ title: string;
258
+ summary: string | null;
259
+ state: import("./knowledge-coop.ts").WorkstreamState;
260
+ branchName: string | null;
261
+ branchRef: string | null;
262
+ owner: string | null;
263
+ linkedItems: import("./knowledge-coop.ts").LinkedProjectRecordRef[];
264
+ verificationStatus: "completed" | "failed" | "waiting" | null;
265
+ verificationSummary: string | null;
266
+ lastSaveAt: string | null;
267
+ lastStageAt: string | null;
268
+ archivedAt: string | null;
269
+ createdAt: string;
270
+ updatedAt: string;
271
+ metadata?: Record<string, unknown>;
272
+ } | null>;
273
+ appendWorkstreamEvent(input: Pick<WorkstreamEvent, 'projectId' | 'workstreamId' | 'kind'> & Partial<WorkstreamEvent>): Promise<WorkstreamEvent | null>;
274
+ listReleases(projectId: string): Promise<ReleaseSummary[]>;
275
+ getRelease(releaseId: string): Promise<ReleaseDetail | null>;
276
+ upsertRelease(input: Partial<ReleaseSummary> & Pick<ReleaseSummary, 'projectId' | 'version'> & {
277
+ items?: ReleaseDetail['items'];
278
+ }): Promise<ReleaseDetail | null>;
279
+ listSharePackages(projectId: string): Promise<SharePackageStatus[]>;
280
+ getSharePackage(packageId: string): Promise<SharePackageStatus | null>;
281
+ upsertSharePackage(input: Partial<SharePackageStatus> & Pick<SharePackageStatus, 'projectId' | 'kind' | 'title'>): Promise<SharePackageStatus | null>;
224
282
  }
package/dist/d1-store.js CHANGED
@@ -4,6 +4,7 @@ import { normalizeFilterFields, normalizeMutationData, normalizeRecordToCanonica
4
4
  import { assertExpectedVersion } from "./sdk-version.js";
5
5
  import { resolveModelDefinition } from "./model-registry.js";
6
6
  import { CursorStore } from "./stores/cursor-store.js";
7
+ import { MemoryKnowledgeCoopStore, SqliteKnowledgeCoopStore } from "./stores/knowledge-coop-store.js";
7
8
  import { LeaseStore } from "./stores/lease-store.js";
8
9
  import { MessageStore } from "./stores/message-store.js";
9
10
  import { OperationalStore } from "./stores/operational-store.js";
@@ -57,6 +58,7 @@ class MemoryAgentDatabase {
57
58
  prioritySnapshots = /* @__PURE__ */ new Map();
58
59
  taskCreditLedger = /* @__PURE__ */ new Map();
59
60
  scaleDecisions = /* @__PURE__ */ new Map();
61
+ knowledgeCoop = new MemoryKnowledgeCoopStore();
60
62
  messageId = 0;
61
63
  constructor(seed) {
62
64
  for (const item of seed?.subscriptions ?? []) {
@@ -852,6 +854,36 @@ class MemoryAgentDatabase {
852
854
  async getLatestScaleDecision(projectId, environment, poolName) {
853
855
  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;
854
856
  }
857
+ listWorkstreams(projectId) {
858
+ return Promise.resolve(this.knowledgeCoop.listWorkstreams(projectId));
859
+ }
860
+ getWorkstream(workstreamId) {
861
+ return Promise.resolve(this.knowledgeCoop.getWorkstream(workstreamId));
862
+ }
863
+ upsertWorkstream(input) {
864
+ return Promise.resolve(this.knowledgeCoop.upsertWorkstream(input));
865
+ }
866
+ appendWorkstreamEvent(input) {
867
+ return Promise.resolve(this.knowledgeCoop.appendWorkstreamEvent(input));
868
+ }
869
+ listReleases(projectId) {
870
+ return Promise.resolve(this.knowledgeCoop.listReleases(projectId));
871
+ }
872
+ getRelease(releaseId) {
873
+ return Promise.resolve(this.knowledgeCoop.getRelease(releaseId));
874
+ }
875
+ upsertRelease(input) {
876
+ return Promise.resolve(this.knowledgeCoop.upsertRelease(input));
877
+ }
878
+ listSharePackages(projectId) {
879
+ return Promise.resolve(this.knowledgeCoop.listSharePackages(projectId));
880
+ }
881
+ getSharePackage(packageId) {
882
+ return Promise.resolve(this.knowledgeCoop.getSharePackage(packageId));
883
+ }
884
+ upsertSharePackage(input) {
885
+ return Promise.resolve(this.knowledgeCoop.upsertSharePackage(input));
886
+ }
855
887
  }
856
888
  class CloudflareD1AgentDatabase {
857
889
  constructor(db) {
@@ -862,6 +894,7 @@ class CloudflareD1AgentDatabase {
862
894
  this.cursors = new CursorStore(db);
863
895
  this.leases = new LeaseStore(db);
864
896
  this.operational = new OperationalStore(db);
897
+ this.knowledgeCoop = new SqliteKnowledgeCoopStore(db);
865
898
  }
866
899
  db;
867
900
  subscriptions;
@@ -870,6 +903,7 @@ class CloudflareD1AgentDatabase {
870
903
  cursors;
871
904
  leases;
872
905
  operational;
906
+ knowledgeCoop;
873
907
  async get(request) {
874
908
  if (request.model === "subscription") {
875
909
  return this.subscriptions.getByKey(String(request.id ?? request.slug ?? request.key ?? ""));
@@ -1234,6 +1268,36 @@ class CloudflareD1AgentDatabase {
1234
1268
  getLatestScaleDecision(projectId, environment, poolName) {
1235
1269
  return this.operational.getLatestScaleDecision(projectId, environment, poolName);
1236
1270
  }
1271
+ listWorkstreams(projectId) {
1272
+ return this.knowledgeCoop.listWorkstreams(projectId);
1273
+ }
1274
+ getWorkstream(workstreamId) {
1275
+ return this.knowledgeCoop.getWorkstream(workstreamId);
1276
+ }
1277
+ upsertWorkstream(input) {
1278
+ return this.knowledgeCoop.upsertWorkstream(input);
1279
+ }
1280
+ appendWorkstreamEvent(input) {
1281
+ return this.knowledgeCoop.appendWorkstreamEvent(input);
1282
+ }
1283
+ listReleases(projectId) {
1284
+ return this.knowledgeCoop.listReleases(projectId);
1285
+ }
1286
+ getRelease(releaseId) {
1287
+ return this.knowledgeCoop.getRelease(releaseId);
1288
+ }
1289
+ upsertRelease(input) {
1290
+ return this.knowledgeCoop.upsertRelease(input);
1291
+ }
1292
+ listSharePackages(projectId) {
1293
+ return this.knowledgeCoop.listSharePackages(projectId);
1294
+ }
1295
+ getSharePackage(packageId) {
1296
+ return this.knowledgeCoop.getSharePackage(packageId);
1297
+ }
1298
+ upsertSharePackage(input) {
1299
+ return this.knowledgeCoop.upsertSharePackage(input);
1300
+ }
1237
1301
  }
1238
1302
  export {
1239
1303
  CloudflareD1AgentDatabase,
package/dist/dispatch.js CHANGED
@@ -65,6 +65,12 @@ const LOCAL_ONLY_WORKFLOW_OPERATIONS = /* @__PURE__ */ new Set([
65
65
  "config",
66
66
  "auth:login",
67
67
  "auth:logout",
68
+ "secrets:status",
69
+ "secrets:unlock",
70
+ "secrets:lock",
71
+ "secrets:migrate-key",
72
+ "secrets:rotate-passphrase",
73
+ "secrets:rotate-machine-key",
68
74
  "dev",
69
75
  "dev:watch",
70
76
  "mailpit:up",
@@ -50,6 +50,10 @@ function builtinEntityTypeFor(model) {
50
50
  return "Question";
51
51
  case "note":
52
52
  return "Note";
53
+ case "proposal":
54
+ return "Proposal";
55
+ case "decision":
56
+ return "Decision";
53
57
  case "knowledge":
54
58
  return "Knowledge";
55
59
  case "book":
package/dist/index.d.ts CHANGED
@@ -3,6 +3,9 @@ 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 { executeKnowledgeCoopManagedLaunch, validateKnowledgeCoopManagedLaunchPrerequisites, } from './operations/services/knowledge-coop-launch.ts';
7
+ export { buildKnowledgeCoopKnowledgePackPackage, buildKnowledgeCoopTemplatePackage, importKnowledgeCoopKnowledgePack, } from './operations/services/knowledge-coop-packaging.ts';
8
+ export { KNOWLEDGE_COOP_AGENT_MESSAGE_KINDS, KNOWLEDGE_COOP_JOB_STATUSES, KNOWLEDGE_COOP_RELEASE_STATES, KNOWLEDGE_COOP_SHARE_PACKAGE_STATES, KNOWLEDGE_COOP_TEAM_CAPABILITIES, KNOWLEDGE_COOP_WORKSTREAM_STATES, normalizeKnowledgeCoopJobStatus, normalizeRemoteJobStatus, } from './knowledge-coop.ts';
6
9
  export { PUBLISHED_CONTENT_MANIFEST_SCHEMA_VERSION, EDITORIAL_PREVIEW_COOKIE, TeamScopedR2OverlayContentRuntimeProvider, TeamScopedR2OverlayContentPublishProvider, createTeamScopedR2OverlayContentRuntimeProvider, createTeamScopedR2OverlayContentPublishProvider, isTeamScopedR2ContentEnabled, parsePublishedCollectionIndex, parsePublishedContentManifest, parsePublishedOverlayManifest, readPublishedContentManifest, readPublishedOverlayManifest, resolveCloudflareR2Bucket, resolvePublishedContentBucketBinding, resolvePublishedContentManifestKey, resolvePublishedContentPreviewRoot, resolvePublishedContentPreviewTtlHours, resolveTeamScopedContentLocator, signEditorialPreviewToken, verifyEditorialPreviewToken, } from './platform/published-content.ts';
7
10
  export { createFilesystemContentSource, createPublishedContentPipeline, } from './platform/published-content-pipeline.ts';
8
11
  export { loadTreeseedManifest, loadTreeseedTenantManifest, resolveTreeseedTenantRoot, getTenantContentRoot, tenantFeatureEnabled, tenantModelRendered, } from './platform/tenant-config.ts';
@@ -21,7 +24,8 @@ export { TRESEED_OPERATION_SPECS, findTreeseedOperation, listTreeseedOperationNa
21
24
  export { TreeseedOperationsSdk } from './operations/runtime.ts';
22
25
  export { TreeseedWorkflowSdk } from './workflow.ts';
23
26
  export { getTreeseedVerifyDriverStatus, runTreeseedVerifyDriver } from './verification.ts';
24
- export type { 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, TaskCreditWeight, TaskCreditBudget, WorkdayPolicy, PrioritySnapshotItem, PrioritySnapshot, TaskCreditLedgerEntry, ScaleDecision, TeamStorageLocator, UpsertAgentPoolRequest, UpsertCatalogArtifactVersionRequest, UpsertCatalogItemRequest, UpsertProjectEnvironmentRequest, UpsertProjectHostingRequest, UpsertProjectInfrastructureResourceRequest, UpsertTeamStorageLocatorRequest, CreateProjectDeploymentRequest, RecordAgentPoolRegistrationRequest, WorkerPoolScaleResult, WorkerPoolScaler, } from './sdk-types.ts';
27
+ export type { KnowledgeCoopLaunchPreflightReport, KnowledgeCoopLaunchFailurePhase, KnowledgeCoopManagedLaunchInput, KnowledgeCoopManagedLaunchResult, AgentMessageKind, AgentMessageRecord, AgentStatusRecord, DirectBoardItemSummary, InboxItem, KnowledgeCoopJobStatus, 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, TaskCreditWeight, TaskCreditBudget, WorkdayPolicy, PrioritySnapshotItem, PrioritySnapshot, TaskCreditLedgerEntry, ScaleDecision, TeamStorageLocator, UpsertAgentPoolRequest, UpsertCatalogArtifactVersionRequest, UpsertCatalogItemRequest, UpsertProjectEnvironmentRequest, UpsertProjectHostingRequest, UpsertProjectInfrastructureResourceRequest, UpsertTeamStorageLocatorRequest, CreateProjectDeploymentRequest, RecordAgentPoolRegistrationRequest, WorkerPoolScaleResult, WorkerPoolScaler, } from './sdk-types.ts';
28
+ export type * from './knowledge-coop.ts';
25
29
  export type { ControlPlaneAgentPoolHeartbeat, ControlPlaneDeploymentReport, ControlPlaneEnvironmentReport, ControlPlaneReporter, ControlPlaneReporterKind, ControlPlaneResourceReport, ControlPlaneScaleDecisionReport, ControlPlaneWorkdaySummaryReport, } from './control-plane.ts';
26
30
  export type { ControlPlaneClientOptions } from './control-plane-client.ts';
27
31
  export type { TreeseedFieldAliasBinding, TreeseedFieldAliasRegistry, } from './field-aliases.ts';
package/dist/index.js CHANGED
@@ -3,6 +3,25 @@ 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
+ import {
7
+ executeKnowledgeCoopManagedLaunch,
8
+ validateKnowledgeCoopManagedLaunchPrerequisites
9
+ } from "./operations/services/knowledge-coop-launch.js";
10
+ import {
11
+ buildKnowledgeCoopKnowledgePackPackage,
12
+ buildKnowledgeCoopTemplatePackage,
13
+ importKnowledgeCoopKnowledgePack
14
+ } from "./operations/services/knowledge-coop-packaging.js";
15
+ import {
16
+ KNOWLEDGE_COOP_AGENT_MESSAGE_KINDS,
17
+ KNOWLEDGE_COOP_JOB_STATUSES,
18
+ KNOWLEDGE_COOP_RELEASE_STATES,
19
+ KNOWLEDGE_COOP_SHARE_PACKAGE_STATES,
20
+ KNOWLEDGE_COOP_TEAM_CAPABILITIES,
21
+ KNOWLEDGE_COOP_WORKSTREAM_STATES,
22
+ normalizeKnowledgeCoopJobStatus,
23
+ normalizeRemoteJobStatus
24
+ } from "./knowledge-coop.js";
6
25
  import {
7
26
  PUBLISHED_CONTENT_MANIFEST_SCHEMA_VERSION,
8
27
  EDITORIAL_PREVIEW_COOKIE,
@@ -108,6 +127,12 @@ export {
108
127
  ControlPlaneClient,
109
128
  DEFAULT_GRAPH_RANKING_PROVIDER,
110
129
  EDITORIAL_PREVIEW_COOKIE,
130
+ KNOWLEDGE_COOP_AGENT_MESSAGE_KINDS,
131
+ KNOWLEDGE_COOP_JOB_STATUSES,
132
+ KNOWLEDGE_COOP_RELEASE_STATES,
133
+ KNOWLEDGE_COOP_SHARE_PACKAGE_STATES,
134
+ KNOWLEDGE_COOP_TEAM_CAPABILITIES,
135
+ KNOWLEDGE_COOP_WORKSTREAM_STATES,
111
136
  MODEL_REGISTRY,
112
137
  PUBLISHED_CONTENT_MANIFEST_SCHEMA_VERSION,
113
138
  RemoteTemplateCatalogClient,
@@ -128,6 +153,8 @@ export {
128
153
  TreeseedWorkflowSdk,
129
154
  buildBuiltinModelRegistry,
130
155
  buildCopilotAllowToolArgs,
156
+ buildKnowledgeCoopKnowledgePackPackage,
157
+ buildKnowledgeCoopTemplatePackage,
131
158
  buildModelRegistry,
132
159
  buildScopedModelRegistry,
133
160
  canonicalizeFrontmatter,
@@ -137,12 +164,14 @@ export {
137
164
  createPublishedContentPipeline,
138
165
  createTeamScopedR2OverlayContentPublishProvider,
139
166
  createTeamScopedR2OverlayContentRuntimeProvider,
167
+ executeKnowledgeCoopManagedLaunch,
140
168
  executeSdkOperation,
141
169
  findDispatchCapability,
142
170
  findSdkOperation,
143
171
  findTreeseedOperation,
144
172
  getTenantContentRoot,
145
173
  getTreeseedVerifyDriverStatus,
174
+ importKnowledgeCoopKnowledgePack,
146
175
  isTeamScopedR2ContentEnabled,
147
176
  listSdkDispatchCapabilities,
148
177
  listSdkOperationNames,
@@ -154,8 +183,10 @@ export {
154
183
  normalizeAgentCliOptions,
155
184
  normalizeAliasedRecord,
156
185
  normalizeFilterFields,
186
+ normalizeKnowledgeCoopJobStatus,
157
187
  normalizeMutationData,
158
188
  normalizeRecordToCanonicalShape,
189
+ normalizeRemoteJobStatus,
159
190
  normalizeSortFields,
160
191
  parseGraphDsl,
161
192
  parsePublishedCollectionIndex,
@@ -182,6 +213,7 @@ export {
182
213
  signEditorialPreviewToken,
183
214
  tenantFeatureEnabled,
184
215
  tenantModelRendered,
216
+ validateKnowledgeCoopManagedLaunchPrerequisites,
185
217
  validateModelFieldAliases,
186
218
  verifyEditorialPreviewToken
187
219
  };