@treeseed/sdk 0.4.9 → 0.4.10
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/control-plane-client.d.ts +45 -0
- package/dist/control-plane-client.js +229 -0
- package/dist/control-plane.d.ts +94 -0
- package/dist/control-plane.js +125 -0
- package/dist/d1-store.d.ts +56 -1
- package/dist/d1-store.js +132 -0
- package/dist/index.d.ts +11 -1
- package/dist/index.js +69 -1
- package/dist/operations/services/config-runtime.d.ts +10 -0
- package/dist/operations/services/config-runtime.js +60 -2
- package/dist/operations/services/deploy.d.ts +95 -0
- package/dist/operations/services/deploy.js +350 -9
- package/dist/operations/services/github-automation.d.ts +37 -1
- package/dist/operations/services/github-automation.js +71 -14
- package/dist/operations/services/project-platform.d.ts +835 -0
- package/dist/operations/services/project-platform.js +782 -0
- package/dist/operations/services/railway-deploy.d.ts +113 -18
- package/dist/operations/services/railway-deploy.js +355 -6
- package/dist/operations/services/runtime-tools.d.ts +25 -0
- package/dist/operations/services/runtime-tools.js +65 -3
- package/dist/operations/services/template-registry.d.ts +1 -1
- package/dist/operations/services/template-registry.js +17 -3
- package/dist/platform/books-data.d.ts +3 -4
- package/dist/platform/books-data.js +30 -4
- package/dist/platform/contracts.d.ts +55 -2
- package/dist/platform/deploy-config.js +109 -4
- package/dist/platform/deploy-runtime.d.ts +2 -0
- package/dist/platform/deploy-runtime.js +9 -1
- package/dist/platform/env.yaml +677 -0
- package/dist/platform/environment.js +57 -2
- package/dist/platform/plugin.d.ts +8 -0
- package/dist/platform/plugins/constants.d.ts +2 -0
- package/dist/platform/plugins/constants.js +2 -0
- package/dist/platform/plugins/runtime.d.ts +2 -0
- package/dist/platform/plugins/runtime.js +9 -1
- package/dist/platform/plugins.d.ts +1 -1
- package/dist/platform/plugins.js +4 -0
- package/dist/platform/published-content-pipeline.d.ts +84 -0
- package/dist/platform/published-content-pipeline.js +543 -0
- package/dist/platform/published-content.d.ts +223 -0
- package/dist/platform/published-content.js +588 -0
- package/dist/platform/tenant/runtime-config.d.ts +1 -1
- package/dist/platform/tenant/runtime-config.js +34 -1
- package/dist/platform/tenant-config.d.ts +2 -1
- package/dist/platform/tenant-config.js +17 -1
- package/dist/platform/utils/site-config-schema.js +104 -0
- package/dist/plugin-default.d.ts +2 -0
- package/dist/plugin-default.js +2 -0
- package/dist/scripts/check-build-warnings.js +50 -0
- package/dist/scripts/config-treeseed.js +7 -0
- package/dist/scripts/tenant-workflow-action.js +71 -0
- package/dist/sdk-types.d.ts +442 -3
- package/dist/sdk-types.js +37 -1
- package/dist/sdk.d.ts +11 -1
- package/dist/sdk.js +40 -0
- package/dist/stores/operational-store.d.ts +22 -2
- package/dist/stores/operational-store.js +235 -0
- package/dist/template-catalog.js +8 -1
- package/dist/treeseed/template-catalog/templates/starter-basic/template/treeseed.site.yaml +20 -0
- package/dist/types/cloudflare.d.ts +23 -0
- package/dist/workflow/operations.d.ts +12 -3
- package/dist/workflow/policy.d.ts +1 -1
- package/package.json +7 -2
- package/templates/github/deploy.workflow.yml +442 -0
- package/templates/github/hosted-project.workflow.yml +77 -0
package/dist/d1-store.js
CHANGED
|
@@ -52,6 +52,11 @@ class MemoryAgentDatabase {
|
|
|
52
52
|
taskOutputs = /* @__PURE__ */ new Map();
|
|
53
53
|
graphRuns = /* @__PURE__ */ new Map();
|
|
54
54
|
reports = /* @__PURE__ */ new Map();
|
|
55
|
+
workPolicies = /* @__PURE__ */ new Map();
|
|
56
|
+
priorityOverrides = /* @__PURE__ */ new Map();
|
|
57
|
+
prioritySnapshots = /* @__PURE__ */ new Map();
|
|
58
|
+
taskCreditLedger = /* @__PURE__ */ new Map();
|
|
59
|
+
scaleDecisions = /* @__PURE__ */ new Map();
|
|
55
60
|
messageId = 0;
|
|
56
61
|
constructor(seed) {
|
|
57
62
|
for (const item of seed?.subscriptions ?? []) {
|
|
@@ -750,6 +755,103 @@ class MemoryAgentDatabase {
|
|
|
750
755
|
graph: workDay?.graphVersion ? { graphVersion: workDay.graphVersion } : null
|
|
751
756
|
};
|
|
752
757
|
}
|
|
758
|
+
async getWorkPolicy(projectId, environment = "local") {
|
|
759
|
+
return this.workPolicies.get(`${projectId}:${environment}`) ?? null;
|
|
760
|
+
}
|
|
761
|
+
async upsertWorkPolicy(request) {
|
|
762
|
+
const policy = {
|
|
763
|
+
projectId: request.projectId,
|
|
764
|
+
environment: request.environment,
|
|
765
|
+
schedule: request.schedule,
|
|
766
|
+
dailyTaskCreditBudget: request.dailyTaskCreditBudget,
|
|
767
|
+
maxQueuedTasks: request.maxQueuedTasks,
|
|
768
|
+
maxQueuedCredits: request.maxQueuedCredits,
|
|
769
|
+
autoscale: request.autoscale,
|
|
770
|
+
creditWeights: request.creditWeights ?? [],
|
|
771
|
+
metadata: request.metadata ?? {}
|
|
772
|
+
};
|
|
773
|
+
this.workPolicies.set(`${request.projectId}:${request.environment}`, policy);
|
|
774
|
+
return policy;
|
|
775
|
+
}
|
|
776
|
+
async listPriorityOverrides(projectId) {
|
|
777
|
+
return [...this.priorityOverrides.values()].filter((entry) => entry.projectId === projectId);
|
|
778
|
+
}
|
|
779
|
+
async upsertPriorityOverride(request) {
|
|
780
|
+
const record = {
|
|
781
|
+
id: request.id ?? crypto.randomUUID(),
|
|
782
|
+
projectId: request.projectId,
|
|
783
|
+
model: request.model,
|
|
784
|
+
subjectId: request.subjectId,
|
|
785
|
+
priority: request.priority,
|
|
786
|
+
estimatedCredits: request.estimatedCredits ?? null,
|
|
787
|
+
metadata: request.metadata ?? {},
|
|
788
|
+
createdAt: nowIso(),
|
|
789
|
+
updatedAt: nowIso()
|
|
790
|
+
};
|
|
791
|
+
this.priorityOverrides.set(record.id, record);
|
|
792
|
+
return record;
|
|
793
|
+
}
|
|
794
|
+
async createPrioritySnapshot(request) {
|
|
795
|
+
const snapshot = {
|
|
796
|
+
id: request.id ?? crypto.randomUUID(),
|
|
797
|
+
projectId: request.projectId,
|
|
798
|
+
workDayId: request.workDayId ?? null,
|
|
799
|
+
generatedAt: nowIso(),
|
|
800
|
+
items: request.items,
|
|
801
|
+
metadata: request.metadata ?? {}
|
|
802
|
+
};
|
|
803
|
+
this.prioritySnapshots.set(snapshot.id, snapshot);
|
|
804
|
+
return snapshot;
|
|
805
|
+
}
|
|
806
|
+
async getLatestPrioritySnapshot(projectId, workDayId) {
|
|
807
|
+
return [...this.prioritySnapshots.values()].filter((entry) => entry.projectId === projectId).filter((entry) => !workDayId || entry.workDayId === workDayId).sort((left, right) => right.generatedAt.localeCompare(left.generatedAt))[0] ?? null;
|
|
808
|
+
}
|
|
809
|
+
async recordTaskCredits(request) {
|
|
810
|
+
const entry = {
|
|
811
|
+
id: request.id ?? crypto.randomUUID(),
|
|
812
|
+
projectId: request.projectId,
|
|
813
|
+
workDayId: request.workDayId,
|
|
814
|
+
taskId: request.taskId ?? null,
|
|
815
|
+
phase: request.phase,
|
|
816
|
+
credits: request.credits,
|
|
817
|
+
metadata: request.metadata ?? {},
|
|
818
|
+
createdAt: nowIso()
|
|
819
|
+
};
|
|
820
|
+
this.taskCreditLedger.set(entry.id, entry);
|
|
821
|
+
const workDay = this.workDays.get(request.workDayId);
|
|
822
|
+
if (workDay) {
|
|
823
|
+
const delta = request.phase === "refund" ? -Math.abs(request.credits) : Math.abs(request.credits);
|
|
824
|
+
this.workDays.set(workDay.id, {
|
|
825
|
+
...workDay,
|
|
826
|
+
capacityUsed: Math.max(0, workDay.capacityUsed + delta),
|
|
827
|
+
updatedAt: nowIso()
|
|
828
|
+
});
|
|
829
|
+
}
|
|
830
|
+
return entry;
|
|
831
|
+
}
|
|
832
|
+
async listTaskCredits(workDayId) {
|
|
833
|
+
return [...this.taskCreditLedger.values()].filter((entry) => entry.workDayId === workDayId).sort((left, right) => left.createdAt.localeCompare(right.createdAt));
|
|
834
|
+
}
|
|
835
|
+
async recordScaleDecision(request) {
|
|
836
|
+
const decision = {
|
|
837
|
+
id: request.id ?? crypto.randomUUID(),
|
|
838
|
+
projectId: request.projectId,
|
|
839
|
+
environment: request.environment,
|
|
840
|
+
poolName: request.poolName,
|
|
841
|
+
workDayId: request.workDayId ?? null,
|
|
842
|
+
desiredWorkers: request.desiredWorkers,
|
|
843
|
+
observedQueueDepth: request.observedQueueDepth,
|
|
844
|
+
observedActiveLeases: request.observedActiveLeases,
|
|
845
|
+
reason: request.reason,
|
|
846
|
+
metadata: request.metadata ?? {},
|
|
847
|
+
createdAt: nowIso()
|
|
848
|
+
};
|
|
849
|
+
this.scaleDecisions.set(decision.id, decision);
|
|
850
|
+
return decision;
|
|
851
|
+
}
|
|
852
|
+
async getLatestScaleDecision(projectId, environment, poolName) {
|
|
853
|
+
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
|
+
}
|
|
753
855
|
}
|
|
754
856
|
class CloudflareD1AgentDatabase {
|
|
755
857
|
constructor(db) {
|
|
@@ -1102,6 +1204,36 @@ class CloudflareD1AgentDatabase {
|
|
|
1102
1204
|
graph: workDay?.graphVersion ? { graphVersion: workDay.graphVersion } : null
|
|
1103
1205
|
};
|
|
1104
1206
|
}
|
|
1207
|
+
getWorkPolicy(projectId, environment = "local") {
|
|
1208
|
+
return this.operational.getWorkPolicy(projectId, environment);
|
|
1209
|
+
}
|
|
1210
|
+
upsertWorkPolicy(request) {
|
|
1211
|
+
return this.operational.upsertWorkPolicy(request);
|
|
1212
|
+
}
|
|
1213
|
+
listPriorityOverrides(projectId) {
|
|
1214
|
+
return this.operational.listPriorityOverrides(projectId);
|
|
1215
|
+
}
|
|
1216
|
+
upsertPriorityOverride(request) {
|
|
1217
|
+
return this.operational.upsertPriorityOverride(request);
|
|
1218
|
+
}
|
|
1219
|
+
createPrioritySnapshot(request) {
|
|
1220
|
+
return this.operational.createPrioritySnapshot(request);
|
|
1221
|
+
}
|
|
1222
|
+
getLatestPrioritySnapshot(projectId, workDayId) {
|
|
1223
|
+
return this.operational.getLatestPrioritySnapshot(projectId, workDayId);
|
|
1224
|
+
}
|
|
1225
|
+
recordTaskCredits(request) {
|
|
1226
|
+
return this.operational.recordTaskCredits(request);
|
|
1227
|
+
}
|
|
1228
|
+
listTaskCredits(workDayId) {
|
|
1229
|
+
return this.operational.listTaskCredits(workDayId);
|
|
1230
|
+
}
|
|
1231
|
+
recordScaleDecision(request) {
|
|
1232
|
+
return this.operational.recordScaleDecision(request);
|
|
1233
|
+
}
|
|
1234
|
+
getLatestScaleDecision(projectId, environment, poolName) {
|
|
1235
|
+
return this.operational.getLatestScaleDecision(projectId, environment, poolName);
|
|
1236
|
+
}
|
|
1105
1237
|
}
|
|
1106
1238
|
export {
|
|
1107
1239
|
CloudflareD1AgentDatabase,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
export { AgentSdk, ScopedAgentSdk } from './sdk.ts';
|
|
2
2
|
export { ContentGraphRuntime } from './graph.ts';
|
|
3
|
+
export { projectConnectionModeFromHosting } from './sdk-types.ts';
|
|
4
|
+
export { createControlPlaneReporter } from './control-plane.ts';
|
|
5
|
+
export { ControlPlaneClient } from './control-plane-client.ts';
|
|
6
|
+
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
|
+
export { createFilesystemContentSource, createPublishedContentPipeline, } from './platform/published-content-pipeline.ts';
|
|
8
|
+
export { loadTreeseedManifest, loadTreeseedTenantManifest, resolveTreeseedTenantRoot, getTenantContentRoot, tenantFeatureEnabled, tenantModelRendered, } from './platform/tenant-config.ts';
|
|
3
9
|
export { parseGraphDsl } from './graph/dsl.ts';
|
|
4
10
|
export { createDefaultGraphRankingProvider, DEFAULT_GRAPH_RANKING_PROVIDER } from './graph/ranking.ts';
|
|
5
11
|
export { BUILTIN_MODEL_REGISTRY, MODEL_REGISTRY, buildBuiltinModelRegistry, buildModelRegistry, buildScopedModelRegistry, mergeModelRegistries, resolveModelDefinition, } from './model-registry.ts';
|
|
@@ -15,11 +21,15 @@ export { TRESEED_OPERATION_SPECS, findTreeseedOperation, listTreeseedOperationNa
|
|
|
15
21
|
export { TreeseedOperationsSdk } from './operations/runtime.ts';
|
|
16
22
|
export { TreeseedWorkflowSdk } from './workflow.ts';
|
|
17
23
|
export { getTreeseedVerifyDriverStatus, runTreeseedVerifyDriver } from './verification.ts';
|
|
18
|
-
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, ProjectExecutionOwner, ProjectRunnerRegistrationState, RemoteJob, RemoteJobEvent, RemoteJobStatus, } from './sdk-types.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';
|
|
25
|
+
export type { ControlPlaneAgentPoolHeartbeat, ControlPlaneDeploymentReport, ControlPlaneEnvironmentReport, ControlPlaneReporter, ControlPlaneReporterKind, ControlPlaneResourceReport, ControlPlaneScaleDecisionReport, ControlPlaneWorkdaySummaryReport, } from './control-plane.ts';
|
|
26
|
+
export type { ControlPlaneClientOptions } from './control-plane-client.ts';
|
|
19
27
|
export type { TreeseedFieldAliasBinding, TreeseedFieldAliasRegistry, } from './field-aliases.ts';
|
|
20
28
|
export type * from './operations-types.ts';
|
|
21
29
|
export type * from './workflow.ts';
|
|
22
30
|
export type { AgentDatabase } from './d1-store.ts';
|
|
23
31
|
export type { D1DatabaseLike, D1PreparedStatementLike } from './types/cloudflare.ts';
|
|
32
|
+
export type { ContentPublishProvider, ContentRuntimeProvider, CatalogIndexEntry, EditorialPreviewTokenPayload, HostedContentMode, PublishContentObjectInput, PublishOverlayInput, PublishContentRevisionInput, PublishContentRevisionResult, PublishOverlayResult, PromoteOverlayInput, PublishedArtifactVersion, PublishedCollectionIndex, PublishedContentEntry, PublishedContentManifest, PublishedContentObjectPointer, PublishedRuntimePointers, PublishedOverlayManifest, PublishedContentVisibility, TeamScopedContentLocator, } from './platform/published-content.ts';
|
|
33
|
+
export type { ArtifactBuilder, ArtifactBuilderResult, CollectionIndexBuilder, ContentSource, ContentSourceEntry, EntryRenderer, PublishedContentPipeline, PublishedContentPipelineContext, RuntimeBundleBuilder, RuntimeBundleBuilderResult, RenderedContentEntry, } from './platform/published-content-pipeline.ts';
|
|
24
34
|
export { CloudflareHttpD1Database } from './d1-http.ts';
|
|
25
35
|
export type * from './remote.ts';
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,42 @@
|
|
|
1
1
|
import { AgentSdk, ScopedAgentSdk } from "./sdk.js";
|
|
2
2
|
import { ContentGraphRuntime } from "./graph.js";
|
|
3
|
+
import { projectConnectionModeFromHosting } from "./sdk-types.js";
|
|
4
|
+
import { createControlPlaneReporter } from "./control-plane.js";
|
|
5
|
+
import { ControlPlaneClient } from "./control-plane-client.js";
|
|
6
|
+
import {
|
|
7
|
+
PUBLISHED_CONTENT_MANIFEST_SCHEMA_VERSION,
|
|
8
|
+
EDITORIAL_PREVIEW_COOKIE,
|
|
9
|
+
TeamScopedR2OverlayContentRuntimeProvider,
|
|
10
|
+
TeamScopedR2OverlayContentPublishProvider,
|
|
11
|
+
createTeamScopedR2OverlayContentRuntimeProvider,
|
|
12
|
+
createTeamScopedR2OverlayContentPublishProvider,
|
|
13
|
+
isTeamScopedR2ContentEnabled,
|
|
14
|
+
parsePublishedCollectionIndex,
|
|
15
|
+
parsePublishedContentManifest,
|
|
16
|
+
parsePublishedOverlayManifest,
|
|
17
|
+
readPublishedContentManifest,
|
|
18
|
+
readPublishedOverlayManifest,
|
|
19
|
+
resolveCloudflareR2Bucket,
|
|
20
|
+
resolvePublishedContentBucketBinding,
|
|
21
|
+
resolvePublishedContentManifestKey,
|
|
22
|
+
resolvePublishedContentPreviewRoot,
|
|
23
|
+
resolvePublishedContentPreviewTtlHours,
|
|
24
|
+
resolveTeamScopedContentLocator,
|
|
25
|
+
signEditorialPreviewToken,
|
|
26
|
+
verifyEditorialPreviewToken
|
|
27
|
+
} from "./platform/published-content.js";
|
|
28
|
+
import {
|
|
29
|
+
createFilesystemContentSource,
|
|
30
|
+
createPublishedContentPipeline
|
|
31
|
+
} from "./platform/published-content-pipeline.js";
|
|
32
|
+
import {
|
|
33
|
+
loadTreeseedManifest,
|
|
34
|
+
loadTreeseedTenantManifest,
|
|
35
|
+
resolveTreeseedTenantRoot,
|
|
36
|
+
getTenantContentRoot,
|
|
37
|
+
tenantFeatureEnabled,
|
|
38
|
+
tenantModelRendered
|
|
39
|
+
} from "./platform/tenant-config.js";
|
|
3
40
|
import { parseGraphDsl } from "./graph/dsl.js";
|
|
4
41
|
import { createDefaultGraphRankingProvider, DEFAULT_GRAPH_RANKING_PROVIDER } from "./graph/ranking.js";
|
|
5
42
|
import {
|
|
@@ -68,8 +105,11 @@ export {
|
|
|
68
105
|
CloudflareQueuePullClient,
|
|
69
106
|
CloudflareQueuePushClient,
|
|
70
107
|
ContentGraphRuntime,
|
|
108
|
+
ControlPlaneClient,
|
|
71
109
|
DEFAULT_GRAPH_RANKING_PROVIDER,
|
|
110
|
+
EDITORIAL_PREVIEW_COOKIE,
|
|
72
111
|
MODEL_REGISTRY,
|
|
112
|
+
PUBLISHED_CONTENT_MANIFEST_SCHEMA_VERSION,
|
|
73
113
|
RemoteTemplateCatalogClient,
|
|
74
114
|
RemoteTreeseedAuthClient,
|
|
75
115
|
RemoteTreeseedClient,
|
|
@@ -82,6 +122,8 @@ export {
|
|
|
82
122
|
TREESEED_REMOTE_CONTRACT_HEADER,
|
|
83
123
|
TREESEED_REMOTE_CONTRACT_VERSION,
|
|
84
124
|
TRESEED_OPERATION_SPECS,
|
|
125
|
+
TeamScopedR2OverlayContentPublishProvider,
|
|
126
|
+
TeamScopedR2OverlayContentRuntimeProvider,
|
|
85
127
|
TreeseedOperationsSdk,
|
|
86
128
|
TreeseedWorkflowSdk,
|
|
87
129
|
buildBuiltinModelRegistry,
|
|
@@ -89,16 +131,25 @@ export {
|
|
|
89
131
|
buildModelRegistry,
|
|
90
132
|
buildScopedModelRegistry,
|
|
91
133
|
canonicalizeFrontmatter,
|
|
134
|
+
createControlPlaneReporter,
|
|
92
135
|
createDefaultGraphRankingProvider,
|
|
136
|
+
createFilesystemContentSource,
|
|
137
|
+
createPublishedContentPipeline,
|
|
138
|
+
createTeamScopedR2OverlayContentPublishProvider,
|
|
139
|
+
createTeamScopedR2OverlayContentRuntimeProvider,
|
|
93
140
|
executeSdkOperation,
|
|
94
141
|
findDispatchCapability,
|
|
95
142
|
findSdkOperation,
|
|
96
143
|
findTreeseedOperation,
|
|
144
|
+
getTenantContentRoot,
|
|
97
145
|
getTreeseedVerifyDriverStatus,
|
|
146
|
+
isTeamScopedR2ContentEnabled,
|
|
98
147
|
listSdkDispatchCapabilities,
|
|
99
148
|
listSdkOperationNames,
|
|
100
149
|
listTreeseedOperationNames,
|
|
101
150
|
listWorkflowDispatchCapabilities,
|
|
151
|
+
loadTreeseedManifest,
|
|
152
|
+
loadTreeseedTenantManifest,
|
|
102
153
|
mergeModelRegistries,
|
|
103
154
|
normalizeAgentCliOptions,
|
|
104
155
|
normalizeAliasedRecord,
|
|
@@ -107,13 +158,30 @@ export {
|
|
|
107
158
|
normalizeRecordToCanonicalShape,
|
|
108
159
|
normalizeSortFields,
|
|
109
160
|
parseGraphDsl,
|
|
161
|
+
parsePublishedCollectionIndex,
|
|
162
|
+
parsePublishedContentManifest,
|
|
163
|
+
parsePublishedOverlayManifest,
|
|
110
164
|
parseTemplateCatalogResponse,
|
|
111
165
|
preprocessAliasedRecord,
|
|
166
|
+
projectConnectionModeFromHosting,
|
|
112
167
|
readCanonicalFieldValue,
|
|
168
|
+
readPublishedContentManifest,
|
|
169
|
+
readPublishedOverlayManifest,
|
|
113
170
|
resolveAliasedField,
|
|
171
|
+
resolveCloudflareR2Bucket,
|
|
114
172
|
resolveModelDefinition,
|
|
115
173
|
resolveModelField,
|
|
174
|
+
resolvePublishedContentBucketBinding,
|
|
175
|
+
resolvePublishedContentManifestKey,
|
|
176
|
+
resolvePublishedContentPreviewRoot,
|
|
177
|
+
resolvePublishedContentPreviewTtlHours,
|
|
116
178
|
resolveSdkRecordVersion,
|
|
179
|
+
resolveTeamScopedContentLocator,
|
|
180
|
+
resolveTreeseedTenantRoot,
|
|
117
181
|
runTreeseedVerifyDriver,
|
|
118
|
-
|
|
182
|
+
signEditorialPreviewToken,
|
|
183
|
+
tenantFeatureEnabled,
|
|
184
|
+
tenantModelRendered,
|
|
185
|
+
validateModelFieldAliases,
|
|
186
|
+
verifyEditorialPreviewToken
|
|
119
187
|
};
|
|
@@ -273,6 +273,7 @@ export declare function syncTreeseedRailwayEnvironment({ tenantRoot, scope, dryR
|
|
|
273
273
|
baseUrl: any;
|
|
274
274
|
environmentName: any;
|
|
275
275
|
secrets: string[];
|
|
276
|
+
variables: string[];
|
|
276
277
|
dryRun: boolean;
|
|
277
278
|
} | null)[];
|
|
278
279
|
};
|
|
@@ -290,9 +291,12 @@ export declare function initializeTreeseedPersistentEnvironment({ tenantRoot, sc
|
|
|
290
291
|
workerName: any;
|
|
291
292
|
siteUrl: any;
|
|
292
293
|
accountId: any;
|
|
294
|
+
pages: any;
|
|
293
295
|
formGuardKv: any;
|
|
294
296
|
sessionKv: any;
|
|
295
297
|
siteDataDb: any;
|
|
298
|
+
queue: any;
|
|
299
|
+
content: any;
|
|
296
300
|
};
|
|
297
301
|
secrets: string[];
|
|
298
302
|
};
|
|
@@ -350,6 +354,12 @@ export declare function finalizeTreeseedConfig({ tenantRoot, scopes, sync, env,
|
|
|
350
354
|
}>;
|
|
351
355
|
connectionChecks: ReturnType<typeof checkTreeseedProviderConnections>[];
|
|
352
356
|
validationByScope: Record<TreeseedConfigScope, ReturnType<typeof validateTreeseedEnvironmentValues>>;
|
|
357
|
+
readinessByScope: Record<TreeseedConfigScope, {
|
|
358
|
+
configured: boolean;
|
|
359
|
+
provisioned: boolean;
|
|
360
|
+
deployable: boolean;
|
|
361
|
+
checks: Record<string, unknown>;
|
|
362
|
+
}>;
|
|
353
363
|
};
|
|
354
364
|
export declare function collectTreeseedPrintEnvReport({ tenantRoot, scope, env, revealSecrets, }: {
|
|
355
365
|
tenantRoot: string;
|
|
@@ -19,9 +19,11 @@ import {
|
|
|
19
19
|
markManagedServicesInitialized,
|
|
20
20
|
markDeploymentInitialized,
|
|
21
21
|
provisionCloudflareResources,
|
|
22
|
-
syncCloudflareSecrets
|
|
22
|
+
syncCloudflareSecrets,
|
|
23
|
+
verifyProvisionedCloudflareResources
|
|
23
24
|
} from "./deploy.js";
|
|
24
25
|
import { maybeResolveGitHubRepositorySlug } from "./github-automation.js";
|
|
26
|
+
import { validateRailwayDeployPrerequisites } from "./railway-deploy.js";
|
|
25
27
|
import { loadCliDeployConfig, resolveWranglerBin, withProcessCwd } from "./runtime-tools.js";
|
|
26
28
|
const MACHINE_CONFIG_RELATIVE_PATH = ".treeseed/config/machine.yaml";
|
|
27
29
|
const MACHINE_KEY_HOME_RELATIVE_PATH = ".treeseed/config/machine.key";
|
|
@@ -1181,6 +1183,7 @@ function syncTreeseedRailwayEnvironment({ tenantRoot, scope = "prod", dryRun = f
|
|
|
1181
1183
|
const values = resolveTreeseedMachineEnvironmentValues(tenantRoot, scope);
|
|
1182
1184
|
const registry = collectTreeseedEnvironmentContext(tenantRoot);
|
|
1183
1185
|
const railwaySecretNames = registry.entries.filter((entry) => entry.scopes.includes(scope) && entry.targets.includes("railway-secret")).map((entry) => entry.id).filter((key) => typeof values[key] === "string" && values[key].length > 0);
|
|
1186
|
+
const railwayVariableNames = registry.entries.filter((entry) => entry.scopes.includes(scope) && entry.targets.includes("railway-var")).map((entry) => entry.id).filter((key) => typeof values[key] === "string" && values[key].length > 0);
|
|
1184
1187
|
const services = ["api", "agents", "manager", "worker", "runner", "workdayStart", "workdayReport"].map((serviceKey) => {
|
|
1185
1188
|
const service = deployConfig.services?.[serviceKey];
|
|
1186
1189
|
if (!service || service.enabled === false || (service.provider ?? "railway") !== "railway") {
|
|
@@ -1198,6 +1201,7 @@ function syncTreeseedRailwayEnvironment({ tenantRoot, scope = "prod", dryRun = f
|
|
|
1198
1201
|
baseUrl: environment?.baseUrl ?? service.publicBaseUrl ?? "(unset)",
|
|
1199
1202
|
environmentName: environment?.railwayEnvironment ?? scope,
|
|
1200
1203
|
secrets: railwaySecretNames,
|
|
1204
|
+
variables: railwayVariableNames,
|
|
1201
1205
|
dryRun
|
|
1202
1206
|
};
|
|
1203
1207
|
}).filter(Boolean);
|
|
@@ -1208,6 +1212,12 @@ function syncTreeseedRailwayEnvironment({ tenantRoot, scope = "prod", dryRun = f
|
|
|
1208
1212
|
{ cwd: service.rootDir, dryRun, input: values[key] }
|
|
1209
1213
|
);
|
|
1210
1214
|
}
|
|
1215
|
+
for (const key of service.variables) {
|
|
1216
|
+
runRailway(
|
|
1217
|
+
["variable", "set", "--service", service.serviceName || service.serviceId, "--environment", service.environmentName, "--stdin", "--skip-deploys", key],
|
|
1218
|
+
{ cwd: service.rootDir, dryRun, input: values[key] }
|
|
1219
|
+
);
|
|
1220
|
+
}
|
|
1211
1221
|
}
|
|
1212
1222
|
return {
|
|
1213
1223
|
scope,
|
|
@@ -1230,6 +1240,40 @@ function initializeTreeseedPersistentEnvironment({ tenantRoot, scope = "prod", d
|
|
|
1230
1240
|
secrets: syncedSecrets
|
|
1231
1241
|
};
|
|
1232
1242
|
}
|
|
1243
|
+
function summarizePersistentReadiness(tenantRoot, scope, validation, connectionChecks) {
|
|
1244
|
+
if (scope === "local") {
|
|
1245
|
+
return {
|
|
1246
|
+
configured: validation.ok,
|
|
1247
|
+
provisioned: true,
|
|
1248
|
+
deployable: validation.ok,
|
|
1249
|
+
checks: {
|
|
1250
|
+
validation: validation.ok,
|
|
1251
|
+
connections: connectionChecks.every((check) => check.ready || check.skipped)
|
|
1252
|
+
}
|
|
1253
|
+
};
|
|
1254
|
+
}
|
|
1255
|
+
const cloudflare = verifyProvisionedCloudflareResources(tenantRoot, { scope });
|
|
1256
|
+
let railwayReady = true;
|
|
1257
|
+
try {
|
|
1258
|
+
validateRailwayDeployPrerequisites(tenantRoot, scope);
|
|
1259
|
+
} catch {
|
|
1260
|
+
railwayReady = false;
|
|
1261
|
+
}
|
|
1262
|
+
const configured = validation.ok;
|
|
1263
|
+
const provisioned = cloudflare.ok && railwayReady;
|
|
1264
|
+
const deployable = configured && provisioned && connectionChecks.every((check) => check.ready || check.skipped);
|
|
1265
|
+
return {
|
|
1266
|
+
configured,
|
|
1267
|
+
provisioned,
|
|
1268
|
+
deployable,
|
|
1269
|
+
checks: {
|
|
1270
|
+
validation: validation.ok,
|
|
1271
|
+
connections: connectionChecks.every((check) => check.ready || check.skipped),
|
|
1272
|
+
cloudflare: cloudflare.checks,
|
|
1273
|
+
railway: railwayReady
|
|
1274
|
+
}
|
|
1275
|
+
};
|
|
1276
|
+
}
|
|
1233
1277
|
function colorize(value, code) {
|
|
1234
1278
|
return `\x1B[${code}m${value}\x1B[0m`;
|
|
1235
1279
|
}
|
|
@@ -1413,7 +1457,8 @@ function finalizeTreeseedConfig({
|
|
|
1413
1457
|
synced: {},
|
|
1414
1458
|
initialized: [],
|
|
1415
1459
|
connectionChecks: [],
|
|
1416
|
-
validationByScope: {}
|
|
1460
|
+
validationByScope: {},
|
|
1461
|
+
readinessByScope: {}
|
|
1417
1462
|
};
|
|
1418
1463
|
for (const scope of scopes) {
|
|
1419
1464
|
const validation = validateTreeseedEnvironmentValues({
|
|
@@ -1460,6 +1505,19 @@ ${details}`);
|
|
|
1460
1505
|
if (sync === "railway" || sync === "all") {
|
|
1461
1506
|
summary.synced.railway = syncTreeseedRailwayEnvironment({ tenantRoot, scope: scopes.at(-1) ?? "prod" });
|
|
1462
1507
|
}
|
|
1508
|
+
for (const scope of scopes) {
|
|
1509
|
+
summary.readinessByScope[scope] = summarizePersistentReadiness(
|
|
1510
|
+
tenantRoot,
|
|
1511
|
+
scope,
|
|
1512
|
+
summary.validationByScope[scope],
|
|
1513
|
+
summary.connectionChecks.find((report) => report.scope === scope)?.checks ?? []
|
|
1514
|
+
);
|
|
1515
|
+
if (scope !== "local" && summary.readinessByScope[scope].deployable !== true) {
|
|
1516
|
+
throw new Error(
|
|
1517
|
+
`Treeseed config readiness failed for ${scope}: configuration is not deployable.`
|
|
1518
|
+
);
|
|
1519
|
+
}
|
|
1520
|
+
}
|
|
1463
1521
|
return summary;
|
|
1464
1522
|
}
|
|
1465
1523
|
function collectTreeseedPrintEnvReport({
|
|
@@ -20,6 +20,13 @@ export declare function ensureGeneratedWranglerConfig(tenantRoot: any, options?:
|
|
|
20
20
|
slug: string;
|
|
21
21
|
siteUrl: string;
|
|
22
22
|
contactEmail: string;
|
|
23
|
+
hosting: {
|
|
24
|
+
kind: string;
|
|
25
|
+
registration: string;
|
|
26
|
+
marketBaseUrl: string | undefined;
|
|
27
|
+
teamId: string | undefined;
|
|
28
|
+
projectId: string | undefined;
|
|
29
|
+
} | undefined;
|
|
23
30
|
cloudflare: {
|
|
24
31
|
accountId: string;
|
|
25
32
|
workerName: string | undefined;
|
|
@@ -27,6 +34,21 @@ export declare function ensureGeneratedWranglerConfig(tenantRoot: any, options?:
|
|
|
27
34
|
dlqName: string | undefined;
|
|
28
35
|
d1Binding: string | undefined;
|
|
29
36
|
queueBinding: string | undefined;
|
|
37
|
+
pages: {
|
|
38
|
+
projectName: string | undefined;
|
|
39
|
+
previewProjectName: string | undefined;
|
|
40
|
+
productionBranch: string;
|
|
41
|
+
stagingBranch: string;
|
|
42
|
+
buildOutputDir: string | undefined;
|
|
43
|
+
} | undefined;
|
|
44
|
+
r2: {
|
|
45
|
+
binding: string | undefined;
|
|
46
|
+
bucketName: string | undefined;
|
|
47
|
+
publicBaseUrl: string | undefined;
|
|
48
|
+
manifestKeyTemplate: string;
|
|
49
|
+
previewRootTemplate: string;
|
|
50
|
+
previewTtlHours: number;
|
|
51
|
+
} | undefined;
|
|
30
52
|
};
|
|
31
53
|
plugins: {
|
|
32
54
|
package: string;
|
|
@@ -48,6 +70,8 @@ export declare function ensureGeneratedWranglerConfig(tenantRoot: any, options?:
|
|
|
48
70
|
};
|
|
49
71
|
deploy: string;
|
|
50
72
|
content: {
|
|
73
|
+
runtime: string;
|
|
74
|
+
publish: string;
|
|
51
75
|
docs: string;
|
|
52
76
|
};
|
|
53
77
|
site: string;
|
|
@@ -69,6 +93,7 @@ export declare function ensureGeneratedWranglerConfig(tenantRoot: any, options?:
|
|
|
69
93
|
rootDir: string | undefined;
|
|
70
94
|
buildCommand: string | undefined;
|
|
71
95
|
startCommand: string | undefined;
|
|
96
|
+
schedule: any;
|
|
72
97
|
};
|
|
73
98
|
environments: {
|
|
74
99
|
local: {
|
|
@@ -122,6 +147,13 @@ export declare function validateDeployPrerequisites(tenantRoot: any, { requireRe
|
|
|
122
147
|
slug: string;
|
|
123
148
|
siteUrl: string;
|
|
124
149
|
contactEmail: string;
|
|
150
|
+
hosting: {
|
|
151
|
+
kind: string;
|
|
152
|
+
registration: string;
|
|
153
|
+
marketBaseUrl: string | undefined;
|
|
154
|
+
teamId: string | undefined;
|
|
155
|
+
projectId: string | undefined;
|
|
156
|
+
} | undefined;
|
|
125
157
|
cloudflare: {
|
|
126
158
|
accountId: string;
|
|
127
159
|
workerName: string | undefined;
|
|
@@ -129,6 +161,21 @@ export declare function validateDeployPrerequisites(tenantRoot: any, { requireRe
|
|
|
129
161
|
dlqName: string | undefined;
|
|
130
162
|
d1Binding: string | undefined;
|
|
131
163
|
queueBinding: string | undefined;
|
|
164
|
+
pages: {
|
|
165
|
+
projectName: string | undefined;
|
|
166
|
+
previewProjectName: string | undefined;
|
|
167
|
+
productionBranch: string;
|
|
168
|
+
stagingBranch: string;
|
|
169
|
+
buildOutputDir: string | undefined;
|
|
170
|
+
} | undefined;
|
|
171
|
+
r2: {
|
|
172
|
+
binding: string | undefined;
|
|
173
|
+
bucketName: string | undefined;
|
|
174
|
+
publicBaseUrl: string | undefined;
|
|
175
|
+
manifestKeyTemplate: string;
|
|
176
|
+
previewRootTemplate: string;
|
|
177
|
+
previewTtlHours: number;
|
|
178
|
+
} | undefined;
|
|
132
179
|
};
|
|
133
180
|
plugins: {
|
|
134
181
|
package: string;
|
|
@@ -150,6 +197,8 @@ export declare function validateDeployPrerequisites(tenantRoot: any, { requireRe
|
|
|
150
197
|
};
|
|
151
198
|
deploy: string;
|
|
152
199
|
content: {
|
|
200
|
+
runtime: string;
|
|
201
|
+
publish: string;
|
|
153
202
|
docs: string;
|
|
154
203
|
};
|
|
155
204
|
site: string;
|
|
@@ -171,6 +220,7 @@ export declare function validateDeployPrerequisites(tenantRoot: any, { requireRe
|
|
|
171
220
|
rootDir: string | undefined;
|
|
172
221
|
buildCommand: string | undefined;
|
|
173
222
|
startCommand: string | undefined;
|
|
223
|
+
schedule: any;
|
|
174
224
|
};
|
|
175
225
|
environments: {
|
|
176
226
|
local: {
|
|
@@ -205,6 +255,13 @@ export declare function validateDestroyPrerequisites(tenantRoot: any, { requireR
|
|
|
205
255
|
slug: string;
|
|
206
256
|
siteUrl: string;
|
|
207
257
|
contactEmail: string;
|
|
258
|
+
hosting: {
|
|
259
|
+
kind: string;
|
|
260
|
+
registration: string;
|
|
261
|
+
marketBaseUrl: string | undefined;
|
|
262
|
+
teamId: string | undefined;
|
|
263
|
+
projectId: string | undefined;
|
|
264
|
+
} | undefined;
|
|
208
265
|
cloudflare: {
|
|
209
266
|
accountId: string;
|
|
210
267
|
workerName: string | undefined;
|
|
@@ -212,6 +269,21 @@ export declare function validateDestroyPrerequisites(tenantRoot: any, { requireR
|
|
|
212
269
|
dlqName: string | undefined;
|
|
213
270
|
d1Binding: string | undefined;
|
|
214
271
|
queueBinding: string | undefined;
|
|
272
|
+
pages: {
|
|
273
|
+
projectName: string | undefined;
|
|
274
|
+
previewProjectName: string | undefined;
|
|
275
|
+
productionBranch: string;
|
|
276
|
+
stagingBranch: string;
|
|
277
|
+
buildOutputDir: string | undefined;
|
|
278
|
+
} | undefined;
|
|
279
|
+
r2: {
|
|
280
|
+
binding: string | undefined;
|
|
281
|
+
bucketName: string | undefined;
|
|
282
|
+
publicBaseUrl: string | undefined;
|
|
283
|
+
manifestKeyTemplate: string;
|
|
284
|
+
previewRootTemplate: string;
|
|
285
|
+
previewTtlHours: number;
|
|
286
|
+
} | undefined;
|
|
215
287
|
};
|
|
216
288
|
plugins: {
|
|
217
289
|
package: string;
|
|
@@ -233,6 +305,8 @@ export declare function validateDestroyPrerequisites(tenantRoot: any, { requireR
|
|
|
233
305
|
};
|
|
234
306
|
deploy: string;
|
|
235
307
|
content: {
|
|
308
|
+
runtime: string;
|
|
309
|
+
publish: string;
|
|
236
310
|
docs: string;
|
|
237
311
|
};
|
|
238
312
|
site: string;
|
|
@@ -254,6 +328,7 @@ export declare function validateDestroyPrerequisites(tenantRoot: any, { requireR
|
|
|
254
328
|
rootDir: string | undefined;
|
|
255
329
|
buildCommand: string | undefined;
|
|
256
330
|
startCommand: string | undefined;
|
|
331
|
+
schedule: any;
|
|
257
332
|
};
|
|
258
333
|
environments: {
|
|
259
334
|
local: {
|
|
@@ -294,9 +369,12 @@ export declare function destroyCloudflareResources(tenantRoot: any, options?: {}
|
|
|
294
369
|
workerName: any;
|
|
295
370
|
siteUrl: any;
|
|
296
371
|
accountId: any;
|
|
372
|
+
pages: any;
|
|
297
373
|
formGuardKv: any;
|
|
298
374
|
sessionKv: any;
|
|
299
375
|
siteDataDb: any;
|
|
376
|
+
queue: any;
|
|
377
|
+
content: any;
|
|
300
378
|
};
|
|
301
379
|
operations: {
|
|
302
380
|
worker: {
|
|
@@ -351,11 +429,28 @@ export declare function provisionCloudflareResources(tenantRoot: any, options?:
|
|
|
351
429
|
workerName: any;
|
|
352
430
|
siteUrl: any;
|
|
353
431
|
accountId: any;
|
|
432
|
+
pages: any;
|
|
354
433
|
formGuardKv: any;
|
|
355
434
|
sessionKv: any;
|
|
356
435
|
siteDataDb: any;
|
|
436
|
+
queue: any;
|
|
437
|
+
content: any;
|
|
357
438
|
};
|
|
358
439
|
export declare function syncCloudflareSecrets(tenantRoot: any, options?: {}): string[];
|
|
440
|
+
export declare function verifyProvisionedCloudflareResources(tenantRoot: any, options?: {}): {
|
|
441
|
+
ok: boolean;
|
|
442
|
+
target: any;
|
|
443
|
+
checks: {
|
|
444
|
+
pages: boolean;
|
|
445
|
+
formGuardKv: boolean;
|
|
446
|
+
sessionKv: boolean;
|
|
447
|
+
d1: boolean;
|
|
448
|
+
queue: boolean;
|
|
449
|
+
dlq: boolean;
|
|
450
|
+
r2: boolean;
|
|
451
|
+
};
|
|
452
|
+
state: any;
|
|
453
|
+
};
|
|
359
454
|
export declare function runRemoteD1Migrations(tenantRoot: any, options?: {}): {
|
|
360
455
|
databaseName: any;
|
|
361
456
|
dryRun: boolean;
|