@treeseed/sdk 0.10.24 → 0.10.25

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 (39) hide show
  1. package/dist/index.d.ts +12 -2
  2. package/dist/index.js +42 -1
  3. package/dist/market-client.d.ts +23 -0
  4. package/dist/market-client.js +30 -0
  5. package/dist/operations/providers/default.js +103 -10
  6. package/dist/operations/repository-operations.d.ts +6 -1
  7. package/dist/operations/repository-operations.js +44 -0
  8. package/dist/operations/services/config-runtime.d.ts +24 -9
  9. package/dist/operations/services/config-runtime.js +60 -12
  10. package/dist/operations/services/deploy.js +6 -1
  11. package/dist/operations/services/hub-launch.js +1 -0
  12. package/dist/operations/services/hub-provider-launch.d.ts +11 -1
  13. package/dist/operations/services/hub-provider-launch.js +81 -8
  14. package/dist/operations/services/project-host-operations.d.ts +153 -0
  15. package/dist/operations/services/project-host-operations.js +365 -0
  16. package/dist/operations/services/project-platform.d.ts +198 -193
  17. package/dist/operations/services/project-platform.js +29 -14
  18. package/dist/operations/services/railway-deploy.d.ts +3 -0
  19. package/dist/operations/services/railway-deploy.js +74 -35
  20. package/dist/operations/services/release-candidate.js +8 -2
  21. package/dist/operations/services/template-host-bindings.d.ts +68 -0
  22. package/dist/operations/services/template-host-bindings.js +400 -0
  23. package/dist/operations/services/template-registry.d.ts +22 -2
  24. package/dist/operations/services/template-registry.js +60 -3
  25. package/dist/operations/services/template-secret-sync.d.ts +97 -0
  26. package/dist/operations/services/template-secret-sync.js +292 -0
  27. package/dist/platform/environment.d.ts +3 -0
  28. package/dist/project-workflow.d.ts +7 -1
  29. package/dist/scripts/scaffold-site.js +3 -2
  30. package/dist/scripts/test-scaffold.js +2 -1
  31. package/dist/sdk-types.d.ts +87 -0
  32. package/dist/sdk-types.js +29 -0
  33. package/dist/template-catalog.js +3 -1
  34. package/dist/template-launch-requirements.d.ts +118 -0
  35. package/dist/template-launch-requirements.js +759 -0
  36. package/dist/template-launch-ui.d.ts +85 -0
  37. package/dist/template-launch-ui.js +189 -0
  38. package/dist/treeseed/template-catalog/catalog.fixture.json +330 -3
  39. package/package.json +13 -1
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { AgentSdk, ScopedAgentSdk } from './sdk.ts';
2
2
  export { ContentGraphRuntime } from './graph.ts';
3
- export { projectConnectionModeFromHosting } from './sdk-types.ts';
3
+ export { TREESEED_DEFAULT_STARTER_TEMPLATE_ID, projectConnectionModeFromHosting } from './sdk-types.ts';
4
4
  export { createControlPlaneReporter } from './control-plane.ts';
5
5
  export { ControlPlaneClient } from './control-plane-client.ts';
6
6
  export * from './seeds/index.ts';
@@ -32,6 +32,16 @@ export { resolveSdkRecordVersion } from './sdk-version.ts';
32
32
  export { normalizeAliasedRecord, preprocessAliasedRecord, resolveAliasedField, } from './field-aliases.ts';
33
33
  export { canonicalizeFrontmatter, normalizeFilterFields, normalizeMutationData, normalizeRecordToCanonicalShape, normalizeSortFields, readCanonicalFieldValue, resolveModelField, validateModelFieldAliases, } from './sdk-fields.ts';
34
34
  export { RemoteTemplateCatalogClient, parseTemplateCatalogResponse } from './template-catalog.ts';
35
+ export { normalizeProjectLaunchHostBindings, normalizeTemplateLaunchRequirements, parseProjectLaunchHostBindingSpecs, resolveProjectLaunchHostBindings, validateTemplateLaunchRequirements, } from './template-launch-requirements.ts';
36
+ export type { ParseProjectLaunchHostBindingSpecsOptions, ParseProjectLaunchHostBindingSpecsResult, ProjectLaunchConfigWritePlanItem, ProjectLaunchHostInventoryRecord, ProjectLaunchLocalHostBindingSummary, ProjectLaunchResolvedHostBinding, ProjectLaunchSecretDeploymentPlanItem, ResolveProjectLaunchHostBindingsOptions, ResolveProjectLaunchHostBindingsResult, } from './template-launch-requirements.ts';
37
+ export { deriveProjectLaunchRequirementsViewModel, } from './template-launch-ui.ts';
38
+ export type { DeriveProjectLaunchRequirementsViewModelOptions, ProjectLaunchHostRequirementViewModel, ProjectLaunchRequirementHostChoice, ProjectLaunchRequirementsViewModel, ProjectLaunchResourceRequirementViewModel, ProjectLaunchSecretRequirementViewModel, } from './template-launch-ui.ts';
39
+ export { applyProjectLaunchHostBindingConfig, auditProjectLaunchHostBindingConfig, preserveProjectLaunchHostBindingConfigOverlay, } from './operations/services/template-host-bindings.ts';
40
+ export type { ApplyProjectLaunchHostBindingConfigOptions, ProjectLaunchHostBindingConfigAuditDiagnostic, ProjectLaunchHostBindingConfigAuditResult, ProjectLaunchHostBindingConfigApplyResult, ProjectLaunchHostBindingConfigWriteSummary, ProjectLaunchHostBindingEnvironmentWriteSummary, } from './operations/services/template-host-bindings.ts';
41
+ export { ProjectLaunchSecretSyncError, resolveProjectLaunchSecretValueOverlay, syncProjectLaunchHostBindingSecrets, } from './operations/services/template-secret-sync.ts';
42
+ export type { ProjectLaunchResolvedSecretValueItem, ProjectLaunchSecretSyncAdapters, ProjectLaunchSecretSyncProgressEvent, ProjectLaunchSecretSyncProvider, ProjectLaunchSecretSyncProviderStatus, ProjectLaunchSecretSyncProviderSummary, ProjectLaunchSecretSyncResult, ProjectLaunchSecretSyncStatus, ProjectLaunchSecretSyncSummaryItem, ProjectLaunchSecretSyncTargetKind, ProjectLaunchSecretValueDiagnostic, ProjectLaunchSecretValueOverlayResult, ResolveProjectLaunchSecretValueOverlayOptions, SyncProjectLaunchHostBindingSecretsOptions, } from './operations/services/template-secret-sync.ts';
43
+ export { deriveProjectHostBindingsView, executeProjectHostBindingOperation, planProjectHostBindingOperation, } from './operations/services/project-host-operations.ts';
44
+ export type { ExecuteProjectHostBindingOperationContext, ExecuteProjectHostBindingOperationInput, ExecuteProjectHostBindingOperationResult, PlanProjectHostBindingOperationOptions, PlanProjectHostBindingOperationResult, ProjectHostBindingsView, ProjectHostOperationDiagnostic, ProjectHostOperationKind, ProjectHostOperationStatus, ProjectHostRequirementBindingView, } from './operations/services/project-host-operations.ts';
35
45
  export { MarketClient, MarketApiError, DEFAULT_TREESEED_MARKET_BASE_URL, TREESEED_CATALOG_MARKET_API_BASE_URLS_ENV, TREESEED_CENTRAL_MARKET_API_BASE_URL_ENV, TREESEED_MARKET_API_BASE_URL_ENV, addMarketProfile, clearMarketSession, listIntegratedMarketCatalog, loadMarketRegistryState, removeMarketProfile, resolveCatalogMarketProfiles, resolveDefaultCentralMarketBaseUrl, resolveIntegratedCatalogArtifactDownload, resolveMarketProfile, resolveMarketSession, setActiveMarketProfile, setMarketSession, verifyArtifactBytes, writeMarketRegistryState, } from './market-client.ts';
36
46
  export { TREESEED_REMOTE_CONTRACT_HEADER, TREESEED_REMOTE_CONTRACT_VERSION, CloudflareQueuePullClient, CloudflareQueuePushClient, RemoteTreeseedClient, RemoteTreeseedAuthClient, RemoteTreeseedDispatchClient, RemoteTreeseedJobsClient, RemoteTreeseedRunnerClient, RemoteTreeseedSdkClient, RemoteTreeseedOperationsClient, } from './remote.ts';
37
47
  export { TRESEED_OPERATION_SPECS, findTreeseedOperation, listTreeseedOperationNames, } from './operations-registry.ts';
@@ -40,7 +50,7 @@ export { TreeseedWorkflowSdk } from './workflow.ts';
40
50
  export * from './db/index.ts';
41
51
  export { collectTreeseedReconcileStatus, createTreeseedReconcileRegistry, deriveTreeseedDesiredUnits, destroyTreeseedTargetUnits, observeTreeseedUnits, planTreeseedReconciliation, reconcileTreeseedTarget, } from './reconcile/index.ts';
42
52
  export { getTreeseedVerifyDriverStatus, runTreeseedVerifyDriver } from './verification.ts';
43
- 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, ProjectDeploymentActionAvailability, ProjectDeploymentEnvironment, ProjectDeploymentEvent, ProjectDeploymentKind, ProjectDeploymentReadiness, ProjectDeploymentStatus, ProjectEnvironment, ProjectExecutionOwner, ProjectWebDeploymentAction, ProjectWebMonitorCheck, ProjectWebMonitorCheckSource, ProjectWebMonitorCheckStatus, ProjectWebMonitorResult, ProjectWebMonitorStatus, 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, CreditConversionProfile, DerivedCapacityAvailability, DerivedCapacityInput, DerivedCapacitySummary, NativeUsageObservation, 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, CreateProjectWebDeploymentRequest, CreateProjectWebDeploymentResponse, 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';
53
+ export type { KnowledgeHubProviderLaunchPreflightReport, KnowledgeHubProviderLaunchFailurePhase, KnowledgeHubProviderLaunchInput, KnowledgeHubProviderLaunchResult, AgentMessageKind, AgentMessageRecord, AgentStatusRecord, DirectBoardItemSummary, InboxItem, ProjectJobStatus, LaunchProjectRequest, LaunchProjectResult, ProjectLaunchHostBindingInput, 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, TemplateConfigWrite, TemplateEnvironmentWrite, TemplateHostRequirement, TemplateLaunchRequirements, TemplateResourceRequirement, TemplateSecretRequirement, SdkUpdateRequest, ProjectCapabilityGrant, ProjectConnection, ProjectConnectionMode, ProjectDeployment, ProjectDeploymentActionAvailability, ProjectDeploymentEnvironment, ProjectDeploymentEvent, ProjectDeploymentKind, ProjectDeploymentReadiness, ProjectDeploymentStatus, ProjectEnvironment, ProjectExecutionOwner, ProjectWebDeploymentAction, ProjectWebMonitorCheck, ProjectWebMonitorCheckSource, ProjectWebMonitorCheckStatus, ProjectWebMonitorResult, ProjectWebMonitorStatus, 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, CreditConversionProfile, DerivedCapacityAvailability, DerivedCapacityInput, DerivedCapacitySummary, NativeUsageObservation, 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, CreateProjectWebDeploymentRequest, CreateProjectWebDeploymentResponse, 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';
44
54
  export type * from './project-workflow.ts';
45
55
  export type { ControlPlaneAgentPoolHeartbeat, ControlPlaneDeploymentReport, ControlPlaneEnvironmentReport, ControlPlaneReporter, ControlPlaneReporterKind, ControlPlaneResourceReport, ControlPlaneScaleDecisionReport, ControlPlaneWorkdaySummaryReport, } from './control-plane.ts';
46
56
  export type { ControlPlaneClientOptions } from './control-plane-client.ts';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { AgentSdk, ScopedAgentSdk } from "./sdk.js";
2
2
  import { ContentGraphRuntime } from "./graph.js";
3
- import { projectConnectionModeFromHosting } from "./sdk-types.js";
3
+ import { TREESEED_DEFAULT_STARTER_TEMPLATE_ID, projectConnectionModeFromHosting } from "./sdk-types.js";
4
4
  import { createControlPlaneReporter } from "./control-plane.js";
5
5
  import { ControlPlaneClient } from "./control-plane-client.js";
6
6
  export * from "./seeds/index.js";
@@ -259,6 +259,31 @@ import {
259
259
  validateModelFieldAliases
260
260
  } from "./sdk-fields.js";
261
261
  import { RemoteTemplateCatalogClient, parseTemplateCatalogResponse } from "./template-catalog.js";
262
+ import {
263
+ normalizeProjectLaunchHostBindings,
264
+ normalizeTemplateLaunchRequirements,
265
+ parseProjectLaunchHostBindingSpecs,
266
+ resolveProjectLaunchHostBindings,
267
+ validateTemplateLaunchRequirements
268
+ } from "./template-launch-requirements.js";
269
+ import {
270
+ deriveProjectLaunchRequirementsViewModel
271
+ } from "./template-launch-ui.js";
272
+ import {
273
+ applyProjectLaunchHostBindingConfig,
274
+ auditProjectLaunchHostBindingConfig,
275
+ preserveProjectLaunchHostBindingConfigOverlay
276
+ } from "./operations/services/template-host-bindings.js";
277
+ import {
278
+ ProjectLaunchSecretSyncError,
279
+ resolveProjectLaunchSecretValueOverlay,
280
+ syncProjectLaunchHostBindingSecrets
281
+ } from "./operations/services/template-secret-sync.js";
282
+ import {
283
+ deriveProjectHostBindingsView,
284
+ executeProjectHostBindingOperation,
285
+ planProjectHostBindingOperation
286
+ } from "./operations/services/project-host-operations.js";
262
287
  import {
263
288
  MarketClient,
264
289
  MarketApiError,
@@ -352,6 +377,7 @@ export {
352
377
  PUBLISHED_CONTENT_MANIFEST_SCHEMA_VERSION,
353
378
  PlatformOperationApiError,
354
379
  PlatformRunnerClient,
380
+ ProjectLaunchSecretSyncError,
355
381
  RELEASE_STATES,
356
382
  RemoteTemplateCatalogClient,
357
383
  RemoteTreeseedAuthClient,
@@ -365,6 +391,7 @@ export {
365
391
  ScopedAgentSdk,
366
392
  TREESEED_CATALOG_MARKET_API_BASE_URLS_ENV,
367
393
  TREESEED_CENTRAL_MARKET_API_BASE_URL_ENV,
394
+ TREESEED_DEFAULT_STARTER_TEMPLATE_ID,
368
395
  TREESEED_MARKET_API_BASE_URL_ENV,
369
396
  TREESEED_REMOTE_CONTRACT_HEADER,
370
397
  TREESEED_REMOTE_CONTRACT_VERSION,
@@ -375,12 +402,14 @@ export {
375
402
  TreeseedWorkflowSdk,
376
403
  WORKSTREAM_STATES,
377
404
  addMarketProfile,
405
+ applyProjectLaunchHostBindingConfig,
378
406
  assertCapacityProviderOkEnvelope,
379
407
  assertCapacityProviderPortfolioManifest,
380
408
  assertCapacityProviderRegistrationResponse,
381
409
  assertPlatformOperation,
382
410
  assertPlatformOperationEvent,
383
411
  assertPlatformOperationOkEnvelope,
412
+ auditProjectLaunchHostBindingConfig,
384
413
  buildBuiltinModelRegistry,
385
414
  buildCapacityProviderAuthHeaders,
386
415
  buildCopilotAllowToolArgs,
@@ -425,6 +454,8 @@ export {
425
454
  deriveAvailableCredits,
426
455
  derivePlatformOperationNavigation,
427
456
  derivePlatformRepositoryKey,
457
+ deriveProjectHostBindingsView,
458
+ deriveProjectLaunchRequirementsViewModel,
428
459
  deriveTreeseedDesiredUnits,
429
460
  destroyTreeseedTargetUnits,
430
461
  dispatchGitHubWorkflowRun,
@@ -441,6 +472,7 @@ export {
441
472
  executeKnowledgeHubLaunch,
442
473
  executeKnowledgeHubProviderLaunch,
443
474
  executePlatformRepositoryOperation,
475
+ executeProjectHostBindingOperation,
444
476
  executeSdkOperation,
445
477
  findDispatchCapability,
446
478
  findSdkOperation,
@@ -489,14 +521,17 @@ export {
489
521
  normalizePlatformRelationArray,
490
522
  normalizePredictiveReservePolicy,
491
523
  normalizeProjectJobStatus,
524
+ normalizeProjectLaunchHostBindings,
492
525
  normalizeRecordToCanonicalShape,
493
526
  normalizeRemoteJobStatus,
494
527
  normalizeSortFields,
495
528
  normalizeTaskAdmissionPolicy,
496
529
  normalizeTaskPlanProposal,
530
+ normalizeTemplateLaunchRequirements,
497
531
  normalizeUtilityPolicy,
498
532
  observeTreeseedUnits,
499
533
  parseGraphDsl,
534
+ parseProjectLaunchHostBindingSpecs,
500
535
  parsePublishedCollectionIndex,
501
536
  parsePublishedContentManifest,
502
537
  parsePublishedOverlayManifest,
@@ -504,11 +539,13 @@ export {
504
539
  persistCapacityProviderConnectionToTreeseedConfig,
505
540
  planKnowledgeHubLaunch,
506
541
  planKnowledgeHubRepositories,
542
+ planProjectHostBindingOperation,
507
543
  planTreeseedReconciliation,
508
544
  platformContentRelationPolicy,
509
545
  pollPlatformOperation,
510
546
  predictReserveForCapacityPlan,
511
547
  preprocessAliasedRecord,
548
+ preserveProjectLaunchHostBindingConfigOverlay,
512
549
  progressivelyAdmitPlanProposal,
513
550
  projectConnectionModeFromHosting,
514
551
  railwayGraphqlRequest,
@@ -536,6 +573,8 @@ export {
536
573
  resolveModelDefinition,
537
574
  resolveModelField,
538
575
  resolvePlatformRepositoryWorkspacePath,
576
+ resolveProjectLaunchHostBindings,
577
+ resolveProjectLaunchSecretValueOverlay,
539
578
  resolvePublishedContentBucketBinding,
540
579
  resolvePublishedContentManifestKey,
541
580
  resolvePublishedContentPreviewRoot,
@@ -566,6 +605,7 @@ export {
566
605
  summarizeCapacityPlan,
567
606
  summarizeProjectCapacityPlan,
568
607
  summarizeTeamCapacityPlan,
608
+ syncProjectLaunchHostBindingSecrets,
569
609
  synthesizePlanEstimate,
570
610
  tenantFeatureEnabled,
571
611
  tenantModelRendered,
@@ -574,6 +614,7 @@ export {
574
614
  validateModelFieldAliases,
575
615
  validateRepositoryHost,
576
616
  validateTaskPlanProposal,
617
+ validateTemplateLaunchRequirements,
577
618
  verifyArtifactBytes,
578
619
  verifyEditorialPreviewToken,
579
620
  waitForGitHubWorkflowRunCompletion,
@@ -365,6 +365,29 @@ export declare class MarketClient {
365
365
  environments: ProjectEnvironmentAccess[];
366
366
  };
367
367
  }>;
368
+ projectHosts(projectId: string): Promise<{
369
+ ok: true;
370
+ payload: Record<string, unknown>;
371
+ }>;
372
+ auditProjectHosts(projectId: string, body?: Record<string, unknown>): Promise<{
373
+ ok: true;
374
+ payload: Record<string, unknown>;
375
+ }>;
376
+ replaceProjectHost(projectId: string, requirementKey: string, body?: Record<string, unknown>): Promise<{
377
+ ok: true;
378
+ payload: Record<string, unknown>;
379
+ operation: Record<string, unknown>;
380
+ }>;
381
+ resyncProjectHost(projectId: string, requirementKey: string, body?: Record<string, unknown>): Promise<{
382
+ ok: true;
383
+ payload: Record<string, unknown>;
384
+ operation: Record<string, unknown>;
385
+ }>;
386
+ rotateProjectHost(projectId: string, requirementKey: string, body?: Record<string, unknown>): Promise<{
387
+ ok: true;
388
+ payload: Record<string, unknown>;
389
+ operation: Record<string, unknown>;
390
+ }>;
368
391
  projectDeploymentState(projectId: string): Promise<MarketProjectDeploymentState>;
369
392
  projectDeployments(projectId: string, filters?: ProjectDeploymentListFilters): Promise<{
370
393
  ok: true;
@@ -461,6 +461,36 @@ class MarketClient {
461
461
  { requireAuth: true }
462
462
  );
463
463
  }
464
+ projectHosts(projectId) {
465
+ return this.request(
466
+ `/v1/projects/${encodeURIComponent(projectId)}/hosts`,
467
+ { requireAuth: true }
468
+ );
469
+ }
470
+ auditProjectHosts(projectId, body = {}) {
471
+ return this.request(
472
+ `/v1/projects/${encodeURIComponent(projectId)}/hosts/audit`,
473
+ { method: "POST", body, requireAuth: true }
474
+ );
475
+ }
476
+ replaceProjectHost(projectId, requirementKey, body = {}) {
477
+ return this.request(
478
+ `/v1/projects/${encodeURIComponent(projectId)}/hosts/${encodeURIComponent(requirementKey)}/replace`,
479
+ { method: "POST", body, requireAuth: true }
480
+ );
481
+ }
482
+ resyncProjectHost(projectId, requirementKey, body = {}) {
483
+ return this.request(
484
+ `/v1/projects/${encodeURIComponent(projectId)}/hosts/${encodeURIComponent(requirementKey)}/resync`,
485
+ { method: "POST", body, requireAuth: true }
486
+ );
487
+ }
488
+ rotateProjectHost(projectId, requirementKey, body = {}) {
489
+ return this.request(
490
+ `/v1/projects/${encodeURIComponent(projectId)}/hosts/${encodeURIComponent(requirementKey)}/rotate`,
491
+ { method: "POST", body, requireAuth: true }
492
+ );
493
+ }
464
494
  projectDeploymentState(projectId) {
465
495
  return this.request(
466
496
  `/v1/projects/${encodeURIComponent(projectId)}/deployment-state`,
@@ -41,11 +41,14 @@ import {
41
41
  import {
42
42
  scaffoldTemplateProject,
43
43
  listTemplateProducts,
44
+ recordTemplateHostBindingState,
45
+ resolveTemplateDefinition,
44
46
  resolveTemplateProduct,
45
47
  serializeTemplateRegistryEntry,
46
48
  syncTemplateProject,
47
49
  validateTemplateProduct
48
50
  } from "../../operations/services/template-registry.js";
51
+ import { applyProjectLaunchHostBindingConfig } from "../../operations/services/template-host-bindings.js";
49
52
  import { validateKnowledgeHubProviderLaunchPrerequisites } from "../../operations/services/hub-provider-launch.js";
50
53
  import { publishProjectContent } from "../../operations/services/project-platform.js";
51
54
  import {
@@ -59,6 +62,11 @@ import {
59
62
  formatCliPreflightReport
60
63
  } from "../../operations/services/workspace-preflight.js";
61
64
  import { repoRoot } from "../../operations/services/workspace-save.js";
65
+ import { TREESEED_DEFAULT_STARTER_TEMPLATE_ID } from "../../sdk-types.js";
66
+ import {
67
+ parseProjectLaunchHostBindingSpecs,
68
+ resolveProjectLaunchHostBindings
69
+ } from "../../template-launch-requirements.js";
62
70
  import { run } from "../../operations/services/workspace-tools.js";
63
71
  import { resolveTreeseedWorkflowState } from "../../workflow-state.js";
64
72
  import { TreeseedWorkflowError, TreeseedWorkflowSdk } from "../../workflow.js";
@@ -308,16 +316,74 @@ class InitOperation extends BaseOperation {
308
316
  if (!directory) {
309
317
  return failureResult(this.metadata, "Init requires a target directory.");
310
318
  }
319
+ const templateId = String(input.template ?? TREESEED_DEFAULT_STARTER_TEMPLATE_ID);
320
+ const writeWarning = (message) => context.write?.(message, "stderr");
321
+ const templateOptions = {
322
+ cwd: context.cwd,
323
+ env: contextEnv(context),
324
+ writeWarning
325
+ };
326
+ const targetRoot = resolve(context.cwd, directory);
327
+ const projectSlug = typeof input.slug === "string" && input.slug.trim() ? input.slug.trim() : directory.toLowerCase().replace(/[^a-z0-9-]+/g, "-");
328
+ const projectName = typeof input.name === "string" && input.name.trim() ? input.name.trim() : directory;
329
+ const siteUrl = typeof input.siteUrl === "string" ? input.siteUrl : null;
330
+ const domains = (() => {
331
+ if (!siteUrl) return null;
332
+ try {
333
+ const hostname = new URL(siteUrl).hostname;
334
+ return hostname ? {
335
+ productionDomain: hostname,
336
+ stagingDomain: `staging.${hostname}`
337
+ } : null;
338
+ } catch {
339
+ return null;
340
+ }
341
+ })();
342
+ const hostBindingSpecs = [
343
+ ...Array.isArray(input.hostBindingSpecs) ? input.hostBindingSpecs.map(String) : typeof input.hostBindingSpecs === "string" ? [input.hostBindingSpecs] : [],
344
+ ...Array.isArray(input.host) ? input.host.map(String) : typeof input.host === "string" ? [input.host] : []
345
+ ];
346
+ const templateDefinition = await resolveTemplateDefinition(templateId, templateOptions);
347
+ const resolvedHostBindingState = hostBindingSpecs.length > 0 ? (() => {
348
+ const parsed = parseProjectLaunchHostBindingSpecs({
349
+ specs: hostBindingSpecs,
350
+ launchRequirements: templateDefinition.manifest.launchRequirements
351
+ });
352
+ const resolved = resolveProjectLaunchHostBindings({
353
+ hostBindings: parsed.hostBindings,
354
+ launchRequirements: templateDefinition.manifest.launchRequirements,
355
+ repositoryHosts: parsed.repositoryHosts,
356
+ teamHosts: parsed.teamHosts,
357
+ managedHosts: parsed.managedHosts,
358
+ projectSlug,
359
+ projectName,
360
+ domains,
361
+ standardProjectLaunch: true
362
+ });
363
+ return {
364
+ parsed,
365
+ resolved,
366
+ state: {
367
+ hostBindings: resolved.hostBindings,
368
+ hostBindingPlans: {
369
+ configWrites: resolved.configWritePlan,
370
+ secretDeployment: resolved.secretDeploymentPlan
371
+ },
372
+ hostBindingSummaries: [...parsed.summaries, ...parsed.omitted],
373
+ hostBindingConfig: null
374
+ }
375
+ };
376
+ })() : null;
311
377
  const launchPlan = planKnowledgeHubLaunch({
312
378
  team: { id: typeof input.teamId === "string" ? input.teamId : "local" },
313
379
  hub: {
314
- name: typeof input.name === "string" ? input.name : directory,
315
- slug: typeof input.slug === "string" ? input.slug : directory,
380
+ name: projectName,
381
+ slug: projectSlug,
316
382
  visibility: "team"
317
383
  },
318
384
  source: {
319
385
  kind: "template",
320
- ref: String(input.template ?? "starter-basic")
386
+ ref: templateId
321
387
  },
322
388
  repository: {
323
389
  topology: input.repositoryTopology === "split_software_content" ? "split_software_content" : "combined_compatibility",
@@ -326,22 +392,49 @@ class InitOperation extends BaseOperation {
326
392
  hosting: { mode: "self_hosted" }
327
393
  });
328
394
  const definition = await scaffoldTemplateProject(
329
- String(input.template ?? "starter-basic"),
330
- resolve(context.cwd, directory),
395
+ templateId,
396
+ targetRoot,
331
397
  {
332
398
  target: directory,
333
- name: typeof input.name === "string" ? input.name : null,
334
- slug: typeof input.slug === "string" ? input.slug : null,
335
- siteUrl: typeof input.siteUrl === "string" ? input.siteUrl : null,
399
+ name: projectName,
400
+ slug: projectSlug,
401
+ siteUrl,
336
402
  contactEmail: typeof input.contactEmail === "string" ? input.contactEmail : null,
337
403
  repositoryUrl: typeof input.repositoryUrl === "string" ? input.repositoryUrl : typeof input.repo === "string" ? input.repo : null,
338
- discordUrl: typeof input.discordUrl === "string" ? input.discordUrl : typeof input.discord === "string" ? input.discord : void 0
404
+ discordUrl: typeof input.discordUrl === "string" ? input.discordUrl : typeof input.discord === "string" ? input.discord : void 0,
405
+ hostBindingState: resolvedHostBindingState?.state ?? null
339
406
  },
340
- { writeWarning: (message) => context.write?.(message, "stderr") }
407
+ templateOptions
341
408
  );
409
+ const hostBindingConfig = resolvedHostBindingState ? applyProjectLaunchHostBindingConfig({
410
+ projectRoot: targetRoot,
411
+ hostBindings: resolvedHostBindingState.resolved.hostBindings,
412
+ hostBindingPlans: resolvedHostBindingState.state.hostBindingPlans,
413
+ launchInput: {
414
+ projectSlug,
415
+ projectName,
416
+ repoName: projectSlug,
417
+ domains
418
+ },
419
+ derived: {
420
+ projectSlug,
421
+ projectName,
422
+ repositoryName: projectSlug
423
+ }
424
+ }) : null;
425
+ if (resolvedHostBindingState && hostBindingConfig) {
426
+ recordTemplateHostBindingState(targetRoot, {
427
+ ...resolvedHostBindingState.state,
428
+ hostBindingConfig
429
+ });
430
+ }
342
431
  return operationResult(this.metadata, {
343
432
  directory,
344
433
  template: definition.id,
434
+ hostBindings: resolvedHostBindingState?.resolved.hostBindings ?? {},
435
+ hostBindingPlans: resolvedHostBindingState?.state.hostBindingPlans ?? null,
436
+ hostBindingSummaries: resolvedHostBindingState?.state.hostBindingSummaries ?? [],
437
+ hostBindingConfig,
345
438
  launchPlan
346
439
  });
347
440
  }
@@ -1,3 +1,4 @@
1
+ import { type ApplyProjectLaunchHostBindingConfigOptions } from './services/template-host-bindings.ts';
1
2
  export declare const PLATFORM_CONTENT_COLLECTIONS: readonly ["objectives", "questions", "notes", "proposals", "decisions", "agents"];
2
3
  export declare const PLATFORM_WORK_CONTENT_COLLECTIONS: readonly ["objectives", "questions", "notes", "proposals", "decisions"];
3
4
  export type PlatformContentCollection = (typeof PLATFORM_CONTENT_COLLECTIONS)[number];
@@ -63,6 +64,10 @@ export interface PlatformRepositoryOperationInput {
63
64
  commitMessage?: string;
64
65
  approvalRequired?: boolean;
65
66
  approvalId?: string;
67
+ hostBindings?: ApplyProjectLaunchHostBindingConfigOptions['hostBindings'];
68
+ hostBindingPlans?: ApplyProjectLaunchHostBindingConfigOptions['hostBindingPlans'];
69
+ launchInput?: ApplyProjectLaunchHostBindingConfigOptions['launchInput'];
70
+ derived?: ApplyProjectLaunchHostBindingConfigOptions['derived'];
66
71
  }
67
72
  export interface PlatformRepositoryOperationOptions {
68
73
  workspaceRoot: string;
@@ -126,4 +131,4 @@ export declare function normalizePlatformContentInput(collection: string, body:
126
131
  export declare function derivePlatformRepositoryKey(repository: PlatformRepositoryDescriptor): string;
127
132
  export declare function resolvePlatformRepositoryWorkspacePath(workspaceRoot: string, repository: PlatformRepositoryDescriptor): string;
128
133
  export declare function createPlatformRepositoryClaim(input: PlatformRepositoryClaimInput): PlatformRepositoryClaim;
129
- export declare function executePlatformRepositoryOperation(operation: 'write_content_record' | 'create_related_content' | 'create_decision_from_proposals' | string, input: PlatformRepositoryOperationInput, options: PlatformRepositoryOperationOptions): Promise<PlatformRepositoryOperationResult>;
134
+ export declare function executePlatformRepositoryOperation(operation: 'write_content_record' | 'create_related_content' | 'create_decision_from_proposals' | 'apply_host_binding_config' | 'audit_host_binding_config' | string, input: PlatformRepositoryOperationInput, options: PlatformRepositoryOperationOptions): Promise<PlatformRepositoryOperationResult>;
@@ -4,6 +4,10 @@ import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
4
4
  import { dirname, relative, resolve } from "node:path";
5
5
  import { promisify } from "node:util";
6
6
  import { serializeFrontmatterDocument, parseFrontmatterDocument } from "../frontmatter.js";
7
+ import {
8
+ applyProjectLaunchHostBindingConfig,
9
+ auditProjectLaunchHostBindingConfig
10
+ } from "./services/template-host-bindings.js";
7
11
  const execFileAsync = promisify(execFile);
8
12
  const PLATFORM_CONTENT_COLLECTIONS = ["objectives", "questions", "notes", "proposals", "decisions", "agents"];
9
13
  const PLATFORM_WORK_CONTENT_COLLECTIONS = ["objectives", "questions", "notes", "proposals", "decisions"];
@@ -572,6 +576,19 @@ function outputHref(output) {
572
576
  }
573
577
  return null;
574
578
  }
579
+ const HOST_BINDING_CONFIG_PATHS = /* @__PURE__ */ new Set([
580
+ "treeseed.site.yaml",
581
+ "src/env.yaml",
582
+ "src/manifest.yaml",
583
+ "package.json"
584
+ ]);
585
+ function assertHostBindingChangedPaths(changed) {
586
+ for (const changedPath of changed) {
587
+ if (!HOST_BINDING_CONFIG_PATHS.has(changedPath)) {
588
+ throw new Error(`Host binding repository operation attempted to change unsupported path "${changedPath}".`);
589
+ }
590
+ }
591
+ }
575
592
  async function executePlatformRepositoryOperation(operation, input, options) {
576
593
  if (!input.repository?.cloneUrl || !input.repository.name) {
577
594
  throw new Error("Repository operation requires a repository descriptor with name and cloneUrl.");
@@ -592,11 +609,38 @@ async function executePlatformRepositoryOperation(operation, input, options) {
592
609
  output = await createRelatedContent(repoPath, input);
593
610
  } else if (operation === "create_decision_from_proposals") {
594
611
  output = await createDecisionFromProposals(repoPath, input);
612
+ } else if (operation === "apply_host_binding_config") {
613
+ const hostBindingConfig = applyProjectLaunchHostBindingConfig({
614
+ projectRoot: repoPath,
615
+ hostBindings: input.hostBindings,
616
+ hostBindingPlans: input.hostBindingPlans,
617
+ launchInput: input.launchInput,
618
+ derived: input.derived
619
+ });
620
+ output = {
621
+ hostBindingConfig,
622
+ changedPaths: hostBindingConfig.targets
623
+ };
624
+ } else if (operation === "audit_host_binding_config") {
625
+ const hostBindingAudit = auditProjectLaunchHostBindingConfig({
626
+ projectRoot: repoPath,
627
+ hostBindings: input.hostBindings,
628
+ hostBindingPlans: input.hostBindingPlans,
629
+ launchInput: input.launchInput,
630
+ derived: input.derived
631
+ });
632
+ output = {
633
+ hostBindingAudit,
634
+ changedPaths: []
635
+ };
595
636
  } else {
596
637
  throw new Error(`Unsupported repository operation "${operation}".`);
597
638
  }
598
639
  const gitChanged = await changedPaths(repoPath);
599
640
  const changed = gitChanged.length > 0 ? gitChanged : changedPathsFromOutput(output);
641
+ if (operation === "apply_host_binding_config" || operation === "audit_host_binding_config") {
642
+ assertHostBindingChangedPaths(changed);
643
+ }
600
644
  const verification = await runVerificationCommands(repoPath, input.repository);
601
645
  const commit = await commitIfRequested(repoPath, input.repository, input, changed);
602
646
  return {
@@ -63,6 +63,9 @@ export type TreeseedConfigEntrySnapshot = {
63
63
  purposes: string[];
64
64
  storage: 'shared' | 'scoped';
65
65
  validation?: TreeseedEnvironmentValidation;
66
+ sourceRequirement?: string;
67
+ sourceHostType?: string | null;
68
+ sourceProvider?: string | null;
66
69
  scope: TreeseedConfigScope;
67
70
  sharedScopes: TreeseedConfigScope[];
68
71
  required: boolean;
@@ -315,12 +318,13 @@ export declare function checkTreeseedProviderConnections({ tenantRoot, scope, en
315
318
  issues: any[];
316
319
  }>;
317
320
  export declare function formatTreeseedProviderConnectionReport(report: any): string;
318
- export declare function syncTreeseedGitHubEnvironment({ tenantRoot, scope, dryRun, repository: repositoryInput, valuesOverlay, managedHostMode, execution, concurrency, onProgress, }: {
321
+ export declare function syncTreeseedGitHubEnvironment({ tenantRoot, scope, dryRun, repository: repositoryInput, valuesOverlay, entryIds, managedHostMode, execution, concurrency, onProgress, }: {
319
322
  tenantRoot: string;
320
323
  scope?: TreeseedConfigScope;
321
324
  dryRun?: boolean;
322
325
  repository?: string | null;
323
326
  valuesOverlay?: Record<string, string | undefined>;
327
+ entryIds?: string[];
324
328
  managedHostMode?: 'auto' | 'direct' | 'managed';
325
329
  execution?: 'parallel' | 'sequential';
326
330
  concurrency?: number;
@@ -337,25 +341,36 @@ export declare function syncTreeseedGitHubEnvironment({ tenantRoot, scope, dryRu
337
341
  repository: string;
338
342
  scope: "local" | "staging" | "prod";
339
343
  environment: string;
344
+ entryIds: string[] | undefined;
340
345
  }>;
341
- export declare function syncTreeseedCloudflareEnvironment({ tenantRoot, scope, dryRun }?: {
342
- scope?: string | undefined;
343
- dryRun?: boolean | undefined;
346
+ export declare function syncTreeseedCloudflareEnvironment({ tenantRoot, scope, dryRun, valuesOverlay, entryIds, onProgress, }: {
347
+ tenantRoot: string;
348
+ scope?: TreeseedConfigScope;
349
+ dryRun?: boolean;
350
+ valuesOverlay?: Record<string, string | undefined>;
351
+ entryIds?: string[];
352
+ onProgress?: (message: string, stream?: 'stdout' | 'stderr') => void;
344
353
  }): {
345
- scope: string;
354
+ scope: "local" | "staging" | "prod";
346
355
  target: {
347
356
  kind: string;
348
357
  scope: string;
349
358
  };
350
359
  wranglerPath: string;
360
+ entryIds: string[] | undefined;
351
361
  secrets: string[];
352
362
  varsManagedByWranglerConfig: string[];
353
363
  };
354
- export declare function syncTreeseedRailwayEnvironment({ tenantRoot, scope, dryRun }?: {
355
- scope?: string | undefined;
356
- dryRun?: boolean | undefined;
364
+ export declare function syncTreeseedRailwayEnvironment({ tenantRoot, scope, dryRun, valuesOverlay, entryIds, onProgress, }: {
365
+ tenantRoot: string;
366
+ scope?: TreeseedConfigScope;
367
+ dryRun?: boolean;
368
+ valuesOverlay?: Record<string, string | undefined>;
369
+ entryIds?: string[];
370
+ onProgress?: (message: string, stream?: 'stdout' | 'stderr') => void;
357
371
  }): {
358
- scope: string;
372
+ scope: "local" | "staging" | "prod";
373
+ entryIds: string[] | undefined;
359
374
  services: {
360
375
  service: any;
361
376
  instanceKey: any;