@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
@@ -6,7 +6,7 @@ entries:
6
6
  howToGet: "Create a GitHub fine-grained personal access token scoped to the TreeSeed repository. Required repository permissions: Contents read/write, Environments read/write, Secrets and variables read/write, Actions and workflows read/write, Pull requests read/write, Issues read/write. Then paste it here as GH_TOKEN."
7
7
  sensitivity: secret
8
8
  targets:
9
- - local-file
9
+ - local-runtime
10
10
  - railway-secret
11
11
  scopes:
12
12
  - local
@@ -19,6 +19,7 @@ entries:
19
19
  - config
20
20
  validation:
21
21
  kind: nonempty
22
+ minLength: 8
22
23
  sourcePriority:
23
24
  - machine-config
24
25
  - process-env
@@ -29,7 +30,7 @@ entries:
29
30
  howToGet: "Create a Cloudflare account-level API token scoped to the target domain and account. Required permissions: Account Cloudflare Pages edit, Account Workers Scripts edit, Account Workers KV Storage edit, Account D1 edit, Account Queues edit, Zone DNS edit. Then paste it here as CLOUDFLARE_API_TOKEN."
30
31
  sensitivity: secret
31
32
  targets:
32
- - local-file
33
+ - local-runtime
33
34
  - github-secret
34
35
  scopes:
35
36
  - local
@@ -44,6 +45,7 @@ entries:
44
45
  - config
45
46
  validation:
46
47
  kind: nonempty
48
+ minLength: 8
47
49
  sourcePriority:
48
50
  - machine-config
49
51
  - process-env
@@ -51,10 +53,10 @@ entries:
51
53
  label: Railway API token
52
54
  group: auth
53
55
  description: Primary Railway token for user or workspace scoped access, including project creation and most Treeseed-managed Railway flows.
54
- howToGet: In Railway, create a user or workspace API token that can create and manage the target project, then paste it here as RAILWAY_API_TOKEN.
56
+ howToGet: In Railway, create a user or workspace API token that can create and manage the target project, then paste it here. Treeseed also accepts the legacy alias RAILWAY_API_KEY from process env.
55
57
  sensitivity: secret
56
58
  targets:
57
- - local-file
59
+ - local-runtime
58
60
  - railway-secret
59
61
  scopes:
60
62
  - local
@@ -68,6 +70,7 @@ entries:
68
70
  - config
69
71
  validation:
70
72
  kind: nonempty
73
+ minLength: 8
71
74
  sourcePriority:
72
75
  - machine-config
73
76
  - process-env
@@ -80,7 +83,7 @@ entries:
80
83
  howToGet: In Railway, generate a project-scoped token only if you need project resource management separate from the primary API token, then paste it here as RAILWAY_TOKEN.
81
84
  sensitivity: secret
82
85
  targets:
83
- - local-file
86
+ - local-runtime
84
87
  - railway-secret
85
88
  scopes:
86
89
  - local
@@ -94,6 +97,7 @@ entries:
94
97
  - config
95
98
  validation:
96
99
  kind: nonempty
100
+ minLength: 8
97
101
  sourcePriority:
98
102
  - machine-config
99
103
  - process-env
@@ -105,7 +109,7 @@ entries:
105
109
  howToGet: In the Cloudflare dashboard, open Workers & Pages or Account Home and copy the account ID.
106
110
  sensitivity: plain
107
111
  targets:
108
- - local-file
112
+ - local-runtime
109
113
  - github-variable
110
114
  - config-file
111
115
  scopes:
@@ -123,7 +127,6 @@ entries:
123
127
  sourcePriority:
124
128
  - machine-config
125
129
  - process-env
126
- - treeseed.site.yaml
127
130
  TREESEED_CLOUDFLARE_PAGES_PROJECT_NAME:
128
131
  label: Cloudflare Pages project name
129
132
  group: cloudflare
@@ -131,7 +134,7 @@ entries:
131
134
  howToGet: Treeseed can default this from the site slug. Override it if the Cloudflare Pages project should use a different name.
132
135
  sensitivity: plain
133
136
  targets:
134
- - local-file
137
+ - local-runtime
135
138
  - github-variable
136
139
  scopes:
137
140
  - staging
@@ -146,7 +149,6 @@ entries:
146
149
  sourcePriority:
147
150
  - machine-config
148
151
  - process-env
149
- - treeseed.site.yaml
150
152
  defaultValueRef: pagesProjectNameDefault
151
153
  TREESEED_CLOUDFLARE_PAGES_PREVIEW_PROJECT_NAME:
152
154
  label: Cloudflare staging Pages project
@@ -155,7 +157,7 @@ entries:
155
157
  howToGet: Treeseed can default this from the production Pages project name with a -staging suffix.
156
158
  sensitivity: plain
157
159
  targets:
158
- - local-file
160
+ - local-runtime
159
161
  - github-variable
160
162
  scopes:
161
163
  - staging
@@ -170,7 +172,6 @@ entries:
170
172
  sourcePriority:
171
173
  - machine-config
172
174
  - process-env
173
- - treeseed.site.yaml
174
175
  defaultValueRef: pagesPreviewProjectNameDefault
175
176
  TREESEED_CONTENT_BUCKET_NAME:
176
177
  label: Cloudflare R2 content bucket
@@ -179,7 +180,7 @@ entries:
179
180
  howToGet: Treeseed can default this from the site slug with a -content suffix. Override it if the shared bucket should use a different name.
180
181
  sensitivity: plain
181
182
  targets:
182
- - local-file
183
+ - local-runtime
183
184
  - github-variable
184
185
  scopes:
185
186
  - staging
@@ -194,7 +195,6 @@ entries:
194
195
  sourcePriority:
195
196
  - machine-config
196
197
  - process-env
197
- - treeseed.site.yaml
198
198
  defaultValueRef: contentBucketNameDefault
199
199
  TREESEED_CONTENT_BUCKET_BINDING:
200
200
  label: Cloudflare R2 binding name
@@ -203,7 +203,7 @@ entries:
203
203
  howToGet: Treeseed defaults this to TREESEED_CONTENT_BUCKET unless you need a different binding name.
204
204
  sensitivity: plain
205
205
  targets:
206
- - local-file
206
+ - local-runtime
207
207
  - github-variable
208
208
  scopes:
209
209
  - staging
@@ -218,7 +218,6 @@ entries:
218
218
  sourcePriority:
219
219
  - machine-config
220
220
  - process-env
221
- - treeseed.site.yaml
222
221
  defaultValueRef: contentBucketBindingDefault
223
222
  TREESEED_EDITORIAL_PREVIEW_SECRET:
224
223
  label: Editorial preview signing secret
@@ -227,7 +226,7 @@ entries:
227
226
  howToGet: Treeseed can generate a strong random secret for you. Reuse the same value across hosted environments so preview links remain valid during staging-to-production promotion.
228
227
  sensitivity: secret
229
228
  targets:
230
- - local-file
229
+ - local-runtime
231
230
  - github-secret
232
231
  - cloudflare-secret
233
232
  scopes:
@@ -251,7 +250,7 @@ entries:
251
250
  howToGet: Treeseed can derive this from the hosting block in treeseed.site.yaml. Override it only when the runtime environment must force a different deployment profile.
252
251
  sensitivity: plain
253
252
  targets:
254
- - local-file
253
+ - local-runtime
255
254
  - github-variable
256
255
  - railway-var
257
256
  - config-file
@@ -282,7 +281,7 @@ entries:
282
281
  howToGet: Treeseed can derive this from the hosting block in treeseed.site.yaml.
283
282
  sensitivity: plain
284
283
  targets:
285
- - local-file
284
+ - local-runtime
286
285
  - github-variable
287
286
  - railway-var
288
287
  - config-file
@@ -312,7 +311,7 @@ entries:
312
311
  howToGet: Use the hosted market API URL if Treeseed manages the project for you. Self-hosted deployments should only set this when registration with the market control plane is enabled.
313
312
  sensitivity: plain
314
313
  targets:
315
- - local-file
314
+ - local-runtime
316
315
  - github-variable
317
316
  - railway-var
318
317
  scopes:
@@ -338,10 +337,10 @@ entries:
338
337
  label: Hosted team ID
339
338
  group: hosting
340
339
  description: Team identifier used by hosted or registered project platforms when they publish infra metadata, register agent pools, or resolve team-scoped content.
341
- howToGet: Treeseed can default this from the hosting.teamId value in treeseed.site.yaml or fall back to the site slug.
340
+ howToGet: Treeseed defaults this to the site slug unless you need a different hosted team identifier.
342
341
  sensitivity: plain
343
342
  targets:
344
- - local-file
343
+ - local-runtime
345
344
  - github-variable
346
345
  - railway-var
347
346
  scopes:
@@ -359,7 +358,6 @@ entries:
359
358
  sourcePriority:
360
359
  - machine-config
361
360
  - process-env
362
- - treeseed.site.yaml
363
361
  relevanceRef: projectRegistrationEnabled
364
362
  requiredWhenRef: projectRegistrationEnabled
365
363
  defaultValueRef: hostingTeamIdDefault
@@ -367,10 +365,10 @@ entries:
367
365
  label: Hosted project ID
368
366
  group: hosting
369
367
  description: Stable project identifier used by hosted or registered self-hosted project platforms for dispatch, deploy reporting, and agent-pool registration.
370
- howToGet: Treeseed can default this from hosting.projectId in treeseed.site.yaml or fall back to the site slug.
368
+ howToGet: Treeseed defaults this to the site slug unless you need a different hosted project identifier.
371
369
  sensitivity: plain
372
370
  targets:
373
- - local-file
371
+ - local-runtime
374
372
  - github-variable
375
373
  - railway-var
376
374
  scopes:
@@ -388,7 +386,6 @@ entries:
388
386
  sourcePriority:
389
387
  - machine-config
390
388
  - process-env
391
- - treeseed.site.yaml
392
389
  relevanceRef: projectRegistrationEnabled
393
390
  requiredWhenRef: projectRegistrationEnabled
394
391
  defaultValueRef: hostingProjectIdDefault
@@ -399,7 +396,7 @@ entries:
399
396
  howToGet: Generate or rotate this token from the market control plane after connecting a project environment.
400
397
  sensitivity: secret
401
398
  targets:
402
- - local-file
399
+ - local-runtime
403
400
  - github-secret
404
401
  - railway-secret
405
402
  scopes:
@@ -425,7 +422,7 @@ entries:
425
422
  howToGet: Set this to 0 for scale-to-zero by default unless the project requires warm workers.
426
423
  sensitivity: plain
427
424
  targets:
428
- - local-file
425
+ - local-runtime
429
426
  - github-variable
430
427
  - railway-var
431
428
  scopes:
@@ -444,6 +441,7 @@ entries:
444
441
  - machine-config
445
442
  - process-env
446
443
  relevanceRef: railwayManagedEnabled
444
+ defaultValueRef: agentPoolMinWorkersDefault
447
445
  TREESEED_AGENT_POOL_MAX_WORKERS:
448
446
  label: Agent pool maximum workers
449
447
  group: hosting
@@ -451,7 +449,7 @@ entries:
451
449
  howToGet: Choose a value that reflects your budget and expected concurrency ceiling.
452
450
  sensitivity: plain
453
451
  targets:
454
- - local-file
452
+ - local-runtime
455
453
  - github-variable
456
454
  - railway-var
457
455
  scopes:
@@ -470,6 +468,7 @@ entries:
470
468
  - machine-config
471
469
  - process-env
472
470
  relevanceRef: railwayManagedEnabled
471
+ defaultValueRef: agentPoolMaxWorkersDefault
473
472
  TREESEED_AGENT_POOL_TARGET_QUEUE_DEPTH:
474
473
  label: Agent pool target queue depth
475
474
  group: hosting
@@ -477,7 +476,7 @@ entries:
477
476
  howToGet: Start with 1 for conservative scaling, then raise it only after observing stable worker latency.
478
477
  sensitivity: plain
479
478
  targets:
480
- - local-file
479
+ - local-runtime
481
480
  - github-variable
482
481
  - railway-var
483
482
  scopes:
@@ -496,6 +495,7 @@ entries:
496
495
  - machine-config
497
496
  - process-env
498
497
  relevanceRef: railwayManagedEnabled
498
+ defaultValueRef: agentPoolTargetQueueDepthDefault
499
499
  TREESEED_AGENT_POOL_COOLDOWN_SECONDS:
500
500
  label: Agent pool cooldown seconds
501
501
  group: hosting
@@ -503,7 +503,7 @@ entries:
503
503
  howToGet: Start with 60 seconds to prevent worker thrash in lightly bursty environments.
504
504
  sensitivity: plain
505
505
  targets:
506
- - local-file
506
+ - local-runtime
507
507
  - github-variable
508
508
  - railway-var
509
509
  scopes:
@@ -522,6 +522,7 @@ entries:
522
522
  - machine-config
523
523
  - process-env
524
524
  relevanceRef: railwayManagedEnabled
525
+ defaultValueRef: agentPoolCooldownSecondsDefault
525
526
  TREESEED_WORKDAY_TIMEZONE:
526
527
  label: Workday timezone
527
528
  group: hosting
@@ -529,7 +530,7 @@ entries:
529
530
  howToGet: Use the project team's operating timezone, such as America/New_York.
530
531
  sensitivity: plain
531
532
  targets:
532
- - local-file
533
+ - local-runtime
533
534
  - github-variable
534
535
  - railway-var
535
536
  scopes:
@@ -547,6 +548,7 @@ entries:
547
548
  sourcePriority:
548
549
  - machine-config
549
550
  - process-env
551
+ defaultValueRef: workdayTimezoneDefault
550
552
  TREESEED_WORKDAY_WINDOWS_JSON:
551
553
  label: Workday schedule JSON
552
554
  group: hosting
@@ -554,7 +556,7 @@ entries:
554
556
  howToGet: Provide a JSON value like [{"days":[1,2,3,4,5],"startTime":"09:00","endTime":"17:00"}].
555
557
  sensitivity: plain
556
558
  targets:
557
- - local-file
559
+ - local-runtime
558
560
  - github-variable
559
561
  - railway-var
560
562
  scopes:
@@ -572,6 +574,7 @@ entries:
572
574
  sourcePriority:
573
575
  - machine-config
574
576
  - process-env
577
+ defaultValueRef: workdayWindowsDefault
575
578
  TREESEED_WORKDAY_TASK_CREDIT_BUDGET:
576
579
  label: Daily task-credit budget
577
580
  group: hosting
@@ -579,7 +582,7 @@ entries:
579
582
  howToGet: Choose the daily throughput ceiling that matches the team's Copilot and infrastructure budget.
580
583
  sensitivity: plain
581
584
  targets:
582
- - local-file
585
+ - local-runtime
583
586
  - github-variable
584
587
  - railway-var
585
588
  scopes:
@@ -597,6 +600,7 @@ entries:
597
600
  sourcePriority:
598
601
  - machine-config
599
602
  - process-env
603
+ defaultValueRef: workdayTaskCreditBudgetDefault
600
604
  TREESEED_MANAGER_MAX_QUEUED_TASKS:
601
605
  label: Manager max queued tasks
602
606
  group: hosting
@@ -604,7 +608,7 @@ entries:
604
608
  howToGet: Start small so queue top-ups stay budget-aware and incremental.
605
609
  sensitivity: plain
606
610
  targets:
607
- - local-file
611
+ - local-runtime
608
612
  - github-variable
609
613
  - railway-var
610
614
  scopes:
@@ -622,6 +626,7 @@ entries:
622
626
  sourcePriority:
623
627
  - machine-config
624
628
  - process-env
629
+ defaultValueRef: managerMaxQueuedTasksDefault
625
630
  TREESEED_MANAGER_MAX_QUEUED_CREDITS:
626
631
  label: Manager max queued credits
627
632
  group: hosting
@@ -629,7 +634,7 @@ entries:
629
634
  howToGet: Set this lower than or equal to the daily task-credit budget.
630
635
  sensitivity: plain
631
636
  targets:
632
- - local-file
637
+ - local-runtime
633
638
  - github-variable
634
639
  - railway-var
635
640
  scopes:
@@ -647,6 +652,7 @@ entries:
647
652
  sourcePriority:
648
653
  - machine-config
649
654
  - process-env
655
+ defaultValueRef: managerMaxQueuedCreditsDefault
650
656
  TREESEED_MANAGER_PRIORITY_MODELS:
651
657
  label: Manager priority models
652
658
  group: hosting
@@ -654,7 +660,7 @@ entries:
654
660
  howToGet: Leave unset to use the default objective/question/note/page/book/knowledge set.
655
661
  sensitivity: plain
656
662
  targets:
657
- - local-file
663
+ - local-runtime
658
664
  - github-variable
659
665
  - railway-var
660
666
  scopes:
@@ -672,6 +678,7 @@ entries:
672
678
  sourcePriority:
673
679
  - machine-config
674
680
  - process-env
681
+ defaultValueRef: managerPriorityModelsDefault
675
682
  TREESEED_TASK_CREDIT_WEIGHTS_JSON:
676
683
  label: Task credit weights JSON
677
684
  group: hosting
@@ -679,7 +686,7 @@ entries:
679
686
  howToGet: Provide a JSON value such as [{"type":"question","credits":3}].
680
687
  sensitivity: plain
681
688
  targets:
682
- - local-file
689
+ - local-runtime
683
690
  - github-variable
684
691
  - railway-var
685
692
  scopes:
@@ -697,6 +704,7 @@ entries:
697
704
  sourcePriority:
698
705
  - machine-config
699
706
  - process-env
707
+ defaultValueRef: taskCreditWeightsDefault
700
708
  TREESEED_WORKER_POOL_SCALER:
701
709
  label: Worker pool scaler kind
702
710
  group: hosting
@@ -704,7 +712,7 @@ entries:
704
712
  howToGet: Set this to railway for hosted projects or noop/manual for self-hosted environments without automatic scale control.
705
713
  sensitivity: plain
706
714
  targets:
707
- - local-file
715
+ - local-runtime
708
716
  - github-variable
709
717
  - railway-var
710
718
  scopes:
@@ -726,6 +734,7 @@ entries:
726
734
  sourcePriority:
727
735
  - machine-config
728
736
  - process-env
737
+ defaultValueRef: workerPoolScalerDefault
729
738
  TREESEED_RAILWAY_PROJECT_ID:
730
739
  label: Railway project ID
731
740
  group: hosting
@@ -733,7 +742,7 @@ entries:
733
742
  howToGet: Copy the project ID from Railway when automatic worker scaling is enabled.
734
743
  sensitivity: plain
735
744
  targets:
736
- - local-file
745
+ - local-runtime
737
746
  - github-variable
738
747
  - railway-var
739
748
  scopes:
@@ -758,7 +767,7 @@ entries:
758
767
  howToGet: Copy the environment ID from Railway for the matching staging or production environment.
759
768
  sensitivity: plain
760
769
  targets:
761
- - local-file
770
+ - local-runtime
762
771
  - github-variable
763
772
  - railway-var
764
773
  scopes:
@@ -783,7 +792,7 @@ entries:
783
792
  howToGet: Copy the worker service ID from Railway after the hosted project environment is provisioned.
784
793
  sensitivity: plain
785
794
  targets:
786
- - local-file
795
+ - local-runtime
787
796
  - github-variable
788
797
  - railway-var
789
798
  scopes:
@@ -804,18 +813,21 @@ entries:
804
813
  TREESEED_FORM_TOKEN_SECRET:
805
814
  label: Forms token secret
806
815
  group: forms
816
+ cluster: forms-core
817
+ startupProfile: core
807
818
  description: Signs form-related tokens and protects Treeseed forms workflows in local and hosted runtimes.
808
819
  howToGet: Treeseed can generate a strong random secret for you. Reuse it across environments only if that matches your security model.
809
820
  sensitivity: secret
810
821
  targets:
811
- - local-file
812
- - wrangler-dev-vars
822
+ - local-runtime
823
+ - local-cloudflare
813
824
  - github-secret
814
825
  - cloudflare-secret
815
826
  scopes:
816
827
  - local
817
828
  - staging
818
829
  - prod
830
+ storage: shared
819
831
  requirement: required
820
832
  purposes:
821
833
  - dev
@@ -832,18 +844,20 @@ entries:
832
844
  TREESEED_PUBLIC_TURNSTILE_SITE_KEY:
833
845
  label: Turnstile site key
834
846
  group: forms
847
+ cluster: turnstile
835
848
  description: Public site key used by the browser to render the Turnstile challenge when forms protection is enabled.
836
849
  howToGet: Create a Turnstile widget in Cloudflare Turnstile and copy the site key.
837
850
  sensitivity: plain
838
851
  targets:
839
- - local-file
840
- - wrangler-dev-vars
852
+ - local-runtime
853
+ - local-cloudflare
841
854
  - github-variable
842
855
  - cloudflare-var
843
856
  scopes:
844
857
  - local
845
858
  - staging
846
859
  - prod
860
+ storage: shared
847
861
  requirement: conditional
848
862
  purposes:
849
863
  - dev
@@ -860,18 +874,20 @@ entries:
860
874
  TREESEED_TURNSTILE_SECRET_KEY:
861
875
  label: Turnstile secret key
862
876
  group: forms
877
+ cluster: turnstile
863
878
  description: Server-side Turnstile secret used to verify challenge responses.
864
879
  howToGet: Create a Turnstile widget in Cloudflare Turnstile and copy the secret key.
865
880
  sensitivity: secret
866
881
  targets:
867
- - local-file
868
- - wrangler-dev-vars
882
+ - local-runtime
883
+ - local-cloudflare
869
884
  - github-secret
870
885
  - cloudflare-secret
871
886
  scopes:
872
887
  - local
873
888
  - staging
874
889
  - prod
890
+ storage: shared
875
891
  requirement: conditional
876
892
  purposes:
877
893
  - dev
@@ -892,8 +908,8 @@ entries:
892
908
  howToGet: Treeseed defaults this to true for local development. You can switch it off if you want to test with real Turnstile keys locally.
893
909
  sensitivity: plain
894
910
  targets:
895
- - local-file
896
- - wrangler-dev-vars
911
+ - local-runtime
912
+ - local-cloudflare
897
913
  scopes:
898
914
  - local
899
915
  requirement: optional
@@ -909,18 +925,20 @@ entries:
909
925
  TREESEED_SMTP_HOST:
910
926
  label: SMTP host
911
927
  group: smtp
928
+ cluster: smtp
912
929
  description: SMTP host for Treeseed email delivery when SMTP-backed forms behavior is enabled.
913
930
  howToGet: Use the SMTP hostname from your email provider or local Mailpit instance.
914
931
  sensitivity: plain
915
932
  targets:
916
- - local-file
917
- - wrangler-dev-vars
933
+ - local-runtime
934
+ - local-cloudflare
918
935
  - github-variable
919
936
  - cloudflare-var
920
937
  scopes:
921
938
  - local
922
939
  - staging
923
940
  - prod
941
+ storage: shared
924
942
  requirement: conditional
925
943
  purposes:
926
944
  - dev
@@ -932,23 +950,26 @@ entries:
932
950
  sourcePriority:
933
951
  - machine-config
934
952
  - process-env
953
+ localDefaultValueRef: localMailpitHostDefault
935
954
  relevanceRef: smtpEnabled
936
955
  requiredWhenRef: smtpNonLocal
937
956
  TREESEED_SMTP_PORT:
938
957
  label: SMTP port
939
958
  group: smtp
959
+ cluster: smtp
940
960
  description: Port used to connect to the SMTP server.
941
961
  howToGet: Use the port provided by your email service, commonly 587, 465, or the Mailpit local port.
942
962
  sensitivity: plain
943
963
  targets:
944
- - local-file
945
- - wrangler-dev-vars
964
+ - local-runtime
965
+ - local-cloudflare
946
966
  - github-variable
947
967
  - cloudflare-var
948
968
  scopes:
949
969
  - local
950
970
  - staging
951
971
  - prod
972
+ storage: shared
952
973
  requirement: conditional
953
974
  purposes:
954
975
  - dev
@@ -960,23 +981,26 @@ entries:
960
981
  sourcePriority:
961
982
  - machine-config
962
983
  - process-env
984
+ localDefaultValueRef: localMailpitPortDefault
963
985
  relevanceRef: smtpEnabled
964
986
  requiredWhenRef: smtpNonLocal
965
987
  TREESEED_SMTP_USERNAME:
966
988
  label: SMTP username
967
989
  group: smtp
990
+ cluster: smtp
968
991
  description: SMTP identity used when authenticating to the mail provider.
969
992
  howToGet: Use the SMTP username or mailbox identity from your email provider.
970
993
  sensitivity: plain
971
994
  targets:
972
- - local-file
973
- - wrangler-dev-vars
995
+ - local-runtime
996
+ - local-cloudflare
974
997
  - github-variable
975
998
  - cloudflare-var
976
999
  scopes:
977
1000
  - local
978
1001
  - staging
979
1002
  - prod
1003
+ storage: shared
980
1004
  requirement: conditional
981
1005
  purposes:
982
1006
  - dev
@@ -993,18 +1017,20 @@ entries:
993
1017
  TREESEED_SMTP_PASSWORD:
994
1018
  label: SMTP password
995
1019
  group: smtp
1020
+ cluster: smtp
996
1021
  description: SMTP password or app password used for authenticated email sending.
997
1022
  howToGet: Use the SMTP password or app-specific password from your email provider.
998
1023
  sensitivity: secret
999
1024
  targets:
1000
- - local-file
1001
- - wrangler-dev-vars
1025
+ - local-runtime
1026
+ - local-cloudflare
1002
1027
  - github-secret
1003
1028
  - cloudflare-secret
1004
1029
  scopes:
1005
1030
  - local
1006
1031
  - staging
1007
1032
  - prod
1033
+ storage: shared
1008
1034
  requirement: conditional
1009
1035
  purposes:
1010
1036
  - dev
@@ -1021,18 +1047,20 @@ entries:
1021
1047
  TREESEED_SMTP_FROM:
1022
1048
  label: SMTP from address
1023
1049
  group: smtp
1050
+ cluster: smtp
1024
1051
  description: Email address Treeseed uses as the sender for mail notifications.
1025
1052
  howToGet: Use a verified sender address from your SMTP provider.
1026
1053
  sensitivity: plain
1027
1054
  targets:
1028
- - local-file
1029
- - wrangler-dev-vars
1055
+ - local-runtime
1056
+ - local-cloudflare
1030
1057
  - github-variable
1031
1058
  - cloudflare-var
1032
1059
  scopes:
1033
1060
  - local
1034
1061
  - staging
1035
1062
  - prod
1063
+ storage: shared
1036
1064
  requirement: conditional
1037
1065
  purposes:
1038
1066
  - dev
@@ -1044,23 +1072,26 @@ entries:
1044
1072
  sourcePriority:
1045
1073
  - machine-config
1046
1074
  - process-env
1075
+ localDefaultValueRef: contactEmailDefault
1047
1076
  relevanceRef: smtpEnabled
1048
1077
  requiredWhenRef: smtpNonLocal
1049
1078
  TREESEED_SMTP_REPLY_TO:
1050
1079
  label: SMTP reply-to address
1051
1080
  group: smtp
1081
+ cluster: smtp
1052
1082
  description: Reply-to address attached to Treeseed-generated emails.
1053
1083
  howToGet: Use a monitored mailbox that should receive replies from end users.
1054
1084
  sensitivity: plain
1055
1085
  targets:
1056
- - local-file
1057
- - wrangler-dev-vars
1086
+ - local-runtime
1087
+ - local-cloudflare
1058
1088
  - github-variable
1059
1089
  - cloudflare-var
1060
1090
  scopes:
1061
1091
  - local
1062
1092
  - staging
1063
1093
  - prod
1094
+ storage: shared
1064
1095
  requirement: conditional
1065
1096
  purposes:
1066
1097
  - dev
@@ -1072,5 +1103,6 @@ entries:
1072
1103
  sourcePriority:
1073
1104
  - machine-config
1074
1105
  - process-env
1106
+ localDefaultValueRef: contactEmailDefault
1075
1107
  relevanceRef: smtpEnabled
1076
1108
  requiredWhenRef: smtpNonLocal